diff --git a/publish/changeLog.md b/publish/changeLog.md index 59b8323..9eeeda3 100644 --- a/publish/changeLog.md +++ b/publish/changeLog.md @@ -1,7 +1,4 @@ ### 优化 -- 在搜索、歌单、排行榜列表多选音乐后点菜单中的播放将会把已选的歌曲添加到试听列表播放 +- 添加导入提示,兼容从PC端“全部数据”类型的备份文件中导入歌单 -### 修复 - -- 修复播放模块没拉取最新代码导致播放器存在无法从通知栏停止等问题 diff --git a/src/lang/en_us.json b/src/lang/en_us.json index 7fa9ec4..90c972c 100644 --- a/src/lang/en_us.json +++ b/src/lang/en_us.json @@ -143,10 +143,16 @@ "setting_play_lyric_transition": "Show lyrics translation", "setting_play_quality": "Play 320K quality songs first (if supported)", - "setting_backup": "Backup and restore", + "setting_backup": "Backup and Recovery", "setting_backup_part": "List data (common with PC-side list backup files)", - "setting_backup_part_import_list": "Import lists", - "setting_backup_part_export_list": "Export lists", + "setting_backup_part_import_list": "Import List", + "setting_backup_part_import_list_tip_unzip": "📦File parsing...\nIf the file is too large, it may take some time⏳", + "setting_backup_part_import_list_tip_runing": "🚀I am trying to import...\nIf the list is too big, it may take some time⏳", + "setting_backup_part_import_list_tip_success": "Import successful 🎉", + "setting_backup_part_import_list_tip_failed": "This does not seem to be a playlist file 😲", + "setting_backup_part_export_list": "Export list", + "setting_backup_part_export_list_tip_zip": "📦The file is being packaged...\nIf the file is too large, it may take some time⏳", + "setting_backup_part_export_list_tip_success": "Export successful", "setting_backup_part_import_setting": "Import settings", "setting_backup_part_export_setting": "Export settings", "setting_backup_all": "All data (list data and setting data)", diff --git a/src/lang/zh_cn.json b/src/lang/zh_cn.json index 992de05..c08cce2 100644 --- a/src/lang/zh_cn.json +++ b/src/lang/zh_cn.json @@ -146,7 +146,13 @@ "setting_backup": "备份与恢复", "setting_backup_part": "列表数据(与PC端列表备份文件通用)", "setting_backup_part_import_list": "导入列表", + "setting_backup_part_import_list_tip_unzip": "📦文件解析中...\n若文件太大可能需要一些时间⏳", + "setting_backup_part_import_list_tip_runing": "🚀正在努力导入中...\n若列表太大可能需要一些时间⏳", + "setting_backup_part_import_list_tip_success": "导入成功🎉", + "setting_backup_part_import_list_tip_failed": "这似乎不是播放列表文件哦😲", "setting_backup_part_export_list": "导出列表", + "setting_backup_part_export_list_tip_zip": "📦文件打包中...\n若文件太大可能需要一些时间⏳", + "setting_backup_part_export_list_tip_success": "导出成功", "setting_backup_part_import_setting": "导入设置", "setting_backup_part_export_setting": "导出设置", "setting_backup_all": "所有数据(列表数据与设置数据)", diff --git a/src/screens/Home/Setting/Backup/Part.js b/src/screens/Home/Setting/Backup/Part.js index 1456bdf..fe88a31 100644 --- a/src/screens/Home/Setting/Backup/Part.js +++ b/src/screens/Home/Setting/Backup/Part.js @@ -46,7 +46,6 @@ const exportList = async(allList, path) => { } } await handleSaveFile(path + '/lx_list.lxmc', JSON.stringify(data)) - toast('导出完成') } const importList = async path => { let listData @@ -91,14 +90,35 @@ export default memo(() => { setShowChoosePath(false) switch (actionTypeRef.current) { case 'import_list': - importList(path).then(listData => { - // 兼容0.6.2及以前版本的列表数据 - if (listData.type === 'defautlList') return setList({ id: 'default', list: listData.data.list, name: '试听列表' }) + InteractionManager.runAfterInteractions(() => { + toast(t('setting_backup_part_import_list_tip_unzip')) + importList(path).then(listData => { + // 兼容0.6.2及以前版本的列表数据 + if (listData.type === 'defautlList') { + setList({ id: 'default', list: listData.data.list, name: '试听列表' }) + toast(t('setting_backup_part_import_list_tip_success')) + return + } - if (listData.type !== 'playList') return + switch (listData.type) { + case 'playList': + toast(t('setting_backup_part_import_list_tip_runing')) + for (const list of listData.data) setList(list) + toast(t('setting_backup_part_import_list_tip_success')) + break + case 'allData': + toast(t('setting_backup_part_import_list_tip_runing')) + if (listData.defaultList) { // 兼容pc端 0.6.2及以前版本的列表数据 + setList({ id: 'default', list: listData.defaultList.list, name: '试听列表' }) + } else { + for (const list of listData.playList) setList(list) + } + toast(t('setting_backup_part_import_list_tip_success')) + break - for (const list of listData.data) setList(list) - toast('导入完成') + default: return toast(t('setting_backup_part_import_list_tip_failed')) + } + }) }) break // case 'import_setting': @@ -108,7 +128,15 @@ export default memo(() => { // setTitle(t('setting_backup_part_import_setting_desc')) // break case 'export_list': - exportList(allList, path) + InteractionManager.runAfterInteractions(() => { + toast(t('setting_backup_part_export_list_tip_zip')) + exportList(allList, path).then(() => { + toast(t('setting_backup_part_export_list_tip_success')) + }).catch(err => { + console.log(err) + toast(t('setting_backup_part_export_list_tip_failed')) + }) + }) break // case 'export_setting': // setTitle(t('setting_backup_part_import_setting_desc')) @@ -120,7 +148,7 @@ export default memo(() => { // setTitle(t('setting_backup_all_import_desc')) // break } - }, [allList, setList]) + }, [allList, setList, t]) return (