NullSafety: Migrate PushService

This commit is contained in:
Neeraj Gupta 2022-12-30 13:43:19 +05:30
parent a85db9fef2
commit a845e8cf77
No known key found for this signature in database
GPG key ID: 3C5A1684DC1729E1

View file

@ -1,5 +1,3 @@
// @dart=2.9
import 'package:firebase_core/firebase_core.dart';
import 'package:firebase_messaging/firebase_messaging.dart';
import 'package:logging/logging.dart';
@ -21,7 +19,7 @@ class PushService {
static final PushService instance = PushService._privateConstructor();
static final _logger = Logger("PushService");
SharedPreferences _prefs;
late SharedPreferences _prefs;
PushService._privateConstructor();
@ -46,22 +44,24 @@ class PushService {
}
Future<void> _configurePushToken() async {
final fcmToken = await FirebaseMessaging.instance.getToken();
final String? fcmToken = await FirebaseMessaging.instance.getToken();
final shouldForceRefreshServerToken =
DateTime.now().microsecondsSinceEpoch -
(_prefs.getInt(kLastFCMTokenUpdationTime) ?? 0) >
kFCMTokenUpdationIntervalInMicroSeconds;
if (_prefs.getString(kFCMPushToken) != fcmToken ||
shouldForceRefreshServerToken) {
final apnsToken = await FirebaseMessaging.instance.getAPNSToken();
if ((_prefs.getString(kFCMPushToken) != fcmToken ||
shouldForceRefreshServerToken)) {
final String? apnsToken = await FirebaseMessaging.instance.getAPNSToken();
try {
_logger.info("Updating token on server");
await _setPushTokenOnServer(fcmToken, apnsToken);
await _prefs.setString(kFCMPushToken, fcmToken);
await _prefs.setInt(
kLastFCMTokenUpdationTime,
DateTime.now().microsecondsSinceEpoch,
);
if (fcmToken != null) {
await _prefs.setString(kFCMPushToken, fcmToken);
await _prefs.setInt(
kLastFCMTokenUpdationTime,
DateTime.now().microsecondsSinceEpoch,
);
}
_logger.info("Push token updated on server");
} catch (e) {
_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(
"/push/token",
data: {