From 9e806bc5eeefcc52d3624e9d140ea5ed82937fea Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Mon, 8 Apr 2024 21:44:00 +0200 Subject: [PATCH 1/8] upgraded gradle --- android/app/build.gradle | 2 +- android/build.gradle | 2 +- android/settings.gradle | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) 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/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") From e9b86f9d77dded8f3d2c0dca54623e5f46a892d8 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Mon, 8 Apr 2024 21:45:14 +0200 Subject: [PATCH 2/8] #969 fixed rendering of SVG with viewbox offset --- CHANGELOG.md | 4 ++++ .../thibault/aves/channel/calls/fetchers/SvgRegionFetcher.kt | 1 + 2 files changed, 5 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 42707db56..526585c2a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -6,6 +6,10 @@ All notable changes to this project will be documented in this file. ## [v1.10.8] - 2024-04-01 +### Fixed + +- rendering of SVG with viewbox offset + ### Added - Collection: support for Fairphone burst pattern 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()) From 71e9e07668d8264fa6c7394034b5c99dd9fa5d17 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Mon, 8 Apr 2024 22:51:15 +0200 Subject: [PATCH 3/8] #967 pick collection with removable contextual filters to edit date/location --- lib/app_mode.dart | 6 +++-- lib/widgets/aves_app.dart | 9 +------- lib/widgets/collection/app_bar.dart | 4 ++-- lib/widgets/collection/collection_grid.dart | 2 +- lib/widgets/collection/collection_page.dart | 10 +-------- lib/widgets/collection/grid/tile.dart | 3 ++- lib/widgets/dialogs/add_shortcut_dialog.dart | 1 + .../entry_editors/edit_date_dialog.dart | 20 ++++++++++++----- .../entry_editors/edit_location_dialog.dart | 22 +++++++++++-------- .../cover_selection_dialog.dart | 1 + .../dialogs/pick_dialogs/item_pick_page.dart | 5 ++++- .../filter_grids/common/filter_tile.dart | 8 +------ lib/widgets/home_page.dart | 11 ++-------- 13 files changed, 48 insertions(+), 54 deletions(-) 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/widgets/aves_app.dart b/lib/widgets/aves_app.dart index fce1cb80d..159eb6d05 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: 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..5af70b362 100644 --- a/lib/widgets/home_page.dart +++ b/lib/widgets/home_page.dart @@ -221,9 +221,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 +329,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 : {}); } From 1b70b389e668f5b7844ec65e51bcab24e00c855b Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Tue, 9 Apr 2024 20:06:08 +0200 Subject: [PATCH 4/8] #970 skip source reinitialization when relaunching app from launcher --- lib/widgets/aves_app.dart | 8 -------- lib/widgets/home_page.dart | 10 ++++++---- 2 files changed, 6 insertions(+), 12 deletions(-) diff --git a/lib/widgets/aves_app.dart b/lib/widgets/aves_app.dart index 159eb6d05..7abe47c43 100644 --- a/lib/widgets/aves_app.dart +++ b/lib/widgets/aves_app.dart @@ -619,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/home_page.dart b/lib/widgets/home_page.dart index 5af70b362..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( From 0d2427f9ebef1259e79338803948ee5f7fa59651 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Sun, 14 Apr 2024 22:56:47 +0200 Subject: [PATCH 5/8] Update CHANGELOG.md --- CHANGELOG.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index 526585c2a..9b23c652e 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,11 +4,12 @@ All notable changes to this project will be documented in this file. ## [Unreleased] -## [v1.10.8] - 2024-04-01 - ### Fixed - rendering of SVG with viewbox offset +- superfluous source reinitialization when relaunching app from launcher + +## [v1.10.8] - 2024-04-01 ### Added From f183d41d1a8e9839c63a4f0cf93ee1dabf936608 Mon Sep 17 00:00:00 2001 From: "Weblate (bot)" Date: Sun, 14 Apr 2024 23:15:33 +0200 Subject: [PATCH 6/8] l10n by weblate (#965) Translate-URL: https://hosted.weblate.org/projects/aves/app-android/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/aves/app-main/hu/ Translate-URL: https://hosted.weblate.org/projects/aves/app-main/pt/ Translate-URL: https://hosted.weblate.org/projects/aves/app-main/tr/ Translate-URL: https://hosted.weblate.org/projects/aves/app-main/zh_Hans/ Translate-URL: https://hosted.weblate.org/projects/aves/store-full-description/ko/ Translate-URL: https://hosted.weblate.org/projects/aves/store-short-description/ko/ Translation: Aves/App - Android Translation: Aves/App - Main Translation: Aves/Store - Full description Translation: Aves/Store - Short description Co-authored-by: ID J Co-authored-by: JY3 Co-authored-by: Thibault Deckers Co-authored-by: fuzfyy Co-authored-by: marciozomb13 Co-authored-by: wanzh Co-authored-by: wickdj --- android/app/src/main/res/values-zh/strings.xml | 2 +- fastlane/metadata/android/ko/full_description.txt | 6 +++--- fastlane/metadata/android/ko/short_description.txt | 2 +- lib/l10n/app_hu.arb | 10 +++++++++- lib/l10n/app_pt.arb | 10 +++++++++- lib/l10n/app_tr.arb | 10 +++++++++- lib/l10n/app_zh.arb | 10 +++++----- 7 files changed, 37 insertions(+), 13 deletions(-) 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/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/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": {}, From 69f9dbc2bc0f6d4b06e5ac84c328350c56c919a0 Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Sun, 14 Apr 2024 23:20:07 +0200 Subject: [PATCH 7/8] l10n --- lib/model/app/contributors.dart | 2 ++ untranslated.json | 21 --------------------- 2 files changed, 2 insertions(+), 21 deletions(-) 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/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", From bf8906a9f1a1b60b9b2f76deb87cfff3d9a09d1b Mon Sep 17 00:00:00 2001 From: Thibault Deckers Date: Sun, 14 Apr 2024 23:24:41 +0200 Subject: [PATCH 8/8] version bump --- CHANGELOG.md | 4 +++- fastlane/metadata/android/en-US/changelogs/118.txt | 4 ++++ fastlane/metadata/android/en-US/changelogs/11801.txt | 4 ++++ pubspec.yaml | 2 +- whatsnew/whatsnew-en-US | 2 +- 5 files changed, 13 insertions(+), 3 deletions(-) create mode 100644 fastlane/metadata/android/en-US/changelogs/118.txt create mode 100644 fastlane/metadata/android/en-US/changelogs/11801.txt diff --git a/CHANGELOG.md b/CHANGELOG.md index 9b23c652e..3bda00713 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,10 +4,12 @@ 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 source reinitialization when relaunching app from launcher +- superfluous media store reinitialization when relaunching app from launcher ## [v1.10.8] - 2024-04-01 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/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/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