TF-1289: [Presentation] Implement DestroySubscription when logout

This commit is contained in:
HuyNguyen
2022-12-29 21:52:53 +07:00
committed by Dat Vu
parent 5219cd4b69
commit b291250cfc
9 changed files with 78 additions and 12 deletions
@@ -59,8 +59,9 @@ class ManageAccountDashBoardController extends ReloadableController {
ManageAccountDashBoardController(
LogoutOidcInteractor logoutOidcInteractor,
DeleteAuthorityOidcInteractor deleteAuthorityOidcInteractor,
GetAuthenticatedAccountInteractor getAuthenticatedAccountInteractor
) : super(logoutOidcInteractor,
GetAuthenticatedAccountInteractor getAuthenticatedAccountInteractor,
) : super(
logoutOidcInteractor,
deleteAuthorityOidcInteractor,
getAuthenticatedAccountInteractor);
@@ -298,4 +299,10 @@ class ManageAccountDashBoardController extends ReloadableController {
dashboardSettingAction.value = newAction;
}
}
@override
void logoutAction() {
popBack();
super.logoutAction();
}
}
@@ -141,10 +141,9 @@ class ManageAccountDashBoardView extends GetWidget<ManageAccountDashBoardControl
..addOnTapAvatarActionWithPositionClick((position) =>
controller.openPopupMenuAction(context, position, popupMenuUserSettingActionTile(context,
controller.userProfile.value,
onLogoutAction: () {
popBack();
controller.logoutAction();
},
onLogoutAction: () {
controller.logout(controller.sessionCurrent.value, controller.accountId.value);
},
onSettingAction: () {
popBack();
controller.goToSettings();
@@ -65,4 +65,8 @@ class ManageAccountMenuController extends BaseController {
void backToMailboxDashBoard(BuildContext context) {
dashBoardController.backToMailboxDashBoard(context);
}
void logout(){
dashBoardController.logout(dashBoardController.sessionCurrent.value, dashBoardController.accountId.value);
}
}
@@ -97,7 +97,9 @@ class ManageAccountMenuView extends GetWidget<ManageAccountMenuController> {
child: Divider(color: AppColor.lineItemListColor, height: 0.5, thickness: 0.2)),
Padding(padding: const EdgeInsets.only(left: 32),
child: InkWell(
onTap: () => controller.dashBoardController.logoutAction(),
onTap: () {
controller.logout();
},
child: Row(children: [
SvgPicture.asset(_imagePaths.icSignOut, fit: BoxFit.fill),
const SizedBox(width: 12),
@@ -1,11 +1,14 @@
import 'package:core/utils/app_logger.dart';
import 'package:get/get.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/manage_account_dashboard_controller.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/menu/manage_account_menu_controller.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/model/account_menu_item.dart';
import 'package:tmail_ui_user/features/manage_account/presentation/model/settings_page_level.dart';
class SettingsController extends GetxController {
final manageAccountDashboardController = Get.find<ManageAccountDashBoardController>();
final manageAccountMenuController = Get.find<ManageAccountMenuController>();
void selectSettings(AccountMenuItem accountMenuItem) {
log('SettingsController::selectSettings(): $accountMenuItem');
@@ -119,7 +119,7 @@ class SettingsFirstLevelView extends GetWidget<SettingsController> {
SettingFirstLevelTileBuilder(
AppLocalizations.of(context).sign_out,
_imagePaths.icSignOut,
controller.manageAccountDashboardController.logoutAction
controller.manageAccountMenuController.logout,
),
]),
);