TF-3719 Add handle export log to device if need

Signed-off-by: dab246 <tdvu@linagora.com>
This commit is contained in:
dab246
2025-05-16 20:16:11 +07:00
committed by Dat H. Pham
parent a891e07887
commit 0ca3ca170d
20 changed files with 541 additions and 6 deletions
@@ -0,0 +1,48 @@
import 'package:flutter/material.dart';
import 'package:tmail_ui_user/features/manage_account/domain/state/export_trace_log_state.dart';
import 'package:tmail_ui_user/features/manage_account/domain/usecases/export_trace_log_interactor.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/trace_log_interactor_bindings.dart';
import 'package:tmail_ui_user/main/localizations/app_localizations.dart';
import 'package:tmail_ui_user/main/routes/route_navigation.dart';
extension ExportTraceLogExtension on ManageAccountDashBoardController {
void injectTraceLogDependencies() {
TraceLogInteractorBindings().dependencies();
}
void disposeTraceLogDependencies() {
TraceLogInteractorBindings().dispose();
}
Future<void> showExportTraceLogConfirmDialog(BuildContext context) async {
await showConfirmDialogAction(
context,
AppLocalizations.of(context).messageExportTraceLogDialog,
AppLocalizations.of(context).yes,
title: AppLocalizations.of(context).exportTraceLog,
alignCenter: true,
outsideDismissible: false,
useIconAsBasicLogo: false,
cancelTitle: AppLocalizations.of(context).no,
onConfirmAction: _exportTraceLog,
);
}
void _exportTraceLog() {
final exportTraceLogInteractor = getBinding<ExportTraceLogInteractor>();
if (exportTraceLogInteractor != null) {
consumeState(exportTraceLogInteractor.execute());
}
}
void handleExportTraceLogSuccess(ExportTraceLogSuccess success) {
toastManager.showMessageSuccess(success);
}
void handleExportTraceLogFailure(ExportTraceLogFailure failure) {
toastManager.showMessageFailure(failure);
}
}