Display AI Scribe togge in Preference
This commit is contained in:
@@ -3,6 +3,7 @@ import 'dart:ui';
|
|||||||
import 'package:tmail_ui_user/features/manage_account/data/datasource/manage_account_datasource.dart';
|
import 'package:tmail_ui_user/features/manage_account/data/datasource/manage_account_datasource.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart';
|
import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_manager.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/data/local/preferences_setting_manager.dart';
|
import 'package:tmail_ui_user/features/manage_account/data/local/preferences_setting_manager.dart';
|
||||||
|
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/ai_scribe_config.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_config.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_config.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_setting.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_setting.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/spam_report_config.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/spam_report_config.dart';
|
||||||
@@ -44,6 +45,10 @@ class ManageAccountDataSourceImpl extends ManageAccountDataSource {
|
|||||||
await _preferencesSettingManager.updateTextFormattingMenu(
|
await _preferencesSettingManager.updateTextFormattingMenu(
|
||||||
isDisplayed: preferencesConfig.isDisplayed,
|
isDisplayed: preferencesConfig.isDisplayed,
|
||||||
);
|
);
|
||||||
|
} else if (preferencesConfig is AIScribeConfig) {
|
||||||
|
await _preferencesSettingManager.updateAIScribe(
|
||||||
|
preferencesConfig.isEnabled,
|
||||||
|
);
|
||||||
} else {
|
} else {
|
||||||
await _preferencesSettingManager.savePreferences(
|
await _preferencesSettingManager.savePreferences(
|
||||||
preferencesConfig,
|
preferencesConfig,
|
||||||
|
|||||||
@@ -12,6 +12,7 @@ import 'package:jmap_dart_client/jmap/mail/vacation/vacation_response.dart';
|
|||||||
import 'package:jmap_dart_client/jmap/quotas/quota.dart';
|
import 'package:jmap_dart_client/jmap/quotas/quota.dart';
|
||||||
import 'package:model/model.dart';
|
import 'package:model/model.dart';
|
||||||
import 'package:rule_filter/rule_filter/capability_rule_filter.dart';
|
import 'package:rule_filter/rule_filter/capability_rule_filter.dart';
|
||||||
|
import 'package:scribe/scribe/ai/presentation/utils/ai_scribe_constants.dart';
|
||||||
import 'package:server_settings/server_settings/capability_server_settings.dart';
|
import 'package:server_settings/server_settings/capability_server_settings.dart';
|
||||||
import 'package:tmail_ui_user/features/base/action/ui_action.dart';
|
import 'package:tmail_ui_user/features/base/action/ui_action.dart';
|
||||||
import 'package:tmail_ui_user/features/base/mixin/ai_scribe_mixin.dart';
|
import 'package:tmail_ui_user/features/base/mixin/ai_scribe_mixin.dart';
|
||||||
@@ -332,6 +333,14 @@ class ManageAccountDashBoardController extends ReloadableController
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
bool get isAICapabilitySupported {
|
||||||
|
if (accountId.value != null && sessionCurrent != null) {
|
||||||
|
return AiScribeConstants.aiCapability.isSupported(sessionCurrent!, accountId.value!);
|
||||||
|
} else {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
void disableVacationResponder(
|
void disableVacationResponder(
|
||||||
VacationResponse vacation, {
|
VacationResponse vacation, {
|
||||||
bool isAuto = false,
|
bool isAuto = false,
|
||||||
|
|||||||
@@ -8,7 +8,8 @@ enum PreferencesOptionType {
|
|||||||
readReceipt(isLocal: false),
|
readReceipt(isLocal: false),
|
||||||
senderPriority(isLocal: false),
|
senderPriority(isLocal: false),
|
||||||
thread(isLocal: true),
|
thread(isLocal: true),
|
||||||
spamReport(isLocal: true);
|
spamReport(isLocal: true),
|
||||||
|
aiScribe(isLocal: true);
|
||||||
|
|
||||||
final bool isLocal;
|
final bool isLocal;
|
||||||
|
|
||||||
@@ -24,6 +25,8 @@ enum PreferencesOptionType {
|
|||||||
return appLocalizations.thread;
|
return appLocalizations.thread;
|
||||||
case PreferencesOptionType.spamReport:
|
case PreferencesOptionType.spamReport:
|
||||||
return appLocalizations.spamReports;
|
return appLocalizations.spamReports;
|
||||||
|
case PreferencesOptionType.aiScribe:
|
||||||
|
return appLocalizations.aiScribe;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -37,6 +40,8 @@ enum PreferencesOptionType {
|
|||||||
return appLocalizations.threadSettingExplanation;
|
return appLocalizations.threadSettingExplanation;
|
||||||
case PreferencesOptionType.spamReport:
|
case PreferencesOptionType.spamReport:
|
||||||
return appLocalizations.spamReportsSettingExplanation;
|
return appLocalizations.spamReportsSettingExplanation;
|
||||||
|
case PreferencesOptionType.aiScribe:
|
||||||
|
return appLocalizations.aiScribeSettingExplanation;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -50,6 +55,8 @@ enum PreferencesOptionType {
|
|||||||
return appLocalizations.threadToggleDescription;
|
return appLocalizations.threadToggleDescription;
|
||||||
case PreferencesOptionType.spamReport:
|
case PreferencesOptionType.spamReport:
|
||||||
return appLocalizations.spamReportToggleDescription;
|
return appLocalizations.spamReportToggleDescription;
|
||||||
|
case PreferencesOptionType.aiScribe:
|
||||||
|
return appLocalizations.aiScribeToggleDescription;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -66,6 +73,8 @@ enum PreferencesOptionType {
|
|||||||
return preferencesSetting.threadConfig.isEnabled;
|
return preferencesSetting.threadConfig.isEnabled;
|
||||||
case PreferencesOptionType.spamReport:
|
case PreferencesOptionType.spamReport:
|
||||||
return preferencesSetting.spamReportConfig.isEnabled;
|
return preferencesSetting.spamReportConfig.isEnabled;
|
||||||
|
case PreferencesOptionType.aiScribe:
|
||||||
|
return preferencesSetting.aiScribeConfig.isEnabled;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
+6
@@ -6,6 +6,7 @@ import 'package:tmail_ui_user/features/manage_account/data/local/language_cache_
|
|||||||
import 'package:tmail_ui_user/features/manage_account/data/local/preferences_setting_manager.dart';
|
import 'package:tmail_ui_user/features/manage_account/data/local/preferences_setting_manager.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/data/repository/manage_account_repository_impl.dart';
|
import 'package:tmail_ui_user/features/manage_account/data/repository/manage_account_repository_impl.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/repository/manage_account_repository.dart';
|
||||||
|
import 'package:tmail_ui_user/features/manage_account/domain/usecases/get_ai_scribe_config_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/usecases/save_language_interactor.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/usecases/save_language_interactor.dart';
|
||||||
import 'package:tmail_ui_user/features/server_settings/data/datasource/server_settings_data_source.dart';
|
import 'package:tmail_ui_user/features/server_settings/data/datasource/server_settings_data_source.dart';
|
||||||
import 'package:tmail_ui_user/features/server_settings/data/datasource_impl/remote_server_settings_data_source_impl.dart';
|
import 'package:tmail_ui_user/features/server_settings/data/datasource_impl/remote_server_settings_data_source_impl.dart';
|
||||||
@@ -62,6 +63,10 @@ class PreferencesInteractorsBindings extends InteractorsBindings {
|
|||||||
() => SaveLanguageInteractor(Get.find<ManageAccountRepository>(tag: composerId)),
|
() => SaveLanguageInteractor(Get.find<ManageAccountRepository>(tag: composerId)),
|
||||||
tag: composerId,
|
tag: composerId,
|
||||||
);
|
);
|
||||||
|
Get.lazyPut(
|
||||||
|
() => GetAIScribeConfigInteractor(Get.find<ManageAccountRepository>(tag: composerId)),
|
||||||
|
tag: composerId,
|
||||||
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
@@ -101,5 +106,6 @@ class PreferencesInteractorsBindings extends InteractorsBindings {
|
|||||||
Get.delete<ManageAccountRepositoryImpl>(tag: composerId);
|
Get.delete<ManageAccountRepositoryImpl>(tag: composerId);
|
||||||
Get.delete<ManageAccountRepository>(tag: composerId);
|
Get.delete<ManageAccountRepository>(tag: composerId);
|
||||||
Get.delete<SaveLanguageInteractor>(tag: composerId);
|
Get.delete<SaveLanguageInteractor>(tag: composerId);
|
||||||
|
Get.delete<GetAIScribeConfigInteractor>(tag: composerId);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -7,6 +7,7 @@ import 'package:server_settings/server_settings/tmail_server_settings.dart';
|
|||||||
import 'package:tmail_ui_user/features/base/base_controller.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/data/exceptions/session_exceptions.dart';
|
||||||
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/loader_status.dart';
|
import 'package:tmail_ui_user/features/mailbox_dashboard/presentation/model/loader_status.dart';
|
||||||
|
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/ai_scribe_config.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_config.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_config.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_setting.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/preferences_setting.dart';
|
||||||
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/spam_report_config.dart';
|
import 'package:tmail_ui_user/features/manage_account/domain/model/preferences/spam_report_config.dart';
|
||||||
@@ -49,6 +50,10 @@ class PreferencesController extends BaseController {
|
|||||||
|
|
||||||
final _manageAccountDashBoardController = Get.find<ManageAccountDashBoardController>();
|
final _manageAccountDashBoardController = Get.find<ManageAccountDashBoardController>();
|
||||||
|
|
||||||
|
bool get isAIScribeAvailable {
|
||||||
|
return _manageAccountDashBoardController.isAICapabilitySupported;
|
||||||
|
}
|
||||||
|
|
||||||
@override
|
@override
|
||||||
void onInit() {
|
void onInit() {
|
||||||
super.onInit();
|
super.onInit();
|
||||||
@@ -150,6 +155,9 @@ class PreferencesController extends BaseController {
|
|||||||
case PreferencesOptionType.spamReport:
|
case PreferencesOptionType.spamReport:
|
||||||
config = SpamReportConfig(isEnabled: !isEnabled);
|
config = SpamReportConfig(isEnabled: !isEnabled);
|
||||||
break;
|
break;
|
||||||
|
case PreferencesOptionType.aiScribe:
|
||||||
|
config = AIScribeConfig(isEnabled: !isEnabled);
|
||||||
|
break;
|
||||||
default:
|
default:
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -72,7 +72,12 @@ class PreferencesView extends GetWidget<PreferencesController> with AppLoaderMix
|
|||||||
if (localSettingOption.configs.isNotEmpty)
|
if (localSettingOption.configs.isNotEmpty)
|
||||||
...PreferencesOptionType.values.where(
|
...PreferencesOptionType.values.where(
|
||||||
(optionType) => optionType.isLocal,
|
(optionType) => optionType.isLocal,
|
||||||
),
|
).where((optionType) {
|
||||||
|
if (optionType == PreferencesOptionType.aiScribe) {
|
||||||
|
return controller.isAIScribeAvailable;
|
||||||
|
}
|
||||||
|
return true;
|
||||||
|
}),
|
||||||
];
|
];
|
||||||
|
|
||||||
return Expanded(
|
return Expanded(
|
||||||
|
|||||||
Reference in New Issue
Block a user