From 3e502105f906faca4c87f352f05205aa063c20e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=98=8E?= <793113891@qq.com> Date: Thu, 9 May 2024 23:46:53 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E5=90=AF=E5=8A=A8=E5=90=8E=E6=89=93?= =?UTF-8?q?=E5=BC=80=E6=AD=8C=E6=9B=B2=E8=AF=A6=E7=BB=86=E7=95=8C=E9=9D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/config/defaultSetting.ts | 1 + src/lang/en_us.json | 1 + src/lang/zh_cn.json | 1 + .../Basic/IsStartupPushPlayDetailScreen.tsx | 31 +++++++++++++++++++ .../Views/Setting/settings/Basic/index.tsx | 2 ++ src/screens/Home/index.tsx | 5 +++ src/types/app_setting.d.ts | 5 +++ 7 files changed, 46 insertions(+) create mode 100644 src/screens/Home/Views/Setting/settings/Basic/IsStartupPushPlayDetailScreen.tsx diff --git a/src/config/defaultSetting.ts b/src/config/defaultSetting.ts index fe19bd401..4fbdce95a 100644 --- a/src/config/defaultSetting.ts +++ b/src/config/defaultSetting.ts @@ -15,6 +15,7 @@ const defaultSetting: LX.AppSetting = { 'common.alwaysKeepStatusbarHeight': false, 'player.startupAutoPlay': false, + 'player.startupPushPlayDetailScreen': false, 'player.togglePlayMethod': 'listLoop', 'player.playQuality': '128k', 'player.isSavePlayTime': false, diff --git a/src/lang/en_us.json b/src/lang/en_us.json index 713c08499..dc34e0dff 100644 --- a/src/lang/en_us.json +++ b/src/lang/en_us.json @@ -277,6 +277,7 @@ "setting_basic_sourcename_real": "Original", "setting_basic_sourcename_title": "Select the name of music source", "setting_basic_startup_auto_play": "Play music automatically after startup", + "setting_basic_startup_push_play_detail_screen": "Open the detailed interface of the song after startup", "setting_basic_theme": "Theme", "setting_basic_theme_auto_theme": "Follow the system light and dark mode to switch themes", "setting_basic_theme_dynamic_bg": "Use dynamic backgrounds", diff --git a/src/lang/zh_cn.json b/src/lang/zh_cn.json index ca5f7c74b..a683ec5fe 100644 --- a/src/lang/zh_cn.json +++ b/src/lang/zh_cn.json @@ -277,6 +277,7 @@ "setting_basic_sourcename_real": "原名", "setting_basic_sourcename_title": "选择音源名字类型", "setting_basic_startup_auto_play": "启动后自动播放音乐", + "setting_basic_startup_push_play_detail_screen": "启动后打开歌曲详细界面", "setting_basic_theme": "主题颜色", "setting_basic_theme_auto_theme": "跟随系统亮、暗模式切换主题", "setting_basic_theme_dynamic_bg": "使用动态背景", diff --git a/src/screens/Home/Views/Setting/settings/Basic/IsStartupPushPlayDetailScreen.tsx b/src/screens/Home/Views/Setting/settings/Basic/IsStartupPushPlayDetailScreen.tsx new file mode 100644 index 000000000..65a89ee7f --- /dev/null +++ b/src/screens/Home/Views/Setting/settings/Basic/IsStartupPushPlayDetailScreen.tsx @@ -0,0 +1,31 @@ +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 startupPushPlayDetailScreen = useSettingValue('player.startupPushPlayDetailScreen') + const setStartupPushPlayDetailScreen = (startupPushPlayDetailScreen: boolean) => { + updateSetting({ 'player.startupPushPlayDetailScreen': startupPushPlayDetailScreen }) + } + + 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 10a05fa56..d8bd9cb0d 100644 --- a/src/screens/Home/Views/Setting/settings/Basic/index.tsx +++ b/src/screens/Home/Views/Setting/settings/Basic/index.tsx @@ -8,6 +8,7 @@ import Language from './Language' import FontSize from './FontSize' import ShareType from './ShareType' import IsStartupAutoPlay from './IsStartupAutoPlay' +import IsStartupPushPlayDetailScreen from './IsStartupPushPlayDetailScreen' import IsAutoHidePlayBar from './IsAutoHidePlayBar' import IsHomePageScroll from './IsHomePageScroll' import IsUseSystemFileSelector from './IsUseSystemFileSelector' @@ -24,6 +25,7 @@ export default memo(() => { return (
+ diff --git a/src/screens/Home/index.tsx b/src/screens/Home/index.tsx index ea2c95820..21e024630 100644 --- a/src/screens/Home/index.tsx +++ b/src/screens/Home/index.tsx @@ -5,6 +5,9 @@ import { setComponentId } from '@/core/common' import { COMPONENT_IDS } from '@/config/constant' import Vertical from './Vertical' import Horizontal from './Horizontal' +import { navigations } from '@/navigation' +import settingState from '@/store/setting/state' + interface Props { componentId: string @@ -16,6 +19,8 @@ export default ({ componentId }: Props) => { useEffect(() => { setComponentId(COMPONENT_IDS.home, componentId) // eslint-disable-next-line react-hooks/exhaustive-deps + + if (settingState.setting['player.startupPushPlayDetailScreen']) {navigations.pushPlayDetailScreen(componentId!)} }, []) return ( diff --git a/src/types/app_setting.d.ts b/src/types/app_setting.d.ts index f497e342c..5a7980fe5 100644 --- a/src/types/app_setting.d.ts +++ b/src/types/app_setting.d.ts @@ -106,6 +106,11 @@ declare global { */ 'player.startupAutoPlay': boolean + /** + * 启动后打开歌曲详细界面 + */ + 'player.startupPushPlayDetailScreen': boolean + /** * 切歌模式 */ From a26f7e952b07a1cb3133ec11b96ec8d46f025161 Mon Sep 17 00:00:00 2001 From: lyswhut Date: Sun, 12 May 2024 10:06:16 +0800 Subject: [PATCH 2/2] update --- publish/changeLog.md | 4 ++++ src/lang/en_us.json | 2 +- src/lang/zh_cn.json | 2 +- src/navigation/navigation.ts | 4 ++-- src/screens/Home/index.tsx | 4 +++- 5 files changed, 11 insertions(+), 5 deletions(-) diff --git a/publish/changeLog.md b/publish/changeLog.md index 43fb95ee4..42c791771 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,3 +1,7 @@ +### 新增 + +- 新增 设置-基本设置-启动后打开播放详情界面 设置,默认关闭(#502 @mingcc7) + ### 变更 - 设置-播放设置-优先播放320k音质选项改为“优先播放的音质”,允许选择更高优先播放的音质,如果歌曲及音源支持的话(#487) diff --git a/src/lang/en_us.json b/src/lang/en_us.json index dc34e0dff..b3b1f1402 100644 --- a/src/lang/en_us.json +++ b/src/lang/en_us.json @@ -277,7 +277,7 @@ "setting_basic_sourcename_real": "Original", "setting_basic_sourcename_title": "Select the name of music source", "setting_basic_startup_auto_play": "Play music automatically after startup", - "setting_basic_startup_push_play_detail_screen": "Open the detailed interface of the song after startup", + "setting_basic_startup_push_play_detail_screen": "Open the playback details interface after startup", "setting_basic_theme": "Theme", "setting_basic_theme_auto_theme": "Follow the system light and dark mode to switch themes", "setting_basic_theme_dynamic_bg": "Use dynamic backgrounds", diff --git a/src/lang/zh_cn.json b/src/lang/zh_cn.json index a683ec5fe..d74340b9a 100644 --- a/src/lang/zh_cn.json +++ b/src/lang/zh_cn.json @@ -277,7 +277,7 @@ "setting_basic_sourcename_real": "原名", "setting_basic_sourcename_title": "选择音源名字类型", "setting_basic_startup_auto_play": "启动后自动播放音乐", - "setting_basic_startup_push_play_detail_screen": "启动后打开歌曲详细界面", + "setting_basic_startup_push_play_detail_screen": "启动后打开播放详情界面", "setting_basic_theme": "主题颜色", "setting_basic_theme_auto_theme": "跟随系统亮、暗模式切换主题", "setting_basic_theme_dynamic_bg": "使用动态背景", diff --git a/src/navigation/navigation.ts b/src/navigation/navigation.ts index ea1d9c6f9..5c4026f6d 100644 --- a/src/navigation/navigation.ts +++ b/src/navigation/navigation.ts @@ -85,7 +85,7 @@ export async function pushHomeScreen() { }, }) } -export function pushPlayDetailScreen(componentId: string) { +export function pushPlayDetailScreen(componentId: string, skipAnimation = false) { /* Navigation.setDefaultOptions({ topBar: { @@ -144,7 +144,7 @@ export function pushPlayDetailScreen(componentId: string) { componentBackgroundColor: theme['c-content-background'], }, animations: { - push: { + push: skipAnimation ? {} : { sharedElementTransitions: [ { fromId: NAV_SHEAR_NATIVE_IDS.playDetail_pic, diff --git a/src/screens/Home/index.tsx b/src/screens/Home/index.tsx index 21e024630..0180bbd21 100644 --- a/src/screens/Home/index.tsx +++ b/src/screens/Home/index.tsx @@ -20,7 +20,9 @@ export default ({ componentId }: Props) => { setComponentId(COMPONENT_IDS.home, componentId) // eslint-disable-next-line react-hooks/exhaustive-deps - if (settingState.setting['player.startupPushPlayDetailScreen']) {navigations.pushPlayDetailScreen(componentId!)} + if (settingState.setting['player.startupPushPlayDetailScreen']) { + navigations.pushPlayDetailScreen(componentId, true) + } }, []) return (