mirror of
https://github.com/ikun0014/lx-music-mobile.git
synced 2025-07-05 17:38:55 +08:00
临时修改音源链接,同步官方蓝牙歌词,替换签名
This commit is contained in:
parent
135419bfbc
commit
dba64eda2c
@ -1,2 +0,0 @@
|
|||||||
BUNDLE_PATH: "vendor/bundle"
|
|
||||||
BUNDLE_FORCE_RUBY_PLATFORM: 1
|
|
2
.github/actions/setup/action.yml
vendored
2
.github/actions/setup/action.yml
vendored
@ -33,4 +33,4 @@ runs:
|
|||||||
|
|
||||||
- name: Install dependencies
|
- name: Install dependencies
|
||||||
shell: bash
|
shell: bash
|
||||||
run: npm install
|
run: npm ci
|
||||||
|
2
.github/workflows/release.yml
vendored
2
.github/workflows/release.yml
vendored
@ -21,7 +21,7 @@ jobs:
|
|||||||
run: |
|
run: |
|
||||||
cd android
|
cd android
|
||||||
chmod +x ./gradlew
|
chmod +x ./gradlew
|
||||||
./gradlew assembleRelease -PMYAPP_UPLOAD_STORE_FILE=${{ secrets.KEY_FILE }} -PMYAPP_UPLOAD_KEY_ALIAS=${{ secrets.KEY_ALIAS }}' -PMYAPP_UPLOAD_STORE_PASSWORD=${{ secrets.ALIAS_PASSWORD }} -PMYAPP_UPLOAD_KEY_PASSWORD=${{ secrets.KEY_PASSWORD }}
|
./gradlew assembleRelease -PMYAPP_UPLOAD_STORE_FILE='${{ secrets.KEY_FILE }}' -PMYAPP_UPLOAD_KEY_ALIAS='${{ secrets.KEY_ALIAS }}' -PMYAPP_UPLOAD_STORE_PASSWORD='${{ secrets.ALIAS_PASSWORD }}' -PMYAPP_UPLOAD_KEY_PASSWORD='${{ secrets.KEY_PASSWORD }}'
|
||||||
|
|
||||||
# Push tag to GitHub if package.json version's tag is not tagged
|
# Push tag to GitHub if package.json version's tag is not tagged
|
||||||
- name: Get package version
|
- name: Get package version
|
||||||
|
30
.vscode/i18n-ally-custom-framework.yml
vendored
30
.vscode/i18n-ally-custom-framework.yml
vendored
@ -1,30 +0,0 @@
|
|||||||
# .vscode/i18n-ally-custom-framework.yml
|
|
||||||
|
|
||||||
# An array of strings which contain Language Ids defined by VS Code
|
|
||||||
# You can check avaliable language ids here: https://code.visualstudio.com/docs/languages/overview#_language-id
|
|
||||||
languageIds:
|
|
||||||
- javascript
|
|
||||||
- javascriptreact
|
|
||||||
- typescript
|
|
||||||
- typescriptreact
|
|
||||||
|
|
||||||
# An array of RegExes to find the key usage. **The key should be captured in the first match group**.
|
|
||||||
# You should unescape RegEx strings in order to fit in the YAML file
|
|
||||||
# To help with this, you can use https://www.freeformatter.com/json-escape.html
|
|
||||||
usageMatchRegex:
|
|
||||||
# The following example shows how to detect `t("your.i18n.keys")`
|
|
||||||
# the `{key}` will be placed by a proper keypath matching regex,
|
|
||||||
# you can ignore it and use your own matching rules as well
|
|
||||||
- "[^\\w\\d]t\\(['\"`]({key})['\"`]"
|
|
||||||
|
|
||||||
|
|
||||||
# An array of strings containing refactor templates.
|
|
||||||
# The "$1" will be replaced by the keypath specified.
|
|
||||||
# Optional: uncomment the following two lines to use
|
|
||||||
|
|
||||||
# refactorTemplates:
|
|
||||||
# - i18n.get("$1")
|
|
||||||
|
|
||||||
|
|
||||||
# If set to true, only enables this custom framework (will disable all built-in frameworks)
|
|
||||||
monopoly: true
|
|
68
.vscode/javascript.code-snippets
vendored
68
.vscode/javascript.code-snippets
vendored
@ -1,68 +0,0 @@
|
|||||||
{
|
|
||||||
// Place your LxMusicMobile 工作区 snippets here. Each snippet is defined under a snippet name and has a scope, prefix, body and
|
|
||||||
// description. Add comma separated ids of the languages where the snippet is applicable in the scope field. If scope
|
|
||||||
// is left empty or omitted, the snippet gets applied to all languages. The prefix is what is
|
|
||||||
// used to trigger the snippet and the body will be expanded and inserted. Possible variables are:
|
|
||||||
// $1, $2 for tab stops, $0 for the final cursor position, and ${1:label}, ${2:another} for placeholders.
|
|
||||||
// Placeholders with the same ids are connected.
|
|
||||||
// Example:
|
|
||||||
// "Print to console": {
|
|
||||||
// "scope": "javascript,typescript",
|
|
||||||
// "prefix": "log",
|
|
||||||
// "body": [
|
|
||||||
// "console.log('$1');",
|
|
||||||
// "$2"
|
|
||||||
// ],
|
|
||||||
// "description": "Log output to console"
|
|
||||||
// }
|
|
||||||
"Import translation": {
|
|
||||||
"scope": "javascript,typescript,typescriptreact",
|
|
||||||
"prefix": "imtl",
|
|
||||||
"body": [
|
|
||||||
"import { useTranslation } from '@/plugins/i18n'",
|
|
||||||
"$1const { t } = useTranslation()"
|
|
||||||
],
|
|
||||||
"description": "Translation Language"
|
|
||||||
},
|
|
||||||
"Import store setting": {
|
|
||||||
"scope": "javascript,typescript,typescriptreact",
|
|
||||||
"prefix": "imss",
|
|
||||||
"body": [
|
|
||||||
"import settingState from '@/store/setting/state'"
|
|
||||||
],
|
|
||||||
"description": "Import store setting"
|
|
||||||
},
|
|
||||||
"Import store player": {
|
|
||||||
"scope": "javascript,typescript,typescriptreact",
|
|
||||||
"prefix": "imsp",
|
|
||||||
"body": [
|
|
||||||
"import playerState from '@/store/player/state'"
|
|
||||||
],
|
|
||||||
"description": "Import store player"
|
|
||||||
},
|
|
||||||
"Import store list": {
|
|
||||||
"scope": "javascript,typescript,typescriptreact",
|
|
||||||
"prefix": "imsl",
|
|
||||||
"body": [
|
|
||||||
"import listState from '@/store/list/state'"
|
|
||||||
],
|
|
||||||
"description": "Import store list"
|
|
||||||
},
|
|
||||||
"Import toast": {
|
|
||||||
"scope": "javascript,typescript,typescriptreact",
|
|
||||||
"prefix": "imts",
|
|
||||||
"body": [
|
|
||||||
"import { toast } from '@/utils/tools'",
|
|
||||||
"$1toast(t(''), 'long')"
|
|
||||||
],
|
|
||||||
"description": "Import toast"
|
|
||||||
},
|
|
||||||
"Use getter theme": {
|
|
||||||
"scope": "javascript,typescript,typescriptreact",
|
|
||||||
"prefix": "ugt",
|
|
||||||
"body": [
|
|
||||||
"const theme = useGetter('common', 'theme')"
|
|
||||||
],
|
|
||||||
"description": "Use getter theme"
|
|
||||||
},
|
|
||||||
}
|
|
15
.vscode/settings.json
vendored
15
.vscode/settings.json
vendored
@ -1,15 +0,0 @@
|
|||||||
{
|
|
||||||
"i18n-ally.localesPaths": [
|
|
||||||
"src/lang"
|
|
||||||
],
|
|
||||||
// "i18n-ally.fullReloadOnChanged": true,
|
|
||||||
"i18n-ally.keystyle": "nested",
|
|
||||||
"i18n-ally.displayLanguage": "zh_cn",
|
|
||||||
"i18n-ally.sourceLanguage": "zh_cn",
|
|
||||||
"i18n-ally.translate.engines": [
|
|
||||||
"google-cn",
|
|
||||||
"google"
|
|
||||||
],
|
|
||||||
"i18n-ally.sortKeys": true,
|
|
||||||
"java.configuration.updateBuildConfiguration": "disabled"
|
|
||||||
}
|
|
BIN
android/app/debug.keystore
Normal file
BIN
android/app/debug.keystore
Normal file
Binary file not shown.
@ -1,13 +0,0 @@
|
|||||||
package com.ikunshare.music.mobile;
|
|
||||||
|
|
||||||
import com.reactnativenavigation.NavigationActivity;
|
|
||||||
import com.facebook.react.ReactActivityDelegate;
|
|
||||||
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;
|
|
||||||
import com.facebook.react.defaults.DefaultReactActivityDelegate;
|
|
||||||
|
|
||||||
public class MainActivity extends NavigationActivity {
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
|
@ -1,39 +0,0 @@
|
|||||||
package com.ikunshare.music.mobile.utils;
|
|
||||||
|
|
||||||
|
|
||||||
import android.content.Context;
|
|
||||||
import android.os.storage.StorageManager;
|
|
||||||
|
|
||||||
import com.facebook.react.bridge.Promise;
|
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
|
||||||
import com.facebook.react.bridge.ReactMethod;
|
|
||||||
|
|
||||||
import java.io.BufferedReader;
|
|
||||||
import java.io.File;
|
|
||||||
import java.io.FileInputStream;
|
|
||||||
import java.io.FileOutputStream;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.io.InputStream;
|
|
||||||
import java.io.InputStreamReader;
|
|
||||||
import java.lang.reflect.Array;
|
|
||||||
import java.lang.reflect.Method;
|
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.concurrent.Callable;
|
|
||||||
|
|
||||||
public class Utils {
|
|
||||||
// public static boolean deletePath(File dir) {
|
|
||||||
// if (dir.isDirectory()) {
|
|
||||||
// String[] children = dir.list();
|
|
||||||
// for (int i=0; i< children.length; i++) {
|
|
||||||
// boolean success = deletePath(new File(dir, children[i]));
|
|
||||||
// if (!success) {
|
|
||||||
// return false;
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
// }
|
|
||||||
//
|
|
||||||
// // The directory is now empty so delete it
|
|
||||||
// return dir.delete();
|
|
||||||
// }
|
|
||||||
}
|
|
@ -0,0 +1,10 @@
|
|||||||
|
package com.ikunshare.music.mobile;
|
||||||
|
|
||||||
|
import com.reactnativenavigation.NavigationActivity;
|
||||||
|
|
||||||
|
public class MainActivity extends NavigationActivity {
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
}
|
@ -1,19 +1,19 @@
|
|||||||
package com.ikunshare.music.mobile;
|
package com.ikunshare.music.mobile;
|
||||||
|
|
||||||
import com.facebook.react.PackageList;
|
import com.facebook.react.PackageList;
|
||||||
import com.facebook.react.flipper.ReactNativeFlipper;
|
|
||||||
import com.reactnativenavigation.NavigationApplication;
|
|
||||||
import com.facebook.react.ReactNativeHost;
|
import com.facebook.react.ReactNativeHost;
|
||||||
import com.facebook.react.ReactPackage;
|
import com.facebook.react.ReactPackage;
|
||||||
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;
|
import com.facebook.react.defaults.DefaultNewArchitectureEntryPoint;
|
||||||
import com.reactnativenavigation.react.NavigationReactNativeHost;
|
import com.facebook.react.flipper.ReactNativeFlipper;
|
||||||
import java.util.List;
|
|
||||||
|
|
||||||
import com.ikunshare.music.mobile.cache.CachePackage;
|
import com.ikunshare.music.mobile.cache.CachePackage;
|
||||||
import com.ikunshare.music.mobile.crypto.CryptoPackage;
|
import com.ikunshare.music.mobile.crypto.CryptoPackage;
|
||||||
import com.ikunshare.music.mobile.lyric.LyricPackage;
|
import com.ikunshare.music.mobile.lyric.LyricPackage;
|
||||||
import com.ikunshare.music.mobile.userApi.UserApiPackage;
|
import com.ikunshare.music.mobile.userApi.UserApiPackage;
|
||||||
import com.ikunshare.music.mobile.utils.UtilsPackage;
|
import com.ikunshare.music.mobile.utils.UtilsPackage;
|
||||||
|
import com.reactnativenavigation.NavigationApplication;
|
||||||
|
import com.reactnativenavigation.react.NavigationReactNativeHost;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
public class MainApplication extends NavigationApplication {
|
public class MainApplication extends NavigationApplication {
|
||||||
|
|
@ -1,5 +1,9 @@
|
|||||||
package com.ikunshare.music.mobile.cache;
|
package com.ikunshare.music.mobile.cache;
|
||||||
|
|
||||||
|
import static com.ikunshare.music.mobile.cache.Utils.clearCacheFolder;
|
||||||
|
import static com.ikunshare.music.mobile.cache.Utils.getDirSize;
|
||||||
|
import static com.ikunshare.music.mobile.cache.Utils.isMethodsCompat;
|
||||||
|
|
||||||
import com.facebook.react.bridge.Promise;
|
import com.facebook.react.bridge.Promise;
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
import com.facebook.react.bridge.ReactApplicationContext;
|
||||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||||
@ -7,10 +11,6 @@ import com.facebook.react.bridge.ReactMethod;
|
|||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
|
|
||||||
import static com.ikunshare.music.mobile.cache.Utils.clearCacheFolder;
|
|
||||||
import static com.ikunshare.music.mobile.cache.Utils.getDirSize;
|
|
||||||
import static com.ikunshare.music.mobile.cache.Utils.isMethodsCompat;
|
|
||||||
|
|
||||||
// https://github.com/midas-gufei/react-native-clear-app-cache/tree/master/android/src/main/java/com/learnta/clear
|
// https://github.com/midas-gufei/react-native-clear-app-cache/tree/master/android/src/main/java/com/learnta/clear
|
||||||
public class CacheModule extends ReactContextBaseJavaModule {
|
public class CacheModule extends ReactContextBaseJavaModule {
|
||||||
private final CacheModule cacheModule;
|
private final CacheModule cacheModule;
|
@ -1,4 +1,4 @@
|
|||||||
package cn.toside.music.mobile.lyric;
|
package com.ikunshare.music.mobile.lyric;
|
||||||
|
|
||||||
import android.content.BroadcastReceiver;
|
import android.content.BroadcastReceiver;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
@ -2,7 +2,6 @@ package com.ikunshare.music.mobile.lyric;
|
|||||||
|
|
||||||
import android.annotation.SuppressLint;
|
import android.annotation.SuppressLint;
|
||||||
import android.content.Context;
|
import android.content.Context;
|
||||||
import android.graphics.Color;
|
|
||||||
import android.graphics.Typeface;
|
import android.graphics.Typeface;
|
||||||
import android.text.TextPaint;
|
import android.text.TextPaint;
|
||||||
import android.text.TextUtils;
|
import android.text.TextUtils;
|
@ -21,13 +21,12 @@ import android.view.WindowManager;
|
|||||||
import com.facebook.react.bridge.Arguments;
|
import com.facebook.react.bridge.Arguments;
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
import com.facebook.react.bridge.ReactApplicationContext;
|
||||||
import com.facebook.react.bridge.WritableMap;
|
import com.facebook.react.bridge.WritableMap;
|
||||||
|
import com.ikunshare.music.mobile.R;
|
||||||
|
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.regex.Matcher;
|
import java.util.regex.Matcher;
|
||||||
import java.util.regex.Pattern;
|
import java.util.regex.Pattern;
|
||||||
|
|
||||||
import com.ikunshare.music.mobile.R;
|
|
||||||
|
|
||||||
public class LyricView extends Activity implements View.OnTouchListener {
|
public class LyricView extends Activity implements View.OnTouchListener {
|
||||||
LyricSwitchView textView = null;
|
LyricSwitchView textView = null;
|
||||||
WindowManager windowManager = null;
|
WindowManager windowManager = null;
|
@ -4,11 +4,10 @@ import android.os.Handler;
|
|||||||
import android.os.Looper;
|
import android.os.Looper;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.facebook.react.bridge.Arguments;
|
import com.facebook.react.bridge.Arguments;
|
||||||
import com.facebook.react.bridge.WritableMap;
|
import com.facebook.react.bridge.WritableMap;
|
||||||
|
|
||||||
import java.util.Objects;
|
|
||||||
|
|
||||||
public class JsHandler extends Handler {
|
public class JsHandler extends Handler {
|
||||||
private final UtilsEvent utilsEvent;
|
private final UtilsEvent utilsEvent;
|
||||||
|
|
@ -5,19 +5,18 @@ import android.os.Handler;
|
|||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.util.Base64;
|
import android.util.Base64;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
|
import com.facebook.react.bridge.ReactApplicationContext;
|
||||||
import com.ikunshare.music.mobile.crypto.AES;
|
import com.ikunshare.music.mobile.crypto.AES;
|
||||||
import com.ikunshare.music.mobile.crypto.RSA;
|
import com.ikunshare.music.mobile.crypto.RSA;
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
|
||||||
|
|
||||||
import com.whl.quickjs.android.QuickJSLoader;
|
import com.whl.quickjs.android.QuickJSLoader;
|
||||||
import com.whl.quickjs.wrapper.JSCallFunction;
|
|
||||||
import com.whl.quickjs.wrapper.QuickJSContext;
|
import com.whl.quickjs.wrapper.QuickJSContext;
|
||||||
|
|
||||||
import java.io.InputStream;
|
import java.io.InputStream;
|
||||||
import java.nio.charset.StandardCharsets;
|
import java.nio.charset.StandardCharsets;
|
||||||
import java.security.MessageDigest;
|
import java.security.MessageDigest;
|
||||||
import java.security.NoSuchAlgorithmException;
|
import java.security.NoSuchAlgorithmException;
|
||||||
import java.util.UUID;
|
import java.util.UUID;
|
||||||
import okhttp3.HttpUrl;
|
|
||||||
|
|
||||||
public class QuickJS {
|
public class QuickJS {
|
||||||
private final Handler eventHandler;
|
private final Handler eventHandler;
|
@ -4,12 +4,12 @@ import android.os.Bundle;
|
|||||||
import android.os.Handler;
|
import android.os.Handler;
|
||||||
import android.os.Message;
|
import android.os.Message;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
|
|
||||||
import com.facebook.react.bridge.Arguments;
|
import com.facebook.react.bridge.Arguments;
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
import com.facebook.react.bridge.ReactApplicationContext;
|
||||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||||
import com.facebook.react.bridge.ReactMethod;
|
import com.facebook.react.bridge.ReactMethod;
|
||||||
import com.facebook.react.bridge.ReadableMap;
|
import com.facebook.react.bridge.ReadableMap;
|
||||||
import java.lang.Thread;
|
|
||||||
|
|
||||||
public class UserApiModule extends ReactContextBaseJavaModule {
|
public class UserApiModule extends ReactContextBaseJavaModule {
|
||||||
private JavaScriptThread javaScriptThread;
|
private JavaScriptThread javaScriptThread;
|
@ -4,6 +4,7 @@ import com.facebook.react.ReactPackage;
|
|||||||
import com.facebook.react.bridge.NativeModule;
|
import com.facebook.react.bridge.NativeModule;
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
import com.facebook.react.bridge.ReactApplicationContext;
|
||||||
import com.facebook.react.uimanager.ViewManager;
|
import com.facebook.react.uimanager.ViewManager;
|
||||||
|
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.List;
|
import java.util.List;
|
@ -1,7 +1,5 @@
|
|||||||
package com.ikunshare.music.mobile.userApi;
|
package com.ikunshare.music.mobile.userApi;
|
||||||
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
import com.facebook.react.bridge.ReactApplicationContext;
|
@ -0,0 +1,19 @@
|
|||||||
|
package com.ikunshare.music.mobile.utils;
|
||||||
|
|
||||||
|
|
||||||
|
public class Utils {
|
||||||
|
// public static boolean deletePath(File dir) {
|
||||||
|
// if (dir.isDirectory()) {
|
||||||
|
// String[] children = dir.list();
|
||||||
|
// for (int i=0; i< children.length; i++) {
|
||||||
|
// boolean success = deletePath(new File(dir, children[i]));
|
||||||
|
// if (!success) {
|
||||||
|
// return false;
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
// }
|
||||||
|
//
|
||||||
|
// // The directory is now empty so delete it
|
||||||
|
// return dir.delete();
|
||||||
|
// }
|
||||||
|
}
|
@ -1,7 +1,5 @@
|
|||||||
package com.ikunshare.music.mobile.utils;
|
package com.ikunshare.music.mobile.utils;
|
||||||
|
|
||||||
import android.util.Log;
|
|
||||||
|
|
||||||
import androidx.annotation.Nullable;
|
import androidx.annotation.Nullable;
|
||||||
|
|
||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
import com.facebook.react.bridge.ReactApplicationContext;
|
@ -14,8 +14,6 @@ import android.net.wifi.WifiInfo;
|
|||||||
import android.net.wifi.WifiManager;
|
import android.net.wifi.WifiManager;
|
||||||
import android.os.Build;
|
import android.os.Build;
|
||||||
import android.util.Log;
|
import android.util.Log;
|
||||||
import android.view.View;
|
|
||||||
import android.view.ViewTreeObserver;
|
|
||||||
import android.view.Window;
|
import android.view.Window;
|
||||||
import android.view.WindowManager;
|
import android.view.WindowManager;
|
||||||
|
|
||||||
@ -29,13 +27,11 @@ import com.facebook.react.bridge.Promise;
|
|||||||
import com.facebook.react.bridge.ReactApplicationContext;
|
import com.facebook.react.bridge.ReactApplicationContext;
|
||||||
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
import com.facebook.react.bridge.ReactContextBaseJavaModule;
|
||||||
import com.facebook.react.bridge.ReactMethod;
|
import com.facebook.react.bridge.ReactMethod;
|
||||||
import com.facebook.react.bridge.UiThreadUtil;
|
|
||||||
import com.facebook.react.bridge.WritableArray;
|
import com.facebook.react.bridge.WritableArray;
|
||||||
import com.facebook.react.bridge.WritableMap;
|
import com.facebook.react.bridge.WritableMap;
|
||||||
import com.facebook.react.bridge.WritableNativeArray;
|
import com.facebook.react.bridge.WritableNativeArray;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.util.ArrayList;
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.Locale;
|
import java.util.Locale;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
11706
package-lock.json
generated
Normal file
11706
package-lock.json
generated
Normal file
File diff suppressed because it is too large
Load Diff
@ -208,7 +208,7 @@ export const getOnlineOtherSourcePicByLocal = async(musicInfo: LX.Music.MusicInf
|
|||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export const TRY_QUALITYS_LIST = ['flac24bit', 'flac', '320k'] as const
|
export const TRY_QUALITYS_LIST = ['master', 'flac24bit', 'flac', '320k', '128k'] as const
|
||||||
type TryQualityType = typeof TRY_QUALITYS_LIST[number]
|
type TryQualityType = typeof TRY_QUALITYS_LIST[number]
|
||||||
export const getPlayQuality = (highQuality: LX.Quality, musicInfo: LX.Music.MusicInfoOnline): LX.Quality => {
|
export const getPlayQuality = (highQuality: LX.Quality, musicInfo: LX.Music.MusicInfoOnline): LX.Quality => {
|
||||||
let type: LX.Quality = '128k'
|
let type: LX.Quality = '128k'
|
||||||
|
@ -27,7 +27,7 @@ const Item = ({ id, name }: {
|
|||||||
export default memo(() => {
|
export default memo(() => {
|
||||||
const t = useI18n()
|
const t = useI18n()
|
||||||
const playQualityList = useMemo(() => {
|
const playQualityList = useMemo(() => {
|
||||||
return [...TRY_QUALITYS_LIST, '128k'].reverse() as LX.Quality[]
|
return [...TRY_QUALITYS_LIST].reverse() as LX.Quality[]
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
return (
|
return (
|
||||||
@ -47,26 +47,3 @@ const styles = StyleSheet.create({
|
|||||||
flexWrap: 'wrap',
|
flexWrap: 'wrap',
|
||||||
},
|
},
|
||||||
})
|
})
|
||||||
|
|
||||||
|
|
||||||
// export default memo(() => {
|
|
||||||
// const t = useI18n()
|
|
||||||
// const isPlayHighQuality = useSettingValue('player.isPlayHighQuality')
|
|
||||||
// const setPlayHighQuality = (isPlayHighQuality: boolean) => {
|
|
||||||
// updateSetting({ 'player.isPlayHighQuality': isPlayHighQuality })
|
|
||||||
// }
|
|
||||||
|
|
||||||
// return (
|
|
||||||
// <View style={styles.content}>
|
|
||||||
// <CheckBoxItem check={isPlayHighQuality} onChange={setPlayHighQuality} label={t('setting_play_quality')} />
|
|
||||||
// </View>
|
|
||||||
// )
|
|
||||||
// })
|
|
||||||
|
|
||||||
|
|
||||||
// const styles = createStyle({
|
|
||||||
// content: {
|
|
||||||
// marginTop: 5,
|
|
||||||
// },
|
|
||||||
// })
|
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ import { dnsLookup } from '../utils'
|
|||||||
|
|
||||||
const api_ikun_zj = {
|
const api_ikun_zj = {
|
||||||
getMusicUrl(songInfo, type) {
|
getMusicUrl(songInfo, type) {
|
||||||
const requestObj = httpFetch(`https://lxmusic.ikunshare.com/url/kg/${songInfo._types[type].hash}/${type}`, {
|
const requestObj = httpFetch(`https://音源.ikunshare.com/url/kg/${songInfo._types[type].hash}/${type}`, {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
@ -5,7 +5,7 @@ import { dnsLookup } from '../utils'
|
|||||||
|
|
||||||
const api_ikun_cf = {
|
const api_ikun_cf = {
|
||||||
getMusicUrl(songInfo, type) {
|
getMusicUrl(songInfo, type) {
|
||||||
const requestObj = httpFetch(`https://lxmusic.ikunshare.com/url/kg/${songInfo._types[type].hash}/${type}`, {
|
const requestObj = httpFetch(`https://音源.ikunshare.com/url/kg/${songInfo._types[type].hash}/${type}`, {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
@ -5,7 +5,7 @@ import { dnsLookup } from '../utils'
|
|||||||
|
|
||||||
const api_ikun_zj = {
|
const api_ikun_zj = {
|
||||||
getMusicUrl(songInfo, type) {
|
getMusicUrl(songInfo, type) {
|
||||||
const requestObj = httpFetch(`https://lxmusic.ikunshare.com/url/kw/${songInfo.songmid}/${type}`, {
|
const requestObj = httpFetch(`https://音源.ikunshare.com/url/kw/${songInfo.songmid}/${type}`, {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
@ -5,7 +5,7 @@ import { dnsLookup } from '../utils'
|
|||||||
|
|
||||||
const api_ikun_zj = {
|
const api_ikun_zj = {
|
||||||
getMusicUrl(songInfo, type) {
|
getMusicUrl(songInfo, type) {
|
||||||
const requestObj = httpFetch(`https://lxmusic.ikunshare.com/url/mg/${songInfo.copyrightId}/${type}`, {
|
const requestObj = httpFetch(`https://音源.ikunshare.com/url/mg/${songInfo.copyrightId}/${type}`, {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
@ -2,6 +2,7 @@ export const bHh = '624868746c'
|
|||||||
|
|
||||||
export const headers = {
|
export const headers = {
|
||||||
'User-Agent': 'lx-music mobile request',
|
'User-Agent': 'lx-music mobile request',
|
||||||
|
'X-Request-Key': 'ikunsource_public',
|
||||||
[bHh]: [bHh],
|
[bHh]: [bHh],
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -5,7 +5,7 @@ import { dnsLookup } from '../utils'
|
|||||||
|
|
||||||
const api_ikun_zj = {
|
const api_ikun_zj = {
|
||||||
getMusicUrl(songInfo, type) {
|
getMusicUrl(songInfo, type) {
|
||||||
const requestObj = httpFetch(`https://lxmusic.ikunshare.com/url/tx/${songInfo.songmid}/${type}`, {
|
const requestObj = httpFetch(`https://音源.ikunshare.com/url/tx/${songInfo.songmid}/${type}`, {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
@ -5,7 +5,7 @@ import { dnsLookup } from '../utils'
|
|||||||
|
|
||||||
const api_ikun_cf = {
|
const api_ikun_cf = {
|
||||||
getMusicUrl(songInfo, type) {
|
getMusicUrl(songInfo, type) {
|
||||||
const requestObj = httpFetch(`https://lxmusic.ikunshare.com/url/tx/${songInfo.songmid}/${type}`, {
|
const requestObj = httpFetch(`https://音源.ikunshare.com/url/tx/${songInfo.songmid}/${type}`, {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
@ -5,7 +5,7 @@ import { dnsLookup } from '../utils'
|
|||||||
|
|
||||||
const api_ikun_zj = {
|
const api_ikun_zj = {
|
||||||
getMusicUrl(songInfo, type) {
|
getMusicUrl(songInfo, type) {
|
||||||
const requestObj = httpFetch(`https://lxmusic.ikunshare.com/url/wy/${songInfo.songmid}/${type}`, {
|
const requestObj = httpFetch(`https://音源.ikunshare.com/url/wy/${songInfo.songmid}/${type}`, {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
@ -5,7 +5,7 @@ import { dnsLookup } from '../utils'
|
|||||||
|
|
||||||
const api_ikun_cf = {
|
const api_ikun_cf = {
|
||||||
getMusicUrl(songInfo, type) {
|
getMusicUrl(songInfo, type) {
|
||||||
const requestObj = httpFetch(`https://lxmusic.ikunshare.com/url/wy/${songInfo.songmid}/${type}`, {
|
const requestObj = httpFetch(`https://音源.ikunshare.com/url/wy/${songInfo.songmid}/${type}`, {
|
||||||
method: 'get',
|
method: 'get',
|
||||||
timeout,
|
timeout,
|
||||||
headers,
|
headers,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user