ente/lib/services/push_service.dart

43 lines
1.3 KiB
Dart
Raw Normal View History

2021-10-12 09:12:28 +00:00
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:firebase_core/firebase_core.dart';
import 'package:logging/logging.dart';
2021-10-12 09:36:22 +00:00
import 'package:photos/services/sync_service.dart';
2021-10-12 09:12:28 +00:00
class PushService {
static final PushService instance = PushService._privateConstructor();
static final _logger = Logger("PushService");
PushService._privateConstructor();
Future<void> init() async {
await Firebase.initializeApp();
FirebaseMessaging messaging = FirebaseMessaging.instance;
await messaging.requestPermission(
alert: true,
announcement: false,
badge: true,
carPlay: false,
criticalAlert: false,
provisional: false,
sound: true,
);
FirebaseMessaging.onMessage.listen((RemoteMessage message) {
_logger.info('Got a message whilst in the foreground!');
2021-10-12 09:36:22 +00:00
_handlePushMessage(message);
2021-10-12 09:12:28 +00:00
});
_logger.info("token " + await FirebaseMessaging.instance.getToken());
_logger
.info("APNS token " + await FirebaseMessaging.instance.getAPNSToken());
_logger.info('init complete');
}
2021-10-13 05:24:49 +00:00
void _handlePushMessage(RemoteMessage message) {
_logger.info('Message data: ${message.data}');
if (message.notification != null) {
_logger.info(
'Message also contained a notification: ${message.notification}');
}
2021-10-12 09:36:22 +00:00
SyncService.instance.sync();
}
2021-10-12 09:12:28 +00:00
}