diff --git a/i18n/en.json b/i18n/en.json index 11df6fc3d3..89780f62b1 100644 --- a/i18n/en.json +++ b/i18n/en.json @@ -373,7 +373,7 @@ "admin_password": "Admin Password", "administration": "Administration", "advanced": "Advanced", - "advanced_settings_beta_timeline_subtitle": "Try the new app experience.", + "advanced_settings_beta_timeline_subtitle": "Try the new app experience", "advanced_settings_beta_timeline_title": "Beta Timeline", "advanced_settings_enable_alternate_media_filter_subtitle": "Use this option to filter media during sync based on alternate criteria. Only try this if you have issues with the app detecting all albums.", "advanced_settings_enable_alternate_media_filter_title": "[EXPERIMENTAL] Use alternate device album sync filter", diff --git a/mobile/lib/pages/common/change_experience.page.dart b/mobile/lib/pages/common/change_experience.page.dart index c54f627b61..74c3116962 100644 --- a/mobile/lib/pages/common/change_experience.page.dart +++ b/mobile/lib/pages/common/change_experience.page.dart @@ -57,14 +57,6 @@ class _ChangeExperiencePageState extends ConsumerState { await ref.read(backgroundSyncProvider).cancel(); } - Future.delayed(const Duration(seconds: 3), () { - context.replaceRoute( - widget.switchingToBeta - ? const TabShellRoute() - : const TabControllerRoute(), - ); - }); - if (mounted) { setState(() { HapticFeedback.heavyImpact(); @@ -104,7 +96,7 @@ class _ChangeExperiencePageState extends ConsumerState { duration: Durations.long4, child: hasMigrated ? Text( - "Migration success. Navigating to the new timeline...", + "Migration success!", style: context.textTheme.titleMedium, textAlign: TextAlign.center, ) @@ -115,6 +107,20 @@ class _ChangeExperiencePageState extends ConsumerState { ), ), ), + if (hasMigrated) + Padding( + padding: const EdgeInsets.only(top: 16.0), + child: ElevatedButton( + onPressed: () { + context.replaceRoute( + widget.switchingToBeta + ? const TabShellRoute() + : const TabControllerRoute(), + ); + }, + child: const Text("Continue"), + ), + ), ], ), ), diff --git a/mobile/lib/pages/common/settings.page.dart b/mobile/lib/pages/common/settings.page.dart index 42d555a2ee..e45001270c 100644 --- a/mobile/lib/pages/common/settings.page.dart +++ b/mobile/lib/pages/common/settings.page.dart @@ -143,7 +143,7 @@ class _MobileLayout extends StatelessWidget { .toList(); return ListView( physics: const ClampingScrollPhysics(), - padding: const EdgeInsets.symmetric(vertical: 10.0), + padding: const EdgeInsets.only(top: 10.0, bottom: 56), children: [ const BetaTimelineListTile(), ...settings, diff --git a/mobile/lib/providers/asset.provider.dart b/mobile/lib/providers/asset.provider.dart index 5b77da90f3..7fbacc3afb 100644 --- a/mobile/lib/providers/asset.provider.dart +++ b/mobile/lib/providers/asset.provider.dart @@ -81,7 +81,9 @@ class AssetNotifier extends StateNotifier { await _albumService.refreshDeviceAlbums(); } finally { _getAllAssetInProgress = false; - state = false; + if (mounted) { + state = false; + } } } diff --git a/mobile/lib/widgets/settings/beta_timeline_list_tile.dart b/mobile/lib/widgets/settings/beta_timeline_list_tile.dart index 967c7f3e13..1de3a6e7ab 100644 --- a/mobile/lib/widgets/settings/beta_timeline_list_tile.dart +++ b/mobile/lib/widgets/settings/beta_timeline_list_tile.dart @@ -100,13 +100,27 @@ class _BetaTimelineListTileState extends ConsumerState [ChangeExperienceRoute(switchingToBeta: value)], ); }, - child: const Text("Yes"), + child: Text( + "YES", + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w500, + color: context.primaryColor, + ), + ), ), TextButton( onPressed: () { - Navigator.of(context).pop(); + context.pop(); }, - child: const Text("No"), + child: Text( + "NO", + style: TextStyle( + fontSize: 16, + fontWeight: FontWeight.w500, + color: context.colorScheme.outline, + ), + ), ), ], ); @@ -116,18 +130,18 @@ class _BetaTimelineListTileState extends ConsumerState final gradientColors = [ Color.lerp( + context.primaryColor.withValues(alpha: 0.5), context.primaryColor.withValues(alpha: 0.3), - context.primaryColor.withValues(alpha: 0.1), _gradientAnimation.value, )!, Color.lerp( - context.primaryColor.withValues(alpha: 0.2), context.primaryColor.withValues(alpha: 0.4), + context.primaryColor.withValues(alpha: 0.6), _gradientAnimation.value, )!, Color.lerp( - context.primaryColor.withValues(alpha: 0.1), context.primaryColor.withValues(alpha: 0.3), + context.primaryColor.withValues(alpha: 0.5), _gradientAnimation.value, )!, ];