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
|
|
|
}
|