TF-1625 Remove Rxn<Session> variable and only use Rxn<AccountId> variable to listen change
(cherry picked from commit 9b56575290cbbf3ed47835117529e0d75346d703)
This commit is contained in:
@@ -86,7 +86,7 @@ class EmailRulesController extends BaseController {
|
||||
|
||||
void goToCreateNewRule(BuildContext context) async {
|
||||
final accountId = _accountDashBoardController.accountId.value;
|
||||
final session = _accountDashBoardController.sessionCurrent.value;
|
||||
final session = _accountDashBoardController.sessionCurrent;
|
||||
if (accountId != null && session != null) {
|
||||
final arguments = RulesFilterCreatorArguments(accountId, session);
|
||||
|
||||
@@ -134,7 +134,7 @@ class EmailRulesController extends BaseController {
|
||||
|
||||
void editEmailRule(BuildContext context, TMailRule rule) async {
|
||||
final accountId = _accountDashBoardController.accountId.value;
|
||||
final session = _accountDashBoardController.sessionCurrent.value;
|
||||
final session = _accountDashBoardController.sessionCurrent;
|
||||
if (accountId != null && session != null) {
|
||||
final arguments = RulesFilterCreatorArguments(
|
||||
accountId,
|
||||
|
||||
@@ -53,7 +53,7 @@ class ForwardController extends BaseController {
|
||||
ForwardController() {
|
||||
recipientController = ForwardRecipientController(
|
||||
accountId: accountDashBoardController.accountId.value,
|
||||
session: accountDashBoardController.sessionCurrent.value);
|
||||
session: accountDashBoardController.sessionCurrent);
|
||||
}
|
||||
|
||||
@override
|
||||
|
||||
+2
-2
@@ -94,7 +94,7 @@ class MailboxVisibilityController extends BaseMailboxController {
|
||||
|
||||
@override
|
||||
void onReady() {
|
||||
final session = _accountDashBoardController.sessionCurrent.value;
|
||||
final session = _accountDashBoardController.sessionCurrent;
|
||||
final accountId = _accountDashBoardController.accountId.value;
|
||||
if(session != null && accountId != null) {
|
||||
getAllMailbox(session, accountId);
|
||||
@@ -194,7 +194,7 @@ class MailboxVisibilityController extends BaseMailboxController {
|
||||
}
|
||||
|
||||
void _refreshMailboxChanges(jmap.State? newMailboxState) {
|
||||
final session = _accountDashBoardController.sessionCurrent.value;
|
||||
final session = _accountDashBoardController.sessionCurrent;
|
||||
final accountId = _accountDashBoardController.accountId.value;
|
||||
final mailboxState = newMailboxState ?? currentMailboxState;
|
||||
if (session != null && accountId != null && mailboxState != null) {
|
||||
|
||||
@@ -51,10 +51,11 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
final accountId = Rxn<AccountId>();
|
||||
final accountMenuItemSelected = AccountMenuItem.profiles.obs;
|
||||
final settingsPageLevel = SettingsPageLevel.universal.obs;
|
||||
final sessionCurrent = Rxn<Session>();
|
||||
final vacationResponse = Rxn<VacationResponse>();
|
||||
final dashboardSettingAction = Rxn<UIAction>();
|
||||
|
||||
Session? sessionCurrent;
|
||||
|
||||
ManageAccountDashBoardController(
|
||||
LogoutOidcInteractor logoutOidcInteractor,
|
||||
DeleteAuthorityOidcInteractor deleteAuthorityOidcInteractor,
|
||||
@@ -93,14 +94,14 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
|
||||
@override
|
||||
void handleReloaded(Session session) {
|
||||
sessionCurrent = session;
|
||||
accountId.value = session.accounts.keys.first;
|
||||
sessionCurrent.value = session;
|
||||
_getUserProfile();
|
||||
injectAutoCompleteBindings(sessionCurrent.value, accountId.value);
|
||||
injectForwardBindings(sessionCurrent.value, accountId.value);
|
||||
injectRuleFilterBindings(sessionCurrent.value, accountId.value);
|
||||
injectAutoCompleteBindings(sessionCurrent, accountId.value);
|
||||
injectForwardBindings(sessionCurrent, accountId.value);
|
||||
injectRuleFilterBindings(sessionCurrent, accountId.value);
|
||||
injectMailboxVisibilityBindings();
|
||||
injectVacationBindings(sessionCurrent.value, accountId.value);
|
||||
injectVacationBindings(sessionCurrent, accountId.value);
|
||||
_getVacationResponse();
|
||||
}
|
||||
|
||||
@@ -108,14 +109,14 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
final arguments = Get.arguments;
|
||||
log('ManageAccountDashBoardController::_getAccountIdAndUserProfile(): $arguments');
|
||||
if (arguments is ManageAccountArguments) {
|
||||
sessionCurrent = arguments.session;
|
||||
accountId.value = arguments.session?.accounts.keys.first;
|
||||
sessionCurrent.value = arguments.session;
|
||||
_getUserProfile();
|
||||
injectAutoCompleteBindings(sessionCurrent.value, accountId.value);
|
||||
injectForwardBindings(sessionCurrent.value, accountId.value);
|
||||
injectRuleFilterBindings(sessionCurrent.value, accountId.value);
|
||||
injectAutoCompleteBindings(sessionCurrent, accountId.value);
|
||||
injectForwardBindings(sessionCurrent, accountId.value);
|
||||
injectRuleFilterBindings(sessionCurrent, accountId.value);
|
||||
injectMailboxVisibilityBindings();
|
||||
injectVacationBindings(sessionCurrent.value, accountId.value);
|
||||
injectVacationBindings(sessionCurrent, accountId.value);
|
||||
_getVacationResponse();
|
||||
if (arguments.menuSettingCurrent != null) {
|
||||
_goToSettingMenuCurrent(arguments.menuSettingCurrent!);
|
||||
@@ -154,8 +155,8 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
}
|
||||
|
||||
void _getUserProfile() async {
|
||||
log('ManageAccountDashBoardController::_getUserProfile(): ${sessionCurrent.value}');
|
||||
userProfile.value = sessionCurrent.value != null ? UserProfile(sessionCurrent.value!.username.value) : null;
|
||||
log('ManageAccountDashBoardController::_getUserProfile(): $sessionCurrent');
|
||||
userProfile.value = sessionCurrent != null ? UserProfile(sessionCurrent!.username.value) : null;
|
||||
}
|
||||
|
||||
void _getVacationResponse() {
|
||||
@@ -211,7 +212,7 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
|
||||
void goToSettings() {
|
||||
pushAndPop(AppRoutes.settings,
|
||||
arguments: ManageAccountArguments(sessionCurrent.value));
|
||||
arguments: ManageAccountArguments(sessionCurrent));
|
||||
}
|
||||
|
||||
void backToMailboxDashBoard(BuildContext context) {
|
||||
@@ -225,32 +226,26 @@ class ManageAccountDashBoardController extends ReloadableController {
|
||||
}
|
||||
}
|
||||
|
||||
bool checkAvailableVacationInSession() {
|
||||
try {
|
||||
requireCapability(sessionCurrent.value!, accountId.value!, [CapabilityIdentifier.jmapVacationResponse]);
|
||||
return true;
|
||||
} catch(e) {
|
||||
logError('ManageAccountDashBoardController::checkAvailableVacationInSession(): exception = $e');
|
||||
bool get isVacationCapabilitySupported {
|
||||
if (accountId.value != null && sessionCurrent != null) {
|
||||
return [CapabilityIdentifier.jmapVacationResponse].isSupported(sessionCurrent!, accountId.value!);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool checkAvailableRuleFilterInSession() {
|
||||
try {
|
||||
requireCapability(sessionCurrent.value!, accountId.value!, [capabilityRuleFilter]);
|
||||
return true;
|
||||
} catch(e) {
|
||||
logError('ManageAccountDashBoardController::checkAvailableRuleFilterInSession(): exception = $e');
|
||||
bool get isRuleFilterCapabilitySupported {
|
||||
if (accountId.value != null && sessionCurrent != null) {
|
||||
return [capabilityRuleFilter].isSupported(sessionCurrent!, accountId.value!);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
bool checkAvailableForwardInSession() {
|
||||
try {
|
||||
requireCapability(sessionCurrent.value!, accountId.value!, [capabilityForward]);
|
||||
return true;
|
||||
} catch(e) {
|
||||
logError('ManageAccountDashBoardController::checkAvailableRuleFilterInSession(): exception = $e');
|
||||
bool get isForwardCapabilitySupported {
|
||||
if (accountId.value != null && sessionCurrent != null) {
|
||||
return [capabilityForward].isSupported(sessionCurrent!, accountId.value!);
|
||||
} else {
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -141,7 +141,7 @@ class ManageAccountDashBoardView extends GetWidget<ManageAccountDashBoardControl
|
||||
controller.userProfile.value,
|
||||
onLogoutAction: () {
|
||||
popBack();
|
||||
controller.logout(controller.sessionCurrent.value, controller.accountId.value);
|
||||
controller.logout(controller.sessionCurrent, controller.accountId.value);
|
||||
},
|
||||
onSettingAction: () {
|
||||
popBack();
|
||||
@@ -164,13 +164,13 @@ class ManageAccountDashBoardView extends GetWidget<ManageAccountDashBoardControl
|
||||
case AccountMenuItem.languageAndRegion:
|
||||
return LanguageAndRegionView();
|
||||
case AccountMenuItem.emailRules:
|
||||
if(controller.checkAvailableRuleFilterInSession()){
|
||||
if(controller.isRuleFilterCapabilitySupported){
|
||||
return EmailRulesView();
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
case AccountMenuItem.forward:
|
||||
if(controller.checkAvailableForwardInSession()){
|
||||
if(controller.isForwardCapabilitySupported){
|
||||
return ForwardView();
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
|
||||
@@ -18,7 +18,7 @@ class ManageAccountMenuController extends BaseController {
|
||||
]);
|
||||
|
||||
void _initWorker() {
|
||||
sessionWorker = ever(dashBoardController.sessionCurrent, (_) {
|
||||
sessionWorker = ever(dashBoardController.accountId, (_) {
|
||||
_createListAccountMenu();
|
||||
});
|
||||
}
|
||||
@@ -37,13 +37,13 @@ class ManageAccountMenuController extends BaseController {
|
||||
void _createListAccountMenu(){
|
||||
listAccountMenuItem.clear();
|
||||
listAccountMenuItem.add(AccountMenuItem.profiles);
|
||||
if (dashBoardController.checkAvailableRuleFilterInSession()) {
|
||||
if (dashBoardController.isRuleFilterCapabilitySupported) {
|
||||
listAccountMenuItem.add(AccountMenuItem.emailRules);
|
||||
}
|
||||
if (dashBoardController.checkAvailableForwardInSession()) {
|
||||
if (dashBoardController.isForwardCapabilitySupported) {
|
||||
listAccountMenuItem.add(AccountMenuItem.forward);
|
||||
}
|
||||
if (dashBoardController.checkAvailableVacationInSession()) {
|
||||
if (dashBoardController.isVacationCapabilitySupported) {
|
||||
listAccountMenuItem.add(AccountMenuItem.vacation);
|
||||
}
|
||||
listAccountMenuItem.addAll(
|
||||
|
||||
@@ -118,7 +118,7 @@ class ManageAccountMenuView extends GetWidget<ManageAccountMenuController> {
|
||||
child: InkWell(
|
||||
onTap: () {
|
||||
controller.logout(
|
||||
controller.dashBoardController.sessionCurrent.value,
|
||||
controller.dashBoardController.sessionCurrent,
|
||||
controller.dashBoardController.accountId.value
|
||||
);
|
||||
},
|
||||
|
||||
+4
-4
@@ -50,7 +50,7 @@ class SettingsFirstLevelView extends GetWidget<SettingsController> {
|
||||
endIndent: SettingsUtils.getHorizontalPadding(context, _responsiveUtils)
|
||||
),
|
||||
Obx(() {
|
||||
if (controller.manageAccountDashboardController.checkAvailableRuleFilterInSession()) {
|
||||
if (controller.manageAccountDashboardController.isRuleFilterCapabilitySupported) {
|
||||
return Column(children: [
|
||||
SettingFirstLevelTileBuilder(
|
||||
AccountMenuItem.emailRules.getName(context),
|
||||
@@ -70,7 +70,7 @@ class SettingsFirstLevelView extends GetWidget<SettingsController> {
|
||||
}
|
||||
}),
|
||||
Obx(() {
|
||||
if (controller.manageAccountDashboardController.checkAvailableForwardInSession()) {
|
||||
if (controller.manageAccountDashboardController.isForwardCapabilitySupported) {
|
||||
return Column(children: [
|
||||
SettingFirstLevelTileBuilder(
|
||||
AccountMenuItem.forward.getName(context),
|
||||
@@ -90,7 +90,7 @@ class SettingsFirstLevelView extends GetWidget<SettingsController> {
|
||||
}
|
||||
}),
|
||||
Obx(() {
|
||||
if (controller.manageAccountDashboardController.checkAvailableVacationInSession()) {
|
||||
if (controller.manageAccountDashboardController.isVacationCapabilitySupported) {
|
||||
return Column(children: [
|
||||
SettingFirstLevelTileBuilder(
|
||||
AccountMenuItem.vacation.getName(context),
|
||||
@@ -138,7 +138,7 @@ class SettingsFirstLevelView extends GetWidget<SettingsController> {
|
||||
AppLocalizations.of(context).sign_out,
|
||||
_imagePaths.icSignOut,
|
||||
() => controller.manageAccountDashboardController.logout(
|
||||
controller.manageAccountDashboardController.sessionCurrent.value,
|
||||
controller.manageAccountDashboardController.sessionCurrent,
|
||||
controller.manageAccountDashboardController.accountId.value)
|
||||
),
|
||||
]),
|
||||
|
||||
@@ -194,19 +194,19 @@ class SettingsView extends GetWidget<SettingsController> {
|
||||
case AccountMenuItem.languageAndRegion:
|
||||
return LanguageAndRegionView();
|
||||
case AccountMenuItem.emailRules:
|
||||
if (controller.manageAccountDashboardController.checkAvailableRuleFilterInSession()) {
|
||||
if (controller.manageAccountDashboardController.isRuleFilterCapabilitySupported) {
|
||||
return EmailRulesView();
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
case AccountMenuItem.forward:
|
||||
if (controller.manageAccountDashboardController.checkAvailableForwardInSession()) {
|
||||
if (controller.manageAccountDashboardController.isForwardCapabilitySupported) {
|
||||
return ForwardView();
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
}
|
||||
case AccountMenuItem.vacation:
|
||||
if (controller.manageAccountDashboardController.checkAvailableVacationInSession()) {
|
||||
if (controller.manageAccountDashboardController.isVacationCapabilitySupported) {
|
||||
return VacationView();
|
||||
} else {
|
||||
return const SizedBox.shrink();
|
||||
|
||||
+5
-5
@@ -101,7 +101,7 @@ class IdentitiesController extends BaseController {
|
||||
void _initWorker() {
|
||||
accountIdWorker = ever(_accountDashBoardController.accountId, (accountId) {
|
||||
if (accountId is AccountId) {
|
||||
final session = _accountDashBoardController.sessionCurrent.value;
|
||||
final session = _accountDashBoardController.sessionCurrent;
|
||||
if (session != null) {
|
||||
_getAllIdentities(session, accountId);
|
||||
}
|
||||
@@ -126,7 +126,7 @@ class IdentitiesController extends BaseController {
|
||||
listAllIdentities.clear();
|
||||
|
||||
final accountId = _accountDashBoardController.accountId.value;
|
||||
final session = _accountDashBoardController.sessionCurrent.value;
|
||||
final session = _accountDashBoardController.sessionCurrent;
|
||||
if (accountId != null && session != null) {
|
||||
_getAllIdentities(session, accountId);
|
||||
}
|
||||
@@ -152,7 +152,7 @@ class IdentitiesController extends BaseController {
|
||||
void goToCreateNewIdentity(BuildContext context) async {
|
||||
final accountId = _accountDashBoardController.accountId.value;
|
||||
final userProfile = _accountDashBoardController.userProfile.value;
|
||||
final session = _accountDashBoardController.sessionCurrent.value;
|
||||
final session = _accountDashBoardController.sessionCurrent;
|
||||
if (accountId != null && session != null && userProfile != null) {
|
||||
final arguments = IdentityCreatorArguments(accountId, session, userProfile);
|
||||
|
||||
@@ -227,7 +227,7 @@ class IdentitiesController extends BaseController {
|
||||
void _deleteIdentityAction(Identity identity) {
|
||||
popBack();
|
||||
|
||||
final session = _accountDashBoardController.sessionCurrent.value;
|
||||
final session = _accountDashBoardController.sessionCurrent;
|
||||
final accountId = _accountDashBoardController.accountId.value;
|
||||
if (accountId != null && session != null && identity.id != null) {
|
||||
consumeState(_deleteIdentityInteractor.execute(session, accountId, identity.id!));
|
||||
@@ -272,7 +272,7 @@ class IdentitiesController extends BaseController {
|
||||
void goToEditIdentity(BuildContext context, Identity identity) async {
|
||||
final accountId = _accountDashBoardController.accountId.value;
|
||||
final userProfile = _accountDashBoardController.userProfile.value;
|
||||
final session = _accountDashBoardController.sessionCurrent.value;
|
||||
final session = _accountDashBoardController.sessionCurrent;
|
||||
if (accountId != null && session != null && userProfile != null) {
|
||||
final arguments = IdentityCreatorArguments(
|
||||
accountId,
|
||||
|
||||
Reference in New Issue
Block a user