From 7c04fe27fae6db5558f6d5eb0ec295a63a461d9d Mon Sep 17 00:00:00 2001 From: VictorModi Date: Thu, 29 Feb 2024 22:40:21 +0800 Subject: [PATCH] Optimized some code --- .../main/java/statusbar/finder/LrcGetter.java | 14 +++++++++----- .../statusbar/finder/MusicListenerService.java | 6 +++--- .../main/java/statusbar/finder/hook/MainHook.kt | 17 +++++++++++++++++ .../AppsListChanged.java | 4 ++-- .../{livedatas => livedata}/GetResult.java | 4 ++-- .../{livedatas => livedata}/LyricsChanged.java | 4 ++-- ...ckStringLang.java => CheckLanguageUtil.java} | 2 +- .../preferences/PackageListPreference.java | 2 +- .../finder/provider/MusixMatchProvider.java | 4 ++-- .../finder/provider/utils/LyricSearchUtil.java | 10 +++++----- 10 files changed, 44 insertions(+), 23 deletions(-) create mode 100644 app/src/main/java/statusbar/finder/hook/MainHook.kt rename app/src/main/java/statusbar/finder/{livedatas => livedata}/AppsListChanged.java (88%) rename app/src/main/java/statusbar/finder/{livedatas => livedata}/GetResult.java (91%) rename app/src/main/java/statusbar/finder/{livedatas => livedata}/LyricsChanged.java (92%) rename app/src/main/java/statusbar/finder/misc/{CheckStringLang.java => CheckLanguageUtil.java} (96%) diff --git a/app/src/main/java/statusbar/finder/LrcGetter.java b/app/src/main/java/statusbar/finder/LrcGetter.java index 47587e1..cf444e8 100644 --- a/app/src/main/java/statusbar/finder/LrcGetter.java +++ b/app/src/main/java/statusbar/finder/LrcGetter.java @@ -7,8 +7,8 @@ import com.github.houbb.opencc4j.util.ZhConverterUtil; import com.moji4j.MojiConverter; import com.moji4j.MojiDetector; -import statusbar.finder.livedatas.GetResult; -import statusbar.finder.misc.CheckStringLang; +import statusbar.finder.livedata.GetResult; +import statusbar.finder.misc.CheckLanguageUtil; import statusbar.finder.provider.ILrcProvider; import statusbar.finder.provider.KugouProvider; import statusbar.finder.provider.MusixMatchProvider; @@ -28,13 +28,17 @@ public class LrcGetter { // new QQMusicProvider() }; private static MessageDigest messageDigest; + public static LyricsDatabase lyricsDatabase; public static Lyric getLyric(Context context, MediaMetadata mediaMetadata, String sysLang, String packageName, boolean requireTranslate) { return getLyric(context, new ILrcProvider.MediaInfo(mediaMetadata), sysLang, packageName, requireTranslate); } public static Lyric getLyric(Context context, ILrcProvider.MediaInfo mediaInfo, String sysLang, String packageName, boolean requireTranslate) { - LyricsDatabase lyricsDatabase = new LyricsDatabase(context); + lyricsDatabase = lyricsDatabase != null + ? lyricsDatabase + : new LyricsDatabase(context) + ; // Log.d(TAG, "curMediaData" + new SimpleSongInfo(mediaMetadata)); ILrcProvider.MediaInfo hiraganaMediaInfo; if (messageDigest == null) { @@ -96,13 +100,13 @@ public static Lyric getLyric(Context context, ILrcProvider.MediaInfo mediaInfo, allLyrics = LyricUtils.getAllLyrics(false, currentResult.mLyric); } - if (Objects.equals(sysLang, "zh-CN") && !CheckStringLang.isJapanese(allLyrics)) { + if (Objects.equals(sysLang, "zh-CN") && !CheckLanguageUtil.isJapanese(allLyrics)) { if (currentResult.mTranslatedLyric != null) { currentResult.mTranslatedLyric = ZhConverterUtil.toSimple(currentResult.mTranslatedLyric); } else { currentResult.mLyric = ZhConverterUtil.toSimple(currentResult.mLyric); } - } else if (Objects.equals(sysLang, "zh-TW") && !CheckStringLang.isJapanese(allLyrics)) { + } else if (Objects.equals(sysLang, "zh-TW") && !CheckLanguageUtil.isJapanese(allLyrics)) { if (currentResult.mTranslatedLyric != null) { currentResult.mTranslatedLyric = ZhConverterUtil.toTraditional(currentResult.mTranslatedLyric); } else { diff --git a/app/src/main/java/statusbar/finder/MusicListenerService.java b/app/src/main/java/statusbar/finder/MusicListenerService.java index ae91a95..942f4a3 100644 --- a/app/src/main/java/statusbar/finder/MusicListenerService.java +++ b/app/src/main/java/statusbar/finder/MusicListenerService.java @@ -28,9 +28,9 @@ import cn.lyric.getter.api.tools.Tools; import cn.zhaiyifan.lyric.LyricUtils; import cn.zhaiyifan.lyric.model.Lyric; -import statusbar.finder.livedatas.AppsListChanged; -import statusbar.finder.livedatas.GetResult; -import statusbar.finder.livedatas.LyricsChanged; +import statusbar.finder.livedata.AppsListChanged; +import statusbar.finder.livedata.GetResult; +import statusbar.finder.livedata.LyricsChanged; import statusbar.finder.misc.Constants; import statusbar.finder.provider.ILrcProvider; diff --git a/app/src/main/java/statusbar/finder/hook/MainHook.kt b/app/src/main/java/statusbar/finder/hook/MainHook.kt new file mode 100644 index 0000000..cd90177 --- /dev/null +++ b/app/src/main/java/statusbar/finder/hook/MainHook.kt @@ -0,0 +1,17 @@ +package statusbar.finder.hook + +import de.robv.android.xposed.IXposedHookLoadPackage +import de.robv.android.xposed.callbacks.XC_LoadPackage + +/** + * LyricGetterExt - statusbar.finder.hook + * @description: Coming soon. + * @author: VictorModi + * @email: victormodi@outlook.com + * @date: 2024/2/23 0:17 + */ +abstract class MainHook : IXposedHookLoadPackage { + override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { + + } +} diff --git a/app/src/main/java/statusbar/finder/livedatas/AppsListChanged.java b/app/src/main/java/statusbar/finder/livedata/AppsListChanged.java similarity index 88% rename from app/src/main/java/statusbar/finder/livedatas/AppsListChanged.java rename to app/src/main/java/statusbar/finder/livedata/AppsListChanged.java index febf32c..93b2620 100644 --- a/app/src/main/java/statusbar/finder/livedatas/AppsListChanged.java +++ b/app/src/main/java/statusbar/finder/livedata/AppsListChanged.java @@ -1,9 +1,9 @@ -package statusbar.finder.livedatas; +package statusbar.finder.livedata; import androidx.lifecycle.LiveData; /** - * LyricGetterExt - statusbar.finder.broadcast + * LyricGetterExt - statusbar.finder.livedata * @description: Used for notifying observers about changes in the list of apps. * This LiveData emits a null value to indicate that the list of apps has been changed. * Singleton class, use getInstance() method to obtain the instance. diff --git a/app/src/main/java/statusbar/finder/livedatas/GetResult.java b/app/src/main/java/statusbar/finder/livedata/GetResult.java similarity index 91% rename from app/src/main/java/statusbar/finder/livedatas/GetResult.java rename to app/src/main/java/statusbar/finder/livedata/GetResult.java index e2ad459..f437039 100644 --- a/app/src/main/java/statusbar/finder/livedatas/GetResult.java +++ b/app/src/main/java/statusbar/finder/livedata/GetResult.java @@ -1,10 +1,10 @@ -package statusbar.finder.livedatas; +package statusbar.finder.livedata; import androidx.lifecycle.LiveData; import statusbar.finder.provider.ILrcProvider; /** - * LyricGetterExt - statusbar.finder.livedatas + * LyricGetterExt - statusbar.finder.livedata * * @description: Coming soon. * @author: VictorModi diff --git a/app/src/main/java/statusbar/finder/livedatas/LyricsChanged.java b/app/src/main/java/statusbar/finder/livedata/LyricsChanged.java similarity index 92% rename from app/src/main/java/statusbar/finder/livedatas/LyricsChanged.java rename to app/src/main/java/statusbar/finder/livedata/LyricsChanged.java index 49ea732..f6950ac 100644 --- a/app/src/main/java/statusbar/finder/livedatas/LyricsChanged.java +++ b/app/src/main/java/statusbar/finder/livedata/LyricsChanged.java @@ -1,9 +1,9 @@ -package statusbar.finder.livedatas; +package statusbar.finder.livedata; import androidx.lifecycle.LiveData; /** - * LyricGetterExt - statusbar.finder.livedatas + * LyricGetterExt - statusbar.finder.livedata * @description: LiveData for notifying observers about changes in lyrics. * This LiveData emits a Pair object containing the updated lyric content and its position. * Singleton class, use getInstance() method to obtain the instance. diff --git a/app/src/main/java/statusbar/finder/misc/CheckStringLang.java b/app/src/main/java/statusbar/finder/misc/CheckLanguageUtil.java similarity index 96% rename from app/src/main/java/statusbar/finder/misc/CheckStringLang.java rename to app/src/main/java/statusbar/finder/misc/CheckLanguageUtil.java index d0d7fae..0a5e7c3 100644 --- a/app/src/main/java/statusbar/finder/misc/CheckStringLang.java +++ b/app/src/main/java/statusbar/finder/misc/CheckLanguageUtil.java @@ -2,7 +2,7 @@ import com.moji4j.MojiDetector; -public class CheckStringLang { +public class CheckLanguageUtil { private static MojiDetector detector; // public static boolean isJapenese(String text) { diff --git a/app/src/main/java/statusbar/finder/preferences/PackageListPreference.java b/app/src/main/java/statusbar/finder/preferences/PackageListPreference.java index 59ccb59..fbc42ca 100644 --- a/app/src/main/java/statusbar/finder/preferences/PackageListPreference.java +++ b/app/src/main/java/statusbar/finder/preferences/PackageListPreference.java @@ -27,7 +27,7 @@ import androidx.preference.PreferenceCategory; import org.jetbrains.annotations.NotNull; import statusbar.finder.R; -import statusbar.finder.livedatas.AppsListChanged; +import statusbar.finder.livedata.AppsListChanged; import statusbar.finder.preferences.PackageListAdapter.PackageItem; import java.util.ArrayList; diff --git a/app/src/main/java/statusbar/finder/provider/MusixMatchProvider.java b/app/src/main/java/statusbar/finder/provider/MusixMatchProvider.java index 43b2bc7..c72b2de 100644 --- a/app/src/main/java/statusbar/finder/provider/MusixMatchProvider.java +++ b/app/src/main/java/statusbar/finder/provider/MusixMatchProvider.java @@ -8,7 +8,7 @@ import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import statusbar.finder.misc.CheckStringLang; +import statusbar.finder.misc.CheckLanguageUtil; import statusbar.finder.provider.utils.HttpRequestUtil; import statusbar.finder.provider.utils.LyricSearchUtil; import statusbar.finder.provider.utils.UnicodeUtil; @@ -133,7 +133,7 @@ private static Pair getLrcUrl(JSONArray jsonArray, String songTitl private String toSimpleURLEncode(String input) { String result = input; if (input != null) { - if (!CheckStringLang.isJapanese(input)) { + if (!CheckLanguageUtil.isJapanese(input)) { result = ZhConverterUtil.toSimple(result); } if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.TIRAMISU) { diff --git a/app/src/main/java/statusbar/finder/provider/utils/LyricSearchUtil.java b/app/src/main/java/statusbar/finder/provider/utils/LyricSearchUtil.java index 4c89b32..ef9c867 100644 --- a/app/src/main/java/statusbar/finder/provider/utils/LyricSearchUtil.java +++ b/app/src/main/java/statusbar/finder/provider/utils/LyricSearchUtil.java @@ -6,7 +6,7 @@ import com.github.houbb.opencc4j.util.ZhConverterUtil; import org.json.JSONArray; import org.json.JSONException; -import statusbar.finder.misc.CheckStringLang; +import statusbar.finder.misc.CheckLanguageUtil; import statusbar.finder.provider.ILrcProvider; import java.io.UnsupportedEncodingException; @@ -19,7 +19,7 @@ public class LyricSearchUtil { private static final Pattern LyricContentPattern = Pattern.compile("(\\[\\d\\d:\\d\\d\\.\\d{0,3}]|\\[\\d\\d:\\d\\d])[^\\r\\n]"); private static void convertIfNecessary(String input) { - if (ZhConverterUtil.isTraditional(input) && !(CheckStringLang.isJapanese(input))) { + if (ZhConverterUtil.isTraditional(input) && !(CheckLanguageUtil.isJapanese(input))) { input = ZhConverterUtil.toSimple(input); } } @@ -76,15 +76,15 @@ public static String parseArtists(JSONArray jsonArray, String key) { public static long calculateSongInfoDistance(String realTitle, String realArtist, String realAlbum, String title, String artist, String album) { if (ZhConverterUtil.isTraditional(realTitle)) { - if (!(CheckStringLang.isJapanese(realTitle))) + if (!(CheckLanguageUtil.isJapanese(realTitle))) realTitle = ZhConverterUtil.toSimple(realTitle); } if (ZhConverterUtil.isTraditional(realArtist)) { - if (!(CheckStringLang.isJapanese(realArtist))) + if (!(CheckLanguageUtil.isJapanese(realArtist))) realArtist = ZhConverterUtil.toSimple(realArtist); } if (ZhConverterUtil.isTraditional(realAlbum)) { - if (!(CheckStringLang.isJapanese(realAlbum))) + if (!(CheckLanguageUtil.isJapanese(realAlbum))) realAlbum = ZhConverterUtil.toSimple(realAlbum); }