diff --git a/lib/src/core/l10n/app_localizations.dart b/lib/src/core/l10n/app_localizations.dart index 87f729db..2cbfa049 100644 --- a/lib/src/core/l10n/app_localizations.dart +++ b/lib/src/core/l10n/app_localizations.dart @@ -1048,18 +1048,6 @@ abstract class AppLocalizations { /// **'Are you sure you want to remove \"{name}\"?'** String dialogRemoveFeedConfirm(String name); - /// Dialog title for opening Bluesky account management - /// - /// In en, this message translates to: - /// **'Open Bluesky account management?'** - String get dialogOpenBlueskyAccount; - - /// Description for opening Bluesky account management dialog - /// - /// In en, this message translates to: - /// **'This opens the Bluesky account management screen. You may have to log in again.\n\nIf prompted for an account provider, use:\n{pdsUrl}'** - String dialogOpenBlueskyAccountDescription(String pdsUrl); - /// Replies page title /// /// In en, this message translates to: diff --git a/lib/src/core/l10n/app_localizations_en.dart b/lib/src/core/l10n/app_localizations_en.dart index d5d588fe..a0a93a09 100644 --- a/lib/src/core/l10n/app_localizations_en.dart +++ b/lib/src/core/l10n/app_localizations_en.dart @@ -515,14 +515,6 @@ class AppLocalizationsEn extends AppLocalizations { return 'Are you sure you want to remove \"$name\"?'; } - @override - String get dialogOpenBlueskyAccount => 'Open Bluesky account management?'; - - @override - String dialogOpenBlueskyAccountDescription(String pdsUrl) { - return 'This opens the Bluesky account management screen. You may have to log in again.\n\nIf prompted for an account provider, use:\n$pdsUrl'; - } - @override String get pageTitleReplies => 'Replies'; diff --git a/lib/src/core/l10n/intl_en.arb b/lib/src/core/l10n/intl_en.arb index e09b399d..beabc3a8 100644 --- a/lib/src/core/l10n/intl_en.arb +++ b/lib/src/core/l10n/intl_en.arb @@ -833,21 +833,6 @@ } }, - "dialogOpenBlueskyAccount": "Open Bluesky account management?", - "@dialogOpenBlueskyAccount": { - "description": "Dialog title for opening Bluesky account management" - }, - - "dialogOpenBlueskyAccountDescription": "This opens the Bluesky account management screen. You may have to log in again.\n\nIf prompted for an account provider, use:\n{pdsUrl}", - "@dialogOpenBlueskyAccountDescription": { - "description": "Description for opening Bluesky account management dialog", - "placeholders": { - "pdsUrl": { - "type": "String" - } - } - }, - "pageTitleReplies": "Replies", "@pageTitleReplies": { "description": "Replies page title" diff --git a/lib/src/features/settings/ui/pages/settings_page.dart b/lib/src/features/settings/ui/pages/settings_page.dart index bf271c1d..3ce2e630 100644 --- a/lib/src/features/settings/ui/pages/settings_page.dart +++ b/lib/src/features/settings/ui/pages/settings_page.dart @@ -20,10 +20,6 @@ class SettingsPage extends ConsumerStatefulWidget { } class _SettingsPageState extends ConsumerState { - static final Uri _manageAccountUri = Uri.parse( - 'https://bsky.app/settings/account', - ); - Future _handleLogout() async { try { // Show loading indicator @@ -54,26 +50,16 @@ class _SettingsPageState extends ConsumerState { Future _handleManageAccount() async { final l10n = AppLocalizations.of(context); final authRepository = GetIt.instance(); - final pdsUrl = authRepository.pdsEndpoint ?? 'your PDS URL'; - final shouldOpen = await showDialog( - context: context, - builder: (context) => AlertDialog( - title: Text(l10n.dialogOpenBlueskyAccount), - content: Text(l10n.dialogOpenBlueskyAccountDescription(pdsUrl)), - actions: [ - TextButton( - onPressed: () => Navigator.of(context).pop(false), - child: Text(l10n.buttonCancel), - ), - FilledButton( - onPressed: () => Navigator.of(context).pop(true), - child: Text(l10n.buttonOpen), - ), - ], - ), - ); + final pdsUrl = authRepository.pdsEndpoint; + if (pdsUrl == null) { + ScaffoldMessenger.of( + context, + ).showSnackBar(SnackBar(content: Text(l10n.errorUnableToOpenLink))); + return; + } + final manageAccountUri = Uri.parse(pdsUrl).resolve('/account/manage'); - if (shouldOpen != true || !mounted) { + if (!mounted) { return; } @@ -81,8 +67,8 @@ class _SettingsPageState extends ConsumerState { try { final didLaunch = await launchUrl( - _manageAccountUri, - mode: LaunchMode.externalApplication, + manageAccountUri, + mode: LaunchMode.inAppBrowserView, ); if (!didLaunch && mounted) { @@ -92,7 +78,7 @@ class _SettingsPageState extends ConsumerState { } } catch (error, stackTrace) { logger.e( - 'Failed to launch manage account URL: $_manageAccountUri', + 'Failed to launch manage account URL: $manageAccountUri', error: error, stackTrace: stackTrace, );