TF-474 Fix data in cache not show correctly after logout
This commit is contained in:
@@ -1,4 +1,5 @@
|
|||||||
|
|
||||||
|
import 'package:flutter/foundation.dart';
|
||||||
import 'package:tmail_ui_user/features/caching/email_cache_client.dart';
|
import 'package:tmail_ui_user/features/caching/email_cache_client.dart';
|
||||||
import 'package:tmail_ui_user/features/caching/mailbox_cache_client.dart';
|
import 'package:tmail_ui_user/features/caching/mailbox_cache_client.dart';
|
||||||
import 'package:tmail_ui_user/features/caching/state_cache_client.dart';
|
import 'package:tmail_ui_user/features/caching/state_cache_client.dart';
|
||||||
@@ -16,10 +17,18 @@ class CachingManager {
|
|||||||
);
|
);
|
||||||
|
|
||||||
Future<void> clearAll() async {
|
Future<void> clearAll() async {
|
||||||
await Future.wait([
|
if (kIsWeb) {
|
||||||
_stateCacheClient.deleteBox(),
|
await Future.wait([
|
||||||
_mailboxCacheClient.deleteBox(),
|
_stateCacheClient.clearAllData(),
|
||||||
_emailCacheClient.deleteBox(),
|
_mailboxCacheClient.clearAllData(),
|
||||||
]);
|
_emailCacheClient.clearAllData(),
|
||||||
|
]);
|
||||||
|
} else {
|
||||||
|
await Future.wait([
|
||||||
|
_stateCacheClient.deleteBox(),
|
||||||
|
_mailboxCacheClient.deleteBox(),
|
||||||
|
_emailCacheClient.deleteBox(),
|
||||||
|
]);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -30,4 +30,6 @@ abstract class HiveCacheClient<T> {
|
|||||||
Future<void> deleteBox() {
|
Future<void> deleteBox() {
|
||||||
return Hive.deleteBoxFromDisk(tableName);
|
return Hive.deleteBoxFromDisk(tableName);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Future<void> clearAllData();
|
||||||
}
|
}
|
||||||
@@ -135,4 +135,14 @@ class EmailCacheClient extends HiveCacheClient<EmailCache> {
|
|||||||
throw error;
|
throw error;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> clearAllData() {
|
||||||
|
return Future.sync(() async {
|
||||||
|
final boxEmail = await openBox();
|
||||||
|
boxEmail.clear();
|
||||||
|
}).catchError((error) {
|
||||||
|
throw error;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -118,4 +118,14 @@ class MailboxCacheClient extends HiveCacheClient<MailboxCache> {
|
|||||||
throw error;
|
throw error;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> clearAllData() {
|
||||||
|
return Future.sync(() async {
|
||||||
|
final boxMailbox = await openBox();
|
||||||
|
boxMailbox.clear();
|
||||||
|
}).catchError((error) {
|
||||||
|
throw error;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -118,4 +118,14 @@ class StateCacheClient extends HiveCacheClient<StateCache> {
|
|||||||
throw error;
|
throw error;
|
||||||
});
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@override
|
||||||
|
Future<void> clearAllData() {
|
||||||
|
return Future.sync(() async {
|
||||||
|
final boxState = await openBox();
|
||||||
|
boxState.clear();
|
||||||
|
}).catchError((error) {
|
||||||
|
throw error;
|
||||||
|
});
|
||||||
|
}
|
||||||
}
|
}
|
||||||
@@ -430,8 +430,8 @@ class MailboxDashBoardController extends ReloadableController {
|
|||||||
|
|
||||||
void logoutAction() {
|
void logoutAction() {
|
||||||
_deleteCredential();
|
_deleteCredential();
|
||||||
if (!kIsWeb) _clearAllCache();
|
_clearAllCache();
|
||||||
pushAndPopAll(AppRoutes.LOGIN);
|
goToLogin();
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
import 'package:flutter/foundation.dart';
|
|
||||||
import 'package:get/get.dart';
|
import 'package:get/get.dart';
|
||||||
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
|
import 'package:tmail_ui_user/features/caching/caching_manager.dart';
|
||||||
import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_interactor.dart';
|
import 'package:tmail_ui_user/features/login/domain/usecases/delete_credential_interactor.dart';
|
||||||
@@ -41,8 +40,8 @@ class SessionController extends GetxController {
|
|||||||
|
|
||||||
void _goToLogin() {
|
void _goToLogin() {
|
||||||
_deleteCredential();
|
_deleteCredential();
|
||||||
if (!kIsWeb) _clearAllCache();
|
_clearAllCache();
|
||||||
pushAndPop(AppRoutes.LOGIN);
|
pushAndPopAll(AppRoutes.LOGIN);
|
||||||
}
|
}
|
||||||
|
|
||||||
void _goToMailboxDashBoard(GetSessionSuccess getSessionSuccess) {
|
void _goToMailboxDashBoard(GetSessionSuccess getSessionSuccess) {
|
||||||
|
|||||||
Reference in New Issue
Block a user