add messaging
This commit is contained in:
159
lib/app.dart
159
lib/app.dart
@@ -1,6 +1,9 @@
|
||||
import 'dart:io';
|
||||
|
||||
import 'package:fcs/fcs/common/localization/app_translations_delegate.dart';
|
||||
import 'package:fcs/fcs/common/localization/transalation.dart';
|
||||
import 'package:fcs/fcs/common/pages/model/language_model.dart';
|
||||
import 'package:fcs/fcs/common/services/services.dart';
|
||||
import 'package:fcs/model/buyer_model.dart';
|
||||
import 'package:fcs/model/delivery_model.dart';
|
||||
import 'package:fcs/model/discount_model.dart';
|
||||
@@ -17,6 +20,7 @@ import 'package:fcs/model_fcs/package_model.dart';
|
||||
import 'package:fcs/pages/email_page.dart';
|
||||
import 'package:fcs/pages/login_page.dart';
|
||||
import 'package:flutter/material.dart';
|
||||
import 'package:flutter_local_notifications/flutter_local_notifications.dart';
|
||||
import 'package:flutter_localizations/flutter_localizations.dart';
|
||||
import 'package:provider/provider.dart';
|
||||
import 'package:fcs/fcs/common/pages/model/main_model.dart' as fcs;
|
||||
@@ -82,6 +86,8 @@ class _AppState extends State<App> {
|
||||
final DiscountModel discountModel = new DiscountModel();
|
||||
|
||||
AppTranslationsDelegate _newLocaleDelegate;
|
||||
static FlutterLocalNotificationsPlugin _flutterLocalNotificationsPlugin =
|
||||
FlutterLocalNotificationsPlugin();
|
||||
|
||||
@override
|
||||
void initState() {
|
||||
@@ -121,6 +127,64 @@ class _AppState extends State<App> {
|
||||
..addModel(customerModel)
|
||||
..addModel(discountModel);
|
||||
this.mainModel.init();
|
||||
|
||||
_initLocalNotifications();
|
||||
Services.instance.messagingService.init((message) {
|
||||
print("Message from FCM:$message");
|
||||
_showNotification(message);
|
||||
});
|
||||
}
|
||||
|
||||
_initLocalNotifications() {
|
||||
var initializationSettingsAndroid =
|
||||
new AndroidInitializationSettings('@mipmap/ic_launcher');
|
||||
var initializationSettingsIOS = new IOSInitializationSettings();
|
||||
var initializationSettings = new InitializationSettings(
|
||||
initializationSettingsAndroid, initializationSettingsIOS);
|
||||
_flutterLocalNotificationsPlugin.initialize(initializationSettings);
|
||||
}
|
||||
|
||||
static Future _showNotification(Map<String, dynamic> message) async {
|
||||
var pushTitle;
|
||||
var pushText;
|
||||
var action;
|
||||
|
||||
if (Platform.isAndroid) {
|
||||
var nodeData = message['notification'];
|
||||
pushTitle = nodeData['title'];
|
||||
pushText = nodeData['body'];
|
||||
action = nodeData['action'];
|
||||
} else {
|
||||
pushTitle = message['title'];
|
||||
pushText = message['body'];
|
||||
action = message['action'];
|
||||
}
|
||||
print("AppPushs params pushTitle : $pushTitle");
|
||||
print("AppPushs params pushText : $pushText");
|
||||
print("AppPushs params pushAction : $action");
|
||||
|
||||
// @formatter:off
|
||||
var platformChannelSpecificsAndroid = new AndroidNotificationDetails(
|
||||
'your channel id', 'your channel name', 'your channel description',
|
||||
playSound: true,
|
||||
enableVibration: true,
|
||||
importance: Importance.Max,
|
||||
priority: Priority.High);
|
||||
// @formatter:on
|
||||
var platformChannelSpecificsIos =
|
||||
new IOSNotificationDetails(presentSound: true);
|
||||
var platformChannelSpecifics = new NotificationDetails(
|
||||
platformChannelSpecificsAndroid, platformChannelSpecificsIos);
|
||||
|
||||
new Future.delayed(Duration.zero, () {
|
||||
_flutterLocalNotificationsPlugin.show(
|
||||
0,
|
||||
pushTitle,
|
||||
pushText,
|
||||
platformChannelSpecifics,
|
||||
payload: 'No_Sound',
|
||||
);
|
||||
});
|
||||
}
|
||||
|
||||
void onLocaleChange(Locale locale) {
|
||||
@@ -146,55 +210,50 @@ class _AppState extends State<App> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
return MultiProvider(
|
||||
providers: [
|
||||
ChangeNotifierProvider.value(value: mainModel),
|
||||
ChangeNotifierProvider.value(value: userModel),
|
||||
ChangeNotifierProvider.value(value: productModel),
|
||||
ChangeNotifierProvider.value(value: employeeModel),
|
||||
ChangeNotifierProvider.value(value: poSubmissionModel),
|
||||
ChangeNotifierProvider.value(value: doModel),
|
||||
ChangeNotifierProvider.value(value: storageModel),
|
||||
ChangeNotifierProvider.value(value: pdModel),
|
||||
ChangeNotifierProvider.value(value: lanuguageModel),
|
||||
ChangeNotifierProvider.value(value: regModel),
|
||||
ChangeNotifierProvider.value(value: buyerModel),
|
||||
ChangeNotifierProvider.value(value: notificationModel),
|
||||
ChangeNotifierProvider.value(value: chartModel),
|
||||
ChangeNotifierProvider.value(value: deliveryModel),
|
||||
ChangeNotifierProvider.value(value: logModel),
|
||||
ChangeNotifierProvider.value(value: phoneDeviceModel),
|
||||
ChangeNotifierProvider.value(value: reportModel),
|
||||
ChangeNotifierProvider.value(value: announcementModel),
|
||||
ChangeNotifierProvider.value(value: reportUserModel),
|
||||
ChangeNotifierProvider.value(value: pickUpModel),
|
||||
ChangeNotifierProvider.value(value: shipmentRateModel),
|
||||
ChangeNotifierProvider.value(value: shipmentModel),
|
||||
ChangeNotifierProvider.value(value: packageModel),
|
||||
ChangeNotifierProvider.value(value: boxModel),
|
||||
ChangeNotifierProvider.value(value: messageModel),
|
||||
ChangeNotifierProvider.value(value: invoiceModel),
|
||||
ChangeNotifierProvider.value(value: customerModel),
|
||||
ChangeNotifierProvider.value(value: discountModel),
|
||||
ChangeNotifierProvider.value(value: testModel),
|
||||
ChangeNotifierProvider.value(value: mainModel2),
|
||||
],
|
||||
child: Consumer<LanguageModel>(
|
||||
builder: (BuildContext context, LanguageModel value, Widget child) {
|
||||
return MaterialApp(
|
||||
debugShowCheckedModeBanner: false,
|
||||
title: 'Ok Energy',
|
||||
routes: route(context),
|
||||
theme: ThemeData(accentColor: Colors.black),
|
||||
localizationsDelegates: [
|
||||
_newLocaleDelegate,
|
||||
//provides localised strings
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
//provides RTL support
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
],
|
||||
supportedLocales: Translation().supportedLocales());
|
||||
},
|
||||
),
|
||||
);
|
||||
providers: [
|
||||
ChangeNotifierProvider.value(value: mainModel),
|
||||
ChangeNotifierProvider.value(value: userModel),
|
||||
ChangeNotifierProvider.value(value: productModel),
|
||||
ChangeNotifierProvider.value(value: employeeModel),
|
||||
ChangeNotifierProvider.value(value: poSubmissionModel),
|
||||
ChangeNotifierProvider.value(value: doModel),
|
||||
ChangeNotifierProvider.value(value: storageModel),
|
||||
ChangeNotifierProvider.value(value: pdModel),
|
||||
ChangeNotifierProvider.value(value: lanuguageModel),
|
||||
ChangeNotifierProvider.value(value: regModel),
|
||||
ChangeNotifierProvider.value(value: buyerModel),
|
||||
ChangeNotifierProvider.value(value: notificationModel),
|
||||
ChangeNotifierProvider.value(value: chartModel),
|
||||
ChangeNotifierProvider.value(value: deliveryModel),
|
||||
ChangeNotifierProvider.value(value: logModel),
|
||||
ChangeNotifierProvider.value(value: phoneDeviceModel),
|
||||
ChangeNotifierProvider.value(value: reportModel),
|
||||
ChangeNotifierProvider.value(value: announcementModel),
|
||||
ChangeNotifierProvider.value(value: reportUserModel),
|
||||
ChangeNotifierProvider.value(value: pickUpModel),
|
||||
ChangeNotifierProvider.value(value: shipmentRateModel),
|
||||
ChangeNotifierProvider.value(value: shipmentModel),
|
||||
ChangeNotifierProvider.value(value: packageModel),
|
||||
ChangeNotifierProvider.value(value: boxModel),
|
||||
ChangeNotifierProvider.value(value: messageModel),
|
||||
ChangeNotifierProvider.value(value: invoiceModel),
|
||||
ChangeNotifierProvider.value(value: customerModel),
|
||||
ChangeNotifierProvider.value(value: discountModel),
|
||||
ChangeNotifierProvider.value(value: testModel),
|
||||
ChangeNotifierProvider.value(value: mainModel2),
|
||||
],
|
||||
child: MaterialApp(
|
||||
debugShowCheckedModeBanner: false,
|
||||
title: 'FCS',
|
||||
routes: route(context),
|
||||
theme: ThemeData(accentColor: Colors.black),
|
||||
localizationsDelegates: [
|
||||
_newLocaleDelegate,
|
||||
//provides localised strings
|
||||
GlobalMaterialLocalizations.delegate,
|
||||
//provides RTL support
|
||||
GlobalWidgetsLocalizations.delegate,
|
||||
],
|
||||
supportedLocales: Translation().supportedLocales()));
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user