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:
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),
|
_authState.userEmail,
|
||||||
child: Text(
|
style: TextStyle(color: Colors.grey[800], fontSize: 12),
|
||||||
_authState.userEmail,
|
|
||||||
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,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,
|
||||||
|
@ -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),
|
||||||
|
@ -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,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)),
|
|
||||||
],
|
|
||||||
),
|
|
||||||
);
|
);
|
||||||
},
|
},
|
||||||
);
|
);
|
||||||
|
@ -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…
Reference in New Issue
Block a user