diff --git a/CHANGELOG.md b/CHANGELOG.md
index 42707db56..3bda00713 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -4,6 +4,13 @@ All notable changes to this project will be documented in this file.
## [Unreleased]
+## [v1.10.9] - 2024-04-14
+
+### Fixed
+
+- rendering of SVG with viewbox offset
+- superfluous media store reinitialization when relaunching app from launcher
+
## [v1.10.8] - 2024-04-01
### Added
diff --git a/android/app/build.gradle b/android/app/build.gradle
index be1a68f29..0a8fc0e2e 100644
--- a/android/app/build.gradle
+++ b/android/app/build.gradle
@@ -47,7 +47,7 @@ android {
namespace 'deckers.thibault.aves'
compileSdk 34
// cf https://developer.android.com/studio/projects/install-ndk#default-ndk-per-agp
- ndkVersion '25.1.8937393'
+ ndkVersion '26.1.10909125'
compileOptions {
sourceCompatibility JavaVersion.VERSION_17
diff --git a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/fetchers/SvgRegionFetcher.kt b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/fetchers/SvgRegionFetcher.kt
index 2c18d004a..32eaf7e25 100644
--- a/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/fetchers/SvgRegionFetcher.kt
+++ b/android/app/src/main/kotlin/deckers/thibault/aves/channel/calls/fetchers/SvgRegionFetcher.kt
@@ -82,6 +82,7 @@ class SvgRegionFetcher internal constructor(
(regionRect.right + bleedX) / xf,
(regionRect.bottom + bleedY) / yf,
)
+ effectiveRect.offset(viewBox.left, viewBox.top)
val renderOptions = RenderOptions()
renderOptions.viewBox(effectiveRect.left, effectiveRect.top, effectiveRect.width(), effectiveRect.height())
diff --git a/android/app/src/main/res/values-zh/strings.xml b/android/app/src/main/res/values-zh/strings.xml
index 41f8c9b45..a83bd3e49 100644
--- a/android/app/src/main/res/values-zh/strings.xml
+++ b/android/app/src/main/res/values-zh/strings.xml
@@ -6,7 +6,7 @@
搜索
视频
媒体扫描
- 正在扫描媒体库
+ 正在扫描媒体
停止
安全模式
\ No newline at end of file
diff --git a/android/build.gradle b/android/build.gradle
index 903fd8be0..814e9fc98 100644
--- a/android/build.gradle
+++ b/android/build.gradle
@@ -1,6 +1,6 @@
buildscript {
ext {
- agp_version = '8.3.1' // same as `settings.ext.agp_version` in `/android/settings.gradle`
+ agp_version = '8.4.0-rc02' // same as `settings.ext.agp_version` in `/android/settings.gradle`
glide_version = '4.16.0'
// AppGallery Connect plugin versions: https://developer.huawei.com/consumer/en/doc/development/AppGallery-connect-Guides/agc-sdk-changenotes-0000001058732550
huawei_agconnect_version = '1.9.1.300'
diff --git a/android/settings.gradle b/android/settings.gradle
index 16f0b45bc..fe6428dc3 100644
--- a/android/settings.gradle
+++ b/android/settings.gradle
@@ -10,7 +10,7 @@ pluginManagement {
settings.ext.kotlin_version = '1.9.21'
settings.ext.ksp_version = "$kotlin_version-1.0.15"
- settings.ext.agp_version = '8.3.1'
+ settings.ext.agp_version = '8.4.0-rc02'
includeBuild("${settings.ext.flutterSdkPath}/packages/flutter_tools/gradle")
diff --git a/fastlane/metadata/android/en-US/changelogs/118.txt b/fastlane/metadata/android/en-US/changelogs/118.txt
new file mode 100644
index 000000000..7e6274add
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/118.txt
@@ -0,0 +1,4 @@
+In v1.10.9:
+- rename in bulk using tags
+- repeat a section section section of a video
+Full changelog available on GitHub
\ No newline at end of file
diff --git a/fastlane/metadata/android/en-US/changelogs/11801.txt b/fastlane/metadata/android/en-US/changelogs/11801.txt
new file mode 100644
index 000000000..7e6274add
--- /dev/null
+++ b/fastlane/metadata/android/en-US/changelogs/11801.txt
@@ -0,0 +1,4 @@
+In v1.10.9:
+- rename in bulk using tags
+- repeat a section section section of a video
+Full changelog available on GitHub
\ No newline at end of file
diff --git a/fastlane/metadata/android/ko/full_description.txt b/fastlane/metadata/android/ko/full_description.txt
index 6b96ec3ea..4773b06bc 100644
--- a/fastlane/metadata/android/ko/full_description.txt
+++ b/fastlane/metadata/android/ko/full_description.txt
@@ -1,5 +1,5 @@
-Aves can handle all sorts of images and videos, including your typical JPEGs and MP4s, but also more exotic things like multi-page TIFFs, SVGs, old AVIs and more! It scans your media collection to identify motion photos, panoramas (aka photo spheres), 360° videos, as well as GeoTIFF files.
+Aves는 일반적인 JPEG 및 MP4를 포함한 모든 종류의 사진과 비디오를 처리할 수 있지만, 다중 페이지 TIFF, SVG, 오래된 AVI 등과 같은 보다 이국적인 것도 처리할 수 있습니다! 미디어 컬렉션을 스캔하여 모션 사진, 파노라마, 360° 비디오 및 GeoTIFF 파일을 식별합니다.
-Navigation and search is an important part of Aves. The goal is for users to easily flow from albums to photos to tags to maps, etc.
+네비게이션과 검색은 Aves의 중요한 부분입니다. 사용자가 앨범에서 사진, 태그에서 지도 등으로 쉽게 흘러갈 수 있도록 하는 것이 목표입니다.
-Aves integrates with Android (from KitKat to Android 14, including Android TV) with features such as widgets, app shortcuts, screen saver and global search handling. It also works as a media viewer and picker.
+Aves는 Android(KitKat에서 Android 14까지)에서 사용할 수 있습니다. 앱 바로 가기 및 글로벌 검색과 같은 기능과 통합됩니다. 또한 미디어 뷰어 및 선택기로도 작동합니다.
diff --git a/fastlane/metadata/android/ko/short_description.txt b/fastlane/metadata/android/ko/short_description.txt
index 8c9445bd5..f52d03c2f 100644
--- a/fastlane/metadata/android/ko/short_description.txt
+++ b/fastlane/metadata/android/ko/short_description.txt
@@ -1 +1 @@
-Gallery and metadata explorer
\ No newline at end of file
+갤러리 및 메타데이터 탐색기
\ No newline at end of file
diff --git a/lib/app_mode.dart b/lib/app_mode.dart
index 8135170b4..478afd8b9 100644
--- a/lib/app_mode.dart
+++ b/lib/app_mode.dart
@@ -3,7 +3,8 @@ enum AppMode {
pickCollectionFiltersExternal,
pickSingleMediaExternal,
pickMultipleMediaExternal,
- pickMediaInternal,
+ pickFilteredMediaInternal,
+ pickUnfilteredMediaInternal,
pickFilterInternal,
screenSaver,
setWallpaper,
@@ -40,6 +41,7 @@ extension ExtraAppMode on AppMode {
bool get isPickingMedia => {
AppMode.pickSingleMediaExternal,
AppMode.pickMultipleMediaExternal,
- AppMode.pickMediaInternal,
+ AppMode.pickFilteredMediaInternal,
+ AppMode.pickUnfilteredMediaInternal,
}.contains(this);
}
diff --git a/lib/l10n/app_hu.arb b/lib/l10n/app_hu.arb
index 2cc375d95..eb73d4c11 100644
--- a/lib/l10n/app_hu.arb
+++ b/lib/l10n/app_hu.arb
@@ -1524,5 +1524,13 @@
"setHomeCustomCollection": "Egyéni gyűjtemény",
"@setHomeCustomCollection": {},
"collectionActionSetHome": "Kezdőlapnak beállít",
- "@collectionActionSetHome": {}
+ "@collectionActionSetHome": {},
+ "stopTooltip": "Állj",
+ "@stopTooltip": {},
+ "videoRepeatActionSetStart": "Kezdőpont beállítása",
+ "@videoRepeatActionSetStart": {},
+ "videoActionABRepeat": "A-B ismétlés",
+ "@videoActionABRepeat": {},
+ "videoRepeatActionSetEnd": "Végpont beállítása",
+ "@videoRepeatActionSetEnd": {}
}
diff --git a/lib/l10n/app_pt.arb b/lib/l10n/app_pt.arb
index 2fe296167..4196bcce1 100644
--- a/lib/l10n/app_pt.arb
+++ b/lib/l10n/app_pt.arb
@@ -1366,5 +1366,13 @@
"collectionActionSetHome": "Definir como início",
"@collectionActionSetHome": {},
"setHomeCustomCollection": "Coleção personalizada",
- "@setHomeCustomCollection": {}
+ "@setHomeCustomCollection": {},
+ "videoActionABRepeat": "Repetição A-B",
+ "@videoActionABRepeat": {},
+ "videoRepeatActionSetEnd": "Definir fim",
+ "@videoRepeatActionSetEnd": {},
+ "stopTooltip": "Parar",
+ "@stopTooltip": {},
+ "videoRepeatActionSetStart": "Definir início",
+ "@videoRepeatActionSetStart": {}
}
diff --git a/lib/l10n/app_tr.arb b/lib/l10n/app_tr.arb
index 445635590..69c72eac7 100644
--- a/lib/l10n/app_tr.arb
+++ b/lib/l10n/app_tr.arb
@@ -1366,5 +1366,13 @@
"newVaultWarningDialogMessage": "Kilitli albümlere yalnızca bu uygulama erişebilir, başka herhangi bir uygulama erişemez.\n\nBu uygulamayı kaldırır veya verilerini silerseniz kilitli albümlerdeki bütün ögeleri kaybedersiniz.",
"@newVaultWarningDialogMessage": {},
"castDialogTitle": "Yakındaki Cihazlar",
- "@castDialogTitle": {}
+ "@castDialogTitle": {},
+ "stopTooltip": "Bitir",
+ "@stopTooltip": {},
+ "videoActionABRepeat": "A-B döngü",
+ "@videoActionABRepeat": {},
+ "videoRepeatActionSetStart": "Başlangıç noktası seç",
+ "@videoRepeatActionSetStart": {},
+ "videoRepeatActionSetEnd": "Bitiş noktası seç",
+ "@videoRepeatActionSetEnd": {}
}
diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb
index 1a15dc7d3..2e99628e7 100644
--- a/lib/l10n/app_zh.arb
+++ b/lib/l10n/app_zh.arb
@@ -175,7 +175,7 @@
"@filterFavouriteLabel": {},
"filterNoDateLabel": "未注明日期",
"@filterNoDateLabel": {},
- "filterNoLocationLabel": "未定位",
+ "filterNoLocationLabel": "无定位",
"@filterNoLocationLabel": {},
"filterNoRatingLabel": "未评分",
"@filterNoRatingLabel": {},
@@ -187,7 +187,7 @@
"@filterOnThisDayLabel": {},
"filterRecentlyAddedLabel": "最近添加",
"@filterRecentlyAddedLabel": {},
- "filterRatingRejectedLabel": "拒绝",
+ "filterRatingRejectedLabel": "拒绝评分",
"@filterRatingRejectedLabel": {},
"filterTypeAnimatedLabel": "动图",
"@filterTypeAnimatedLabel": {},
@@ -1045,7 +1045,7 @@
"@viewerInfoBackToViewerTooltip": {},
"viewerInfoUnknown": "未知",
"@viewerInfoUnknown": {},
- "viewerInfoLabelDescription": "备注",
+ "viewerInfoLabelDescription": "描述",
"@viewerInfoLabelDescription": {},
"viewerInfoLabelTitle": "标题",
"@viewerInfoLabelTitle": {},
@@ -1273,7 +1273,7 @@
"@vaultLockTypePin": {},
"editorTransformCrop": "裁剪",
"@editorTransformCrop": {},
- "filterTaggedLabel": "已标记",
+ "filterTaggedLabel": "有标签",
"@filterTaggedLabel": {},
"statePageTitle": "区域",
"@statePageTitle": {},
@@ -1309,7 +1309,7 @@
"@statsTopStatesSectionTitle": {},
"settingsVideoPlaybackPageTitle": "播放",
"@settingsVideoPlaybackPageTitle": {},
- "filterLocatedLabel": "位于",
+ "filterLocatedLabel": "有定位",
"@filterLocatedLabel": {},
"settingsAccessibilityShowPinchGestureAlternatives": "显示触屏手势可选方案",
"@settingsAccessibilityShowPinchGestureAlternatives": {},
diff --git a/lib/model/app/contributors.dart b/lib/model/app/contributors.dart
index 9115f3f17..d21b15155 100644
--- a/lib/model/app/contributors.dart
+++ b/lib/model/app/contributors.dart
@@ -80,6 +80,8 @@ class Contributors {
Contributor('Marc Amorós', 'marquitus99@gmail.com'),
Contributor('elea11', 'p.manuel.warnecke@gmail.com'),
Contributor('しいたけ', 'Shiitake@users.noreply.hosted.weblate.org'),
+ Contributor('wanzh', 'wanzh66666@gmail.com'),
+ Contributor('ID J', 'tabby4442@gmail.com'),
// Contributor('Alvi Khan', 'aveenalvi@gmail.com'), // Bengali
// Contributor('Htet Oo Hlaing', 'htetoh2006@outlook.com'), // Burmese
// Contributor('Khant', 'khant@users.noreply.hosted.weblate.org'), // Burmese
diff --git a/lib/widgets/aves_app.dart b/lib/widgets/aves_app.dart
index fce1cb80d..7abe47c43 100644
--- a/lib/widgets/aves_app.dart
+++ b/lib/widgets/aves_app.dart
@@ -385,14 +385,7 @@ class _AvesAppState extends State with WidgetsBindingObserver {
case AppMode.pickMultipleMediaExternal:
_saveTopEntries();
break;
- case AppMode.pickCollectionFiltersExternal:
- case AppMode.pickMediaInternal:
- case AppMode.pickFilterInternal:
- case AppMode.screenSaver:
- case AppMode.setWallpaper:
- case AppMode.slideshow:
- case AppMode.view:
- case AppMode.edit:
+ default:
break;
}
case AppLifecycleState.resumed:
@@ -626,14 +619,6 @@ class _AvesAppState extends State with WidgetsBindingObserver {
}
void _onNewIntent(Map? intentData) {
- debugPrint('$runtimeType onNewIntent with intentData=$intentData');
-
- // do not reset when relaunching the app
- if (_appModeNotifier.value == AppMode.main && (intentData == null || intentData.isEmpty == true)) {
- reportService.log('Relaunch');
- return;
- }
-
reportService.log('New intent data=$intentData');
_navigatorKey.currentState!.pushReplacement(DirectMaterialPageRoute(
settings: const RouteSettings(name: HomePage.routeName),
diff --git a/lib/widgets/collection/app_bar.dart b/lib/widgets/collection/app_bar.dart
index 2fb992ffe..20aa7c3d8 100644
--- a/lib/widgets/collection/app_bar.dart
+++ b/lib/widgets/collection/app_bar.dart
@@ -163,7 +163,7 @@ class _CollectionAppBarState extends State with SingleTickerPr
child: AnimatedBuilder(
animation: collection.filterChangeNotifier,
builder: (context, child) {
- final removableFilters = appMode != AppMode.pickMediaInternal;
+ final canRemoveFilters = appMode != AppMode.pickFilteredMediaInternal;
return Selector(
selector: (context, query) => query.enabled,
builder: (context, queryEnabled, child) {
@@ -172,7 +172,7 @@ class _CollectionAppBarState extends State with SingleTickerPr
builder: (context, _, child) {
final useTvLayout = settings.useTvLayout;
final actions = _buildActions(context, selection);
- final onFilterTap = removableFilters ? collection.removeFilter : null;
+ final onFilterTap = canRemoveFilters ? collection.removeFilter : null;
return AvesAppBar(
contentHeight: appBarContentHeight,
pinned: context.select, bool>((selection) => selection.isSelecting),
diff --git a/lib/widgets/collection/collection_grid.dart b/lib/widgets/collection/collection_grid.dart
index 92814439e..6a1fcf042 100644
--- a/lib/widgets/collection/collection_grid.dart
+++ b/lib/widgets/collection/collection_grid.dart
@@ -251,7 +251,7 @@ class _CollectionGridContentState extends State<_CollectionGridContent> {
if (selection.isSelecting) {
child = MultiProvider(
providers: [
- ListenableProvider>.value(value: ValueNotifier(AppMode.pickMediaInternal)),
+ ListenableProvider>.value(value: ValueNotifier(AppMode.pickFilteredMediaInternal)),
ChangeNotifierProvider>.value(value: selection),
],
child: child,
diff --git a/lib/widgets/collection/collection_page.dart b/lib/widgets/collection/collection_page.dart
index 867d73e73..e2b263cb2 100644
--- a/lib/widgets/collection/collection_page.dart
+++ b/lib/widgets/collection/collection_page.dart
@@ -201,15 +201,7 @@ class _CollectionPageState extends State {
IntentService.submitPickedCollectionFilters(filters);
},
);
- case AppMode.main:
- case AppMode.pickSingleMediaExternal:
- case AppMode.pickMediaInternal:
- case AppMode.pickFilterInternal:
- case AppMode.screenSaver:
- case AppMode.setWallpaper:
- case AppMode.slideshow:
- case AppMode.view:
- case AppMode.edit:
+ default:
return null;
}
}
diff --git a/lib/widgets/collection/grid/tile.dart b/lib/widgets/collection/grid/tile.dart
index 2a8cc56fc..554c9cb9a 100644
--- a/lib/widgets/collection/grid/tile.dart
+++ b/lib/widgets/collection/grid/tile.dart
@@ -46,7 +46,8 @@ class InteractiveTile extends StatelessWidget {
case AppMode.pickMultipleMediaExternal:
final selection = context.read>();
selection.toggleSelection(entry);
- case AppMode.pickMediaInternal:
+ case AppMode.pickFilteredMediaInternal:
+ case AppMode.pickUnfilteredMediaInternal:
Navigator.maybeOf(context)?.pop(entry);
case AppMode.pickCollectionFiltersExternal:
case AppMode.pickFilterInternal:
diff --git a/lib/widgets/dialogs/add_shortcut_dialog.dart b/lib/widgets/dialogs/add_shortcut_dialog.dart
index 88af929c3..461e79a18 100644
--- a/lib/widgets/dialogs/add_shortcut_dialog.dart
+++ b/lib/widgets/dialogs/add_shortcut_dialog.dart
@@ -124,6 +124,7 @@ class _AddShortcutDialogState extends State {
source: _collection.source,
filters: pickFilters,
),
+ canRemoveFilters: false,
);
},
fullscreenDialog: true,
diff --git a/lib/widgets/dialogs/entry_editors/edit_date_dialog.dart b/lib/widgets/dialogs/entry_editors/edit_date_dialog.dart
index f469acdeb..8a0bb0384 100644
--- a/lib/widgets/dialogs/entry_editors/edit_date_dialog.dart
+++ b/lib/widgets/dialogs/entry_editors/edit_date_dialog.dart
@@ -322,21 +322,31 @@ class _EditEntryDateDialogState extends State {
));
}
+ CollectionLens? _createPickCollection() {
+ final baseCollection = widget.collection;
+ return baseCollection != null
+ ? CollectionLens(
+ source: baseCollection.source,
+ filters: baseCollection.filters,
+ )
+ : null;
+ }
+
Future _pickCopyItemSource() async {
- final _collection = widget.collection;
- if (_collection == null) return;
+ final pickCollection = _createPickCollection();
+ if (pickCollection == null) return;
final entry = await Navigator.maybeOf(context)?.push(
MaterialPageRoute(
settings: const RouteSettings(name: ItemPickPage.routeName),
builder: (context) => ItemPickPage(
- collection: CollectionLens(
- source: _collection.source,
- ),
+ collection: pickCollection,
+ canRemoveFilters: true,
),
fullscreenDialog: true,
),
);
+ pickCollection.dispose();
if (entry != null) {
setState(() => _copyItemSource = entry);
}
diff --git a/lib/widgets/dialogs/entry_editors/edit_location_dialog.dart b/lib/widgets/dialogs/entry_editors/edit_location_dialog.dart
index d9c946760..ca73fa477 100644
--- a/lib/widgets/dialogs/entry_editors/edit_location_dialog.dart
+++ b/lib/widgets/dialogs/entry_editors/edit_location_dialog.dart
@@ -169,9 +169,9 @@ class _EditEntryLocationDialogState extends State {
);
}
- Future _pickLocation() async {
+ CollectionLens? _createPickCollection() {
final baseCollection = widget.collection;
- final mapCollection = baseCollection != null
+ return baseCollection != null
? CollectionLens(
source: baseCollection.source,
filters: {
@@ -180,17 +180,21 @@ class _EditEntryLocationDialogState extends State {
},
)
: null;
+ }
+
+ Future _pickLocation() async {
+ final pickCollection = _createPickCollection();
final latLng = await Navigator.maybeOf(context)?.push(
MaterialPageRoute(
settings: const RouteSettings(name: LocationPickPage.routeName),
builder: (context) => LocationPickPage(
- collection: mapCollection,
+ collection: pickCollection,
initialLocation: _mapCoordinates,
),
fullscreenDialog: true,
),
);
- mapCollection?.dispose();
+ pickCollection?.dispose();
if (latLng != null) {
settings.mapDefaultCenter = latLng;
setState(() {
@@ -218,20 +222,20 @@ class _EditEntryLocationDialogState extends State {
}
Future _pickCopyItemSource() async {
- final _collection = widget.collection;
- if (_collection == null) return;
+ final pickCollection = _createPickCollection();
+ if (pickCollection == null) return;
final entry = await Navigator.maybeOf(context)?.push(
MaterialPageRoute(
settings: const RouteSettings(name: ItemPickPage.routeName),
builder: (context) => ItemPickPage(
- collection: CollectionLens(
- source: _collection.source,
- ),
+ collection: pickCollection,
+ canRemoveFilters: true,
),
fullscreenDialog: true,
),
);
+ pickCollection.dispose();
if (entry != null) {
setState(() {
_copyItemSource = entry;
diff --git a/lib/widgets/dialogs/filter_editors/cover_selection_dialog.dart b/lib/widgets/dialogs/filter_editors/cover_selection_dialog.dart
index 213c177f5..02f4dd6a7 100644
--- a/lib/widgets/dialogs/filter_editors/cover_selection_dialog.dart
+++ b/lib/widgets/dialogs/filter_editors/cover_selection_dialog.dart
@@ -344,6 +344,7 @@ class _CoverSelectionDialogState extends State {
source: context.read(),
filters: {filter},
),
+ canRemoveFilters: false,
),
fullscreenDialog: true,
),
diff --git a/lib/widgets/dialogs/pick_dialogs/item_pick_page.dart b/lib/widgets/dialogs/pick_dialogs/item_pick_page.dart
index 4631a2b94..490f5edb7 100644
--- a/lib/widgets/dialogs/pick_dialogs/item_pick_page.dart
+++ b/lib/widgets/dialogs/pick_dialogs/item_pick_page.dart
@@ -16,10 +16,12 @@ class ItemPickPage extends StatefulWidget {
static const routeName = '/item_pick';
final CollectionLens collection;
+ final bool canRemoveFilters;
const ItemPickPage({
super.key,
required this.collection,
+ required this.canRemoveFilters,
});
@override
@@ -38,8 +40,9 @@ class _ItemPickPageState extends State {
@override
Widget build(BuildContext context) {
final liveFilter = collection.filters.firstWhereOrNull((v) => v is QueryFilter && v.live) as QueryFilter?;
+ final mode = widget.canRemoveFilters ? AppMode.pickUnfilteredMediaInternal : AppMode.pickFilteredMediaInternal;
return ListenableProvider>.value(
- value: ValueNotifier(AppMode.pickMediaInternal),
+ value: ValueNotifier(mode),
child: AvesScaffold(
body: SelectionProvider(
child: QueryProvider(
diff --git a/lib/widgets/filter_grids/common/filter_tile.dart b/lib/widgets/filter_grids/common/filter_tile.dart
index fbb72546e..f4c1cdf06 100644
--- a/lib/widgets/filter_grids/common/filter_tile.dart
+++ b/lib/widgets/filter_grids/common/filter_tile.dart
@@ -67,13 +67,7 @@ class _InteractiveFilterTileState extends State(filter);
- case AppMode.pickMediaInternal:
- case AppMode.screenSaver:
- case AppMode.setWallpaper:
- case AppMode.slideshow:
- case AppMode.view:
- case AppMode.edit:
- case null:
+ default:
break;
}
}
diff --git a/lib/widgets/home_page.dart b/lib/widgets/home_page.dart
index 3b7df0c1e..969aca967 100644
--- a/lib/widgets/home_page.dart
+++ b/lib/widgets/home_page.dart
@@ -195,10 +195,12 @@ class _HomePageState extends State {
unawaited(GlobalSearch.registerCallback());
unawaited(AnalysisService.registerCallback());
final source = context.read();
- await source.init(
- loadTopEntriesFirst: settings.homePage == HomePageSetting.collection && settings.homeCustomCollection.isEmpty,
- canAnalyze: !safeMode,
- );
+ if (source.initState != SourceInitializationState.full) {
+ await source.init(
+ loadTopEntriesFirst: settings.homePage == HomePageSetting.collection && settings.homeCustomCollection.isEmpty,
+ canAnalyze: !safeMode,
+ );
+ }
case AppMode.screenSaver:
final source = context.read();
await source.init(
@@ -221,9 +223,7 @@ class _HomePageState extends State {
case AppMode.edit:
case AppMode.setWallpaper:
await _initViewerEssentials();
- case AppMode.pickMediaInternal:
- case AppMode.pickFilterInternal:
- case AppMode.slideshow:
+ default:
break;
}
@@ -331,12 +331,7 @@ class _HomePageState extends State {
);
},
);
- case AppMode.main:
- case AppMode.pickCollectionFiltersExternal:
- case AppMode.pickMediaInternal:
- case AppMode.pickFilterInternal:
- case AppMode.screenSaver:
- case AppMode.slideshow:
+ default:
routeName = _initialRouteName ?? settings.homePage.routeName;
filters = _initialFilters ?? (settings.homePage == HomePageSetting.collection ? settings.homeCustomCollection : {});
}
diff --git a/pubspec.yaml b/pubspec.yaml
index 071eadf21..845dd0a30 100644
--- a/pubspec.yaml
+++ b/pubspec.yaml
@@ -7,7 +7,7 @@ repository: https://github.com/deckerst/aves
# - play changelog: /whatsnew/whatsnew-en-US
# - izzy changelog: /fastlane/metadata/android/en-US/changelogs/XXX01.txt
# - libre changelog: /fastlane/metadata/android/en-US/changelogs/XXX.txt
-version: 1.10.8+117
+version: 1.10.9+118
publish_to: none
environment:
diff --git a/untranslated.json b/untranslated.json
index 4e7da8367..86443a233 100644
--- a/untranslated.json
+++ b/untranslated.json
@@ -4829,13 +4829,6 @@
"filePickerUseThisFolder"
],
- "hu": [
- "stopTooltip",
- "videoActionABRepeat",
- "videoRepeatActionSetStart",
- "videoRepeatActionSetEnd"
- ],
-
"is": [
"stopTooltip",
"videoActionABRepeat",
@@ -7260,13 +7253,6 @@
"filePickerUseThisFolder"
],
- "pt": [
- "stopTooltip",
- "videoActionABRepeat",
- "videoRepeatActionSetStart",
- "videoRepeatActionSetEnd"
- ],
-
"ro": [
"stopTooltip",
"videoActionABRepeat",
@@ -9373,13 +9359,6 @@
"filePickerUseThisFolder"
],
- "tr": [
- "stopTooltip",
- "videoActionABRepeat",
- "videoRepeatActionSetStart",
- "videoRepeatActionSetEnd"
- ],
-
"vi": [
"stopTooltip",
"videoActionABRepeat",
diff --git a/whatsnew/whatsnew-en-US b/whatsnew/whatsnew-en-US
index 720ed4ce1..7e6274add 100644
--- a/whatsnew/whatsnew-en-US
+++ b/whatsnew/whatsnew-en-US
@@ -1,4 +1,4 @@
-In v1.10.8:
+In v1.10.9:
- rename in bulk using tags
- repeat a section section section of a video
Full changelog available on GitHub
\ No newline at end of file