NullSafety: Migrate PushService
This commit is contained in:
parent
a85db9fef2
commit
a845e8cf77
|
@ -1,5 +1,3 @@
|
||||||
// @dart=2.9
|
|
||||||
|
|
||||||
import 'package:firebase_core/firebase_core.dart';
|
import 'package:firebase_core/firebase_core.dart';
|
||||||
import 'package:firebase_messaging/firebase_messaging.dart';
|
import 'package:firebase_messaging/firebase_messaging.dart';
|
||||||
import 'package:logging/logging.dart';
|
import 'package:logging/logging.dart';
|
||||||
|
@ -21,7 +19,7 @@ class PushService {
|
||||||
static final PushService instance = PushService._privateConstructor();
|
static final PushService instance = PushService._privateConstructor();
|
||||||
static final _logger = Logger("PushService");
|
static final _logger = Logger("PushService");
|
||||||
|
|
||||||
SharedPreferences _prefs;
|
late SharedPreferences _prefs;
|
||||||
|
|
||||||
PushService._privateConstructor();
|
PushService._privateConstructor();
|
||||||
|
|
||||||
|
@ -46,22 +44,24 @@ class PushService {
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _configurePushToken() async {
|
Future<void> _configurePushToken() async {
|
||||||
final fcmToken = await FirebaseMessaging.instance.getToken();
|
final String? fcmToken = await FirebaseMessaging.instance.getToken();
|
||||||
final shouldForceRefreshServerToken =
|
final shouldForceRefreshServerToken =
|
||||||
DateTime.now().microsecondsSinceEpoch -
|
DateTime.now().microsecondsSinceEpoch -
|
||||||
(_prefs.getInt(kLastFCMTokenUpdationTime) ?? 0) >
|
(_prefs.getInt(kLastFCMTokenUpdationTime) ?? 0) >
|
||||||
kFCMTokenUpdationIntervalInMicroSeconds;
|
kFCMTokenUpdationIntervalInMicroSeconds;
|
||||||
if (_prefs.getString(kFCMPushToken) != fcmToken ||
|
if ((_prefs.getString(kFCMPushToken) != fcmToken ||
|
||||||
shouldForceRefreshServerToken) {
|
shouldForceRefreshServerToken)) {
|
||||||
final apnsToken = await FirebaseMessaging.instance.getAPNSToken();
|
final String? apnsToken = await FirebaseMessaging.instance.getAPNSToken();
|
||||||
try {
|
try {
|
||||||
_logger.info("Updating token on server");
|
_logger.info("Updating token on server");
|
||||||
await _setPushTokenOnServer(fcmToken, apnsToken);
|
await _setPushTokenOnServer(fcmToken, apnsToken);
|
||||||
|
if (fcmToken != null) {
|
||||||
await _prefs.setString(kFCMPushToken, fcmToken);
|
await _prefs.setString(kFCMPushToken, fcmToken);
|
||||||
await _prefs.setInt(
|
await _prefs.setInt(
|
||||||
kLastFCMTokenUpdationTime,
|
kLastFCMTokenUpdationTime,
|
||||||
DateTime.now().microsecondsSinceEpoch,
|
DateTime.now().microsecondsSinceEpoch,
|
||||||
);
|
);
|
||||||
|
}
|
||||||
_logger.info("Push token updated on server");
|
_logger.info("Push token updated on server");
|
||||||
} catch (e) {
|
} catch (e) {
|
||||||
_logger.severe("Could not set push token", e, StackTrace.current);
|
_logger.severe("Could not set push token", e, StackTrace.current);
|
||||||
|
@ -71,7 +71,8 @@ class PushService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> _setPushTokenOnServer(String fcmToken, String apnsToken) async {
|
Future<void> _setPushTokenOnServer(
|
||||||
|
String? fcmToken, String? apnsToken) async {
|
||||||
await Network.instance.enteDio.post(
|
await Network.instance.enteDio.post(
|
||||||
"/push/token",
|
"/push/token",
|
||||||
data: {
|
data: {
|
||||||
|
|
Loading…
Reference in a new issue