Notification details implemented
parent
f8c207d33f
commit
9030b9bc81
@ -0,0 +1,96 @@
|
||||
class GetNotificationsResponseModel {
|
||||
int? id;
|
||||
int? recordId;
|
||||
int? patientID;
|
||||
bool? projectOutSA;
|
||||
String? deviceType;
|
||||
String? deviceToken;
|
||||
String? message;
|
||||
String? messageType;
|
||||
String? messageTypeData;
|
||||
dynamic videoURL;
|
||||
bool? isQueue;
|
||||
String? isQueueOn;
|
||||
String? createdOn;
|
||||
String? createdBy;
|
||||
String? notificationType;
|
||||
bool? isSent;
|
||||
String? isSentOn;
|
||||
bool? isRead;
|
||||
String? isReadOn;
|
||||
int? channelID;
|
||||
int? projectID;
|
||||
|
||||
GetNotificationsResponseModel(
|
||||
{this.id,
|
||||
this.recordId,
|
||||
this.patientID,
|
||||
this.projectOutSA,
|
||||
this.deviceType,
|
||||
this.deviceToken,
|
||||
this.message,
|
||||
this.messageType,
|
||||
this.messageTypeData,
|
||||
this.videoURL,
|
||||
this.isQueue,
|
||||
this.isQueueOn,
|
||||
this.createdOn,
|
||||
this.createdBy,
|
||||
this.notificationType,
|
||||
this.isSent,
|
||||
this.isSentOn,
|
||||
this.isRead,
|
||||
this.isReadOn,
|
||||
this.channelID,
|
||||
this.projectID});
|
||||
|
||||
GetNotificationsResponseModel.fromJson(Map<String, dynamic> json) {
|
||||
id = json['Id'];
|
||||
recordId = json['RecordId'];
|
||||
patientID = json['PatientID'];
|
||||
projectOutSA = json['ProjectOutSA'];
|
||||
deviceType = json['DeviceType'];
|
||||
deviceToken = json['DeviceToken'];
|
||||
message = json['Message'];
|
||||
messageType = json['MessageType'];
|
||||
messageTypeData = json['MessageTypeData'];
|
||||
videoURL = json['VideoURL'];
|
||||
isQueue = json['IsQueue'];
|
||||
isQueueOn = json['IsQueueOn'];
|
||||
createdOn = json['CreatedOn'];
|
||||
createdBy = json['CreatedBy'];
|
||||
notificationType = json['NotificationType'];
|
||||
isSent = json['IsSent'];
|
||||
isSentOn = json['IsSentOn'];
|
||||
isRead = json['IsRead'];
|
||||
isReadOn = json['IsReadOn'];
|
||||
channelID = json['ChannelID'];
|
||||
projectID = json['ProjectID'];
|
||||
}
|
||||
|
||||
Map<String, dynamic> toJson() {
|
||||
Map<String, dynamic> data = new Map<String, dynamic>();
|
||||
data['Id'] = this.id;
|
||||
data['RecordId'] = this.recordId;
|
||||
data['PatientID'] = this.patientID;
|
||||
data['ProjectOutSA'] = this.projectOutSA;
|
||||
data['DeviceType'] = this.deviceType;
|
||||
data['DeviceToken'] = this.deviceToken;
|
||||
data['Message'] = this.message;
|
||||
data['MessageType'] = this.messageType;
|
||||
data['MessageTypeData'] = this.messageTypeData;
|
||||
data['VideoURL'] = this.videoURL;
|
||||
data['IsQueue'] = this.isQueue;
|
||||
data['IsQueueOn'] = this.isQueueOn;
|
||||
data['CreatedOn'] = this.createdOn;
|
||||
data['CreatedBy'] = this.createdBy;
|
||||
data['NotificationType'] = this.notificationType;
|
||||
data['IsSent'] = this.isSent;
|
||||
data['IsSentOn'] = this.isSentOn;
|
||||
data['IsRead'] = this.isRead;
|
||||
data['IsReadOn'] = this.isReadOn;
|
||||
data['ChannelID'] = this.channelID;
|
||||
data['ProjectID'] = this.projectID;
|
||||
return data;
|
||||
}
|
||||
}
|
@ -0,0 +1,74 @@
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:lottie/lottie.dart';
|
||||
import 'package:mohem_flutter_app/models/get_notifications_response_model.dart';
|
||||
import 'package:mohem_flutter_app/widgets/app_bar_widget.dart';
|
||||
|
||||
class NotificationsDetailsPage extends StatefulWidget {
|
||||
final GetNotificationsResponseModel notification;
|
||||
|
||||
NotificationsDetailsPage({required this.notification});
|
||||
|
||||
@override
|
||||
State<NotificationsDetailsPage> createState() => _NotificationsDetailsPageState();
|
||||
}
|
||||
|
||||
class _NotificationsDetailsPageState extends State<NotificationsDetailsPage> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return Scaffold(
|
||||
backgroundColor: Colors.white,
|
||||
appBar: AppBarWidget(
|
||||
context,
|
||||
title: "Notification Details",
|
||||
),
|
||||
body: ListView(
|
||||
physics: BouncingScrollPhysics(),
|
||||
padding: EdgeInsets.all(21),
|
||||
children: [
|
||||
Text(
|
||||
widget.notification.createdOn!,
|
||||
style: const TextStyle(
|
||||
fontSize: 16,
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Color(0xff2E303A),
|
||||
letterSpacing: -0.64,
|
||||
),
|
||||
),
|
||||
if (widget.notification.messageTypeData != null)
|
||||
if (widget.notification.messageTypeData!.isNotEmpty && widget.notification.notificationType != "2")
|
||||
Padding(
|
||||
padding: const EdgeInsets.only(top: 18),
|
||||
child: Image.network(widget.notification.messageTypeData!, loadingBuilder: (BuildContext context, Widget child, ImageChunkEvent? loadingProgress) {
|
||||
if (loadingProgress == null) return child;
|
||||
return Center(
|
||||
child: SizedBox(
|
||||
width: 40.0,
|
||||
height: 40.0,
|
||||
child: showLoadingAnimation(),
|
||||
),
|
||||
);
|
||||
}, fit: BoxFit.fill),
|
||||
),
|
||||
SizedBox(height: 18),
|
||||
Text(
|
||||
widget.notification.message!.trim(),
|
||||
style: const TextStyle(
|
||||
fontSize: 12,
|
||||
fontWeight: FontWeight.w600,
|
||||
color: Color(0xff575757),
|
||||
letterSpacing: -0.48,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
Widget showLoadingAnimation() {
|
||||
return Lottie.asset(
|
||||
'assets/lottie/loading.json',
|
||||
repeat: true,
|
||||
reverse: false,
|
||||
);
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue