TF-4383 Handle read only labels
This commit is contained in:
@@ -7,19 +7,18 @@ import 'package:get/get.dart';
|
||||
import 'package:jmap_dart_client/jmap/account_id.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/session/session.dart';
|
||||
import 'package:jmap_dart_client/jmap/core/state.dart';
|
||||
import 'package:labels/extensions/list_label_extension.dart';
|
||||
import 'package:labels/model/label.dart';
|
||||
import 'package:labels/utils/labels_constants.dart';
|
||||
import 'package:labels/labels.dart';
|
||||
import 'package:model/mailbox/expand_mode.dart';
|
||||
import 'package:tmail_ui_user/features/base/base_controller.dart';
|
||||
import 'package:tmail_ui_user/features/home/data/exceptions/session_exceptions.dart';
|
||||
import 'package:tmail_ui_user/features/home/domain/extensions/session_extensions.dart';
|
||||
import 'package:tmail_ui_user/features/labels/domain/state/create_new_label_state.dart';
|
||||
import 'package:tmail_ui_user/features/labels/domain/state/edit_label_state.dart';
|
||||
import 'package:tmail_ui_user/features/labels/domain/state/delete_a_label_state.dart';
|
||||
import 'package:tmail_ui_user/features/labels/domain/state/edit_label_state.dart';
|
||||
import 'package:tmail_ui_user/features/labels/domain/state/get_all_label_state.dart';
|
||||
import 'package:tmail_ui_user/features/labels/domain/usecases/create_new_label_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/labels/domain/usecases/edit_label_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/labels/domain/usecases/delete_a_label_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/labels/domain/usecases/edit_label_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/labels/domain/usecases/get_all_label_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/labels/domain/usecases/get_label_changes_interactor.dart';
|
||||
import 'package:tmail_ui_user/features/labels/presentation/extensions/handle_label_action_type_extension.dart';
|
||||
@@ -53,6 +52,7 @@ class LabelController extends BaseController with LabelContextMenuMixin {
|
||||
State? _currentLabelState;
|
||||
AccountId? _accountId;
|
||||
Session? _session;
|
||||
LabelsCapability? _labelsCapability;
|
||||
|
||||
@override
|
||||
void onInit() {
|
||||
@@ -64,9 +64,17 @@ class LabelController extends BaseController with LabelContextMenuMixin {
|
||||
return LabelsConstants.labelsCapability.isSupported(session, accountId);
|
||||
}
|
||||
|
||||
LabelsCapability? get labelsCapability => _labelsCapability;
|
||||
|
||||
bool get shouldAskReadOnly {
|
||||
final labelVersion = labelsCapability?.version;
|
||||
return labelVersion != null && labelVersion >= 1;
|
||||
}
|
||||
|
||||
void checkLabelSettingState(Session session, AccountId accountId) {
|
||||
_session = session;
|
||||
_accountId = accountId;
|
||||
_labelsCapability = _session?.getLabelsCapability(accountId);
|
||||
_getLabelSettingStateInteractor =
|
||||
getBinding<GetLabelSettingStateInteractor>();
|
||||
if (_getLabelSettingStateInteractor != null) {
|
||||
@@ -245,6 +253,7 @@ class LabelController extends BaseController with LabelContextMenuMixin {
|
||||
_currentLabelState = null;
|
||||
_accountId = null;
|
||||
_session = null;
|
||||
_labelsCapability = null;
|
||||
super.onClose();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user