mirror of
				https://github.com/immich-app/immich.git
				synced 2025-10-31 02:39:03 -04:00 
			
		
		
		
	175 Fixed issue back button android return to login page (#193)
* Back button is no longer return to login page * Update to material 3 * Update to material 3 * Up version for deployment * Added F-droid changelog
This commit is contained in:
		
							parent
							
								
									b34de624ce
								
							
						
					
					
						commit
						a3b45d62b6
					
				| @ -0,0 +1,2 @@ | |||||||
|  | * Update to Material Design 3 | ||||||
|  | * Fixed back button navigation - no longer return back to the home page | ||||||
| @ -19,7 +19,7 @@ platform :ios do | |||||||
|   desc "iOS Beta" |   desc "iOS Beta" | ||||||
|   lane :beta do |   lane :beta do | ||||||
|     increment_version_number( |     increment_version_number( | ||||||
|       version_number: "1.10.0" |       version_number: "1.10.1" | ||||||
|     ) |     ) | ||||||
|     increment_build_number( |     increment_build_number( | ||||||
|       build_number: latest_testflight_build_number + 1, |       build_number: latest_testflight_build_number + 1, | ||||||
|  | |||||||
| @ -103,6 +103,7 @@ class _ImmichAppState extends ConsumerState<ImmichApp> with WidgetsBindingObserv | |||||||
|             title: 'Immich', |             title: 'Immich', | ||||||
|             debugShowCheckedModeBanner: false, |             debugShowCheckedModeBanner: false, | ||||||
|             theme: ThemeData( |             theme: ThemeData( | ||||||
|  |               useMaterial3: true, | ||||||
|               brightness: Brightness.light, |               brightness: Brightness.light, | ||||||
|               primarySwatch: Colors.indigo, |               primarySwatch: Colors.indigo, | ||||||
|               fontFamily: 'WorkSans', |               fontFamily: 'WorkSans', | ||||||
|  | |||||||
| @ -96,6 +96,12 @@ class BackupControllerPage extends HookConsumerWidget { | |||||||
|               Padding( |               Padding( | ||||||
|                 padding: const EdgeInsets.only(top: 8.0), |                 padding: const EdgeInsets.only(top: 8.0), | ||||||
|                 child: OutlinedButton( |                 child: OutlinedButton( | ||||||
|  |                   style: OutlinedButton.styleFrom( | ||||||
|  |                     side: const BorderSide( | ||||||
|  |                       width: 1, | ||||||
|  |                       color: Color.fromARGB(255, 220, 220, 220), | ||||||
|  |                     ), | ||||||
|  |                   ), | ||||||
|                   onPressed: () { |                   onPressed: () { | ||||||
|                     isAutoBackup |                     isAutoBackup | ||||||
|                         ? ref.watch(authenticationProvider.notifier).setAutoBackup(false) |                         ? ref.watch(authenticationProvider.notifier).setAutoBackup(false) | ||||||
| @ -191,6 +197,13 @@ class BackupControllerPage extends HookConsumerWidget { | |||||||
|             ), |             ), | ||||||
|           ), |           ), | ||||||
|           trailing: OutlinedButton( |           trailing: OutlinedButton( | ||||||
|  |             style: OutlinedButton.styleFrom( | ||||||
|  |               enableFeedback: true, | ||||||
|  |               side: const BorderSide( | ||||||
|  |                 width: 1, | ||||||
|  |                 color: Color.fromARGB(255, 220, 220, 220), | ||||||
|  |               ), | ||||||
|  |             ), | ||||||
|             onPressed: () { |             onPressed: () { | ||||||
|               AutoRouter.of(context).push(const BackupAlbumSelectionRoute()); |               AutoRouter.of(context).push(const BackupAlbumSelectionRoute()); | ||||||
|             }, |             }, | ||||||
| @ -278,13 +291,20 @@ class BackupControllerPage extends HookConsumerWidget { | |||||||
|               child: Container( |               child: Container( | ||||||
|                 child: backupState.backupProgress == BackUpProgressEnum.inProgress |                 child: backupState.backupProgress == BackUpProgressEnum.inProgress | ||||||
|                     ? ElevatedButton( |                     ? ElevatedButton( | ||||||
|                         style: ElevatedButton.styleFrom(primary: Colors.red[300]), |                         style: ElevatedButton.styleFrom( | ||||||
|  |                           primary: Colors.red[300], | ||||||
|  |                           onPrimary: Colors.grey[50], | ||||||
|  |                         ), | ||||||
|                         onPressed: () { |                         onPressed: () { | ||||||
|                           ref.read(backupProvider.notifier).cancelBackup(); |                           ref.read(backupProvider.notifier).cancelBackup(); | ||||||
|                         }, |                         }, | ||||||
|                         child: const Text("Cancel"), |                         child: const Text("Cancel"), | ||||||
|                       ) |                       ) | ||||||
|                     : ElevatedButton( |                     : ElevatedButton( | ||||||
|  |                         style: ElevatedButton.styleFrom( | ||||||
|  |                           primary: Theme.of(context).primaryColor, | ||||||
|  |                           onPrimary: Colors.grey[50], | ||||||
|  |                         ), | ||||||
|                         onPressed: shouldBackup |                         onPressed: shouldBackup | ||||||
|                             ? () { |                             ? () { | ||||||
|                                 ref.read(backupProvider.notifier).startBackupProcess(); |                                 ref.read(backupProvider.notifier).startBackupProcess(); | ||||||
|  | |||||||
| @ -109,7 +109,7 @@ class ImmichSliverAppBar extends ConsumerWidget { | |||||||
|                   ? const Icon(Icons.backup_rounded) |                   ? const Icon(Icons.backup_rounded) | ||||||
|                   : Badge( |                   : Badge( | ||||||
|                       padding: const EdgeInsets.all(4), |                       padding: const EdgeInsets.all(4), | ||||||
|                       elevation: 1, |                       elevation: 2, | ||||||
|                       position: BadgePosition.bottomEnd(bottom: -4, end: -4), |                       position: BadgePosition.bottomEnd(bottom: -4, end: -4), | ||||||
|                       badgeColor: Colors.white, |                       badgeColor: Colors.white, | ||||||
|                       badgeContent: const Icon( |                       badgeContent: const Icon( | ||||||
| @ -117,7 +117,6 @@ class ImmichSliverAppBar extends ConsumerWidget { | |||||||
|                         size: 8, |                         size: 8, | ||||||
|                       ), |                       ), | ||||||
|                       child: const Icon(Icons.backup_rounded)), |                       child: const Icon(Icons.backup_rounded)), | ||||||
|               tooltip: 'Backup Controller', |  | ||||||
|               onPressed: () async { |               onPressed: () async { | ||||||
|                 var onPop = await AutoRouter.of(context).push(const BackupControllerRoute()); |                 var onPop = await AutoRouter.of(context).push(const BackupControllerRoute()); | ||||||
| 
 | 
 | ||||||
|  | |||||||
| @ -153,7 +153,6 @@ class ProfileDrawer extends HookConsumerWidget { | |||||||
|                         ), |                         ), | ||||||
|                       ], |                       ], | ||||||
|                     ), |                     ), | ||||||
|                     const Padding(padding: EdgeInsets.all(8)), |  | ||||||
|                     Text( |                     Text( | ||||||
|                       "${_authState.firstName} ${_authState.lastName}", |                       "${_authState.firstName} ${_authState.lastName}", | ||||||
|                       style: TextStyle( |                       style: TextStyle( | ||||||
| @ -162,12 +161,9 @@ class ProfileDrawer extends HookConsumerWidget { | |||||||
|                         fontSize: 24, |                         fontSize: 24, | ||||||
|                       ), |                       ), | ||||||
|                     ), |                     ), | ||||||
|                     Padding( |                     Text( | ||||||
|                       padding: const EdgeInsets.only(top: 4.0), |  | ||||||
|                       child: Text( |  | ||||||
|                       _authState.userEmail, |                       _authState.userEmail, | ||||||
|                       style: TextStyle(color: Colors.grey[800], fontSize: 12), |                       style: TextStyle(color: Colors.grey[800], fontSize: 12), | ||||||
|                       ), |  | ||||||
|                     ) |                     ) | ||||||
|                   ], |                   ], | ||||||
|                 ), |                 ), | ||||||
|  | |||||||
| @ -153,9 +153,12 @@ class LoginButton extends ConsumerWidget { | |||||||
|   @override |   @override | ||||||
|   Widget build(BuildContext context, WidgetRef ref) { |   Widget build(BuildContext context, WidgetRef ref) { | ||||||
|     return ElevatedButton( |     return ElevatedButton( | ||||||
|         style: ButtonStyle( |         style: ElevatedButton.styleFrom( | ||||||
|           visualDensity: VisualDensity.standard, |           visualDensity: VisualDensity.standard, | ||||||
|           padding: MaterialStateProperty.all<EdgeInsets>(const EdgeInsets.symmetric(vertical: 10, horizontal: 25)), |           primary: Theme.of(context).primaryColor, | ||||||
|  |           onPrimary: Colors.grey[50], | ||||||
|  |           elevation: 2, | ||||||
|  |           padding: const EdgeInsets.symmetric(vertical: 10, horizontal: 25), | ||||||
|         ), |         ), | ||||||
|         onPressed: () async { |         onPressed: () async { | ||||||
|           // This will remove current cache asset state of previous user login. |           // This will remove current cache asset state of previous user login. | ||||||
|  | |||||||
| @ -79,15 +79,15 @@ class SearchResultPage extends HookConsumerWidget { | |||||||
|       return Chip( |       return Chip( | ||||||
|         label: Wrap( |         label: Wrap( | ||||||
|           spacing: 5, |           spacing: 5, | ||||||
|  |           runAlignment: WrapAlignment.center, | ||||||
|  |           crossAxisAlignment: WrapCrossAlignment.center, | ||||||
|  |           alignment: WrapAlignment.center, | ||||||
|           children: [ |           children: [ | ||||||
|             Padding( |             Text( | ||||||
|               padding: const EdgeInsets.only(top: 2.0), |  | ||||||
|               child: Text( |  | ||||||
|               currentSearchTerm.value, |               currentSearchTerm.value, | ||||||
|                 style: TextStyle(color: Theme.of(context).primaryColor), |               style: TextStyle(color: Theme.of(context).primaryColor, fontSize: 13, fontWeight: FontWeight.bold), | ||||||
|               maxLines: 1, |               maxLines: 1, | ||||||
|             ), |             ), | ||||||
|             ), |  | ||||||
|             Icon( |             Icon( | ||||||
|               Icons.close_rounded, |               Icons.close_rounded, | ||||||
|               color: Theme.of(context).primaryColor, |               color: Theme.of(context).primaryColor, | ||||||
|  | |||||||
| @ -13,15 +13,14 @@ class AlbumActionOutlinedButton extends StatelessWidget { | |||||||
|     return Padding( |     return Padding( | ||||||
|       padding: const EdgeInsets.only(right: 8.0), |       padding: const EdgeInsets.only(right: 8.0), | ||||||
|       child: OutlinedButton.icon( |       child: OutlinedButton.icon( | ||||||
|         style: ButtonStyle( |         style: OutlinedButton.styleFrom( | ||||||
|           padding: MaterialStateProperty.all<EdgeInsets>(const EdgeInsets.symmetric(vertical: 0, horizontal: 10)), |           padding: const EdgeInsets.symmetric(vertical: 0, horizontal: 10), | ||||||
|           shape: MaterialStateProperty.resolveWith<OutlinedBorder>( |           shape: RoundedRectangleBorder( | ||||||
|             (_) => RoundedRectangleBorder( |  | ||||||
|             borderRadius: BorderRadius.circular(25), |             borderRadius: BorderRadius.circular(25), | ||||||
|           ), |           ), | ||||||
|           ), |           side: const BorderSide( | ||||||
|           side: MaterialStateProperty.resolveWith<BorderSide>( |             width: 1, | ||||||
|             (_) => const BorderSide(width: 1, color: Color.fromARGB(255, 158, 158, 158)), |             color: Color.fromARGB(255, 215, 215, 215), | ||||||
|           ), |           ), | ||||||
|         ), |         ), | ||||||
|         icon: Icon(iconData, size: 15), |         icon: Icon(iconData, size: 15), | ||||||
|  | |||||||
| @ -82,11 +82,11 @@ class CreateSharedAlbumPage extends HookConsumerWidget { | |||||||
|           child: Padding( |           child: Padding( | ||||||
|             padding: const EdgeInsets.only(top: 16, left: 18, right: 18), |             padding: const EdgeInsets.only(top: 16, left: 18, right: 18), | ||||||
|             child: OutlinedButton.icon( |             child: OutlinedButton.icon( | ||||||
|               style: ButtonStyle( |               style: OutlinedButton.styleFrom( | ||||||
|                   alignment: Alignment.centerLeft, |                   alignment: Alignment.centerLeft, | ||||||
|                 padding: |                   padding: const EdgeInsets.symmetric(vertical: 22, horizontal: 16), | ||||||
|                     MaterialStateProperty.all<EdgeInsets>(const EdgeInsets.symmetric(vertical: 22, horizontal: 16)), |                   side: const BorderSide(color: Color.fromARGB(255, 206, 206, 206)), | ||||||
|               ), |                   shape: RoundedRectangleBorder(borderRadius: BorderRadius.circular(5))), | ||||||
|               onPressed: _onSelectPhotosButtonPressed, |               onPressed: _onSelectPhotosButtonPressed, | ||||||
|               icon: const Icon(Icons.add_rounded), |               icon: const Icon(Icons.add_rounded), | ||||||
|               label: Padding( |               label: Padding( | ||||||
|  | |||||||
| @ -19,7 +19,12 @@ class TabControllerPage extends ConsumerWidget { | |||||||
|       ], |       ], | ||||||
|       builder: (context, child, animation) { |       builder: (context, child, animation) { | ||||||
|         final tabsRouter = AutoTabsRouter.of(context); |         final tabsRouter = AutoTabsRouter.of(context); | ||||||
|         return Scaffold( |         return WillPopScope( | ||||||
|  |           onWillPop: () async { | ||||||
|  |             tabsRouter.setActiveIndex(0); | ||||||
|  |             return false; | ||||||
|  |           }, | ||||||
|  |           child: Scaffold( | ||||||
|             body: FadeTransition( |             body: FadeTransition( | ||||||
|               opacity: animation, |               opacity: animation, | ||||||
|               child: child, |               child: child, | ||||||
| @ -39,6 +44,7 @@ class TabControllerPage extends ConsumerWidget { | |||||||
|                       BottomNavigationBarItem(label: 'Sharing', icon: Icon(Icons.group_outlined)), |                       BottomNavigationBarItem(label: 'Sharing', icon: Icon(Icons.group_outlined)), | ||||||
|                     ], |                     ], | ||||||
|                   ), |                   ), | ||||||
|  |           ), | ||||||
|         ); |         ); | ||||||
|       }, |       }, | ||||||
|     ); |     ); | ||||||
|  | |||||||
| @ -2,7 +2,7 @@ name: immich_mobile | |||||||
| description: Immich - selfhosted backup media file on mobile phone | description: Immich - selfhosted backup media file on mobile phone | ||||||
| 
 | 
 | ||||||
| publish_to: "none" | publish_to: "none" | ||||||
| version: 1.10.0+15 | version: 1.10.1+16 | ||||||
| 
 | 
 | ||||||
| environment: | environment: | ||||||
|   sdk: ">=2.15.1 <3.0.0" |   sdk: ">=2.15.1 <3.0.0" | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user