From 47d7238f2b4cefd1353521d033c658e2768d8109 Mon Sep 17 00:00:00 2001 From: Prateek Sunal <prtksunal@gmail.com> Date: Tue, 5 Mar 2024 14:49:26 +0530 Subject: [PATCH] feat: revert removed features --- auth/lib/onboarding/view/onboarding_page.dart | 182 +++++++++--------- .../ui/settings/account_section_widget.dart | 56 +++--- 2 files changed, 122 insertions(+), 116 deletions(-) diff --git a/auth/lib/onboarding/view/onboarding_page.dart b/auth/lib/onboarding/view/onboarding_page.dart index 0117bdcaf..ab4d7b2af 100644 --- a/auth/lib/onboarding/view/onboarding_page.dart +++ b/auth/lib/onboarding/view/onboarding_page.dart @@ -1,4 +1,5 @@ import 'dart:async'; +import 'dart:io'; import 'package:ente_auth/app/view/app.dart'; import 'package:ente_auth/core/configuration.dart'; @@ -7,15 +8,23 @@ 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/theme/text_style.dart'; +import 'package:ente_auth/ui/account/email_entry_page.dart'; import 'package:ente_auth/ui/account/login_page.dart'; 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'; import "package:flutter/material.dart"; +import 'package:local_auth/local_auth.dart'; class OnboardingPage extends StatefulWidget { const OnboardingPage({super.key}); @@ -120,16 +129,15 @@ class _OnboardingPageState extends State<OnboardingPage> { ], ), const SizedBox(height: 100), - // TODO: Remove After Stable - // Container( - // width: double.infinity, - // padding: const EdgeInsets.symmetric(horizontal: 20), - // child: GradientButton( - // onTap: _navigateToSignUpPage, - // text: l10n.newUser, - // ), - // ), - // const SizedBox(height: 24), + Container( + width: double.infinity, + padding: const EdgeInsets.symmetric(horizontal: 20), + child: GradientButton( + onTap: _navigateToSignUpPage, + text: l10n.newUser, + ), + ), + const SizedBox(height: 24), Container( height: 56, width: double.infinity, @@ -151,23 +159,22 @@ class _OnboardingPageState extends State<OnboardingPage> { ), ), const SizedBox(height: 4), - // TODO: Remove After Stable - // Container( - // width: double.infinity, - // padding: const EdgeInsets.only(top: 20, bottom: 20), - // child: GestureDetector( - // onTap: _optForOfflineMode, - // child: Center( - // child: Text( - // l10n.useOffline, - // style: body.copyWith( - // color: - // Theme.of(context).colorScheme.mutedTextColor, - // ), - // ), - // ), - // ), - // ), + Container( + width: double.infinity, + padding: const EdgeInsets.only(top: 20, bottom: 20), + child: GestureDetector( + onTap: _optForOfflineMode, + child: Center( + child: Text( + l10n.useOffline, + style: body.copyWith( + color: + Theme.of(context).colorScheme.mutedTextColor, + ), + ), + ), + ), + ), ], ), ), @@ -178,69 +185,68 @@ class _OnboardingPageState extends State<OnboardingPage> { ); } - // TODO: Remove After Stable - // Future<void> _optForOfflineMode() async { - // final canContinue = Platform.isMacOS || Platform.isLinux - // ? true - // : await LocalAuthentication().canCheckBiometrics; + Future<void> _optForOfflineMode() async { + final canContinue = Platform.isMacOS || Platform.isLinux + ? true + : await LocalAuthentication().canCheckBiometrics; - // if (!canContinue) { - // showToast( - // context, - // "Sorry, biometric authentication is not supported on this device.", - // ); - // return; - // } - // 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(); - // }, - // ), - // ); - // } - // } + if (!canContinue) { + showToast( + context, + "Sorry, biometric authentication is not supported on this device.", + ); + return; + } + 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() { - // Widget page; - // if (Configuration.instance.getEncryptedToken() == null) { - // page = const EmailEntryPage(); - // } else { - // // No key - // if (Configuration.instance.getKeyAttributes() == null) { - // // Never had a key - // page = const PasswordEntryPage( - // mode: PasswordEntryMode.set, - // ); - // } else if (Configuration.instance.getKey() == null) { - // // Yet to decrypt the key - // page = const PasswordReentryPage(); - // } else { - // // All is well, user just has not subscribed - // page = const HomePage(); - // } - // } - // Navigator.of(context).push( - // MaterialPageRoute( - // builder: (BuildContext context) { - // return page; - // }, - // ), - // ); - // } + void _navigateToSignUpPage() { + Widget page; + if (Configuration.instance.getEncryptedToken() == null) { + page = const EmailEntryPage(); + } else { + // No key + if (Configuration.instance.getKeyAttributes() == null) { + // Never had a key + page = const PasswordEntryPage( + mode: PasswordEntryMode.set, + ); + } else if (Configuration.instance.getKey() == null) { + // Yet to decrypt the key + page = const PasswordReentryPage(); + } else { + // All is well, user just has not subscribed + page = const HomePage(); + } + } + Navigator.of(context).push( + MaterialPageRoute( + builder: (BuildContext context) { + return page; + }, + ), + ); + } void _navigateToSignInPage() { Widget page; diff --git a/auth/lib/ui/settings/account_section_widget.dart b/auth/lib/ui/settings/account_section_widget.dart index 1718f276a..0512ff06e 100644 --- a/auth/lib/ui/settings/account_section_widget.dart +++ b/auth/lib/ui/settings/account_section_widget.dart @@ -4,6 +4,7 @@ import 'package:ente_auth/services/user_service.dart'; import 'package:ente_auth/theme/ente_theme.dart'; import 'package:ente_auth/ui/account/change_email_dialog.dart'; import 'package:ente_auth/ui/account/delete_account_page.dart'; +import 'package:ente_auth/ui/account/password_entry_page.dart'; import 'package:ente_auth/ui/components/captioned_text_widget.dart'; import 'package:ente_auth/ui/components/expandable_menu_item_widget.dart'; import 'package:ente_auth/ui/components/menu_item_widget.dart'; @@ -58,34 +59,33 @@ class AccountSectionWidget extends StatelessWidget { }, ), sectionOptionSpacing, - // TODO: Remove After Stable - // MenuItemWidget( - // captionedTextWidget: CaptionedTextWidget( - // title: l10n.changePassword, - // ), - // pressedColor: getEnteColorScheme(context).fillFaint, - // trailingIcon: Icons.chevron_right_outlined, - // trailingIconIsMuted: true, - // onTap: () async { - // final hasAuthenticated = await LocalAuthenticationService.instance - // .requestLocalAuthentication( - // context, - // l10n.authToChangeYourPassword, - // ); - // if (hasAuthenticated) { - // Navigator.of(context).push( - // MaterialPageRoute( - // builder: (BuildContext context) { - // return const PasswordEntryPage( - // mode: PasswordEntryMode.update, - // ); - // }, - // ), - // ); - // } - // }, - // ), - // sectionOptionSpacing, + MenuItemWidget( + captionedTextWidget: CaptionedTextWidget( + title: l10n.changePassword, + ), + pressedColor: getEnteColorScheme(context).fillFaint, + trailingIcon: Icons.chevron_right_outlined, + trailingIconIsMuted: true, + onTap: () async { + final hasAuthenticated = await LocalAuthenticationService.instance + .requestLocalAuthentication( + context, + l10n.authToChangeYourPassword, + ); + if (hasAuthenticated) { + Navigator.of(context).push( + MaterialPageRoute( + builder: (BuildContext context) { + return const PasswordEntryPage( + mode: PasswordEntryMode.update, + ); + }, + ), + ); + } + }, + ), + sectionOptionSpacing, MenuItemWidget( captionedTextWidget: CaptionedTextWidget( title: context.l10n.logout,