新增“使用系统文件选择器”设置,允许将文件选择回退到之前的方式

This commit is contained in:
lyswhut 2023-12-28 11:21:37 +08:00
parent bd2475da74
commit b2230ec117
9 changed files with 55 additions and 7 deletions

View File

@ -3,18 +3,19 @@
- 新增自定义源实验性功能调用方式与PC端一致但需要注意的是移动端自定义源的环境与PC端不同某些环境API不可用详情看自定义说明文档 - 新增自定义源实验性功能调用方式与PC端一致但需要注意的是移动端自定义源的环境与PC端不同某些环境API不可用详情看自定义说明文档
- 新增长按收藏列表名自动跳转列表顶部的功能 - 新增长按收藏列表名自动跳转列表顶部的功能
- 新增实验性的添加本地歌曲到我的收藏支持与PC端类似在我的收藏的列表菜单中选择歌曲目录将添加所选目录下的所有歌曲目前支持mp3/flac/ogg/wav等格式 - 新增实验性的添加本地歌曲到我的收藏支持与PC端类似在我的收藏的列表菜单中选择歌曲目录将添加所选目录下的所有歌曲目前支持mp3/flac/ogg/wav等格式
- 新增歌曲标签编辑功能,允许编辑本地源且文件歌曲存在的歌曲标签信息 - 新增歌曲标签编辑功能,允许编辑本地源且文件存在的歌曲标签信息
- 新增动态背景启用后将使用当前歌曲封面做APP背景默认关闭可到设置-主题设置启用 - 新增动态背景,启用后将使用当前播放歌曲封面做APP背景默认关闭可到设置-主题设置启用
- 新增APP全局字体阴影默认关闭可到设置-主题设置启用 - 新增APP全局字体阴影默认关闭可到设置-主题设置启用
- 新增启用竖屏首页横向滚动设置,默认开启(原来的行为),如果你不想要竖屏的首页左右滑动则可以关闭此设置(#397 - 新增启用竖屏首页横向滚动设置,默认开启(原来的行为),如果你不想要竖屏的首页左右滑动则可以关闭此设置(#397
- 新增“使用系统文件选择器”设置,默认启用,启用该选项后,导入备份文件、自定义源等操作将不需要申请存储权限,但可能在某些系统上不可用。
### 优化 ### 优化
- 添加是否忽略电池优化检查用于提醒用户添加白名单确保APP后台播放稳定性 - 添加是否忽略电池优化检查用于提醒用户添加白名单确保APP后台播放稳定性
- 在设置界面返回时,不再直接返回桌面,将回到进入设置界面前的界面,非设置界面返回时才会返回桌面 - 在设置界面返回时,不再直接返回桌面,将回到进入设置界面前的界面,非设置界面返回时才会返回桌面
- 更新播放栏进度条样式,进度条允许拖动调整进度 - 更新播放栏进度条样式,进度条允许拖动调整进度
- 优化播放详情页歌曲封面、控制按钮对各尺寸屏幕的适配,修改横屏下的控制栏按钮布局 - 优化播放详情页歌曲封面、控制按钮对各尺寸屏幕的适配,修改横屏下的控制栏按钮布局
- 优化横竖屏界面的暂时判断,现在趋于方屏的屏幕按竖屏的方式显示,横屏下的播放栏添加上一曲切歌按钮 - 优化横竖屏界面的展示判断,现在趋于方屏的屏幕按竖屏的方式显示,横屏下的播放栏添加上一曲切歌按钮
- 添加对wy源某些歌曲有问题的歌词进行修复#370 - 添加对wy源某些歌曲有问题的歌词进行修复#370
- 文件选择器允许选择外置存储设备上的路径添加SD卡、USB存储等外置存储设备的读写支持 - 文件选择器允许选择外置存储设备上的路径添加SD卡、USB存储等外置存储设备的读写支持
- 图片显示改用第三方的图片组件支持gif类型的图片显示尝试解决某些设备上图片过多导致的应用崩溃问题 - 图片显示改用第三方的图片组件支持gif类型的图片显示尝试解决某些设备上图片过多导致的应用崩溃问题
@ -30,7 +31,7 @@
- 在更低版本的安卓上启用跟随系统亮暗主题功能(#317 - 在更低版本的安卓上启用跟随系统亮暗主题功能(#317
- 由于歌曲评论的图片太大占用较多资源,评论图片不再直接加载,需要点击图片区域后再加载 - 由于歌曲评论的图片太大占用较多资源,评论图片不再直接加载,需要点击图片区域后再加载
- 导入文件(歌单备份、自定义源文件等)不再需要设备存储权限 - 导入文件(歌单备份、自定义源文件等)默认不再需要设备存储权限,但如果这导致在你的设备上无法选择文件,则可以关闭基本设置的“使用系统文件选择器”设置,回退到原来的文件选择方式
### 其他 ### 其他

View File

@ -9,6 +9,7 @@ import { toast, TEMP_FILE_PATH, checkStoragePermissions, requestStoragePermissio
import { useI18n } from '@/lang' import { useI18n } from '@/lang'
import { selectFile, unlink } from '@/utils/fs' import { selectFile, unlink } from '@/utils/fs'
import { useUnmounted } from '@/utils/hooks' import { useUnmounted } from '@/utils/hooks'
import settingState from '@/store/setting/state'
export interface ReadOptions { export interface ReadOptions {
title: string title: string
@ -38,7 +39,7 @@ export default forwardRef<ChoosePathType, ChoosePathProps>(({
useImperativeHandle(ref, () => ({ useImperativeHandle(ref, () => ({
show(options) { show(options) {
if (options.dirOnly) { if (!settingState.setting['common.useSystemFileSelector'] || options.dirOnly) {
// if (options.isPersist) { // if (options.isPersist) {
void checkStoragePermissions().then(isGranted => { void checkStoragePermissions().then(isGranted => {
readOptions.current = options readOptions.current = options

View File

@ -11,6 +11,7 @@ const defaultSetting: LX.AppSetting = {
'common.homePageScroll': true, 'common.homePageScroll': true,
'common.showBackBtn': false, 'common.showBackBtn': false,
'common.showExitBtn': true, 'common.showExitBtn': true,
'common.useSystemFileSelector': true,
'player.startupAutoPlay': false, 'player.startupAutoPlay': false,
'player.togglePlayMethod': 'listLoop', 'player.togglePlayMethod': 'listLoop',

View File

@ -268,6 +268,8 @@
"setting_basic_theme_font_shadow": "Enable font shadow", "setting_basic_theme_font_shadow": "Enable font shadow",
"setting_basic_theme_hide_bg_dark": "Hide black theme", "setting_basic_theme_hide_bg_dark": "Hide black theme",
"setting_basic_theme_more_btn_show": "Expand themes", "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_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_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", "setting_list": "List settings",

View File

@ -268,6 +268,8 @@
"setting_basic_theme_font_shadow": "启用字体阴影", "setting_basic_theme_font_shadow": "启用字体阴影",
"setting_basic_theme_hide_bg_dark": "隐藏黑色主题背景", "setting_basic_theme_hide_bg_dark": "隐藏黑色主题背景",
"setting_basic_theme_more_btn_show": "更多主题", "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_input_tip": "歌曲名@歌手名\n歌曲名\n@歌手名",
"setting_dislike_list_tips": "1. 每条一行,若歌曲或者歌手名字中存在“@”符号,需要将其替换成“#”\n2. 指定某歌手的某首歌:歌曲名@歌手名\n3. 指定某首歌:歌曲名\n4. 指定某歌手:@歌手名", "setting_dislike_list_tips": "1. 每条一行,若歌曲或者歌手名字中存在“@”符号,需要将其替换成“#”\n2. 指定某歌手的某首歌:歌曲名@歌手名\n3. 指定某首歌:歌曲名\n4. 指定某歌手:@歌手名",
"setting_list": "列表设置", "setting_list": "列表设置",

View File

@ -26,6 +26,5 @@ export default memo(() => {
const styles = createStyle({ const styles = createStyle({
content: { content: {
marginTop: 5, marginTop: 5,
marginBottom: 15,
}, },
}) })

View File

@ -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 (
<View style={styles.content}>
<CheckBoxItem
check={val}
label={t('setting_basic_use_system_file_selector')}
helpDesc={t('setting_basic_use_system_file_selector_tip')}
onChange={update} />
</View>
)
})
const styles = createStyle({
content: {
marginTop: 5,
marginBottom: 15,
},
})

View File

@ -10,6 +10,7 @@ import ShareType from './ShareType'
import IsStartupAutoPlay from './IsStartupAutoPlay' import IsStartupAutoPlay from './IsStartupAutoPlay'
import IsAutoHidePlayBar from './IsAutoHidePlayBar' import IsAutoHidePlayBar from './IsAutoHidePlayBar'
import IsHomePageScroll from './IsHomePageScroll' import IsHomePageScroll from './IsHomePageScroll'
import IsUseSystemFileSelector from './IsUseSystemFileSelector'
import IsShowBackBtn from './IsShowBackBtn' import IsShowBackBtn from './IsShowBackBtn'
import IsShowExitBtn from './IsShowExitBtn' import IsShowExitBtn from './IsShowExitBtn'
import DrawerLayoutPosition from './DrawerLayoutPosition' import DrawerLayoutPosition from './DrawerLayoutPosition'
@ -26,6 +27,7 @@ export default memo(() => {
<IsShowExitBtn /> <IsShowExitBtn />
<IsAutoHidePlayBar /> <IsAutoHidePlayBar />
<IsHomePageScroll /> <IsHomePageScroll />
<IsUseSystemFileSelector />
<Theme /> <Theme />
<DrawerLayoutPosition /> <DrawerLayoutPosition />
<Language /> <Language />

View File

@ -61,6 +61,11 @@ declare global {
*/ */
'common.showExitBtn': boolean 'common.showExitBtn': boolean
/**
* 使
*/
'common.useSystemFileSelector': boolean
/** /**
* id * id
*/ */