Commit a5f54e55 authored by Indika NK's avatar Indika NK

Adding changes related to push notifications

parent db4da9bd
...@@ -31,6 +31,10 @@ ...@@ -31,6 +31,10 @@
<action android:name="android.intent.action.MAIN"/> <action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/> <category android:name="android.intent.category.LAUNCHER"/>
</intent-filter> </intent-filter>
<intent-filter>
<action android:name="FLUTTER_NOTIFICATION_CLICK" />
<category android:name="android.intent.category.DEFAULT" />
</intent-filter>
</activity> </activity>
<!-- Don't delete the meta-data below. <!-- Don't delete the meta-data below.
This is used by the Flutter tool to generate GeneratedPluginRegistrant.java --> This is used by the Flutter tool to generate GeneratedPluginRegistrant.java -->
......
import 'package:covidefender/pages/heart_rate/heart_rate_screen.dart'; import 'package:covidefender/pages/heart_rate/heart_rate_screen.dart';
import 'package:covidefender/pages/mask_detect/invoker.dart'; import 'package:covidefender/pages/mask_detect/invoker.dart';
import 'package:covidefender/pages/notificator/ui/notificator.dart';
import 'package:covidefender/pages/self_carer/sc_main_screen.dart'; import 'package:covidefender/pages/self_carer/sc_main_screen.dart';
import 'package:flutter/cupertino.dart'; import 'package:flutter/cupertino.dart';
import 'package:flutter/material.dart'; import 'package:flutter/material.dart';
...@@ -51,12 +52,12 @@ class I_guider extends StatelessWidget { ...@@ -51,12 +52,12 @@ class I_guider extends StatelessWidget {
icon: Column( icon: Column(
children: [ children: [
Icon( Icon(
Icons.bluetooth_audio_rounded, Icons.notifications,
size: 40, size: 40,
color: Colors.white, color: Colors.white,
), ),
SizedBox(height: 20), SizedBox(height: 20),
Text("BT Distancer",style:TextStyle( Text("Notificator",style:TextStyle(
fontWeight: FontWeight.bold, fontWeight: FontWeight.bold,
color: Colors.white color: Colors.white
) ,) ) ,)
...@@ -64,7 +65,10 @@ class I_guider extends StatelessWidget { ...@@ -64,7 +65,10 @@ class I_guider extends StatelessWidget {
), ),
label: Text('', label: Text('',
style: TextStyle(fontWeight: FontWeight.bold)), style: TextStyle(fontWeight: FontWeight.bold)),
onPressed: () {}, onPressed: () {
Navigator.push(context, MaterialPageRoute(builder: (context) => MessagingWidget() ));
},
shape: RoundedRectangleBorder( shape: RoundedRectangleBorder(
borderRadius: BorderRadius.circular(10)), borderRadius: BorderRadius.circular(10)),
color: Colors.blue[200], color: Colors.blue[200],
......
// Message model
import 'package:flutter/cupertino.dart';
@immutable
class Message{
final String title;
final String body;
const Message({
@required this.title,
@required this.body,
});
}
\ No newline at end of file
import 'dart:ffi';
import 'package:covidefender/pages/notificator/model/Message.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/cupertino.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:flutter/material.dart';
class MessagingWidget extends StatefulWidget {
// const MessagingWidget({Key? key}) : super(key: key);
@override
_MessagingWidgetState createState() => _MessagingWidgetState();
}
class _MessagingWidgetState extends State<MessagingWidget> {
final FirebaseMessaging _firebaseMessaging = FirebaseMessaging();
final List<Message> messages = [];
@override
Void initState() {
super.initState();
_firebaseMessaging.configure(
onMessage: (Map<String, dynamic> message) async {
final notification = message['notification'];
setState(() {
messages.add(
Message(title: notification['title'], body: notification['body']));
});
print("OnMessage: $message");
}, onLaunch: (Map<String, dynamic> message) async {
final notification = message['notification'];
print("onLaunch: $message");
setState(() {
messages.add(
Message(title: notification['title'], body: notification['body']));
});
}, onResume: (Map<String, dynamic> message) async {
print("onResume: $message");
});
}
// @override
// Widget build(BuildContext context) => ListView(
// children: messages.map(buildMessage).toList(),
// );
@override
Widget build(BuildContext context) {
return Scaffold(
appBar: AppBar(
title: Text("Smart - Notificator "),
),
body: Container(
margin: EdgeInsets.only(bottom: 20, left: 10, right: 10, top: 10),
decoration: BoxDecoration(
boxShadow: [
BoxShadow(
color: Colors.blue.withOpacity(0.4),
blurRadius: 8,
offset: Offset(4, 4),
spreadRadius: 5)
],
gradient: LinearGradient(
colors: [Colors.blue[600], Colors.white],
begin: Alignment.centerLeft,
end: Alignment.centerRight,
),
borderRadius: BorderRadius.all(Radius.circular(20)),
),
child: ListView(
children: messages.map(buildMessage).toList(),
),
));
}
Widget buildMessage(Message message) => ListTile(
title: Text(
message.title != null ? message.title : "No messages Yet",
style: TextStyle(
color: Colors.white,
fontFamily: 'avenir',
),
),
subtitle: Text(message.body != null ? message.body:"empty"),
);
}
...@@ -35,6 +35,7 @@ dependencies: ...@@ -35,6 +35,7 @@ dependencies:
flutter_spinkit: "^4.1.2" flutter_spinkit: "^4.1.2"
google_fonts: ^1.1.2 google_fonts: ^1.1.2
flutter_sms: ^2.1.1 flutter_sms: ^2.1.1
firebase_messaging: ^4.0.0+1
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment