From f65401b7f7ec1038a339d666dc00ad2906ad67f4 Mon Sep 17 00:00:00 2001 From: VictorModi Date: Sun, 16 Feb 2025 23:33:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BC=98=E5=8C=96=E9=A1=B9=E7=9B=AE=E7=BB=93?= =?UTF-8?q?=E6=9E=84?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- app/src/main/AndroidManifest.xml | 8 +-- .../java/cn/zhaiyifan/lyric/LyricUtils.java | 6 +-- .../java/cn/zhaiyifan/lyric/model/Lyric.java | 2 +- .../java/statusbar/finder/CSLyricHelper.java | 1 + .../main/java/statusbar/finder/LrcGetter.java | 51 +++++++++---------- .../finder/{ => app}/LyricsActivity.kt | 23 ++++----- .../finder/{ => app}/LyricsAdapter.kt | 7 ++- .../{ => app}/MusicListenerService.java | 19 ++++--- .../finder/{ => app}/SettingsActivity.java | 13 ++--- .../event}/AppsListChanged.kt | 2 +- .../event}/LyricSentenceUpdate.kt | 2 +- .../{livedata => app/event}/LyricsChange.kt | 3 +- .../event}/LyricsResultChange.kt | 7 ++- .../finder/{ => data/db}/DatabaseHelper.kt | 19 ++++--- .../finder/data/{ => model}/DataOrigin.kt | 2 +- .../finder/{ => data/model}/LyricItem.kt | 2 +- .../finder/data/{ => model}/LyricResult.kt | 2 +- .../finder/data/{ => model}/MediaInfo.kt | 2 +- .../repository/ActiveRepository.kt} | 18 +++---- .../finder/data/repository/LyricRepository.kt | 41 +++++++++++++++ .../repository/OriginRepository.kt} | 22 +++----- .../repository/ResRepository.kt} | 24 ++++----- .../java/statusbar/finder/hook/MainHook.kt | 10 ++-- .../statusbar/finder/hook/app/SystemUI.kt | 17 ++++--- .../statusbar/finder/hook/tool/HookTool.kt | 35 +++++++++++++ .../preferences/PackageListPreference.java | 2 +- .../finder/provider/ILrcProvider.java | 8 +-- .../finder/provider/KugouProvider.java | 8 +-- .../finder/provider/MusixMatchProvider.java | 14 ++--- .../finder/provider/NeteaseProvider.java | 8 +-- .../finder/provider/QQMusicProvider.java | 8 +-- .../java/statusbar/finder/sql/QueryTool.kt | 36 ------------- .../{misc => utils}/CheckLanguageUtil.java | 2 +- .../{provider => }/utils/HttpRequestUtil.java | 2 +- .../{provider => }/utils/LyricSearchUtil.java | 5 +- .../{provider => }/utils/UnicodeUtil.java | 2 +- 36 files changed, 228 insertions(+), 205 deletions(-) rename app/src/main/java/statusbar/finder/{ => app}/LyricsActivity.kt (92%) rename app/src/main/java/statusbar/finder/{ => app}/LyricsAdapter.kt (93%) rename app/src/main/java/statusbar/finder/{ => app}/MusicListenerService.java (97%) rename app/src/main/java/statusbar/finder/{ => app}/SettingsActivity.java (94%) rename app/src/main/java/statusbar/finder/{livedata => app/event}/AppsListChanged.kt (94%) rename app/src/main/java/statusbar/finder/{livedata => app/event}/LyricSentenceUpdate.kt (95%) rename app/src/main/java/statusbar/finder/{livedata => app/event}/LyricsChange.kt (90%) rename app/src/main/java/statusbar/finder/{livedata => app/event}/LyricsResultChange.kt (82%) rename app/src/main/java/statusbar/finder/{ => data/db}/DatabaseHelper.kt (52%) rename app/src/main/java/statusbar/finder/data/{ => model}/DataOrigin.kt (90%) rename app/src/main/java/statusbar/finder/{ => data/model}/LyricItem.kt (88%) rename app/src/main/java/statusbar/finder/data/{ => model}/LyricResult.kt (97%) rename app/src/main/java/statusbar/finder/data/{ => model}/MediaInfo.kt (96%) rename app/src/main/java/statusbar/finder/{sql/ActiveManager.kt => data/repository/ActiveRepository.kt} (52%) create mode 100644 app/src/main/java/statusbar/finder/data/repository/LyricRepository.kt rename app/src/main/java/statusbar/finder/{sql/OriginManager.kt => data/repository/OriginRepository.kt} (68%) rename app/src/main/java/statusbar/finder/{sql/ResManager.kt => data/repository/ResRepository.kt} (80%) create mode 100644 app/src/main/java/statusbar/finder/hook/tool/HookTool.kt delete mode 100644 app/src/main/java/statusbar/finder/sql/QueryTool.kt rename app/src/main/java/statusbar/finder/{misc => utils}/CheckLanguageUtil.java (96%) rename app/src/main/java/statusbar/finder/{provider => }/utils/HttpRequestUtil.java (98%) rename app/src/main/java/statusbar/finder/{provider => }/utils/LyricSearchUtil.java (97%) rename app/src/main/java/statusbar/finder/{provider => }/utils/UnicodeUtil.java (98%) diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 3bd9854..65e50cf 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -23,7 +23,7 @@ android:theme="@style/Theme.SubSettingsBase"> @@ -33,7 +33,7 @@ @@ -42,13 +42,13 @@ + android:value="true"/> diff --git a/app/src/main/java/cn/zhaiyifan/lyric/LyricUtils.java b/app/src/main/java/cn/zhaiyifan/lyric/LyricUtils.java index aac0f29..a7ffb99 100644 --- a/app/src/main/java/cn/zhaiyifan/lyric/LyricUtils.java +++ b/app/src/main/java/cn/zhaiyifan/lyric/LyricUtils.java @@ -1,12 +1,10 @@ package cn.zhaiyifan.lyric; -import android.media.MediaMetadata; import android.util.Log; import cn.zhaiyifan.lyric.model.Lyric; import cn.zhaiyifan.lyric.model.Lyric.Sentence; -import statusbar.finder.data.LyricResult; -import statusbar.finder.data.MediaInfo; -import statusbar.finder.provider.ILrcProvider; +import statusbar.finder.data.model.LyricResult; +import statusbar.finder.data.model.MediaInfo; import java.io.BufferedReader; import java.io.IOException; diff --git a/app/src/main/java/cn/zhaiyifan/lyric/model/Lyric.java b/app/src/main/java/cn/zhaiyifan/lyric/model/Lyric.java index 36f081b..3eb1d39 100644 --- a/app/src/main/java/cn/zhaiyifan/lyric/model/Lyric.java +++ b/app/src/main/java/cn/zhaiyifan/lyric/model/Lyric.java @@ -1,7 +1,7 @@ package cn.zhaiyifan.lyric.model; import org.jetbrains.annotations.NotNull; -import statusbar.finder.data.MediaInfo; +import statusbar.finder.data.model.MediaInfo; import java.util.ArrayList; import java.util.Comparator; diff --git a/app/src/main/java/statusbar/finder/CSLyricHelper.java b/app/src/main/java/statusbar/finder/CSLyricHelper.java index 86b690b..cc1af64 100644 --- a/app/src/main/java/statusbar/finder/CSLyricHelper.java +++ b/app/src/main/java/statusbar/finder/CSLyricHelper.java @@ -6,6 +6,7 @@ import android.content.Context; import android.content.Intent; import android.util.JsonWriter; + import java.io.IOException; import java.io.StringWriter; diff --git a/app/src/main/java/statusbar/finder/LrcGetter.java b/app/src/main/java/statusbar/finder/LrcGetter.java index 31a8b89..3778e2c 100644 --- a/app/src/main/java/statusbar/finder/LrcGetter.java +++ b/app/src/main/java/statusbar/finder/LrcGetter.java @@ -2,32 +2,27 @@ import android.content.Context; import android.media.MediaMetadata; -import androidx.core.util.Pair; import cn.zhaiyifan.lyric.LyricUtils; import cn.zhaiyifan.lyric.model.Lyric; import com.github.houbb.opencc4j.util.ZhConverterUtil; import com.moji4j.MojiConverter; import com.moji4j.MojiDetector; -import statusbar.finder.data.DataOrigin; -import statusbar.finder.data.LyricResult; -import statusbar.finder.data.MediaInfo; -import statusbar.finder.livedata.LyricsResultChange; -import statusbar.finder.misc.CheckLanguageUtil; -import statusbar.finder.provider.ILrcProvider; -import statusbar.finder.provider.KugouProvider; -import statusbar.finder.provider.MusixMatchProvider; -import statusbar.finder.provider.NeteaseProvider; -import statusbar.finder.provider.QQMusicProvider; -import statusbar.finder.provider.utils.LyricSearchUtil; -import statusbar.finder.sql.ActiveManager; -import statusbar.finder.sql.OriginManager; -import statusbar.finder.sql.QueryTool; -import statusbar.finder.sql.ResManager; +import kotlin.Pair; +import statusbar.finder.app.event.LyricsResultChange; +import statusbar.finder.data.db.DatabaseHelper; +import statusbar.finder.data.model.DataOrigin; +import statusbar.finder.data.model.LyricResult; +import statusbar.finder.data.model.MediaInfo; +import statusbar.finder.data.repository.ActiveRepository; +import statusbar.finder.data.repository.LyricRepository; +import statusbar.finder.data.repository.ResRepository; +import statusbar.finder.provider.*; +import statusbar.finder.utils.CheckLanguageUtil; +import statusbar.finder.utils.LyricSearchUtil; import java.io.IOException; import java.security.MessageDigest; import java.security.NoSuchAlgorithmException; -import java.util.Objects; public class LrcGetter { private static final ILrcProvider[] providers = { @@ -55,12 +50,12 @@ public static Lyric getLyric(Context context, MediaInfo mediaInfo, String sysLan return null; } } - Pair databaseResult = QueryTool.INSTANCE.getActiveLyricFromDatabase(mediaInfo, packageName); - LyricResult currentResult = databaseResult.first; + Pair databaseResult = LyricRepository.INSTANCE.getActiveLyricFromDatabase(mediaInfo, packageName); + LyricResult currentResult = databaseResult.getFirst(); if (currentResult == null) { - searchLyricsResultByInfo(mediaInfo, databaseResult.second, sysLang); - currentResult = QueryTool.INSTANCE.getActiveLyricFromDatabaseByOriginId(databaseResult.second); + searchLyricsResultByInfo(mediaInfo, databaseResult.getSecond(), sysLang); + currentResult = LyricRepository.INSTANCE.getActiveLyricFromDatabaseByOriginId(databaseResult.getSecond()); } else { LyricsResultChange.Companion.getInstance().notifyResult(new LyricsResultChange.Data(mediaInfo, currentResult)); return LyricUtils.parseLyric(currentResult, mediaInfo, packageName); @@ -73,12 +68,12 @@ public static Lyric getLyric(Context context, MediaInfo mediaInfo, String sysLan LyricsResultChange.Companion.getInstance().notifyResult(new LyricsResultChange.Data(mediaInfo, null)); return null; } - searchLyricsResultByInfo(hiraganaMediaInfo, databaseResult.second, sysLang); - currentResult = QueryTool.INSTANCE.getActiveLyricFromDatabaseByOriginId(databaseResult.second); + searchLyricsResultByInfo(hiraganaMediaInfo, databaseResult.getSecond(), sysLang); + currentResult = LyricRepository.INSTANCE.getActiveLyricFromDatabaseByOriginId(databaseResult.getSecond()); if (currentResult == null) { hiraganaMediaInfo.setTitle(converter.convertRomajiToKatakana(mediaInfo.getTitle())); - searchLyricsResultByInfo(hiraganaMediaInfo, databaseResult.second, sysLang); - currentResult = QueryTool.INSTANCE.getActiveLyricFromDatabaseByOriginId(databaseResult.second); + searchLyricsResultByInfo(hiraganaMediaInfo, databaseResult.getSecond(), sysLang); + currentResult = LyricRepository.INSTANCE.getActiveLyricFromDatabaseByOriginId(databaseResult.getSecond()); } } @@ -125,7 +120,7 @@ private static void searchLyricsResultByInfo(MediaInfo mediaInfo, Long originId, break; } } - ResManager.INSTANCE.insertResData(originId, lyricResult); + ResRepository.INSTANCE.insertResData(originId, lyricResult); if (LyricSearchUtil.isLyricContent(lyricResult.getLyric()) && (bestMatchSource == null || bestMatchDistance > lyricResult.getDistance())) { bestMatchSource = lyricResult.getSource(); @@ -136,9 +131,9 @@ private static void searchLyricsResultByInfo(MediaInfo mediaInfo, Long originId, } } if (bestMatchSource != null) { - Res bestMatchResult = ResManager.INSTANCE.getResByOriginIdAndProvider(originId, bestMatchSource); + Res bestMatchResult = ResRepository.INSTANCE.getResByOriginIdAndProvider(originId, bestMatchSource); assert bestMatchResult != null; - ActiveManager.INSTANCE.insertActiveLog(originId, bestMatchResult.getId()); + ActiveRepository.INSTANCE.insertActiveLog(originId, bestMatchResult.getId()); } } } diff --git a/app/src/main/java/statusbar/finder/LyricsActivity.kt b/app/src/main/java/statusbar/finder/app/LyricsActivity.kt similarity index 92% rename from app/src/main/java/statusbar/finder/LyricsActivity.kt rename to app/src/main/java/statusbar/finder/app/LyricsActivity.kt index 7d6949d..c631376 100644 --- a/app/src/main/java/statusbar/finder/LyricsActivity.kt +++ b/app/src/main/java/statusbar/finder/app/LyricsActivity.kt @@ -1,22 +1,19 @@ -package statusbar.finder +package statusbar.finder.app import android.annotation.SuppressLint import android.os.Bundle import android.view.View -import android.widget.Button -import android.widget.EditText -import android.widget.Space -import android.widget.TextView -import android.widget.Toast +import android.widget.* import androidx.appcompat.app.AppCompatActivity import androidx.recyclerview.widget.LinearLayoutManager import androidx.recyclerview.widget.RecyclerView import cn.zhaiyifan.lyric.model.Lyric -import statusbar.finder.livedata.LyricSentenceUpdate -import statusbar.finder.livedata.LyricsChange -import statusbar.finder.sql.ActiveManager -import statusbar.finder.sql.QueryTool -import statusbar.finder.sql.ResManager +import statusbar.finder.data.model.LyricItem +import statusbar.finder.R +import statusbar.finder.app.event.LyricSentenceUpdate +import statusbar.finder.app.event.LyricsChange +import statusbar.finder.data.repository.LyricRepository +import statusbar.finder.data.repository.ResRepository /** * LyricGetterExt - statusbar.finder @@ -67,7 +64,7 @@ class LyricsActivity : AppCompatActivity() { Toast.makeText(applicationContext, "Offset not valid", Toast.LENGTH_SHORT).show() } - ResManager.updateResOffsetById(currentLyricResId, newOffset) + ResRepository.updateResOffsetById(currentLyricResId, newOffset) currentLyric?.offset = newOffset LyricsChange.getInstance().notifyResult(LyricsChange.Data(currentLyric)) Toast.makeText(applicationContext, "Updated Offset Successfully", Toast.LENGTH_SHORT).show() @@ -119,7 +116,7 @@ class LyricsActivity : AppCompatActivity() { updateSongInfo(lyric) syncOffset(lyric) - currentLyricResId = QueryTool.getActiveResIdByLyric(lyric)!! + currentLyricResId = LyricRepository.getActiveResIdByLyric(lyric)!! adapter.notifyDataSetChanged() currentHighlightPos = -1 } diff --git a/app/src/main/java/statusbar/finder/LyricsAdapter.kt b/app/src/main/java/statusbar/finder/app/LyricsAdapter.kt similarity index 93% rename from app/src/main/java/statusbar/finder/LyricsAdapter.kt rename to app/src/main/java/statusbar/finder/app/LyricsAdapter.kt index c93ddc2..6c6b002 100644 --- a/app/src/main/java/statusbar/finder/LyricsAdapter.kt +++ b/app/src/main/java/statusbar/finder/app/LyricsAdapter.kt @@ -1,4 +1,4 @@ -package statusbar.finder +package statusbar.finder.app import android.content.Context import android.content.res.Configuration @@ -8,10 +8,9 @@ import android.view.LayoutInflater import android.view.View import android.view.ViewGroup import android.widget.TextView -import androidx.core.content.ContextCompat -import androidx.core.view.marginBottom import androidx.recyclerview.widget.RecyclerView -import com.google.android.material.color.MaterialColors +import statusbar.finder.data.model.LyricItem +import statusbar.finder.R /** * LyricGetterExt - statusbar.finder diff --git a/app/src/main/java/statusbar/finder/MusicListenerService.java b/app/src/main/java/statusbar/finder/app/MusicListenerService.java similarity index 97% rename from app/src/main/java/statusbar/finder/MusicListenerService.java rename to app/src/main/java/statusbar/finder/app/MusicListenerService.java index 6c4ac71..7daf8d3 100644 --- a/app/src/main/java/statusbar/finder/MusicListenerService.java +++ b/app/src/main/java/statusbar/finder/app/MusicListenerService.java @@ -1,4 +1,4 @@ -package statusbar.finder; +package statusbar.finder.app; import android.annotation.SuppressLint; import android.app.Notification; @@ -31,16 +31,21 @@ import cn.lyric.getter.api.tools.Tools; import cn.zhaiyifan.lyric.LyricUtils; import cn.zhaiyifan.lyric.model.Lyric; -import statusbar.finder.data.MediaInfo; -import statusbar.finder.livedata.AppsListChanged; -import statusbar.finder.livedata.LyricsChange; -import statusbar.finder.livedata.LyricsResultChange; -import statusbar.finder.livedata.LyricSentenceUpdate; +import statusbar.finder.CSLyricHelper; +import statusbar.finder.LrcGetter; +import statusbar.finder.R; +import statusbar.finder.app.event.AppsListChanged; +import statusbar.finder.app.event.LyricSentenceUpdate; +import statusbar.finder.app.event.LyricsChange; +import statusbar.finder.app.event.LyricsResultChange; +import statusbar.finder.data.db.DatabaseHelper; +import statusbar.finder.data.model.MediaInfo; import statusbar.finder.misc.Constants; import java.util.*; -import static statusbar.finder.misc.Constants.*; +import static statusbar.finder.misc.Constants.PREFERENCE_KEY_FORCE_REPEAT; +import static statusbar.finder.misc.Constants.PREFERENCE_KEY_TRANSLATE_TYPE; public class MusicListenerService extends NotificationListenerService { diff --git a/app/src/main/java/statusbar/finder/SettingsActivity.java b/app/src/main/java/statusbar/finder/app/SettingsActivity.java similarity index 94% rename from app/src/main/java/statusbar/finder/SettingsActivity.java rename to app/src/main/java/statusbar/finder/app/SettingsActivity.java index 109dc0e..8cd7ffe 100644 --- a/app/src/main/java/statusbar/finder/SettingsActivity.java +++ b/app/src/main/java/statusbar/finder/app/SettingsActivity.java @@ -1,4 +1,4 @@ -package statusbar.finder; +package statusbar.finder.app; import android.annotation.SuppressLint; import android.app.NotificationChannel; @@ -20,6 +20,7 @@ import androidx.preference.*; import cn.lyric.getter.api.API; import org.jetbrains.annotations.NotNull; +import statusbar.finder.R; import statusbar.finder.misc.Constants; import java.util.HashMap; @@ -34,14 +35,14 @@ public class SettingsActivity extends FragmentActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); - setContentView(R.layout.collapsing_toolbar_base_layout); + setContentView(statusbar.finder.R.layout.collapsing_toolbar_base_layout); if (savedInstanceState == null) { getSupportFragmentManager() .beginTransaction() - .replace(R.id.content_frame, new SettingsFragment()) + .replace(statusbar.finder.R.id.content_frame, new SettingsFragment()) .commit(); } - Toolbar collapsingToolbar = findViewById(R.id.action_bar); + Toolbar collapsingToolbar = findViewById(statusbar.finder.R.id.action_bar); setActionBar(collapsingToolbar); @@ -135,10 +136,10 @@ public static class SettingsFragment @Override public void onCreatePreferences(Bundle savedInstanceState, String rootKey) { - setPreferencesFromResource(R.xml.root_preferences, rootKey); + setPreferencesFromResource(statusbar.finder.R.xml.root_preferences, rootKey); NotificationManagerCompat manager = NotificationManagerCompat.from(requireContext()); if (!manager.areNotificationsEnabled()) { - Toast.makeText(requireContext(), R.string.toast_get_notification_permission, Toast.LENGTH_LONG).show(); + Toast.makeText(requireContext(), statusbar.finder.R.string.toast_get_notification_permission, Toast.LENGTH_LONG).show(); enableNotification(requireContext()); } if (!isIgnoringBatteryOptimizations(requireContext())){ diff --git a/app/src/main/java/statusbar/finder/livedata/AppsListChanged.kt b/app/src/main/java/statusbar/finder/app/event/AppsListChanged.kt similarity index 94% rename from app/src/main/java/statusbar/finder/livedata/AppsListChanged.kt rename to app/src/main/java/statusbar/finder/app/event/AppsListChanged.kt index f933b84..57a43c4 100644 --- a/app/src/main/java/statusbar/finder/livedata/AppsListChanged.kt +++ b/app/src/main/java/statusbar/finder/app/event/AppsListChanged.kt @@ -1,4 +1,4 @@ -package statusbar.finder.livedata +package statusbar.finder.app.event import androidx.lifecycle.LiveData diff --git a/app/src/main/java/statusbar/finder/livedata/LyricSentenceUpdate.kt b/app/src/main/java/statusbar/finder/app/event/LyricSentenceUpdate.kt similarity index 95% rename from app/src/main/java/statusbar/finder/livedata/LyricSentenceUpdate.kt rename to app/src/main/java/statusbar/finder/app/event/LyricSentenceUpdate.kt index d6be922..f4a4b8a 100644 --- a/app/src/main/java/statusbar/finder/livedata/LyricSentenceUpdate.kt +++ b/app/src/main/java/statusbar/finder/app/event/LyricSentenceUpdate.kt @@ -1,4 +1,4 @@ -package statusbar.finder.livedata +package statusbar.finder.app.event import androidx.lifecycle.LiveData diff --git a/app/src/main/java/statusbar/finder/livedata/LyricsChange.kt b/app/src/main/java/statusbar/finder/app/event/LyricsChange.kt similarity index 90% rename from app/src/main/java/statusbar/finder/livedata/LyricsChange.kt rename to app/src/main/java/statusbar/finder/app/event/LyricsChange.kt index c2f5e52..6618424 100644 --- a/app/src/main/java/statusbar/finder/livedata/LyricsChange.kt +++ b/app/src/main/java/statusbar/finder/app/event/LyricsChange.kt @@ -1,8 +1,7 @@ -package statusbar.finder.livedata +package statusbar.finder.app.event import androidx.lifecycle.LiveData import cn.zhaiyifan.lyric.model.Lyric -import statusbar.finder.provider.ILrcProvider /** * LyricGetterExt - statusbar.finder.livedata diff --git a/app/src/main/java/statusbar/finder/livedata/LyricsResultChange.kt b/app/src/main/java/statusbar/finder/app/event/LyricsResultChange.kt similarity index 82% rename from app/src/main/java/statusbar/finder/livedata/LyricsResultChange.kt rename to app/src/main/java/statusbar/finder/app/event/LyricsResultChange.kt index aa6988c..97f615b 100644 --- a/app/src/main/java/statusbar/finder/livedata/LyricsResultChange.kt +++ b/app/src/main/java/statusbar/finder/app/event/LyricsResultChange.kt @@ -1,4 +1,4 @@ -package statusbar.finder.livedata +package statusbar.finder.app.event /** * LyricGetterExt - statusbar.finder.livedata @@ -8,9 +8,8 @@ package statusbar.finder.livedata * @date 2025/2/8 19:57 */ import androidx.lifecycle.LiveData -import statusbar.finder.data.LyricResult -import statusbar.finder.data.MediaInfo -import statusbar.finder.provider.ILrcProvider +import statusbar.finder.data.model.LyricResult +import statusbar.finder.data.model.MediaInfo class LyricsResultChange private constructor() : LiveData() { diff --git a/app/src/main/java/statusbar/finder/DatabaseHelper.kt b/app/src/main/java/statusbar/finder/data/db/DatabaseHelper.kt similarity index 52% rename from app/src/main/java/statusbar/finder/DatabaseHelper.kt rename to app/src/main/java/statusbar/finder/data/db/DatabaseHelper.kt index 1662739..cdbc6b1 100644 --- a/app/src/main/java/statusbar/finder/DatabaseHelper.kt +++ b/app/src/main/java/statusbar/finder/data/db/DatabaseHelper.kt @@ -1,7 +1,8 @@ -package statusbar.finder +package statusbar.finder.data.db import android.content.Context import app.cash.sqldelight.driver.android.AndroidSqliteDriver +import statusbar.finder.LyricDatabase /** * LyricGetterExt - statusbar @@ -12,15 +13,19 @@ import app.cash.sqldelight.driver.android.AndroidSqliteDriver */ object DatabaseHelper { private const val DATABASE_NAME = "lyric.db" - var database: LyricDatabase? = null - private set + private lateinit var database: LyricDatabase @Synchronized - fun init(context: Context?) { - if (database != null || context == null) { - return - } + fun init(context: Context) { + if (DatabaseHelper::database.isInitialized) return val driver = AndroidSqliteDriver(LyricDatabase.Schema, context, DATABASE_NAME) database = LyricDatabase(driver) } + + fun getDatabase(): LyricDatabase { + if (!DatabaseHelper::database.isInitialized) { + throw IllegalStateException("DatabaseHelper.init() must be called before using the database.") + } + return database + } } diff --git a/app/src/main/java/statusbar/finder/data/DataOrigin.kt b/app/src/main/java/statusbar/finder/data/model/DataOrigin.kt similarity index 90% rename from app/src/main/java/statusbar/finder/data/DataOrigin.kt rename to app/src/main/java/statusbar/finder/data/model/DataOrigin.kt index d35b3cc..5eb1fa5 100644 --- a/app/src/main/java/statusbar/finder/data/DataOrigin.kt +++ b/app/src/main/java/statusbar/finder/data/model/DataOrigin.kt @@ -1,4 +1,4 @@ -package statusbar.finder.data +package statusbar.finder.data.model /** * LyricGetterExt - statusbar.finder.data diff --git a/app/src/main/java/statusbar/finder/LyricItem.kt b/app/src/main/java/statusbar/finder/data/model/LyricItem.kt similarity index 88% rename from app/src/main/java/statusbar/finder/LyricItem.kt rename to app/src/main/java/statusbar/finder/data/model/LyricItem.kt index 4bb54dd..d13bb15 100644 --- a/app/src/main/java/statusbar/finder/LyricItem.kt +++ b/app/src/main/java/statusbar/finder/data/model/LyricItem.kt @@ -1,4 +1,4 @@ -package statusbar.finder +package statusbar.finder.data.model /** * LyricGetterExt - statusbar.finder diff --git a/app/src/main/java/statusbar/finder/data/LyricResult.kt b/app/src/main/java/statusbar/finder/data/model/LyricResult.kt similarity index 97% rename from app/src/main/java/statusbar/finder/data/LyricResult.kt rename to app/src/main/java/statusbar/finder/data/model/LyricResult.kt index bd38b1c..34eb444 100644 --- a/app/src/main/java/statusbar/finder/data/LyricResult.kt +++ b/app/src/main/java/statusbar/finder/data/model/LyricResult.kt @@ -1,4 +1,4 @@ -package statusbar.finder.data +package statusbar.finder.data.model import statusbar.finder.Res diff --git a/app/src/main/java/statusbar/finder/data/MediaInfo.kt b/app/src/main/java/statusbar/finder/data/model/MediaInfo.kt similarity index 96% rename from app/src/main/java/statusbar/finder/data/MediaInfo.kt rename to app/src/main/java/statusbar/finder/data/model/MediaInfo.kt index 22c6e40..75a67cd 100644 --- a/app/src/main/java/statusbar/finder/data/MediaInfo.kt +++ b/app/src/main/java/statusbar/finder/data/model/MediaInfo.kt @@ -1,4 +1,4 @@ -package statusbar.finder.data +package statusbar.finder.data.model import android.media.MediaMetadata import statusbar.finder.Origin diff --git a/app/src/main/java/statusbar/finder/sql/ActiveManager.kt b/app/src/main/java/statusbar/finder/data/repository/ActiveRepository.kt similarity index 52% rename from app/src/main/java/statusbar/finder/sql/ActiveManager.kt rename to app/src/main/java/statusbar/finder/data/repository/ActiveRepository.kt index 6df1677..a4fd8b1 100644 --- a/app/src/main/java/statusbar/finder/sql/ActiveManager.kt +++ b/app/src/main/java/statusbar/finder/data/repository/ActiveRepository.kt @@ -1,31 +1,25 @@ -package statusbar.finder.sql +package statusbar.finder.data.repository import statusbar.finder.ActiveQueries -import statusbar.finder.DatabaseHelper +import statusbar.finder.data.db.DatabaseHelper /** - * LyricGetterExt - statusbar.finder.sql + * LyricGetterExt - statusbar.finder.data.repository * @description TODO: coming soon. * @author VictorModi * @email victormodi@outlook.com - * @date 2025/2/9 13:53 + * @date 2025/2/16 23:07 */ -object ActiveManager { +object ActiveRepository { private val queries: ActiveQueries by lazy { - DatabaseHelper.database?.activeQueries - ?: throw IllegalStateException("Database not initialized") + DatabaseHelper.getDatabase().activeQueries } fun insertActiveLog(originId: Long, resultId: Long) { queries.insertActive(originId, resultId) } - fun updateActiveLog(originId: Long, resultId: Long) { - queries.updateActive(originId, resultId) - } - fun getResultIdByOriginId(originId: Long): Long? { return queries.getResultId(originId).executeAsOneOrNull() } } - diff --git a/app/src/main/java/statusbar/finder/data/repository/LyricRepository.kt b/app/src/main/java/statusbar/finder/data/repository/LyricRepository.kt new file mode 100644 index 0000000..37e89b9 --- /dev/null +++ b/app/src/main/java/statusbar/finder/data/repository/LyricRepository.kt @@ -0,0 +1,41 @@ +package statusbar.finder.data.repository + +import cn.zhaiyifan.lyric.model.Lyric +import statusbar.finder.data.model.LyricResult +import statusbar.finder.data.model.MediaInfo + +/** + * LyricGetterExt - statusbar.finder.data.repository + * @description TODO: coming soon. + * @author VictorModi + * @email victormodi@outlook.com + * @date 2025/2/16 23:01 + */ +object LyricRepository { + + /** + * 根据 MediaInfo 获取激活的歌词 & OriginId + */ + fun getActiveLyricFromDatabase(mediaInfo: MediaInfo, packageName: String): Pair { + val originId = OriginRepository.insertOrGetMediaInfoId(mediaInfo, packageName) + val lyricResult = getActiveLyricFromDatabaseByOriginId(originId) + return Pair(lyricResult, originId) + } + + /** + * 根据 OriginId 获取激活的歌词 + */ + fun getActiveLyricFromDatabaseByOriginId(originId: Long): LyricResult? { + val resultId = ActiveRepository.getResultIdByOriginId(originId) ?: return null + val res = ResRepository.getResById(resultId) ?: return null + return LyricResult(res) + } + + /** + * 根据 Lyric 获取 ResId + */ + fun getActiveResIdByLyric(lyric: Lyric): Long? { + val originId = OriginRepository.getOriginId(lyric.originalMediaInfo, lyric.packageName) ?: return null + return ActiveRepository.getResultIdByOriginId(originId) + } +} diff --git a/app/src/main/java/statusbar/finder/sql/OriginManager.kt b/app/src/main/java/statusbar/finder/data/repository/OriginRepository.kt similarity index 68% rename from app/src/main/java/statusbar/finder/sql/OriginManager.kt rename to app/src/main/java/statusbar/finder/data/repository/OriginRepository.kt index 52fd280..692d5cb 100644 --- a/app/src/main/java/statusbar/finder/sql/OriginManager.kt +++ b/app/src/main/java/statusbar/finder/data/repository/OriginRepository.kt @@ -1,24 +1,22 @@ -package statusbar.finder.sql +package statusbar.finder.data.repository import android.database.sqlite.SQLiteConstraintException -import statusbar.finder.DatabaseHelper import statusbar.finder.OriginQueries -import statusbar.finder.data.MediaInfo +import statusbar.finder.data.db.DatabaseHelper +import statusbar.finder.data.model.MediaInfo /** - * LyricGetterExt - statusbar.finder.sql + * LyricGetterExt - statusbar.finder.data.repository * @description TODO: coming soon. * @author VictorModi * @email victormodi@outlook.com - * @date 2025/2/9 13:52 + * @date 2025/2/16 23:08 */ -object OriginManager { +object OriginRepository { private val queries: OriginQueries by lazy { - DatabaseHelper.database?.originQueries - ?: throw IllegalStateException("Database not initialized") + DatabaseHelper.getDatabase().originQueries } - @JvmStatic fun insertOrGetMediaInfoId(mediaInfo: MediaInfo, packageName: String): Long { getOriginId(mediaInfo, packageName)?.let { return it } return try { @@ -44,9 +42,5 @@ object OriginManager { packageName ).executeAsOneOrNull() } - - @JvmStatic - fun getMediaInfoById(id: Long): MediaInfo? { - return queries.getInfoById(id).executeAsOneOrNull()?.let { MediaInfo(it) } - } } + diff --git a/app/src/main/java/statusbar/finder/sql/ResManager.kt b/app/src/main/java/statusbar/finder/data/repository/ResRepository.kt similarity index 80% rename from app/src/main/java/statusbar/finder/sql/ResManager.kt rename to app/src/main/java/statusbar/finder/data/repository/ResRepository.kt index 60ff39a..15deacc 100644 --- a/app/src/main/java/statusbar/finder/sql/ResManager.kt +++ b/app/src/main/java/statusbar/finder/data/repository/ResRepository.kt @@ -1,23 +1,21 @@ -package statusbar.finder.sql +package statusbar.finder.data.repository import android.database.sqlite.SQLiteConstraintException -import statusbar.finder.DatabaseHelper import statusbar.finder.Res import statusbar.finder.ResQueries -import statusbar.finder.data.LyricResult -import statusbar.finder.provider.ILrcProvider +import statusbar.finder.data.db.DatabaseHelper +import statusbar.finder.data.model.LyricResult /** - * LyricGetterExt - statusbar.finder.sql + * LyricGetterExt - statusbar.finder.data.repository * @description TODO: coming soon. * @author VictorModi * @email victormodi@outlook.com - * @date 2025/2/9 13:18 + * @date 2025/2/16 23:09 */ -object ResManager { +object ResRepository { private val queries: ResQueries by lazy { - DatabaseHelper.database?.resQueries - ?: throw IllegalStateException("Database not initialized") + DatabaseHelper.getDatabase().resQueries } fun insertResData(originId: Long, lyricResult: LyricResult) { @@ -47,11 +45,11 @@ object ResManager { return queries.getResById(resId).executeAsOneOrNull() } - fun getResByOriginIdAndProvider(originId: Long, provider: String): Res? { - return queries.getResByIdAndProvider(originId, provider).executeAsOneOrNull() - } - fun updateResOffsetById(id: Long, offset: Long) { return queries.updateResOffset(offset, id) } + + fun getResByOriginIdAndProvider(originId: Long, provider: String): Res? { + return queries.getResByIdAndProvider(originId, provider).executeAsOneOrNull() + } } diff --git a/app/src/main/java/statusbar/finder/hook/MainHook.kt b/app/src/main/java/statusbar/finder/hook/MainHook.kt index 97fa793..f0ce857 100644 --- a/app/src/main/java/statusbar/finder/hook/MainHook.kt +++ b/app/src/main/java/statusbar/finder/hook/MainHook.kt @@ -1,15 +1,14 @@ package statusbar.finder.hook + import com.github.kyuubiran.ezxhelper.EzXHelper import com.github.kyuubiran.ezxhelper.Log import de.robv.android.xposed.IXposedHookLoadPackage import de.robv.android.xposed.IXposedHookZygoteInit import de.robv.android.xposed.callbacks.XC_LoadPackage - - -import statusbar.finder.BuildConfig import statusbar.finder.hook.app.SystemUI + /** * LyricGetterExt - statusbar.finder.hook * @description Coming soon. @@ -17,15 +16,16 @@ import statusbar.finder.hook.app.SystemUI * @email victormodi@outlook.com * @date 2024/2/23 0:17 */ -abstract class MainHook : IXposedHookLoadPackage, IXposedHookZygoteInit { +class MainHook : IXposedHookLoadPackage, IXposedHookZygoteInit { override fun handleLoadPackage(lpparam: XC_LoadPackage.LoadPackageParam) { -// LogTool.init("Lyrics Getter Ext", { BuildConfig.DEBUG }, true) + EzXHelper.initHandleLoadPackage(lpparam) when (lpparam.packageName) { "com.android.systemui" -> initHooks(SystemUI) else -> return } } + override fun initZygote(startupParam: IXposedHookZygoteInit.StartupParam) { EzXHelper.initZygote(startupParam) } diff --git a/app/src/main/java/statusbar/finder/hook/app/SystemUI.kt b/app/src/main/java/statusbar/finder/hook/app/SystemUI.kt index f56b264..17b0d11 100644 --- a/app/src/main/java/statusbar/finder/hook/app/SystemUI.kt +++ b/app/src/main/java/statusbar/finder/hook/app/SystemUI.kt @@ -1,11 +1,9 @@ package statusbar.finder.hook.app import cn.lyric.getter.api.API -import cn.xiaowine.xkt.LogTool.log -import com.github.kyuubiran.ezxhelper.EzXHelper -import com.github.kyuubiran.ezxhelper.Log -import statusbar.finder.DatabaseHelper +import statusbar.finder.data.db.DatabaseHelper import statusbar.finder.hook.BaseHook +import statusbar.finder.hook.tool.HookTool.getApplication /** * LyricGetterExt - statusbar.finder.hook.app @@ -15,12 +13,17 @@ import statusbar.finder.hook.BaseHook * @date 2025/1/21 下午3:17 */ object SystemUI : BaseHook() { - private val lyricsGetterAPI: API = API() + private val lyricsGetterApi: API = API() override fun init() { super.init() - if (!lyricsGetterAPI.hasEnable) { - Log.i("Lyrics Getter API is not enabled.") + hook() + } + + private fun hook(classloader: ClassLoader? = null) { + getApplication { + DatabaseHelper.init(it.baseContext) } + assert(lyricsGetterApi.hasEnable) } } diff --git a/app/src/main/java/statusbar/finder/hook/tool/HookTool.kt b/app/src/main/java/statusbar/finder/hook/tool/HookTool.kt new file mode 100644 index 0000000..e909f9c --- /dev/null +++ b/app/src/main/java/statusbar/finder/hook/tool/HookTool.kt @@ -0,0 +1,35 @@ +package statusbar.finder.hook.tool + +import android.app.Application +import cn.xiaowine.xkt.Tool.isNotNull +import com.github.kyuubiran.ezxhelper.ClassUtils.loadClassOrNull +import com.github.kyuubiran.ezxhelper.HookFactory.`-Static`.createHook +import com.github.kyuubiran.ezxhelper.finders.MethodFinder.`-Static`.methodFinder + +/** + * LyricGetterExt - statusbar.finder.hook.tool + * @description TODO: coming soon. + * @author VictorModi + * @email victormodi@outlook.com + * @date 2025/2/15 14:48 + */ +object HookTool { + fun getApplication(callback: (Application) -> Unit) { + var isLoad = false + Application::class.java.methodFinder().filterByName("attach").first().createHook { + after { + if (isLoad) return@after + isLoad = true + callback(it.thisObject as Application) + } + } + } + + fun isTargetClass(targetClassName: String, classLoader: ClassLoader? = null, callback: (Class<*>) -> Unit): Boolean { + loadClassOrNull(targetClassName, classLoader).isNotNull { + callback(it) + return true + } + return false + } +} diff --git a/app/src/main/java/statusbar/finder/preferences/PackageListPreference.java b/app/src/main/java/statusbar/finder/preferences/PackageListPreference.java index 7d96aff..a83fdab 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.livedata.AppsListChanged; +import statusbar.finder.app.event.AppsListChanged; import statusbar.finder.preferences.PackageListAdapter.PackageItem; import java.util.ArrayList; diff --git a/app/src/main/java/statusbar/finder/provider/ILrcProvider.java b/app/src/main/java/statusbar/finder/provider/ILrcProvider.java index eeb35c7..69cec79 100644 --- a/app/src/main/java/statusbar/finder/provider/ILrcProvider.java +++ b/app/src/main/java/statusbar/finder/provider/ILrcProvider.java @@ -1,12 +1,8 @@ package statusbar.finder.provider; import android.media.MediaMetadata; -import lombok.Data; -import org.jetbrains.annotations.NotNull; -import statusbar.finder.Origin; -import statusbar.finder.Res; -import statusbar.finder.data.LyricResult; -import statusbar.finder.data.MediaInfo; +import statusbar.finder.data.model.LyricResult; +import statusbar.finder.data.model.MediaInfo; import java.io.IOException; diff --git a/app/src/main/java/statusbar/finder/provider/KugouProvider.java b/app/src/main/java/statusbar/finder/provider/KugouProvider.java index 056d214..bf367c5 100644 --- a/app/src/main/java/statusbar/finder/provider/KugouProvider.java +++ b/app/src/main/java/statusbar/finder/provider/KugouProvider.java @@ -7,10 +7,10 @@ import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import statusbar.finder.data.LyricResult; -import statusbar.finder.data.MediaInfo; -import statusbar.finder.provider.utils.HttpRequestUtil; -import statusbar.finder.provider.utils.LyricSearchUtil; +import statusbar.finder.data.model.LyricResult; +import statusbar.finder.data.model.MediaInfo; +import statusbar.finder.utils.HttpRequestUtil; +import statusbar.finder.utils.LyricSearchUtil; import java.io.IOException; import java.util.Locale; diff --git a/app/src/main/java/statusbar/finder/provider/MusixMatchProvider.java b/app/src/main/java/statusbar/finder/provider/MusixMatchProvider.java index 6b671f9..8623163 100644 --- a/app/src/main/java/statusbar/finder/provider/MusixMatchProvider.java +++ b/app/src/main/java/statusbar/finder/provider/MusixMatchProvider.java @@ -8,12 +8,12 @@ import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import statusbar.finder.data.LyricResult; -import statusbar.finder.data.MediaInfo; -import statusbar.finder.misc.CheckLanguageUtil; -import statusbar.finder.provider.utils.HttpRequestUtil; -import statusbar.finder.provider.utils.LyricSearchUtil; -import statusbar.finder.provider.utils.UnicodeUtil; +import statusbar.finder.data.model.LyricResult; +import statusbar.finder.data.model.MediaInfo; +import statusbar.finder.utils.CheckLanguageUtil; +import statusbar.finder.utils.HttpRequestUtil; +import statusbar.finder.utils.LyricSearchUtil; +import statusbar.finder.utils.UnicodeUtil; import java.io.IOException; import java.io.UnsupportedEncodingException; @@ -21,7 +21,7 @@ import java.nio.charset.StandardCharsets; import java.util.*; -import static statusbar.finder.provider.utils.LyricSearchUtil.extractLyric; +import static statusbar.finder.utils.LyricSearchUtil.extractLyric; public class MusixMatchProvider implements ILrcProvider { diff --git a/app/src/main/java/statusbar/finder/provider/NeteaseProvider.java b/app/src/main/java/statusbar/finder/provider/NeteaseProvider.java index 951e10e..0612eef 100644 --- a/app/src/main/java/statusbar/finder/provider/NeteaseProvider.java +++ b/app/src/main/java/statusbar/finder/provider/NeteaseProvider.java @@ -6,10 +6,10 @@ import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import statusbar.finder.data.LyricResult; -import statusbar.finder.data.MediaInfo; -import statusbar.finder.provider.utils.HttpRequestUtil; -import statusbar.finder.provider.utils.LyricSearchUtil; +import statusbar.finder.data.model.LyricResult; +import statusbar.finder.data.model.MediaInfo; +import statusbar.finder.utils.HttpRequestUtil; +import statusbar.finder.utils.LyricSearchUtil; import java.io.IOException; import java.util.Locale; diff --git a/app/src/main/java/statusbar/finder/provider/QQMusicProvider.java b/app/src/main/java/statusbar/finder/provider/QQMusicProvider.java index 5d34372..3e3e281 100644 --- a/app/src/main/java/statusbar/finder/provider/QQMusicProvider.java +++ b/app/src/main/java/statusbar/finder/provider/QQMusicProvider.java @@ -6,10 +6,10 @@ import org.json.JSONArray; import org.json.JSONException; import org.json.JSONObject; -import statusbar.finder.data.LyricResult; -import statusbar.finder.data.MediaInfo; -import statusbar.finder.provider.utils.HttpRequestUtil; -import statusbar.finder.provider.utils.LyricSearchUtil; +import statusbar.finder.data.model.LyricResult; +import statusbar.finder.data.model.MediaInfo; +import statusbar.finder.utils.HttpRequestUtil; +import statusbar.finder.utils.LyricSearchUtil; import java.io.IOException; import java.util.Locale; diff --git a/app/src/main/java/statusbar/finder/sql/QueryTool.kt b/app/src/main/java/statusbar/finder/sql/QueryTool.kt deleted file mode 100644 index e419d0c..0000000 --- a/app/src/main/java/statusbar/finder/sql/QueryTool.kt +++ /dev/null @@ -1,36 +0,0 @@ -package statusbar.finder.sql - -import androidx.core.util.Pair -import cn.zhaiyifan.lyric.model.Lyric -import statusbar.finder.data.LyricResult -import statusbar.finder.data.MediaInfo -import statusbar.finder.sql.ActiveManager.getResultIdByOriginId -import statusbar.finder.sql.OriginManager.getOriginId -import statusbar.finder.sql.OriginManager.insertOrGetMediaInfoId -import statusbar.finder.sql.ResManager.getResById - -/** - * LyricGetterExt - statusbar.finder.sql - * @description TODO: coming soon. - * @author VictorModi - * @email victormodi@outlook.com - * @date 2025/2/9 17:40 - */ -object QueryTool { - fun getActiveLyricFromDatabase(mediaInfo: MediaInfo, packageName: String): Pair { - val originId = insertOrGetMediaInfoId(mediaInfo, packageName) - val lyricResult = getActiveLyricFromDatabaseByOriginId(originId) - return Pair(lyricResult, originId) - } - - fun getActiveLyricFromDatabaseByOriginId(originId: Long): LyricResult? { - val resultId = getResultIdByOriginId(originId) ?: return null - val res = getResById(resultId) ?: return null - return LyricResult(res) - } - - fun getActiveResIdByLyric(lyric: Lyric): Long? { - val originId = getOriginId(lyric.originalMediaInfo, lyric.packageName) ?: return null - return getResultIdByOriginId(originId) - } -} diff --git a/app/src/main/java/statusbar/finder/misc/CheckLanguageUtil.java b/app/src/main/java/statusbar/finder/utils/CheckLanguageUtil.java similarity index 96% rename from app/src/main/java/statusbar/finder/misc/CheckLanguageUtil.java rename to app/src/main/java/statusbar/finder/utils/CheckLanguageUtil.java index 0a5e7c3..1d2e452 100644 --- a/app/src/main/java/statusbar/finder/misc/CheckLanguageUtil.java +++ b/app/src/main/java/statusbar/finder/utils/CheckLanguageUtil.java @@ -1,4 +1,4 @@ -package statusbar.finder.misc; +package statusbar.finder.utils; import com.moji4j.MojiDetector; diff --git a/app/src/main/java/statusbar/finder/provider/utils/HttpRequestUtil.java b/app/src/main/java/statusbar/finder/utils/HttpRequestUtil.java similarity index 98% rename from app/src/main/java/statusbar/finder/provider/utils/HttpRequestUtil.java rename to app/src/main/java/statusbar/finder/utils/HttpRequestUtil.java index 39dcfee..c46ee22 100644 --- a/app/src/main/java/statusbar/finder/provider/utils/HttpRequestUtil.java +++ b/app/src/main/java/statusbar/finder/utils/HttpRequestUtil.java @@ -1,4 +1,4 @@ -package statusbar.finder.provider.utils; +package statusbar.finder.utils; import android.text.TextUtils; import org.json.JSONException; diff --git a/app/src/main/java/statusbar/finder/provider/utils/LyricSearchUtil.java b/app/src/main/java/statusbar/finder/utils/LyricSearchUtil.java similarity index 97% rename from app/src/main/java/statusbar/finder/provider/utils/LyricSearchUtil.java rename to app/src/main/java/statusbar/finder/utils/LyricSearchUtil.java index c05367f..748f1bc 100644 --- a/app/src/main/java/statusbar/finder/provider/utils/LyricSearchUtil.java +++ b/app/src/main/java/statusbar/finder/utils/LyricSearchUtil.java @@ -1,4 +1,4 @@ -package statusbar.finder.provider.utils; +package statusbar.finder.utils; import android.media.MediaMetadata; import android.os.Build; @@ -6,8 +6,7 @@ import com.github.houbb.opencc4j.util.ZhConverterUtil; import org.json.JSONArray; import org.json.JSONException; -import statusbar.finder.data.MediaInfo; -import statusbar.finder.misc.CheckLanguageUtil; +import statusbar.finder.data.model.MediaInfo; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; diff --git a/app/src/main/java/statusbar/finder/provider/utils/UnicodeUtil.java b/app/src/main/java/statusbar/finder/utils/UnicodeUtil.java similarity index 98% rename from app/src/main/java/statusbar/finder/provider/utils/UnicodeUtil.java rename to app/src/main/java/statusbar/finder/utils/UnicodeUtil.java index f318bc2..284038a 100644 --- a/app/src/main/java/statusbar/finder/provider/utils/UnicodeUtil.java +++ b/app/src/main/java/statusbar/finder/utils/UnicodeUtil.java @@ -1,4 +1,4 @@ -package statusbar.finder.provider.utils; +package statusbar.finder.utils; import java.util.regex.Matcher; import java.util.regex.Pattern;