TF-439 Handle get stored device id

This commit is contained in:
dab246
2022-11-29 16:45:49 +07:00
committed by Dat H. Pham
parent ce1a52caac
commit 81278d13ba
12 changed files with 121 additions and 11 deletions
@@ -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();
}
}