gitextract_rqtblcgl/ ├── .bundle/ │ └── config ├── .editorconfig ├── .eslintrc.cjs ├── .github/ │ ├── ISSUE_TEMPLATE/ │ │ ├── bug.yml │ │ └── feature.yml │ ├── actions/ │ │ ├── setup/ │ │ │ └── action.yml │ │ └── upload-artifact/ │ │ └── action.yml │ └── workflows/ │ ├── beta-pack.yml │ ├── build-test.yml │ ├── publish-version-info.yml │ └── release.yml ├── .gitignore ├── .ncurc.js ├── .nvmrc ├── .vscode/ │ ├── i18n-ally-custom-framework.yml │ ├── javascript.code-snippets │ └── settings.json ├── CHANGELOG.md ├── FAQ.md ├── Gemfile ├── LICENSE ├── README.md ├── android/ │ ├── app/ │ │ ├── build.gradle │ │ ├── debug.keystore │ │ ├── proguard-rules.pro │ │ └── src/ │ │ ├── debug/ │ │ │ └── AndroidManifest.xml │ │ ├── main/ │ │ │ ├── AndroidManifest.xml │ │ │ ├── assets/ │ │ │ │ └── script/ │ │ │ │ └── user-api-preload.js │ │ │ ├── java/ │ │ │ │ └── cn/ │ │ │ │ └── toside/ │ │ │ │ └── music/ │ │ │ │ └── mobile/ │ │ │ │ ├── MainActivity.java │ │ │ │ ├── MainApplication.java │ │ │ │ ├── cache/ │ │ │ │ │ ├── CacheClearAsyncTask.java │ │ │ │ │ ├── CacheModule.java │ │ │ │ │ ├── CachePackage.java │ │ │ │ │ └── Utils.java │ │ │ │ ├── crypto/ │ │ │ │ │ ├── AES.java │ │ │ │ │ ├── CryptoModule.java │ │ │ │ │ ├── CryptoPackage.java │ │ │ │ │ └── RSA.java │ │ │ │ ├── lyric/ │ │ │ │ │ ├── Lyric.java │ │ │ │ │ ├── LyricEvent.java │ │ │ │ │ ├── LyricModule.java │ │ │ │ │ ├── LyricPackage.java │ │ │ │ │ ├── LyricPlayer.java │ │ │ │ │ ├── LyricSwitchView.java │ │ │ │ │ ├── LyricTextView.java │ │ │ │ │ ├── LyricView.java │ │ │ │ │ └── Utils.java │ │ │ │ ├── userApi/ │ │ │ │ │ ├── Console.java │ │ │ │ │ ├── HandlerWhat.java │ │ │ │ │ ├── JavaScriptThread.java │ │ │ │ │ ├── JsHandler.java │ │ │ │ │ ├── QuickJS.java │ │ │ │ │ ├── UserApiModule.java │ │ │ │ │ ├── UserApiPackage.java │ │ │ │ │ └── UtilsEvent.java │ │ │ │ └── utils/ │ │ │ │ ├── AsyncTask.java │ │ │ │ ├── BatteryOptimizationUtil.java │ │ │ │ ├── NotificationPermissionUtil.java │ │ │ │ ├── Utils.java │ │ │ │ ├── UtilsEvent.java │ │ │ │ ├── UtilsModule.java │ │ │ │ └── UtilsPackage.java │ │ │ └── res/ │ │ │ ├── drawable/ │ │ │ │ ├── ic_launcher_foreground.xml │ │ │ │ ├── rn_edit_text_material.xml │ │ │ │ └── rounded_corner.xml │ │ │ ├── mipmap-anydpi-v26/ │ │ │ │ ├── ic_launcher.xml │ │ │ │ └── ic_launcher_round.xml │ │ │ ├── values/ │ │ │ │ ├── ic_launcher_background.xml │ │ │ │ ├── strings.xml │ │ │ │ └── styles.xml │ │ │ └── xml/ │ │ │ ├── file_paths.xml │ │ │ └── network_security_config.xml │ │ └── release/ │ │ └── java/ │ │ └── cn/ │ │ └── toside/ │ │ └── music/ │ │ └── ReactNativeFlipper.java │ ├── build.gradle │ ├── gradle/ │ │ └── wrapper/ │ │ ├── gradle-wrapper.jar │ │ └── gradle-wrapper.properties │ ├── gradle.properties │ ├── gradlew │ ├── gradlew.bat │ └── settings.gradle ├── app.json ├── babel.config.js ├── dependencies-patch.js ├── index.js ├── ios/ │ ├── .xcode.env │ ├── LxMusicMobile/ │ │ ├── AppDelegate.h │ │ ├── AppDelegate.mm │ │ ├── Images.xcassets/ │ │ │ ├── AppIcon.appiconset/ │ │ │ │ └── Contents.json │ │ │ └── Contents.json │ │ ├── Info.plist │ │ ├── LaunchScreen.storyboard │ │ └── main.m │ ├── LxMusicMobile.xcodeproj/ │ │ ├── project.pbxproj │ │ └── xcshareddata/ │ │ └── xcschemes/ │ │ └── LxMusicMobile.xcscheme │ ├── LxMusicMobileTests/ │ │ ├── Info.plist │ │ └── LxMusicMobileTests.m │ └── Podfile ├── metro.config.js ├── package.json ├── publish/ │ ├── changeLog.md │ ├── index.js │ ├── utils/ │ │ ├── index.js │ │ ├── parseChangelog.js │ │ └── updateChangeLog.js │ └── version.json ├── shim.js ├── src/ │ ├── app.ts │ ├── components/ │ │ ├── DesktopLyricEnable.tsx │ │ ├── MetadataEditModal/ │ │ │ ├── InputItem.tsx │ │ │ ├── MetadataForm.tsx │ │ │ ├── ParseName.tsx │ │ │ ├── PicItem.tsx │ │ │ ├── TextAreaItem.tsx │ │ │ └── index.tsx │ │ ├── MusicAddModal/ │ │ │ ├── CreateUserList.tsx │ │ │ ├── List.tsx │ │ │ ├── ListItem.tsx │ │ │ ├── MusicAddModal.tsx │ │ │ ├── Title.tsx │ │ │ └── index.tsx │ │ ├── MusicMultiAddModal/ │ │ │ ├── List.tsx │ │ │ ├── ListItem.tsx │ │ │ ├── MusicMultiAddModal.tsx │ │ │ ├── Title.tsx │ │ │ └── index.tsx │ │ ├── OnlineList/ │ │ │ ├── List.tsx │ │ │ ├── ListItem.tsx │ │ │ ├── ListMenu.tsx │ │ │ ├── MultipleModeBar.tsx │ │ │ ├── index.tsx │ │ │ └── listAction.ts │ │ ├── PageContent.tsx │ │ ├── SearchTipList/ │ │ │ ├── List.tsx │ │ │ └── index.tsx │ │ ├── SizeView.tsx │ │ ├── SourceSelector.tsx │ │ ├── TimeoutExitEditModal.tsx │ │ ├── common/ │ │ │ ├── Badge.tsx │ │ │ ├── Button.tsx │ │ │ ├── ButtonPrimary.tsx │ │ │ ├── CheckBox/ │ │ │ │ ├── Checkbox.tsx │ │ │ │ └── index.tsx │ │ │ ├── ChoosePath/ │ │ │ │ ├── List.tsx │ │ │ │ ├── components/ │ │ │ │ │ ├── Footer.tsx │ │ │ │ │ ├── Header.tsx │ │ │ │ │ ├── ListItem.tsx │ │ │ │ │ ├── Main.tsx │ │ │ │ │ ├── NewFolderModal.tsx │ │ │ │ │ └── OpenStorageModal.tsx │ │ │ │ └── index.tsx │ │ │ ├── ConfirmAlert.tsx │ │ │ ├── Dialog.tsx │ │ │ ├── DorpDownMenu.tsx │ │ │ ├── DorpDownPanel/ │ │ │ │ ├── Panel.tsx │ │ │ │ └── index.tsx │ │ │ ├── DrawerLayoutFixed.tsx │ │ │ ├── FileSelect.tsx │ │ │ ├── Icon.tsx │ │ │ ├── Image.tsx │ │ │ ├── ImageBackground.tsx │ │ │ ├── Input.tsx │ │ │ ├── Loading.tsx │ │ │ ├── LoadingMask.tsx │ │ │ ├── Menu.tsx │ │ │ ├── Modal.tsx │ │ │ ├── Popup.tsx │ │ │ ├── ScaledImage.tsx │ │ │ ├── Slider.tsx │ │ │ ├── StatusBar.tsx │ │ │ └── Text.tsx │ │ └── player/ │ │ ├── PlayerBar/ │ │ │ ├── components/ │ │ │ │ ├── ControlBtn.tsx │ │ │ │ ├── Pic.tsx │ │ │ │ ├── PlayInfo.tsx │ │ │ │ ├── Status.tsx │ │ │ │ └── Title.tsx │ │ │ └── index.tsx │ │ ├── Progress.tsx │ │ └── ProgressBar.tsx │ ├── config/ │ │ ├── constant.ts │ │ ├── defaultSetting.ts │ │ ├── globalData.ts │ │ ├── index.js │ │ ├── migrate.ts │ │ ├── migrateSetting.ts │ │ └── setting.ts │ ├── core/ │ │ ├── apiSource.ts │ │ ├── common.ts │ │ ├── desktopLyric.ts │ │ ├── dislikeList.ts │ │ ├── hotSearch.ts │ │ ├── init/ │ │ │ ├── common.ts │ │ │ ├── dataInit.ts │ │ │ ├── deeplink/ │ │ │ │ ├── fileAction.ts │ │ │ │ ├── index.ts │ │ │ │ ├── musicAction.js │ │ │ │ ├── playSonglist.ts │ │ │ │ ├── playerAction.ts │ │ │ │ ├── songlistAction.js │ │ │ │ └── utils.js │ │ │ ├── i18n.ts │ │ │ ├── index.ts │ │ │ ├── player/ │ │ │ │ ├── index.ts │ │ │ │ ├── lyric.ts │ │ │ │ ├── playInfo.ts │ │ │ │ ├── playProgress.ts │ │ │ │ ├── playStatus.ts │ │ │ │ ├── player.ts │ │ │ │ ├── playerEvent.ts │ │ │ │ ├── preloadNextMusic.ts │ │ │ │ └── watchList.ts │ │ │ ├── sync.ts │ │ │ ├── theme.ts │ │ │ └── userApi/ │ │ │ ├── index.ts │ │ │ └── request.js │ │ ├── leaderboard.ts │ │ ├── list.ts │ │ ├── lyric.ts │ │ ├── music/ │ │ │ ├── download.ts │ │ │ ├── index.ts │ │ │ ├── local.ts │ │ │ ├── online.ts │ │ │ └── utils.ts │ │ ├── player/ │ │ │ ├── playInfo.ts │ │ │ ├── playStatus.ts │ │ │ ├── playedList.ts │ │ │ ├── player.ts │ │ │ ├── progress.ts │ │ │ ├── tempPlayList.ts │ │ │ ├── timeoutExit.ts │ │ │ └── utils.ts │ │ ├── search/ │ │ │ ├── music.ts │ │ │ ├── search.ts │ │ │ └── songlist.ts │ │ ├── songlist.ts │ │ ├── sync.ts │ │ ├── syncSourceList.ts │ │ ├── theme.ts │ │ ├── userApi.ts │ │ └── version.ts │ ├── event/ │ │ ├── Event.ts │ │ ├── appEvent.ts │ │ ├── dislikeEvent.ts │ │ ├── listEvent.ts │ │ └── stateEvent.ts │ ├── lang/ │ │ ├── Readme.md │ │ ├── en-us.json │ │ ├── i18n.ts │ │ ├── index.ts │ │ ├── zh-cn.json │ │ └── zh-tw.json │ ├── navigation/ │ │ ├── components/ │ │ │ ├── ModalContent.tsx │ │ │ ├── PactModal.tsx │ │ │ ├── SyncModeModal.tsx │ │ │ ├── Toast.js │ │ │ └── VersionModal.tsx │ │ ├── event.ts │ │ ├── hooks.ts │ │ ├── index.ts │ │ ├── navigation.ts │ │ ├── regLaunchedEvent.ts │ │ ├── registerScreens.tsx │ │ ├── screenNames.ts │ │ └── utils.ts │ ├── plugins/ │ │ ├── lyric.ts │ │ ├── player/ │ │ │ ├── hook.ts │ │ │ ├── index.ts │ │ │ ├── playList.ts │ │ │ ├── service.ts │ │ │ └── utils.ts │ │ ├── storage.ts │ │ └── sync/ │ │ ├── client/ │ │ │ ├── auth.ts │ │ │ ├── client.ts │ │ │ ├── index.ts │ │ │ ├── modules/ │ │ │ │ ├── dislike/ │ │ │ │ │ ├── handler.ts │ │ │ │ │ ├── index.ts │ │ │ │ │ └── localEvent.ts │ │ │ │ ├── index.ts │ │ │ │ └── list/ │ │ │ │ ├── handler.ts │ │ │ │ ├── index.ts │ │ │ │ └── localEvent.ts │ │ │ ├── sync/ │ │ │ │ ├── handler.ts │ │ │ │ └── index.ts │ │ │ └── utils.ts │ │ ├── constants.ts │ │ ├── data.ts │ │ ├── dislikeEvent.ts │ │ ├── index.ts │ │ ├── listEvent.ts │ │ ├── log.ts │ │ └── utils.ts │ ├── resources/ │ │ └── fonts/ │ │ └── selection.json │ ├── screens/ │ │ ├── Comment/ │ │ │ ├── CommentHot.tsx │ │ │ ├── CommentNew.tsx │ │ │ ├── components/ │ │ │ │ ├── CommentFloor.tsx │ │ │ │ ├── CommentImage.tsx │ │ │ │ ├── CommentText.tsx │ │ │ │ ├── Header.tsx │ │ │ │ └── List.tsx │ │ │ ├── index.tsx │ │ │ └── utils.ts │ │ ├── Home/ │ │ │ ├── Horizontal/ │ │ │ │ ├── Aside.tsx │ │ │ │ ├── Header.tsx │ │ │ │ ├── Main.tsx │ │ │ │ └── index.tsx │ │ │ ├── Vertical/ │ │ │ │ ├── Content.tsx │ │ │ │ ├── DrawerNav.tsx │ │ │ │ ├── Header.tsx │ │ │ │ ├── Main.tsx │ │ │ │ └── index.tsx │ │ │ ├── Views/ │ │ │ │ ├── Download/ │ │ │ │ │ └── index.js │ │ │ │ ├── Leaderboard/ │ │ │ │ │ ├── BoardsList/ │ │ │ │ │ │ ├── List.tsx │ │ │ │ │ │ ├── ListItem.tsx │ │ │ │ │ │ ├── ListMenu.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Horizontal/ │ │ │ │ │ │ ├── LeftBar.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── MusicList.tsx │ │ │ │ │ ├── Vertical/ │ │ │ │ │ │ ├── HeaderBar/ │ │ │ │ │ │ │ ├── ActiveListName.tsx │ │ │ │ │ │ │ ├── SourceSelector.tsx │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── listAction.ts │ │ │ │ ├── Mylist/ │ │ │ │ │ ├── MusicList/ │ │ │ │ │ │ ├── ActiveList.tsx │ │ │ │ │ │ ├── List.tsx │ │ │ │ │ │ ├── ListItem.tsx │ │ │ │ │ │ ├── ListMenu.tsx │ │ │ │ │ │ ├── ListMusicSearch.tsx │ │ │ │ │ │ ├── ListSearchBar.tsx │ │ │ │ │ │ ├── MultipleModeBar.tsx │ │ │ │ │ │ ├── MusicPositionModal.tsx │ │ │ │ │ │ ├── MusicToggleModal.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── listAction.ts │ │ │ │ │ ├── MyList/ │ │ │ │ │ │ ├── DuplicateMusic.tsx │ │ │ │ │ │ ├── List.tsx │ │ │ │ │ │ ├── ListImportExport.tsx │ │ │ │ │ │ ├── ListMenu.tsx │ │ │ │ │ │ ├── ListMusicSort.tsx │ │ │ │ │ │ ├── ListNameEdit.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ ├── listAction.ts │ │ │ │ │ │ └── utils.ts │ │ │ │ │ └── index.tsx │ │ │ │ ├── Search/ │ │ │ │ │ ├── BlankView/ │ │ │ │ │ │ ├── HistorySearch.tsx │ │ │ │ │ │ ├── HotSearch.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── HeaderBar/ │ │ │ │ │ │ ├── SearchInput.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── List.tsx │ │ │ │ │ ├── MusicList.tsx │ │ │ │ │ ├── SearchTypeSelector.tsx │ │ │ │ │ ├── SonglistList.tsx │ │ │ │ │ ├── TipList.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Setting/ │ │ │ │ │ ├── Horizontal/ │ │ │ │ │ │ ├── NavList.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Main.tsx │ │ │ │ │ ├── Vertical/ │ │ │ │ │ │ ├── Header.tsx │ │ │ │ │ │ ├── Main.tsx │ │ │ │ │ │ ├── NavList.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── Button.tsx │ │ │ │ │ │ ├── CheckBoxItem.tsx │ │ │ │ │ │ ├── InputItem.tsx │ │ │ │ │ │ ├── Section.tsx │ │ │ │ │ │ ├── Slider.tsx │ │ │ │ │ │ └── SubTitle.tsx │ │ │ │ │ ├── index.tsx │ │ │ │ │ └── settings/ │ │ │ │ │ ├── About.tsx │ │ │ │ │ ├── Backup/ │ │ │ │ │ │ ├── All.js │ │ │ │ │ │ ├── ListImportExport.tsx │ │ │ │ │ │ ├── Part.tsx │ │ │ │ │ │ ├── actions.ts │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Basic/ │ │ │ │ │ │ ├── DrawerLayoutPosition.tsx │ │ │ │ │ │ ├── FontSize.tsx │ │ │ │ │ │ ├── IsAllowProgressBarSeek.tsx │ │ │ │ │ │ ├── IsAlwaysKeepStatusbarHeight.tsx │ │ │ │ │ │ ├── IsAutoHidePlayBar.tsx │ │ │ │ │ │ ├── IsHomePageScroll.tsx │ │ │ │ │ │ ├── IsShowBackBtn.tsx │ │ │ │ │ │ ├── IsShowExitBtn.tsx │ │ │ │ │ │ ├── IsStartupAutoPlay.tsx │ │ │ │ │ │ ├── IsStartupPushPlayDetailScreen.tsx │ │ │ │ │ │ ├── IsUseSystemFileSelector.tsx │ │ │ │ │ │ ├── Language.tsx │ │ │ │ │ │ ├── ShareType.tsx │ │ │ │ │ │ ├── Source.tsx │ │ │ │ │ │ ├── SourceName.tsx │ │ │ │ │ │ ├── UserApiEditModal/ │ │ │ │ │ │ │ ├── ImportBtn.tsx │ │ │ │ │ │ │ ├── List.tsx │ │ │ │ │ │ │ ├── ScriptImportExport.tsx │ │ │ │ │ │ │ ├── ScriptImportOnline.tsx │ │ │ │ │ │ │ ├── action.ts │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── List/ │ │ │ │ │ │ ├── AddMusicLocationType.tsx │ │ │ │ │ │ ├── IsClickPlayList.tsx │ │ │ │ │ │ ├── IsShowAlbumName.tsx │ │ │ │ │ │ ├── IsShowInterval.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── LyricDesktop/ │ │ │ │ │ │ ├── IsLockLyric.tsx │ │ │ │ │ │ ├── IsShowLyric.tsx │ │ │ │ │ │ ├── IsShowToggleAnima.tsx │ │ │ │ │ │ ├── IsSingleLine.tsx │ │ │ │ │ │ ├── MaxLineNum.tsx │ │ │ │ │ │ ├── TextOpacity.tsx │ │ │ │ │ │ ├── TextPositionX.tsx │ │ │ │ │ │ ├── TextPositionY.tsx │ │ │ │ │ │ ├── TextSize.tsx │ │ │ │ │ │ ├── Theme.tsx │ │ │ │ │ │ ├── ViewWidth.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Other/ │ │ │ │ │ │ ├── DislikeEditModal.tsx │ │ │ │ │ │ ├── DislikeList.tsx │ │ │ │ │ │ ├── Log.tsx │ │ │ │ │ │ ├── MetaCache.tsx │ │ │ │ │ │ ├── ResourceCache.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Player/ │ │ │ │ │ │ ├── IsAutoCleanPlayedList.tsx │ │ │ │ │ │ ├── IsEnableAudioOffload.tsx │ │ │ │ │ │ ├── IsHandleAudioFocus.tsx │ │ │ │ │ │ ├── IsS2T.tsx │ │ │ │ │ │ ├── IsSavePlayTime.tsx │ │ │ │ │ │ ├── IsShowBluetoothLyric.tsx │ │ │ │ │ │ ├── IsShowLyricRoma.tsx │ │ │ │ │ │ ├── IsShowLyricTranslation.tsx │ │ │ │ │ │ ├── IsShowNotificationImage.tsx │ │ │ │ │ │ ├── MaxCache.tsx │ │ │ │ │ │ ├── PlayHighQuality.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Search/ │ │ │ │ │ │ ├── IsShowHistorySearch.tsx │ │ │ │ │ │ ├── IsShowHotSearch.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── Sync/ │ │ │ │ │ │ ├── History.tsx │ │ │ │ │ │ ├── IsEnable.tsx │ │ │ │ │ │ ├── index.tsx │ │ │ │ │ │ └── isEnable.tsx.bak │ │ │ │ │ ├── Theme/ │ │ │ │ │ │ ├── IsAutoTheme.tsx │ │ │ │ │ │ ├── IsDynamicBg.tsx │ │ │ │ │ │ ├── IsFontShadow.tsx │ │ │ │ │ │ ├── IsHideBgDark.tsx │ │ │ │ │ │ ├── Theme.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── Version.tsx │ │ │ │ └── SongList/ │ │ │ │ ├── Content.tsx │ │ │ │ ├── HeaderBar/ │ │ │ │ │ ├── OpenList/ │ │ │ │ │ │ ├── Modal.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ ├── SortTab.tsx │ │ │ │ │ ├── SourceSelector.tsx │ │ │ │ │ ├── Tag/ │ │ │ │ │ │ ├── CurrentTagBtn.tsx │ │ │ │ │ │ └── index.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── List.tsx │ │ │ │ ├── TagList/ │ │ │ │ │ ├── List.tsx │ │ │ │ │ ├── TagGroup.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── components/ │ │ │ │ │ └── Songlist/ │ │ │ │ │ ├── List.tsx │ │ │ │ │ ├── ListItem.tsx │ │ │ │ │ └── index.tsx │ │ │ │ └── index.tsx │ │ │ └── index.tsx │ │ ├── PlayDetail/ │ │ │ ├── Horizontal/ │ │ │ │ ├── Lyric.tsx │ │ │ │ ├── MoreBtn/ │ │ │ │ │ ├── Btn.tsx │ │ │ │ │ ├── MusicAddBtn.tsx │ │ │ │ │ ├── PlayModeBtn.tsx │ │ │ │ │ ├── TimeoutExitBtn.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── Pic.tsx │ │ │ │ ├── Player/ │ │ │ │ │ ├── ControlBtn.tsx │ │ │ │ │ ├── PlayInfo.tsx │ │ │ │ │ ├── Status.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── components/ │ │ │ │ │ ├── Btn.tsx │ │ │ │ │ ├── CommentBtn.tsx │ │ │ │ │ ├── DesktopLyricBtn.tsx │ │ │ │ │ └── Header.tsx │ │ │ │ ├── constant.ts │ │ │ │ └── index.tsx │ │ │ ├── Vertical/ │ │ │ │ ├── Lyric.tsx │ │ │ │ ├── Pic.tsx │ │ │ │ ├── Player/ │ │ │ │ │ ├── components/ │ │ │ │ │ │ ├── ControlBtn.tsx │ │ │ │ │ │ ├── MoreBtn/ │ │ │ │ │ │ │ ├── Btn.tsx │ │ │ │ │ │ │ ├── CommentBtn.tsx │ │ │ │ │ │ │ ├── DesktopLyricBtn.tsx │ │ │ │ │ │ │ ├── MusicAddBtn.tsx │ │ │ │ │ │ │ ├── PlayModeBtn.tsx │ │ │ │ │ │ │ ├── TimeoutExitBtn.tsx │ │ │ │ │ │ │ └── index.tsx │ │ │ │ │ │ ├── PlayInfo.tsx │ │ │ │ │ │ └── Status.tsx │ │ │ │ │ └── index.tsx │ │ │ │ ├── components/ │ │ │ │ │ ├── Btn.tsx │ │ │ │ │ ├── Header.tsx │ │ │ │ │ └── TimeoutExitBtn.tsx │ │ │ │ └── index.tsx │ │ │ ├── components/ │ │ │ │ ├── PlayLine.tsx │ │ │ │ └── SettingPopup/ │ │ │ │ ├── index.tsx │ │ │ │ └── settings/ │ │ │ │ ├── SettingLrcAlign.tsx │ │ │ │ ├── SettingLrcFontSize.tsx │ │ │ │ ├── SettingLyricProgress.tsx │ │ │ │ ├── SettingPlaybackRate.tsx │ │ │ │ ├── SettingVolume.tsx │ │ │ │ └── style.ts │ │ │ └── index.tsx │ │ ├── SonglistDetail/ │ │ │ ├── ActionBar.tsx │ │ │ ├── Header.tsx │ │ │ ├── MusicList.tsx │ │ │ ├── index.tsx │ │ │ ├── listAction.ts │ │ │ └── state.ts │ │ └── index.ts │ ├── store/ │ │ ├── Provider/ │ │ │ ├── Provider.tsx │ │ │ ├── ThemeProvider.tsx │ │ │ └── index.ts │ │ ├── common/ │ │ │ ├── action.ts │ │ │ ├── hook.ts │ │ │ └── state.ts │ │ ├── dislikeList/ │ │ │ ├── action.ts │ │ │ ├── event.ts │ │ │ ├── hook.ts │ │ │ ├── index.ts │ │ │ └── state.ts │ │ ├── hotSearch/ │ │ │ ├── action.ts │ │ │ └── state.ts │ │ ├── index.ts │ │ ├── leaderboard/ │ │ │ ├── action.ts │ │ │ └── state.ts │ │ ├── list/ │ │ │ ├── action.ts │ │ │ ├── hook.ts │ │ │ └── state.ts │ │ ├── player/ │ │ │ ├── action.ts │ │ │ ├── hook.ts │ │ │ └── state.ts │ │ ├── search/ │ │ │ ├── action.ts │ │ │ ├── music/ │ │ │ │ ├── action.ts │ │ │ │ └── state.ts │ │ │ ├── songlist/ │ │ │ │ ├── action.ts │ │ │ │ └── state.ts │ │ │ └── state.ts │ │ ├── setting/ │ │ │ ├── action.ts │ │ │ ├── hook.ts │ │ │ └── state.ts │ │ ├── songlist/ │ │ │ ├── action.ts │ │ │ └── state.ts │ │ ├── sync/ │ │ │ ├── action.ts │ │ │ ├── hook.ts │ │ │ └── state.ts │ │ ├── theme/ │ │ │ ├── action.ts │ │ │ ├── hook.ts │ │ │ └── state.ts │ │ ├── userApi/ │ │ │ ├── action.ts │ │ │ ├── event.ts │ │ │ ├── hook.ts │ │ │ ├── index.ts │ │ │ └── state.ts │ │ └── version/ │ │ ├── action.ts │ │ ├── hook.ts │ │ └── state.ts │ ├── theme/ │ │ ├── Colors.js │ │ ├── Typography.js │ │ ├── index.js │ │ └── themes/ │ │ ├── colorUtils.js │ │ ├── createThemes.js │ │ ├── index.ts │ │ ├── themes.ts │ │ └── utils.js │ ├── types/ │ │ ├── app.d.ts │ │ ├── app_setting.d.ts │ │ ├── common.d.ts │ │ ├── config_files.d.ts │ │ ├── dislike_list.d.ts │ │ ├── dislike_list_sync.d.ts │ │ ├── download_list.d.ts │ │ ├── list.d.ts │ │ ├── list_sync.d.ts │ │ ├── music.d.ts │ │ ├── player.d.ts │ │ ├── sync.d.ts │ │ ├── sync_common.d.ts │ │ ├── theme.d.ts │ │ ├── user_api.d.ts │ │ └── utils.d.ts │ └── utils/ │ ├── bootLog.ts │ ├── common.ts │ ├── data.ts │ ├── dislikeManage.ts │ ├── errorHandle.ts │ ├── fs.ts │ ├── hooks/ │ │ ├── index.js │ │ ├── useAnimateColor.ts │ │ ├── useAnimateNumber.ts │ │ ├── useAssertApiSupport.js │ │ ├── useBackHandler.ts │ │ ├── useDeviceOrientation.js │ │ ├── useDrag.ts │ │ ├── useHorizontalMode.ts │ │ ├── useKeyboard.js │ │ ├── useLayout.tsx │ │ ├── usePlayTime.js │ │ ├── useUnmounted.tsx │ │ └── useWindowSize.ts │ ├── index.ts │ ├── listManage.ts │ ├── localMediaMetadata.ts │ ├── log.ts │ ├── lrcTools.ts │ ├── message.ts │ ├── music.ts │ ├── musicSdk/ │ │ ├── api-source-info.ts │ │ ├── api-source.js │ │ ├── bd/ │ │ │ ├── hotSearch.js │ │ │ ├── index.js │ │ │ ├── leaderboard.js │ │ │ ├── musicInfo.js │ │ │ ├── musicSearch.js │ │ │ └── songList.js │ │ ├── index.js │ │ ├── kg/ │ │ │ ├── album.js │ │ │ ├── comment.js │ │ │ ├── hotSearch.js │ │ │ ├── index.js │ │ │ ├── leaderboard.js │ │ │ ├── lyric.js │ │ │ ├── musicInfo.js │ │ │ ├── musicSearch.js │ │ │ ├── pic.js │ │ │ ├── singer.js │ │ │ ├── songList.js │ │ │ ├── temp/ │ │ │ │ ├── musicSearch-new.js │ │ │ │ └── songList-new.js │ │ │ ├── tipSearch.js │ │ │ └── util.js │ │ ├── kw/ │ │ │ ├── album.js │ │ │ ├── comment.js │ │ │ ├── decodeLyric.js │ │ │ ├── hotSearch.js │ │ │ ├── index.js │ │ │ ├── leaderboard.js │ │ │ ├── lyric.js │ │ │ ├── musicSearch.js │ │ │ ├── pic.js │ │ │ ├── songList.js │ │ │ ├── tipSearch.js │ │ │ └── util.js │ │ ├── mg/ │ │ │ ├── album.js │ │ │ ├── comment.js │ │ │ ├── hotSearch.js │ │ │ ├── index.js │ │ │ ├── leaderboard.js │ │ │ ├── lyric.js │ │ │ ├── musicInfo.js │ │ │ ├── musicSearch.js │ │ │ ├── pic.js │ │ │ ├── songId.js │ │ │ ├── songList.js │ │ │ ├── temp/ │ │ │ │ └── leaderboard-old.js │ │ │ ├── tipSearch.js │ │ │ └── utils/ │ │ │ ├── index.js │ │ │ └── mrc.js │ │ ├── options.js │ │ ├── tx/ │ │ │ ├── comment.js │ │ │ ├── hotSearch.js │ │ │ ├── index.js │ │ │ ├── leaderboard.js │ │ │ ├── lyric.js │ │ │ ├── musicInfo.js │ │ │ ├── musicSearch.js │ │ │ ├── songList.js │ │ │ └── tipSearch.js │ │ ├── utils.js │ │ ├── wy/ │ │ │ ├── comment.js │ │ │ ├── hotSearch.js │ │ │ ├── index.js │ │ │ ├── leaderboard.js │ │ │ ├── lyric.js │ │ │ ├── musicDetail.js │ │ │ ├── musicInfo.js │ │ │ ├── musicSearch.js │ │ │ ├── songList.js │ │ │ ├── tipSearch.js │ │ │ └── utils/ │ │ │ ├── crypto.js │ │ │ └── index.js │ │ └── xm.js │ ├── nativeModules/ │ │ ├── cache.ts │ │ ├── crypto.ts │ │ ├── cryptoTest.ts │ │ ├── lyricDesktop.ts │ │ ├── userApi.ts │ │ └── utils.ts │ ├── pixelRatio.ts │ ├── request.js │ ├── scroll.ts │ ├── simplify-chinese-main/ │ │ ├── .gitignore │ │ ├── LICENSE.md │ │ ├── README.md │ │ ├── chinese.js │ │ ├── index.d.ts │ │ ├── index.js │ │ └── package.json │ ├── tools.ts │ ├── version.js │ └── windowSizeTools.ts ├── test.js └── tsconfig.json