TF-2464 Fix can not auto refresh list email when switch background mode to foreground mode
(cherry picked from commit 34b09c0aeacb8bc42cf7196adca2c65aa7eb47e9)
This commit is contained in:
@@ -28,7 +28,7 @@ class CacheFCMDatasourceImpl extends FCMDatasource {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
Future<jmap.State> getStateToRefresh(AccountId accountId,UserName userName, TypeName typeName) {
|
Future<jmap.State> getStateToRefresh(AccountId accountId, UserName userName, TypeName typeName) {
|
||||||
return Future.sync(() async {
|
return Future.sync(() async {
|
||||||
return await _firebaseCacheManager.getStateToRefresh(accountId, userName, typeName);
|
return await _firebaseCacheManager.getStateToRefresh(accountId, userName, typeName);
|
||||||
}).catchError(_exceptionThrower.throwException);
|
}).catchError(_exceptionThrower.throwException);
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ class FCMCacheManager {
|
|||||||
|
|
||||||
Future<jmap.State> getStateToRefresh(AccountId accountId, UserName userName, TypeName typeName) async {
|
Future<jmap.State> getStateToRefresh(AccountId accountId, UserName userName, TypeName typeName) async {
|
||||||
final stateKeyCache = TupleKey(typeName.value, accountId.asString, userName.value).encodeKey;
|
final stateKeyCache = TupleKey(typeName.value, accountId.asString, userName.value).encodeKey;
|
||||||
final stateValue = await _fcmCacheClient.getItem(stateKeyCache);
|
final stateValue = await _fcmCacheClient.getItem(stateKeyCache, needToReopen: true);
|
||||||
if (stateValue != null) {
|
if (stateValue != null) {
|
||||||
return jmap.State(stateValue);
|
return jmap.State(stateValue);
|
||||||
} else {
|
} else {
|
||||||
@@ -51,7 +51,7 @@ class FCMCacheManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
Future<FirebaseRegistrationCache> getStoredFirebaseRegistration() async {
|
Future<FirebaseRegistrationCache> getStoredFirebaseRegistration() async {
|
||||||
final firebaseRegistration = await _firebaseRegistrationCacheClient.getItem(FirebaseRegistrationCache.keyCacheValue);
|
final firebaseRegistration = await _firebaseRegistrationCacheClient.getItem(FirebaseRegistrationCache.keyCacheValue, needToReopen: true);
|
||||||
if (firebaseRegistration == null) {
|
if (firebaseRegistration == null) {
|
||||||
throw NotFoundFirebaseRegistrationCacheException();
|
throw NotFoundFirebaseRegistrationCacheException();
|
||||||
} else {
|
} else {
|
||||||
@@ -62,11 +62,4 @@ class FCMCacheManager {
|
|||||||
Future<void> deleteFirebaseRegistration() async {
|
Future<void> deleteFirebaseRegistration() async {
|
||||||
await _firebaseRegistrationCacheClient.deleteItem(FirebaseRegistrationCache.keyCacheValue);
|
await _firebaseRegistrationCacheClient.deleteItem(FirebaseRegistrationCache.keyCacheValue);
|
||||||
}
|
}
|
||||||
|
|
||||||
Future<void> closeCacheBox() async {
|
|
||||||
await Future.wait([
|
|
||||||
_fcmCacheClient.closeBox(),
|
|
||||||
_firebaseRegistrationCacheClient.closeBox(),
|
|
||||||
]);
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
@@ -26,8 +26,6 @@ import 'package:tmail_ui_user/features/login/domain/state/get_credential_state.d
|
|||||||
import 'package:tmail_ui_user/features/login/domain/state/get_stored_token_oidc_state.dart';
|
import 'package:tmail_ui_user/features/login/domain/state/get_stored_token_oidc_state.dart';
|
||||||
import 'package:tmail_ui_user/features/login/domain/usecases/get_authenticated_account_interactor.dart';
|
import 'package:tmail_ui_user/features/login/domain/usecases/get_authenticated_account_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/bindings/mailbox_dashboard_bindings.dart';
|
||||||
import 'package:tmail_ui_user/features/offline_mode/manager/new_email_cache_manager.dart';
|
|
||||||
import 'package:tmail_ui_user/features/push_notification/data/local/fcm_cache_manager.dart';
|
|
||||||
import 'package:tmail_ui_user/features/push_notification/presentation/action/fcm_action.dart';
|
import 'package:tmail_ui_user/features/push_notification/presentation/action/fcm_action.dart';
|
||||||
import 'package:tmail_ui_user/features/push_notification/presentation/bindings/fcm_interactor_bindings.dart';
|
import 'package:tmail_ui_user/features/push_notification/presentation/bindings/fcm_interactor_bindings.dart';
|
||||||
import 'package:tmail_ui_user/features/push_notification/presentation/controller/fcm_base_controller.dart';
|
import 'package:tmail_ui_user/features/push_notification/presentation/controller/fcm_base_controller.dart';
|
||||||
@@ -51,8 +49,6 @@ class FcmMessageController extends FcmBaseController {
|
|||||||
DynamicUrlInterceptors? _dynamicUrlInterceptors;
|
DynamicUrlInterceptors? _dynamicUrlInterceptors;
|
||||||
AuthorizationInterceptors? _authorizationInterceptors;
|
AuthorizationInterceptors? _authorizationInterceptors;
|
||||||
GetSessionInteractor? _getSessionInteractor;
|
GetSessionInteractor? _getSessionInteractor;
|
||||||
NewEmailCacheManager? _newEmailCacheManager;
|
|
||||||
FCMCacheManager? _fcmCacheManager;
|
|
||||||
|
|
||||||
FcmMessageController._internal();
|
FcmMessageController._internal();
|
||||||
|
|
||||||
@@ -192,13 +188,6 @@ class FcmMessageController extends FcmBaseController {
|
|||||||
});
|
});
|
||||||
|
|
||||||
_getInteractorBindings();
|
_getInteractorBindings();
|
||||||
|
|
||||||
await Future.wait([
|
|
||||||
if (_newEmailCacheManager != null)
|
|
||||||
_newEmailCacheManager!.closeNewEmailHiveCacheBox(),
|
|
||||||
if (_fcmCacheManager != null)
|
|
||||||
_fcmCacheManager!.closeCacheBox(),
|
|
||||||
]);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
void _getInteractorBindings() {
|
void _getInteractorBindings() {
|
||||||
@@ -206,8 +195,6 @@ class FcmMessageController extends FcmBaseController {
|
|||||||
_dynamicUrlInterceptors = getBinding<DynamicUrlInterceptors>();
|
_dynamicUrlInterceptors = getBinding<DynamicUrlInterceptors>();
|
||||||
_authorizationInterceptors = getBinding<AuthorizationInterceptors>();
|
_authorizationInterceptors = getBinding<AuthorizationInterceptors>();
|
||||||
_getSessionInteractor = getBinding<GetSessionInteractor>();
|
_getSessionInteractor = getBinding<GetSessionInteractor>();
|
||||||
_newEmailCacheManager = getBinding<NewEmailCacheManager>();
|
|
||||||
_fcmCacheManager = getBinding<FCMCacheManager>();
|
|
||||||
|
|
||||||
FcmTokenController.instance.initialBindingInteractor();
|
FcmTokenController.instance.initialBindingInteractor();
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user