TF-439 Handle get stored device id
This commit is contained in:
@@ -23,4 +23,6 @@ abstract class FCMDatasource {
|
||||
Future<FirebaseSubscription> getFirebaseSubscriptionByDeviceId(String deviceId);
|
||||
|
||||
Future<FirebaseSubscription> registerNewToken(RegisterNewTokenRequest newTokenRequest);
|
||||
|
||||
Future<String> getDeviceId();
|
||||
}
|
||||
@@ -66,4 +66,9 @@ class FcmDatasourceImpl extends FCMDatasource {
|
||||
_exceptionThrower.throwException(error);
|
||||
});
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String> getDeviceId() {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
}
|
||||
@@ -83,7 +83,16 @@ class HiveFCMDatasourceImpl extends FCMDatasource {
|
||||
}
|
||||
|
||||
@override
|
||||
Future<FirebaseSubscription> registerNewToken(RegisterNewTokenRequest registerNewTokenRequest) {
|
||||
Future<FirebaseSubscription> registerNewToken(RegisterNewTokenRequest newTokenRequest) {
|
||||
throw UnimplementedError();
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String> getDeviceId() {
|
||||
return Future.sync(() async {
|
||||
return await _firebaseCacheManager.getDeviceId();
|
||||
}).catchError((error) {
|
||||
_exceptionThrower.throwException(error);
|
||||
});
|
||||
}
|
||||
}
|
||||
@@ -75,4 +75,14 @@ class FCMCacheManager {
|
||||
Future<bool> storeDeviceId(String deviceId) {
|
||||
return _sharedPreferences.setString(fcmDeviceIdKey, deviceId);
|
||||
}
|
||||
|
||||
Future<String> getDeviceId() async {
|
||||
await _sharedPreferences.reload();
|
||||
final deviceId = _sharedPreferences.getString(fcmDeviceIdKey);
|
||||
if (deviceId != null) {
|
||||
return deviceId;
|
||||
} else {
|
||||
throw NotFoundDeviceIdException();
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -104,4 +104,9 @@ class FCMRepositoryImpl extends FCMRepository {
|
||||
Future<FirebaseSubscription> registerNewToken(RegisterNewTokenRequest newTokenRequest) {
|
||||
return _fcmDatasource[DataSourceType.network]!.registerNewToken(newTokenRequest);
|
||||
}
|
||||
|
||||
@override
|
||||
Future<String> getDeviceId() {
|
||||
return _fcmDatasource[DataSourceType.local]!.getDeviceId();
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user