diff --git a/lib/l10n/app_en.arb b/lib/l10n/app_en.arb index 8169b13..76183af 100644 --- a/lib/l10n/app_en.arb +++ b/lib/l10n/app_en.arb @@ -3,6 +3,7 @@ "about": "About", "add": "Add", "add_favorite": "Add favorite", + "add_folder": "Add folder", "add_local_storage": "Add local storage", "add_storage": "Add storage", "add_to_play_queue": "Add to play queue", @@ -30,6 +31,7 @@ "download_and_update": "Download and update", "download_error": "Download error", "edit": "Edit", + "edit_folder": "Edit folder", "edit_local_storage": "Edit local storage", "edit_webdav_storage": "Edit WebDAV storage", "enter_fullscreen": "Enter fullscreen", @@ -38,6 +40,7 @@ "experimental": "Experimental", "favorites": "Favorites", "fit": "Fit", + "folder": "Folder", "folder_first": "Folder first", "general": "General", "grant_storage_permission": "Grant Storage Permission", diff --git a/lib/l10n/app_zh.arb b/lib/l10n/app_zh.arb index 3a46cf1..0b88630 100644 --- a/lib/l10n/app_zh.arb +++ b/lib/l10n/app_zh.arb @@ -3,6 +3,7 @@ "about": "关于", "add": "添加", "add_favorite": "添加收藏", + "add_folder": "添加文件夹", "add_local_storage": "添加本地存储", "add_storage": "添加存储", "add_to_play_queue": "添加到播放队列", @@ -30,6 +31,7 @@ "download_and_update": "下载并更新", "download_error": "下载错误", "edit": "编辑", + "edit_folder": "编辑文件夹", "edit_local_storage": "编辑本地存储", "edit_webdav_storage": "编辑 WebDAV 存储", "enter_fullscreen": "进入全屏", @@ -38,6 +40,7 @@ "experimental": "实验性", "favorites": "收藏", "fit": "适应", + "folder": "文件夹", "folder_first": "文件夹优先", "general": "通用", "grant_storage_permission": "授予存储权限", diff --git a/lib/pages/dialog/show_local_dialog.dart b/lib/pages/dialog/show_folder_dialog.dart similarity index 92% rename from lib/pages/dialog/show_local_dialog.dart rename to lib/pages/dialog/show_folder_dialog.dart index fe5cd42..b5be473 100644 --- a/lib/pages/dialog/show_local_dialog.dart +++ b/lib/pages/dialog/show_folder_dialog.dart @@ -4,9 +4,10 @@ import 'package:iris/models/storages/storage.dart'; import 'package:iris/store/use_storage_store.dart'; import 'package:iris/utils/get_localizations.dart'; import 'package:iris/utils/path_conv.dart'; +import 'package:iris/utils/platform.dart'; import 'package:path/path.dart' as p; -Future showLocalDialog(BuildContext context, +Future showFolderDialog(BuildContext context, {LocalStorage? storage}) async => await showDialog( context: context, @@ -52,7 +53,7 @@ class LocalDialog extends HookWidget { } return AlertDialog( - title: Text(isEdit ? t.edit_local_storage : t.add_local_storage), + title: Text(isEdit ? t.edit_folder : t.add_folder), content: SingleChildScrollView( child: Padding( padding: const EdgeInsets.all(8.0), @@ -76,6 +77,8 @@ class LocalDialog extends HookWidget { ), initialValue: p.normalize(basePath.value.join('/')), onChanged: (value) => basePath.value = pathConv(value), + readOnly: + isAndroid && basePath.value[0].startsWith('content://'), ), const SizedBox(height: 16.0), ], diff --git a/lib/pages/storage/storages.dart b/lib/pages/storage/storages.dart index 3274ef6..76e6679 100644 --- a/lib/pages/storage/storages.dart +++ b/lib/pages/storage/storages.dart @@ -8,7 +8,7 @@ import 'package:iris/pages/storage/files.dart'; import 'package:iris/store/use_storage_store.dart'; import 'package:iris/utils/get_localizations.dart'; import 'package:iris/utils/path_conv.dart'; -import 'package:iris/pages/dialog/show_local_dialog.dart'; +import 'package:iris/pages/dialog/show_folder_dialog.dart'; import 'package:iris/pages/dialog/show_webdav_dialog.dart'; import 'package:iris/pages/storage/storages_list.dart'; import 'package:iris/utils/platform.dart'; @@ -98,7 +98,7 @@ class Storages extends HookWidget { persistablePermission: true, ); if (dir != null && context.mounted) { - showLocalDialog( + showFolderDialog( context, storage: LocalStorage( type: value, @@ -114,7 +114,7 @@ class Storages extends HookWidget { if (selectedDirectory != null && context.mounted) { - showLocalDialog( + showFolderDialog( context, storage: LocalStorage( type: value, @@ -141,7 +141,7 @@ class Storages extends HookWidget { ), PopupMenuItem( value: StorageType.internal, - child: Text(t.local_storage), + child: Text(t.folder), ), ]; }, diff --git a/lib/pages/storage/storages_list.dart b/lib/pages/storage/storages_list.dart index a02dbf5..2373b6b 100644 --- a/lib/pages/storage/storages_list.dart +++ b/lib/pages/storage/storages_list.dart @@ -3,7 +3,7 @@ import 'package:flutter_hooks/flutter_hooks.dart'; import 'package:flutter_zustand/flutter_zustand.dart'; import 'package:iris/models/storages/local.dart'; import 'package:iris/models/storages/storage.dart'; -import 'package:iris/pages/dialog/show_local_dialog.dart'; +import 'package:iris/pages/dialog/show_folder_dialog.dart'; import 'package:iris/store/use_storage_store.dart'; import 'package:iris/utils/get_localizations.dart'; import 'package:iris/pages/dialog/show_webdav_dialog.dart'; @@ -83,7 +83,7 @@ class StoragesList extends HookWidget { showWebDAVDialog(context, storage: allStorages[index] as WebDAVStorage); } else if (allStorages[index] is LocalStorage) { - showLocalDialog(context, + showFolderDialog(context, storage: allStorages[index] as LocalStorage); } break;