Move memories settings to General > Memories
This commit is contained in:
@@ -1,19 +1,12 @@
|
||||
import "dart:async";
|
||||
|
||||
import "package:flutter/material.dart";
|
||||
import "package:photos/core/event_bus.dart";
|
||||
import "package:photos/events/hide_shared_items_from_home_gallery_event.dart";
|
||||
import "package:photos/events/memories_changed_event.dart";
|
||||
import "package:photos/generated/l10n.dart";
|
||||
import "package:photos/service_locator.dart";
|
||||
import "package:photos/services/memory_home_widget_service.dart";
|
||||
import "package:photos/theme/ente_theme.dart";
|
||||
import "package:photos/ui/components/buttons/icon_button_widget.dart";
|
||||
import "package:photos/ui/components/captioned_text_widget.dart";
|
||||
import "package:photos/ui/components/menu_item_widget/menu_item_widget.dart";
|
||||
import "package:photos/ui/components/title_bar_title_widget.dart";
|
||||
import "package:photos/ui/components/title_bar_widget.dart";
|
||||
import "package:photos/ui/components/toggle_switch_widget.dart";
|
||||
import "package:photos/ui/viewer/gallery/component/group/type.dart";
|
||||
import "package:photos/ui/viewer/gallery/gallery_group_type_picker_page.dart";
|
||||
import "package:photos/ui/viewer/gallery/photo_grid_size_picker_page.dart";
|
||||
@@ -130,82 +123,6 @@ class _GallerySettingsScreenState extends State<GallerySettingsScreen> {
|
||||
isGestureDetectorDisabled: true,
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 24,
|
||||
),
|
||||
MenuItemWidget(
|
||||
captionedTextWidget: CaptionedTextWidget(
|
||||
title: S.of(context).showMemories,
|
||||
),
|
||||
menuItemColor: colorScheme.fillFaint,
|
||||
singleBorderRadius: 8,
|
||||
alignCaptionedTextToLeft: true,
|
||||
trailingWidget: ToggleSwitchWidget(
|
||||
value: () => memoriesCacheService.showAnyMemories,
|
||||
onChanged: () async {
|
||||
await memoriesCacheService.setShowAnyMemories(
|
||||
!memoriesCacheService.showAnyMemories,
|
||||
);
|
||||
if (!memoriesCacheService.showAnyMemories) {
|
||||
unawaited(
|
||||
MemoryHomeWidgetService.instance.clearWidget(),
|
||||
);
|
||||
}
|
||||
setState(() {});
|
||||
},
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 24,
|
||||
),
|
||||
memoriesCacheService.curatedMemoriesOption
|
||||
? MenuItemWidget(
|
||||
captionedTextWidget: CaptionedTextWidget(
|
||||
title: S.of(context).curatedMemories,
|
||||
),
|
||||
menuItemColor: colorScheme.fillFaint,
|
||||
singleBorderRadius: 8,
|
||||
alignCaptionedTextToLeft: true,
|
||||
trailingWidget: ToggleSwitchWidget(
|
||||
value: () =>
|
||||
localSettings.isSmartMemoriesEnabled,
|
||||
onChanged: () async {
|
||||
unawaited(_toggleUpdateMemories());
|
||||
},
|
||||
),
|
||||
)
|
||||
: const SizedBox(),
|
||||
memoriesCacheService.curatedMemoriesOption
|
||||
? const SizedBox(
|
||||
height: 24,
|
||||
)
|
||||
: const SizedBox(),
|
||||
MenuItemWidget(
|
||||
captionedTextWidget: CaptionedTextWidget(
|
||||
title: S.of(context).hideSharedItemsFromHomeGallery,
|
||||
),
|
||||
menuItemColor: colorScheme.fillFaint,
|
||||
singleBorderRadius: 8,
|
||||
alignCaptionedTextToLeft: true,
|
||||
trailingWidget: ToggleSwitchWidget(
|
||||
value: () =>
|
||||
localSettings.hideSharedItemsFromHomeGallery,
|
||||
onChanged: () async {
|
||||
final prevSetting =
|
||||
localSettings.hideSharedItemsFromHomeGallery;
|
||||
await localSettings
|
||||
.setHideSharedItemsFromHomeGallery(
|
||||
!prevSetting,
|
||||
);
|
||||
|
||||
Bus.instance.fire(
|
||||
HideSharedItemsFromHomeGalleryEvent(
|
||||
!prevSetting,
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
@@ -218,14 +135,3 @@ class _GallerySettingsScreenState extends State<GallerySettingsScreen> {
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _toggleUpdateMemories() async {
|
||||
await localSettings.setSmartMemories(
|
||||
!localSettings.isSmartMemoriesEnabled,
|
||||
);
|
||||
await memoriesCacheService.clearMemoriesCache(
|
||||
fromDisk: false,
|
||||
);
|
||||
await memoriesCacheService.getMemories();
|
||||
Bus.instance.fire(MemoriesChangedEvent());
|
||||
}
|
||||
|
||||
@@ -15,6 +15,7 @@ import 'package:photos/ui/settings/advanced_settings_screen.dart';
|
||||
import 'package:photos/ui/settings/common_settings.dart';
|
||||
import "package:photos/ui/settings/gallery_settings_screen.dart";
|
||||
import "package:photos/ui/settings/language_picker.dart";
|
||||
import "package:photos/ui/settings/memories_settings_screen.dart";
|
||||
import "package:photos/ui/settings/notification_settings_screen.dart";
|
||||
import "package:photos/ui/settings/widget_settings_screen.dart";
|
||||
import 'package:photos/utils/navigation_util.dart';
|
||||
@@ -47,6 +48,18 @@ class GeneralSectionWidget extends StatelessWidget {
|
||||
},
|
||||
),
|
||||
sectionOptionSpacing,
|
||||
MenuItemWidget(
|
||||
captionedTextWidget: CaptionedTextWidget(
|
||||
title: S.of(context).memories,
|
||||
),
|
||||
pressedColor: getEnteColorScheme(context).fillFaint,
|
||||
trailingIcon: Icons.chevron_right_outlined,
|
||||
trailingIconIsMuted: true,
|
||||
onTap: () async {
|
||||
_onMemoriesSettingsTapped(context);
|
||||
},
|
||||
),
|
||||
sectionOptionSpacing,
|
||||
MenuItemWidget(
|
||||
captionedTextWidget: CaptionedTextWidget(
|
||||
title: S.of(context).referrals,
|
||||
@@ -175,4 +188,11 @@ class GeneralSectionWidget extends StatelessWidget {
|
||||
),
|
||||
);
|
||||
}
|
||||
|
||||
void _onMemoriesSettingsTapped(BuildContext context) {
|
||||
routeToPage(
|
||||
context,
|
||||
const MemoriesSettingsScreen(),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
154
mobile/apps/photos/lib/ui/settings/memories_settings_screen.dart
Normal file
154
mobile/apps/photos/lib/ui/settings/memories_settings_screen.dart
Normal file
@@ -0,0 +1,154 @@
|
||||
import "dart:async";
|
||||
|
||||
import "package:flutter/material.dart";
|
||||
import "package:photos/core/event_bus.dart";
|
||||
import "package:photos/events/hide_shared_items_from_home_gallery_event.dart";
|
||||
import "package:photos/events/memories_changed_event.dart";
|
||||
import "package:photos/generated/l10n.dart";
|
||||
import "package:photos/service_locator.dart";
|
||||
import "package:photos/services/memory_home_widget_service.dart";
|
||||
import "package:photos/theme/ente_theme.dart";
|
||||
import "package:photos/ui/components/buttons/icon_button_widget.dart";
|
||||
import "package:photos/ui/components/captioned_text_widget.dart";
|
||||
import "package:photos/ui/components/menu_item_widget/menu_item_widget.dart";
|
||||
import "package:photos/ui/components/title_bar_title_widget.dart";
|
||||
import "package:photos/ui/components/title_bar_widget.dart";
|
||||
import "package:photos/ui/components/toggle_switch_widget.dart";
|
||||
|
||||
class MemoriesSettingsScreen extends StatefulWidget {
|
||||
const MemoriesSettingsScreen({
|
||||
super.key,
|
||||
});
|
||||
|
||||
@override
|
||||
State<MemoriesSettingsScreen> createState() => _MemoriesSettingsScreenState();
|
||||
}
|
||||
|
||||
class _MemoriesSettingsScreenState extends State<MemoriesSettingsScreen> {
|
||||
@override
|
||||
Widget build(BuildContext context) {
|
||||
final colorScheme = getEnteColorScheme(context);
|
||||
return Scaffold(
|
||||
body: CustomScrollView(
|
||||
primary: false,
|
||||
slivers: <Widget>[
|
||||
TitleBarWidget(
|
||||
flexibleSpaceTitle: TitleBarTitleWidget(
|
||||
title: S.of(context).memories,
|
||||
),
|
||||
actionIcons: [
|
||||
IconButtonWidget(
|
||||
icon: Icons.close_outlined,
|
||||
iconButtonType: IconButtonType.secondary,
|
||||
onTap: () {
|
||||
Navigator.pop(context);
|
||||
Navigator.pop(context);
|
||||
},
|
||||
),
|
||||
],
|
||||
),
|
||||
SliverList(
|
||||
delegate: SliverChildBuilderDelegate(
|
||||
(delegateBuildContext, index) {
|
||||
return Padding(
|
||||
padding:
|
||||
const EdgeInsets.symmetric(horizontal: 16, vertical: 20),
|
||||
child: Column(
|
||||
mainAxisSize: MainAxisSize.min,
|
||||
children: [
|
||||
MenuItemWidget(
|
||||
captionedTextWidget: CaptionedTextWidget(
|
||||
title: S.of(context).showMemories,
|
||||
),
|
||||
menuItemColor: colorScheme.fillFaint,
|
||||
singleBorderRadius: 8,
|
||||
alignCaptionedTextToLeft: true,
|
||||
trailingWidget: ToggleSwitchWidget(
|
||||
value: () => memoriesCacheService.showAnyMemories,
|
||||
onChanged: () async {
|
||||
await memoriesCacheService.setShowAnyMemories(
|
||||
!memoriesCacheService.showAnyMemories,
|
||||
);
|
||||
if (!memoriesCacheService.showAnyMemories) {
|
||||
unawaited(
|
||||
MemoryHomeWidgetService.instance.clearWidget(),
|
||||
);
|
||||
}
|
||||
setState(() {});
|
||||
},
|
||||
),
|
||||
),
|
||||
const SizedBox(
|
||||
height: 24,
|
||||
),
|
||||
memoriesCacheService.curatedMemoriesOption
|
||||
? MenuItemWidget(
|
||||
captionedTextWidget: CaptionedTextWidget(
|
||||
title: S.of(context).curatedMemories,
|
||||
),
|
||||
menuItemColor: colorScheme.fillFaint,
|
||||
singleBorderRadius: 8,
|
||||
alignCaptionedTextToLeft: true,
|
||||
trailingWidget: ToggleSwitchWidget(
|
||||
value: () =>
|
||||
localSettings.isSmartMemoriesEnabled,
|
||||
onChanged: () async {
|
||||
unawaited(_toggleUpdateMemories());
|
||||
},
|
||||
),
|
||||
)
|
||||
: const SizedBox(),
|
||||
memoriesCacheService.curatedMemoriesOption
|
||||
? const SizedBox(
|
||||
height: 24,
|
||||
)
|
||||
: const SizedBox(),
|
||||
MenuItemWidget(
|
||||
captionedTextWidget: CaptionedTextWidget(
|
||||
title: S.of(context).hideSharedItemsFromHomeGallery,
|
||||
),
|
||||
menuItemColor: colorScheme.fillFaint,
|
||||
singleBorderRadius: 8,
|
||||
alignCaptionedTextToLeft: true,
|
||||
trailingWidget: ToggleSwitchWidget(
|
||||
value: () =>
|
||||
localSettings.hideSharedItemsFromHomeGallery,
|
||||
onChanged: () async {
|
||||
final prevSetting =
|
||||
localSettings.hideSharedItemsFromHomeGallery;
|
||||
await localSettings
|
||||
.setHideSharedItemsFromHomeGallery(
|
||||
!prevSetting,
|
||||
);
|
||||
|
||||
Bus.instance.fire(
|
||||
HideSharedItemsFromHomeGalleryEvent(
|
||||
!prevSetting,
|
||||
),
|
||||
);
|
||||
},
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
},
|
||||
childCount: 1,
|
||||
),
|
||||
),
|
||||
],
|
||||
),
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
Future<void> _toggleUpdateMemories() async {
|
||||
await localSettings.setSmartMemories(
|
||||
!localSettings.isSmartMemoriesEnabled,
|
||||
);
|
||||
await memoriesCacheService.clearMemoriesCache(
|
||||
fromDisk: false,
|
||||
);
|
||||
await memoriesCacheService.getMemories();
|
||||
Bus.instance.fire(MemoriesChangedEvent());
|
||||
}
|
||||
Reference in New Issue
Block a user