feat: add Local Storage changed to add Folder

This commit is contained in:
22
2025-03-13 21:50:54 +08:00
parent d9a4c2100b
commit 5b8e2c243c
5 changed files with 17 additions and 8 deletions

View File

@@ -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",

View File

@@ -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": "授予存储权限",

View File

@@ -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<void> showLocalDialog(BuildContext context,
Future<void> showFolderDialog(BuildContext context,
{LocalStorage? storage}) async =>
await showDialog<void>(
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),
],

View File

@@ -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<StorageType>(
value: StorageType.internal,
child: Text(t.local_storage),
child: Text(t.folder),
),
];
},

View File

@@ -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;