1
0
mirror of https://github.com/immich-app/immich.git synced 2025-01-11 06:10:28 +02: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:
Alex 2022-05-29 17:32:30 -05:00 committed by GitHub
parent b34de624ce
commit a3b45d62b6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 79 additions and 53 deletions

View File

@ -0,0 +1,2 @@
* Update to Material Design 3
* Fixed back button navigation - no longer return back to the home page

View File

@ -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,

View File

@ -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',

View File

@ -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();

View File

@ -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());

View File

@ -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), _authState.userEmail,
child: Text( style: TextStyle(color: Colors.grey[800], fontSize: 12),
_authState.userEmail,
style: TextStyle(color: Colors.grey[800], fontSize: 12),
),
) )
], ],
), ),

View File

@ -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.

View File

@ -79,14 +79,14 @@ 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), currentSearchTerm.value,
child: Text( style: TextStyle(color: Theme.of(context).primaryColor, fontSize: 13, fontWeight: FontWeight.bold),
currentSearchTerm.value, maxLines: 1,
style: TextStyle(color: Theme.of(context).primaryColor),
maxLines: 1,
),
), ),
Icon( Icon(
Icons.close_rounded, Icons.close_rounded,

View File

@ -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: MaterialStateProperty.resolveWith<BorderSide>( side: const BorderSide(
(_) => const BorderSide(width: 1, color: Color.fromARGB(255, 158, 158, 158)), width: 1,
color: Color.fromARGB(255, 215, 215, 215),
), ),
), ),
icon: Icon(iconData, size: 15), icon: Icon(iconData, size: 15),

View File

@ -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(

View File

@ -19,26 +19,32 @@ 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(
body: FadeTransition( onWillPop: () async {
opacity: animation, tabsRouter.setActiveIndex(0);
child: child, return false;
},
child: Scaffold(
body: FadeTransition(
opacity: animation,
child: child,
),
bottomNavigationBar: isMultiSelectEnable
? null
: BottomNavigationBar(
selectedLabelStyle: const TextStyle(fontSize: 15, fontWeight: FontWeight.w600),
unselectedLabelStyle: const TextStyle(fontSize: 15, fontWeight: FontWeight.w600),
currentIndex: tabsRouter.activeIndex,
onTap: (index) {
tabsRouter.setActiveIndex(index);
},
items: const [
BottomNavigationBarItem(label: 'Photos', icon: Icon(Icons.photo)),
BottomNavigationBarItem(label: 'Search', icon: Icon(Icons.search)),
BottomNavigationBarItem(label: 'Sharing', icon: Icon(Icons.group_outlined)),
],
),
), ),
bottomNavigationBar: isMultiSelectEnable
? null
: BottomNavigationBar(
selectedLabelStyle: const TextStyle(fontSize: 15, fontWeight: FontWeight.w600),
unselectedLabelStyle: const TextStyle(fontSize: 15, fontWeight: FontWeight.w600),
currentIndex: tabsRouter.activeIndex,
onTap: (index) {
tabsRouter.setActiveIndex(index);
},
items: const [
BottomNavigationBarItem(label: 'Photos', icon: Icon(Icons.photo)),
BottomNavigationBarItem(label: 'Search', icon: Icon(Icons.search)),
BottomNavigationBarItem(label: 'Sharing', icon: Icon(Icons.group_outlined)),
],
),
); );
}, },
); );

View File

@ -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"