diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 9217b8d68..6e688ef96 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -688,8 +688,8 @@ "settingsSectionViewer": "Viewer", "@settingsSectionViewer": {}, - "settingsImageBackground": "Image background", - "@settingsImageBackground": {}, + "settingsViewerShowOverlayOnOpening": "Show overlay on opening", + "@settingsViewerShowOverlayOnOpening": {}, "settingsViewerShowMinimap": "Show minimap", "@settingsViewerShowMinimap": {}, "settingsViewerShowInformation": "Show information", @@ -702,6 +702,8 @@ "@settingsViewerEnableOverlayBlurEffect": {}, "settingsViewerUseCutout": "Use cutout area", "@settingsViewerUseCutout": {}, + "settingsImageBackground": "Image background", + "@settingsImageBackground": {}, "settingsViewerQuickActionsTile": "Quick actions", "@settingsViewerQuickActionsTile": {}, diff --git a/lib/l10n/app_ko.arb b/lib/l10n/app_ko.arb index d35bb1b32..445f383be 100644 --- a/lib/l10n/app_ko.arb +++ b/lib/l10n/app_ko.arb @@ -330,13 +330,14 @@ "settingsCollectionSelectionQuickActionEditorBanner": "버튼을 길게 누른 후 이동하여 항목 선택할 때 표시될 버튼을 선택하세요.", "settingsSectionViewer": "뷰어", - "settingsImageBackground": "사진 배경", + "settingsViewerShowOverlayOnOpening": "열릴 때 오버레이 표시", "settingsViewerShowMinimap": "미니맵 표시", "settingsViewerShowInformation": "상세 정보 표시", "settingsViewerShowInformationSubtitle": "제목, 날짜, 장소 등 표시", "settingsViewerShowShootingDetails": "촬영 정보 표시", "settingsViewerEnableOverlayBlurEffect": "오버레이 흐림 효과", "settingsViewerUseCutout": "컷아웃 영역 사용", + "settingsImageBackground": "사진 배경", "settingsViewerQuickActionsTile": "빠른 작업", "settingsViewerQuickActionEditorTitle": "빠른 작업", diff --git a/lib/model/settings/defaults.dart b/lib/model/settings/defaults.dart index 4aaa597e4..9ebec1704 100644 --- a/lib/model/settings/defaults.dart +++ b/lib/model/settings/defaults.dart @@ -54,6 +54,7 @@ class SettingsDefaults { EntryAction.share, EntryAction.rotateScreen, ]; + static const showOverlayOnOpening = true; static const showOverlayMinimap = false; static const showOverlayInfo = true; static const showOverlayShootingDetails = false; diff --git a/lib/model/settings/settings.dart b/lib/model/settings/settings.dart index a5b72a7a6..128714ee1 100644 --- a/lib/model/settings/settings.dart +++ b/lib/model/settings/settings.dart @@ -73,6 +73,7 @@ class Settings extends ChangeNotifier { // viewer static const viewerQuickActionsKey = 'viewer_quick_actions'; + static const showOverlayOnOpeningKey = 'show_overlay_on_opening'; static const showOverlayMinimapKey = 'show_overlay_minimap'; static const showOverlayInfoKey = 'show_overlay_info'; static const showOverlayShootingDetailsKey = 'show_overlay_shooting_details'; @@ -296,6 +297,10 @@ class Settings extends ChangeNotifier { set viewerQuickActions(List newValue) => setAndNotify(viewerQuickActionsKey, newValue.map((v) => v.toString()).toList()); + bool get showOverlayOnOpening => getBoolOrDefault(showOverlayOnOpeningKey, SettingsDefaults.showOverlayOnOpening); + + set showOverlayOnOpening(bool newValue) => setAndNotify(showOverlayOnOpeningKey, newValue); + bool get showOverlayMinimap => getBoolOrDefault(showOverlayMinimapKey, SettingsDefaults.showOverlayMinimap); set showOverlayMinimap(bool newValue) => setAndNotify(showOverlayMinimapKey, newValue); @@ -540,6 +545,7 @@ class Settings extends ChangeNotifier { case showThumbnailMotionPhotoKey: case showThumbnailRawKey: case showThumbnailVideoDurationKey: + case showOverlayOnOpeningKey: case showOverlayMinimapKey: case showOverlayInfoKey: case showOverlayShootingDetailsKey: diff --git a/lib/widgets/settings/viewer/viewer.dart b/lib/widgets/settings/viewer/viewer.dart index 85269abb4..e06bb572b 100644 --- a/lib/widgets/settings/viewer/viewer.dart +++ b/lib/widgets/settings/viewer/viewer.dart @@ -32,6 +32,14 @@ class ViewerSection extends StatelessWidget { showHighlight: false, children: [ const ViewerActionsTile(), + Selector( + selector: (context, s) => s.showOverlayOnOpening, + builder: (context, current, child) => SwitchListTile( + value: current, + onChanged: (v) => settings.showOverlayOnOpening = v, + title: Text(context.l10n.settingsViewerShowOverlayOnOpening), + ), + ), Selector( selector: (context, s) => s.showOverlayMinimap, builder: (context, current, child) => SwitchListTile( diff --git a/lib/widgets/viewer/entry_viewer_stack.dart b/lib/widgets/viewer/entry_viewer_stack.dart index 85334e619..43f8843c3 100644 --- a/lib/widgets/viewer/entry_viewer_stack.dart +++ b/lib/widgets/viewer/entry_viewer_stack.dart @@ -118,6 +118,7 @@ class _EntryViewerStackState extends State with FeedbackMixin, parent: _overlayAnimationController, curve: Curves.easeOutQuad, )); + _overlayVisible.value = settings.showOverlayOnOpening; _overlayVisible.addListener(_onOverlayVisibleChange); _videoActionDelegate = VideoActionDelegate( collection: collection,