From 57930b2dd8e36a5aeb16fc2b7f1d940a295cf74c Mon Sep 17 00:00:00 2001 From: Neeraj Gupta <254676+ua741@users.noreply.github.com> Date: Mon, 4 Sep 2023 19:30:55 +0530 Subject: [PATCH] Add warning when user selects without backup option --- lib/l10n/arb/app_en.arb | 3 ++- lib/onboarding/view/onboarding_page.dart | 34 +++++++++++++++++------- 2 files changed, 27 insertions(+), 10 deletions(-) diff --git a/lib/l10n/arb/app_en.arb b/lib/l10n/arb/app_en.arb index 0789c227a6..6614a32210 100644 --- a/lib/l10n/arb/app_en.arb +++ b/lib/l10n/arb/app_en.arb @@ -324,5 +324,6 @@ "useOffline": "Use without backups", "signInToBackup": "Sign in to backup your codes", "singIn": "Sign in", - "sigInBackupReminder": "Please export your codes to ensure that you have a backup you can restore from." + "sigInBackupReminder": "Please export your codes to ensure that you have a backup you can restore from.", + "offlineModeWarning": "You have chosen to proceed without backups. Please take manual backups to make sure your codes are safe." } diff --git a/lib/onboarding/view/onboarding_page.dart b/lib/onboarding/view/onboarding_page.dart index d1649aa0fc..5d4e7e3e34 100644 --- a/lib/onboarding/view/onboarding_page.dart +++ b/lib/onboarding/view/onboarding_page.dart @@ -7,7 +7,6 @@ import 'package:ente_auth/ente_theme_data.dart'; import 'package:ente_auth/events/trigger_logout_event.dart'; import "package:ente_auth/l10n/l10n.dart"; import 'package:ente_auth/locale.dart'; -import 'package:ente_auth/services/local_authentication_service.dart'; import 'package:ente_auth/theme/text_style.dart'; import 'package:ente_auth/ui/account/email_entry_page.dart'; import 'package:ente_auth/ui/account/login_page.dart'; @@ -15,8 +14,11 @@ import 'package:ente_auth/ui/account/logout_dialog.dart'; import 'package:ente_auth/ui/account/password_entry_page.dart'; import 'package:ente_auth/ui/account/password_reentry_page.dart'; import 'package:ente_auth/ui/common/gradient_button.dart'; +import 'package:ente_auth/ui/components/buttons/button_widget.dart'; +import 'package:ente_auth/ui/components/models/button_result.dart'; import 'package:ente_auth/ui/home_page.dart'; import 'package:ente_auth/ui/settings/language_picker.dart'; +import 'package:ente_auth/utils/dialog_util.dart'; import 'package:ente_auth/utils/navigation_util.dart'; import 'package:ente_auth/utils/toast_util.dart'; import 'package:flutter/foundation.dart'; @@ -185,14 +187,28 @@ class _OnboardingPageState extends State { showToast(context, "Sorry, biometric authentication is not supported on this device."); return; } - await Configuration.instance.optForOfflineMode(); - Navigator.of(context).push( - MaterialPageRoute( - builder: (BuildContext context) { - return const HomePage(); - }, - ), - ); + final bool hasOptedBefore = Configuration.instance.hasOptedForOfflineMode(); + ButtonResult? result; + if(!hasOptedBefore) { + result = await showChoiceActionSheet( + context, + title: context.l10n.warning, + body: context.l10n.offlineModeWarning, + secondButtonLabel: context.l10n.cancel, + firstButtonLabel: context.l10n.ok, + ); + } + if (hasOptedBefore || result?.action == ButtonAction.first) { + await Configuration.instance.optForOfflineMode(); + Navigator.of(context).push( + MaterialPageRoute( + builder: (BuildContext context) { + return const HomePage(); + }, + ), + ); + } + } void _navigateToSignUpPage() {