From b2230ec1172f6a13d8881e35fbb6186592607a2e Mon Sep 17 00:00:00 2001 From: lyswhut Date: Thu, 28 Dec 2023 11:21:37 +0800 Subject: [PATCH] =?UTF-8?q?=E6=96=B0=E5=A2=9E=E2=80=9C=E4=BD=BF=E7=94=A8?= =?UTF-8?q?=E7=B3=BB=E7=BB=9F=E6=96=87=E4=BB=B6=E9=80=89=E6=8B=A9=E5=99=A8?= =?UTF-8?q?=E2=80=9D=E8=AE=BE=E7=BD=AE=EF=BC=8C=E5=85=81=E8=AE=B8=E5=B0=86?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E9=80=89=E6=8B=A9=E5=9B=9E=E9=80=80=E5=88=B0?= =?UTF-8?q?=E4=B9=8B=E5=89=8D=E7=9A=84=E6=96=B9=E5=BC=8F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- publish/changeLog.md | 11 +++--- src/components/common/ChoosePath/index.tsx | 3 +- src/config/defaultSetting.ts | 1 + src/lang/en_us.json | 2 ++ src/lang/zh_cn.json | 2 ++ .../settings/Basic/IsHomePageScroll.tsx | 1 - .../Basic/IsUseSystemFileSelector.tsx | 35 +++++++++++++++++++ .../Views/Setting/settings/Basic/index.tsx | 2 ++ src/types/app_setting.d.ts | 5 +++ 9 files changed, 55 insertions(+), 7 deletions(-) create mode 100644 src/screens/Home/Views/Setting/settings/Basic/IsUseSystemFileSelector.tsx diff --git a/publish/changeLog.md b/publish/changeLog.md index 756bc55..8642177 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -3,18 +3,19 @@ - 新增自定义源(实验性功能),调用方式与PC端一致,但需要注意的是,移动端自定义源的环境与PC端不同,某些环境API不可用,详情看自定义说明文档 - 新增长按收藏列表名自动跳转列表顶部的功能 - 新增实验性的添加本地歌曲到我的收藏支持,与PC端类似,在我的收藏的列表菜单中选择歌曲目录,将添加所选目录下的所有歌曲,目前支持mp3/flac/ogg/wav等格式 -- 新增歌曲标签编辑功能,允许编辑本地源且文件歌曲存在的歌曲标签信息 -- 新增动态背景,启用后将使用当前歌曲封面做APP背景,默认关闭,可到设置-主题设置启用 +- 新增歌曲标签编辑功能,允许编辑本地源且文件存在的歌曲标签信息 +- 新增动态背景,启用后将使用当前播放歌曲封面做APP背景,默认关闭,可到设置-主题设置启用 - 新增APP全局字体阴影,默认关闭,可到设置-主题设置启用 - 新增启用竖屏首页横向滚动设置,默认开启(原来的行为),如果你不想要竖屏的首页左右滑动则可以关闭此设置(#397) +- 新增“使用系统文件选择器”设置,默认启用,启用该选项后,导入备份文件、自定义源等操作将不需要申请存储权限,但可能在某些系统上不可用。 ### 优化 - 添加是否忽略电池优化检查,用于提醒用户添加白名单,确保APP后台播放稳定性 -- 在设置界面返回时,不再直接返回桌面,将回到进入设置界面前的界面,再非设置界面返回时才会返回桌面 +- 在设置界面返回时,不再直接返回桌面,将回到进入设置界面前的界面,在非设置界面返回时才会返回桌面 - 更新播放栏进度条样式,进度条允许拖动调整进度 - 优化播放详情页歌曲封面、控制按钮对各尺寸屏幕的适配,修改横屏下的控制栏按钮布局 -- 优化横竖屏界面的暂时判断,现在趋于方屏的屏幕按竖屏的方式显示,横屏下的播放栏添加上一曲切歌按钮 +- 优化横竖屏界面的展示判断,现在趋于方屏的屏幕按竖屏的方式显示,横屏下的播放栏添加上一曲切歌按钮 - 添加对wy源某些歌曲有问题的歌词进行修复(#370) - 文件选择器允许选择外置存储设备上的路径,添加SD卡、USB存储等外置存储设备的读写支持 - 图片显示改用第三方的图片组件,支持gif类型的图片显示,尝试解决某些设备上图片过多导致的应用崩溃问题 @@ -30,7 +31,7 @@ - 在更低版本的安卓上启用跟随系统亮暗主题功能(#317) - 由于歌曲评论的图片太大占用较多资源,评论图片不再直接加载,需要点击图片区域后再加载 -- 导入文件(歌单备份、自定义源文件等)不再需要设备存储权限 +- 导入文件(歌单备份、自定义源文件等)默认不再需要设备存储权限,但如果这导致在你的设备上无法选择文件,则可以关闭基本设置的“使用系统文件选择器”设置,回退到原来的文件选择方式 ### 其他 diff --git a/src/components/common/ChoosePath/index.tsx b/src/components/common/ChoosePath/index.tsx index ed80956..0bf7780 100644 --- a/src/components/common/ChoosePath/index.tsx +++ b/src/components/common/ChoosePath/index.tsx @@ -9,6 +9,7 @@ import { toast, TEMP_FILE_PATH, checkStoragePermissions, requestStoragePermissio import { useI18n } from '@/lang' import { selectFile, unlink } from '@/utils/fs' import { useUnmounted } from '@/utils/hooks' +import settingState from '@/store/setting/state' export interface ReadOptions { title: string @@ -38,7 +39,7 @@ export default forwardRef(({ useImperativeHandle(ref, () => ({ show(options) { - if (options.dirOnly) { + if (!settingState.setting['common.useSystemFileSelector'] || options.dirOnly) { // if (options.isPersist) { void checkStoragePermissions().then(isGranted => { readOptions.current = options diff --git a/src/config/defaultSetting.ts b/src/config/defaultSetting.ts index 1e88ca1..9ada49b 100644 --- a/src/config/defaultSetting.ts +++ b/src/config/defaultSetting.ts @@ -11,6 +11,7 @@ const defaultSetting: LX.AppSetting = { 'common.homePageScroll': true, 'common.showBackBtn': false, 'common.showExitBtn': true, + 'common.useSystemFileSelector': true, 'player.startupAutoPlay': false, 'player.togglePlayMethod': 'listLoop', diff --git a/src/lang/en_us.json b/src/lang/en_us.json index dd51c5b..ff022d5 100644 --- a/src/lang/en_us.json +++ b/src/lang/en_us.json @@ -268,6 +268,8 @@ "setting_basic_theme_font_shadow": "Enable font shadow", "setting_basic_theme_hide_bg_dark": "Hide black theme", "setting_basic_theme_more_btn_show": "Expand themes", + "setting_basic_use_system_file_selector": "Use the system file selector", + "setting_basic_use_system_file_selector_tip": "After enabling this option, operations such as importing backup files, custom sources, etc. will not require application for storage permissions, but it may not be available on some systems.\nIf you cannot import files after enabling this setting, you can turn off this setting and fall back to the software's built-in file selector.", "setting_dislike_list_input_tip": "song name@artist name\nSong name\n@ singer name", "setting_dislike_list_tips": "1. If there is a \"@\" symbol in the song or singer's name, you need to replace it with \"#\"\n2. Specify a song of a singer: Name@Singer\n3. Specify a song: Name\n4. Specify a certain singer: @Singer", "setting_list": "List settings", diff --git a/src/lang/zh_cn.json b/src/lang/zh_cn.json index 6d2a809..fcc3f91 100644 --- a/src/lang/zh_cn.json +++ b/src/lang/zh_cn.json @@ -268,6 +268,8 @@ "setting_basic_theme_font_shadow": "启用字体阴影", "setting_basic_theme_hide_bg_dark": "隐藏黑色主题背景", "setting_basic_theme_more_btn_show": "更多主题", + "setting_basic_use_system_file_selector": "使用系统文件选择器", + "setting_basic_use_system_file_selector_tip": "启用该选项后,导入备份文件、自定义源等操作将不需要申请存储权限,但可能在某些系统上不可用。\n若启用该设置后无法导入文件,则可关闭该设置,回退到软件内置文件选择器。", "setting_dislike_list_input_tip": "歌曲名@歌手名\n歌曲名\n@歌手名", "setting_dislike_list_tips": "1. 每条一行,若歌曲或者歌手名字中存在“@”符号,需要将其替换成“#”\n2. 指定某歌手的某首歌:歌曲名@歌手名\n3. 指定某首歌:歌曲名\n4. 指定某歌手:@歌手名", "setting_list": "列表设置", diff --git a/src/screens/Home/Views/Setting/settings/Basic/IsHomePageScroll.tsx b/src/screens/Home/Views/Setting/settings/Basic/IsHomePageScroll.tsx index 78859e9..fa2d312 100644 --- a/src/screens/Home/Views/Setting/settings/Basic/IsHomePageScroll.tsx +++ b/src/screens/Home/Views/Setting/settings/Basic/IsHomePageScroll.tsx @@ -26,6 +26,5 @@ export default memo(() => { const styles = createStyle({ content: { marginTop: 5, - marginBottom: 15, }, }) diff --git a/src/screens/Home/Views/Setting/settings/Basic/IsUseSystemFileSelector.tsx b/src/screens/Home/Views/Setting/settings/Basic/IsUseSystemFileSelector.tsx new file mode 100644 index 0000000..3f8ad48 --- /dev/null +++ b/src/screens/Home/Views/Setting/settings/Basic/IsUseSystemFileSelector.tsx @@ -0,0 +1,35 @@ +import { updateSetting } from '@/core/common' +import { useI18n } from '@/lang' +import { createStyle } from '@/utils/tools' +import { memo } from 'react' +import { View } from 'react-native' +import { useSettingValue } from '@/store/setting/hook' + + +import CheckBoxItem from '../../components/CheckBoxItem' + +export default memo(() => { + const t = useI18n() + const val = useSettingValue('common.useSystemFileSelector') + const update = (useSystemFileSelector: boolean) => { + updateSetting({ 'common.useSystemFileSelector': useSystemFileSelector }) + } + + return ( + + + + ) +}) + + +const styles = createStyle({ + content: { + marginTop: 5, + marginBottom: 15, + }, +}) diff --git a/src/screens/Home/Views/Setting/settings/Basic/index.tsx b/src/screens/Home/Views/Setting/settings/Basic/index.tsx index c086d6f..5648436 100644 --- a/src/screens/Home/Views/Setting/settings/Basic/index.tsx +++ b/src/screens/Home/Views/Setting/settings/Basic/index.tsx @@ -10,6 +10,7 @@ import ShareType from './ShareType' import IsStartupAutoPlay from './IsStartupAutoPlay' import IsAutoHidePlayBar from './IsAutoHidePlayBar' import IsHomePageScroll from './IsHomePageScroll' +import IsUseSystemFileSelector from './IsUseSystemFileSelector' import IsShowBackBtn from './IsShowBackBtn' import IsShowExitBtn from './IsShowExitBtn' import DrawerLayoutPosition from './DrawerLayoutPosition' @@ -26,6 +27,7 @@ export default memo(() => { + diff --git a/src/types/app_setting.d.ts b/src/types/app_setting.d.ts index 3364c6b..cb1f037 100644 --- a/src/types/app_setting.d.ts +++ b/src/types/app_setting.d.ts @@ -61,6 +61,11 @@ declare global { */ 'common.showExitBtn': boolean + /** + * 使用系统文件选择器 + */ + 'common.useSystemFileSelector': boolean + /** * 主题id */