mirror of
https://github.com/twonlyapp/twonly-app.git
synced 2026-01-15 14:48:41 +00:00
forgot background notifications by android
This commit is contained in:
parent
6c867ca8b5
commit
b6a4cca884
5 changed files with 35 additions and 33 deletions
|
|
@ -1,11 +1,9 @@
|
||||||
import 'package:camera/camera.dart';
|
import 'package:camera/camera.dart';
|
||||||
import 'package:flutter/foundation.dart';
|
|
||||||
import 'package:provider/provider.dart';
|
import 'package:provider/provider.dart';
|
||||||
import 'package:twonly/globals.dart';
|
import 'package:twonly/globals.dart';
|
||||||
import 'package:twonly/src/database/twonly_database.dart';
|
import 'package:twonly/src/database/twonly_database.dart';
|
||||||
import 'package:twonly/src/providers/api_provider.dart';
|
import 'package:twonly/src/providers/api_provider.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:logging/logging.dart';
|
|
||||||
import 'package:twonly/src/providers/hive.dart';
|
import 'package:twonly/src/providers/hive.dart';
|
||||||
import 'package:twonly/src/providers/settings_change_provider.dart';
|
import 'package:twonly/src/providers/settings_change_provider.dart';
|
||||||
import 'package:twonly/src/services/fcm_service.dart';
|
import 'package:twonly/src/services/fcm_service.dart';
|
||||||
|
|
@ -22,14 +20,7 @@ void main() async {
|
||||||
// This prevents a sudden theme change when the app is first displayed.
|
// This prevents a sudden theme change when the app is first displayed.
|
||||||
await settingsController.loadSettings();
|
await settingsController.loadSettings();
|
||||||
|
|
||||||
Logger.root.level = kReleaseMode ? Level.INFO : Level.ALL;
|
setupLogger();
|
||||||
Logger.root.onRecord.listen((record) {
|
|
||||||
writeLogToFile(record);
|
|
||||||
if (kDebugMode) {
|
|
||||||
print(
|
|
||||||
'${record.level.name}: twonly:${record.loggerName}: ${record.message}');
|
|
||||||
}
|
|
||||||
});
|
|
||||||
|
|
||||||
await setupPushNotification();
|
await setupPushNotification();
|
||||||
await initMediaStorage();
|
await initMediaStorage();
|
||||||
|
|
|
||||||
|
|
@ -3,6 +3,7 @@ import 'package:firebase_messaging/firebase_messaging.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
import 'package:twonly/globals.dart';
|
import 'package:twonly/globals.dart';
|
||||||
import 'package:twonly/src/app.dart';
|
import 'package:twonly/src/app.dart';
|
||||||
|
import 'package:twonly/src/database/twonly_database.dart';
|
||||||
import 'package:twonly/src/services/notification_service.dart';
|
import 'package:twonly/src/services/notification_service.dart';
|
||||||
import 'package:twonly/src/utils/misc.dart';
|
import 'package:twonly/src/utils/misc.dart';
|
||||||
import 'dart:io' show Platform;
|
import 'dart:io' show Platform;
|
||||||
|
|
@ -70,36 +71,34 @@ Future initFCMService() async {
|
||||||
}
|
}
|
||||||
|
|
||||||
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
|
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
|
||||||
if (!Platform.isAndroid) {
|
|
||||||
Logger("firebase-notification").shout("Got message in Dart while on iOS");
|
|
||||||
}
|
|
||||||
|
|
||||||
Logger("firebase-notification")
|
Logger("firebase-notification")
|
||||||
.finer('Got a message while in the foreground!');
|
.finer('Got a message while in the foreground!');
|
||||||
|
handleRemoteMessage(message);
|
||||||
print('Message data: ${message.data}');
|
|
||||||
|
|
||||||
if (message.notification != null) {
|
|
||||||
print('Message also contained a notification: ${message.notification}');
|
|
||||||
String title = message.notification!.title ?? "";
|
|
||||||
String body = message.notification!.body ?? "";
|
|
||||||
customLocalPushNotification(title, body);
|
|
||||||
} else if (message.data["push_data"] != null) {
|
|
||||||
handlePushData(message.data["push_data"]);
|
|
||||||
}
|
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
@pragma('vm:entry-point')
|
@pragma('vm:entry-point')
|
||||||
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
|
Future<void> _firebaseMessagingBackgroundHandler(RemoteMessage message) async {
|
||||||
|
setupLogger();
|
||||||
Logger("firebase-background")
|
Logger("firebase-background")
|
||||||
.shout('Handling a background message: ${message.messageId}');
|
.shout('Handling a background message: ${message.messageId}');
|
||||||
|
twonlyDatabase = TwonlyDatabase();
|
||||||
|
await handleRemoteMessage(message);
|
||||||
|
|
||||||
|
// make sure every thing run...
|
||||||
|
await Future.delayed(Duration(milliseconds: 2000));
|
||||||
|
}
|
||||||
|
|
||||||
|
Future handleRemoteMessage(RemoteMessage message) async {
|
||||||
if (!Platform.isAndroid) {
|
if (!Platform.isAndroid) {
|
||||||
Logger("firebase-notification").shout("Got message in Dart while on iOS");
|
Logger("firebase-notification").shout("Got message in Dart while on iOS");
|
||||||
}
|
}
|
||||||
|
|
||||||
Logger("firebase-notification")
|
if (message.notification != null) {
|
||||||
.finer('Got a message while in the background!');
|
String title = message.notification!.title ?? "";
|
||||||
print('Message data: ${message.data}');
|
String body = message.notification!.body ?? "";
|
||||||
|
await customLocalPushNotification(title, body);
|
||||||
|
} else if (message.data["push_data"] != null) {
|
||||||
|
await handlePushData(message.data["push_data"]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -309,13 +309,13 @@ Future handlePushData(String pushDataJson) async {
|
||||||
|
|
||||||
if (pushKind != null) {
|
if (pushKind != null) {
|
||||||
if (pushKind == PushKind.testNotification) {
|
if (pushKind == PushKind.testNotification) {
|
||||||
customLocalPushNotification(
|
await customLocalPushNotification(
|
||||||
"Test notification", "This is a test notification.");
|
"Test notification", "This is a test notification.");
|
||||||
} else if (fromUserId != null) {
|
} else if (fromUserId != null) {
|
||||||
showLocalPushNotification(fromUserId, pushKind);
|
await showLocalPushNotification(fromUserId, pushKind);
|
||||||
} else {
|
} else {
|
||||||
showLocalPushNotificationWithoutUserId(pushKind);
|
await showLocalPushNotificationWithoutUserId(pushKind);
|
||||||
setupNotificationWithUsers();
|
await setupNotificationWithUsers();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
|
|
|
||||||
|
|
@ -1,6 +1,7 @@
|
||||||
import 'dart:io';
|
import 'dart:io';
|
||||||
import 'dart:math';
|
import 'dart:math';
|
||||||
import 'package:connectivity_plus/connectivity_plus.dart';
|
import 'package:connectivity_plus/connectivity_plus.dart';
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter/services.dart';
|
import 'package:flutter/services.dart';
|
||||||
import 'package:flutter_image_compress/flutter_image_compress.dart';
|
import 'package:flutter_image_compress/flutter_image_compress.dart';
|
||||||
|
|
@ -202,3 +203,14 @@ PieTheme getPieCanvasTheme(BuildContext context) {
|
||||||
),
|
),
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
void setupLogger() {
|
||||||
|
Logger.root.level = kReleaseMode ? Level.INFO : Level.ALL;
|
||||||
|
Logger.root.onRecord.listen((record) async {
|
||||||
|
await writeLogToFile(record);
|
||||||
|
if (kDebugMode) {
|
||||||
|
print(
|
||||||
|
'${record.level.name}: twonly:${record.loggerName}: ${record.message}');
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
|
||||||
|
|
@ -4,7 +4,7 @@ description: "Send pictures to friends in real time and be sure you are the only
|
||||||
# Prevent accidental publishing to pub.dev.
|
# Prevent accidental publishing to pub.dev.
|
||||||
publish_to: 'none'
|
publish_to: 'none'
|
||||||
|
|
||||||
version: 0.0.16+16
|
version: 0.0.19+19
|
||||||
|
|
||||||
environment:
|
environment:
|
||||||
sdk: ^3.6.0
|
sdk: ^3.6.0
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue