mirror of
https://github.com/immich-app/immich.git
synced 2025-07-31 15:08:44 -04:00
fix: add beta toggle in landscape mode (#20187)
Co-authored-by: shenlong-tanwen <139912620+shalong-tanwen@users.noreply.github.com>
This commit is contained in:
parent
ad65e9011a
commit
b4780e89af
@ -2,21 +2,27 @@ import 'package:auto_route/auto_route.dart';
|
|||||||
import 'package:easy_localization/easy_localization.dart';
|
import 'package:easy_localization/easy_localization.dart';
|
||||||
import 'package:flutter/material.dart';
|
import 'package:flutter/material.dart';
|
||||||
import 'package:flutter_hooks/flutter_hooks.dart' hide Store;
|
import 'package:flutter_hooks/flutter_hooks.dart' hide Store;
|
||||||
|
import 'package:immich_mobile/entities/store.entity.dart';
|
||||||
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
import 'package:immich_mobile/extensions/build_context_extensions.dart';
|
||||||
import 'package:immich_mobile/routing/router.dart';
|
import 'package:immich_mobile/routing/router.dart';
|
||||||
import 'package:immich_mobile/widgets/settings/advanced_settings.dart';
|
import 'package:immich_mobile/widgets/settings/advanced_settings.dart';
|
||||||
import 'package:immich_mobile/widgets/settings/asset_list_settings/asset_list_settings.dart';
|
import 'package:immich_mobile/widgets/settings/asset_list_settings/asset_list_settings.dart';
|
||||||
import 'package:immich_mobile/widgets/settings/asset_viewer_settings/asset_viewer_settings.dart';
|
import 'package:immich_mobile/widgets/settings/asset_viewer_settings/asset_viewer_settings.dart';
|
||||||
import 'package:immich_mobile/widgets/settings/backup_settings/backup_settings.dart';
|
import 'package:immich_mobile/widgets/settings/backup_settings/backup_settings.dart';
|
||||||
|
import 'package:immich_mobile/widgets/settings/beta_sync_settings/beta_sync_settings.dart';
|
||||||
import 'package:immich_mobile/widgets/settings/beta_timeline_list_tile.dart';
|
import 'package:immich_mobile/widgets/settings/beta_timeline_list_tile.dart';
|
||||||
import 'package:immich_mobile/widgets/settings/language_settings.dart';
|
import 'package:immich_mobile/widgets/settings/language_settings.dart';
|
||||||
import 'package:immich_mobile/widgets/settings/networking_settings/networking_settings.dart';
|
import 'package:immich_mobile/widgets/settings/networking_settings/networking_settings.dart';
|
||||||
import 'package:immich_mobile/widgets/settings/notification_setting.dart';
|
import 'package:immich_mobile/widgets/settings/notification_setting.dart';
|
||||||
import 'package:immich_mobile/widgets/settings/preference_settings/preference_setting.dart';
|
import 'package:immich_mobile/widgets/settings/preference_settings/preference_setting.dart';
|
||||||
import 'package:immich_mobile/entities/store.entity.dart';
|
|
||||||
import 'package:immich_mobile/widgets/settings/settings_card.dart';
|
import 'package:immich_mobile/widgets/settings/settings_card.dart';
|
||||||
|
|
||||||
enum SettingSection {
|
enum SettingSection {
|
||||||
|
beta(
|
||||||
|
'beta_sync',
|
||||||
|
Icons.sync_outlined,
|
||||||
|
"beta_sync_subtitle",
|
||||||
|
),
|
||||||
advanced(
|
advanced(
|
||||||
'advanced',
|
'advanced',
|
||||||
Icons.build_outlined,
|
Icons.build_outlined,
|
||||||
@ -63,6 +69,7 @@ enum SettingSection {
|
|||||||
final IconData icon;
|
final IconData icon;
|
||||||
|
|
||||||
Widget get widget => switch (this) {
|
Widget get widget => switch (this) {
|
||||||
|
SettingSection.beta => const _BetaLandscapeToggle(),
|
||||||
SettingSection.advanced => const AdvancedSettings(),
|
SettingSection.advanced => const AdvancedSettings(),
|
||||||
SettingSection.assetViewer => const AssetViewerSettings(),
|
SettingSection.assetViewer => const AssetViewerSettings(),
|
||||||
SettingSection.backup => const BackupSettings(),
|
SettingSection.backup => const BackupSettings(),
|
||||||
@ -98,19 +105,9 @@ class _MobileLayout extends StatelessWidget {
|
|||||||
@override
|
@override
|
||||||
Widget build(BuildContext context) {
|
Widget build(BuildContext context) {
|
||||||
final List<Widget> settings = SettingSection.values
|
final List<Widget> settings = SettingSection.values
|
||||||
.map(
|
.expand(
|
||||||
(setting) => SettingsCard(
|
(setting) => setting == SettingSection.beta
|
||||||
title: setting.title.tr(),
|
? [
|
||||||
subtitle: setting.subtitle.tr(),
|
|
||||||
icon: setting.icon,
|
|
||||||
settingRoute: SettingsSubRoute(section: setting),
|
|
||||||
),
|
|
||||||
)
|
|
||||||
.toList();
|
|
||||||
return ListView(
|
|
||||||
physics: const ClampingScrollPhysics(),
|
|
||||||
padding: const EdgeInsets.only(top: 10.0, bottom: 56),
|
|
||||||
children: [
|
|
||||||
const BetaTimelineListTile(),
|
const BetaTimelineListTile(),
|
||||||
if (Store.isBetaTimelineEnabled)
|
if (Store.isBetaTimelineEnabled)
|
||||||
SettingsCard(
|
SettingsCard(
|
||||||
@ -119,8 +116,21 @@ class _MobileLayout extends StatelessWidget {
|
|||||||
subtitle: 'beta_sync_subtitle'.tr(),
|
subtitle: 'beta_sync_subtitle'.tr(),
|
||||||
settingRoute: const BetaSyncSettingsRoute(),
|
settingRoute: const BetaSyncSettingsRoute(),
|
||||||
),
|
),
|
||||||
...settings,
|
]
|
||||||
|
: [
|
||||||
|
SettingsCard(
|
||||||
|
title: setting.title.tr(),
|
||||||
|
subtitle: setting.subtitle.tr(),
|
||||||
|
icon: setting.icon,
|
||||||
|
settingRoute: SettingsSubRoute(section: setting),
|
||||||
|
),
|
||||||
],
|
],
|
||||||
|
)
|
||||||
|
.toList();
|
||||||
|
return ListView(
|
||||||
|
physics: const ClampingScrollPhysics(),
|
||||||
|
padding: const EdgeInsets.only(top: 10.0, bottom: 56),
|
||||||
|
children: [...settings],
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -137,8 +147,8 @@ class _TabletLayout extends HookWidget {
|
|||||||
Expanded(
|
Expanded(
|
||||||
flex: 2,
|
flex: 2,
|
||||||
child: CustomScrollView(
|
child: CustomScrollView(
|
||||||
slivers: SettingSection.values
|
slivers: [
|
||||||
.map(
|
...SettingSection.values.map(
|
||||||
(s) => SliverToBoxAdapter(
|
(s) => SliverToBoxAdapter(
|
||||||
child: ListTile(
|
child: ListTile(
|
||||||
title: Text(s.title).tr(),
|
title: Text(s.title).tr(),
|
||||||
@ -149,8 +159,8 @@ class _TabletLayout extends HookWidget {
|
|||||||
onTap: () => selectedSection.value = s,
|
onTap: () => selectedSection.value = s,
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
)
|
),
|
||||||
.toList(),
|
],
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
const VerticalDivider(width: 1),
|
const VerticalDivider(width: 1),
|
||||||
@ -163,6 +173,22 @@ class _TabletLayout extends HookWidget {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
class _BetaLandscapeToggle extends HookWidget {
|
||||||
|
const _BetaLandscapeToggle();
|
||||||
|
|
||||||
|
@override
|
||||||
|
Widget build(BuildContext context) {
|
||||||
|
return Column(
|
||||||
|
mainAxisAlignment: MainAxisAlignment.start,
|
||||||
|
children: [
|
||||||
|
const SizedBox(height: 100, child: BetaTimelineListTile()),
|
||||||
|
if (Store.isBetaTimelineEnabled)
|
||||||
|
const Expanded(child: BetaSyncSettings()),
|
||||||
|
],
|
||||||
|
);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@RoutePage()
|
@RoutePage()
|
||||||
class SettingsSubPage extends StatelessWidget {
|
class SettingsSubPage extends StatelessWidget {
|
||||||
const SettingsSubPage(this.section, {super.key});
|
const SettingsSubPage(this.section, {super.key});
|
||||||
|
Loading…
x
Reference in New Issue
Block a user