@@ -42,18 +42,19 @@ import androidx.core.app.NotificationCompat
4242import androidx.core.graphics.createBitmap
4343import androidx.core.graphics.drawable.IconCompat
4444import androidx.core.graphics.drawable.toBitmap
45- import com.hchen.superlyricapi.ISuperLyric
45+ import com.hchen.superlyricapi.ISuperLyricReceiver
4646import com.hchen.superlyricapi.SuperLyricData
47- import com.hchen.superlyricapi.SuperLyricTool
47+ import com.hchen.superlyricapi.SuperLyricHelper
4848import com.hyperfocus.api.FocusApi
4949import com.hyperfocus.api.IslandApi
50+ import com.sevtinge.hyperceiler.common.log.XposedLog
51+ import com.sevtinge.hyperceiler.common.utils.PrefsBridge
52+ import com.sevtinge.hyperceiler.common.utils.api.ProjectApi
5053import com.sevtinge.hyperceiler.libhook.R
5154import com.sevtinge.hyperceiler.libhook.base.BaseHook
52- import com.sevtinge.hyperceiler.common.utils.api.ProjectApi
5355import com.sevtinge.hyperceiler.libhook.utils.hookapi.tool.AppsTool
5456import com.sevtinge.hyperceiler.libhook.utils.hookapi.tool.EzxHelpUtils
55- import com.sevtinge.hyperceiler.common.log.XposedLog
56- import com.sevtinge.hyperceiler.common.utils.PrefsBridge
57+ import com.sevtinge.hyperceiler.libhook.utils.hookapi.tool.getIdByName
5758import io.github.kyuubiran.ezxhelper.xposed.EzXposed
5859import org.json.JSONObject
5960import kotlin.math.min
@@ -100,12 +101,12 @@ abstract class MusicBaseHook : BaseHook() {
100101 private val resourceIds by lazy {
101102 val modRes = AppsTool .getModuleRes(context)
102103 ResourceIds (
103- focuslyricLayout = modRes.getIdentifier (" focuslyric_layout" , " layout" , ProjectApi .mAppModulePkg),
104- focuslyricIslandLayout = modRes.getIdentifier (" focuslyricisland_layout" , " layout" , ProjectApi .mAppModulePkg),
105- focusaodlyricLayout = modRes.getIdentifier (" focusaodlyric_layout" , " layout" , ProjectApi .mAppModulePkg),
106- focuslyricId = modRes.getIdentifier (" focuslyric" , " id" , ProjectApi .mAppModulePkg),
107- focusiconId = modRes.getIdentifier (" focusicon" , " id" , ProjectApi .mAppModulePkg),
108- focustflyricId = modRes.getIdentifier (" focustflyric" , " id" , ProjectApi .mAppModulePkg)
104+ focuslyricLayout = modRes.getIdByName (" focuslyric_layout" , " layout" , ProjectApi .mAppModulePkg),
105+ focuslyricIslandLayout = modRes.getIdByName (" focuslyricisland_layout" , " layout" , ProjectApi .mAppModulePkg),
106+ focusaodlyricLayout = modRes.getIdByName (" focusaodlyric_layout" , " layout" , ProjectApi .mAppModulePkg),
107+ focuslyricId = modRes.getIdByName (" focuslyric" , " id" , ProjectApi .mAppModulePkg),
108+ focusiconId = modRes.getIdByName (" focusicon" , " id" , ProjectApi .mAppModulePkg),
109+ focustflyricId = modRes.getIdByName (" focustflyric" , " id" , ProjectApi .mAppModulePkg)
109110 )
110111 }
111112
@@ -122,13 +123,13 @@ abstract class MusicBaseHook : BaseHook() {
122123 true
123124 }
124125
125- private val receiver = object : ISuperLyric .Stub () {
126- override fun onSuperLyric ( data : SuperLyricData ) {
127- runCatching { this @MusicBaseHook.onSuperLyric(data) }
126+ private val receiver = object : ISuperLyricReceiver .Stub () {
127+ override fun onLyric ( publisher : String , data : SuperLyricData ) {
128+ runCatching { this @MusicBaseHook.onSuperLyric(publisher, data) }
128129 .onFailure { XposedLog .e(TAG , lpparam.packageName, it) }
129130 }
130131
131- override fun onStop (data : SuperLyricData ) {
132+ override fun onStop (publisher : String , data : SuperLyricData ) {
132133 runCatching {
133134 if (data.playbackState?.state == PlaybackState .STATE_BUFFERING ) return
134135 this @MusicBaseHook.onStop()
@@ -137,16 +138,16 @@ abstract class MusicBaseHook : BaseHook() {
137138 }
138139
139140 init {
140- EzxHelpUtils .runOnApplicationAttach { context ->
141+ EzxHelpUtils .runOnApplicationAttach { _ ->
141142 runCatching {
142- SuperLyricTool .registerSuperLyric(context, receiver)
143+ SuperLyricHelper .registerReceiver( receiver)
143144 }.onFailure {
144145 XposedLog .e(TAG , lpparam.packageName, " registerLyricListener not found: ${it.message} " )
145146 }
146147 }
147148 }
148149
149- abstract fun onSuperLyric (data : SuperLyricData )
150+ abstract fun onSuperLyric (packageName : String? , data : SuperLyricData )
150151 abstract fun onStop ()
151152
152153 /* *
@@ -160,7 +161,7 @@ abstract class MusicBaseHook : BaseHook() {
160161 // 确保 Channel 已创建
161162 channelCreated
162163
163- val (musicAppName, launchIntent) = resolveAppNameAndLaunchIntent(extraData.packageName )
164+ val (musicAppName, launchIntent) = resolveAppNameAndLaunchIntent()
164165
165166 // 准备图标
166167 val iconBundle = prepareIcons(extraData, launchIntent)
@@ -181,10 +182,10 @@ abstract class MusicBaseHook : BaseHook() {
181182 // Island template
182183 val islandTemplate = buildIslandTemplate(leftText, rightText, musicAppName, text)
183184
184- val tf = extraData.translation
185+ val tf = extraData.translation?.text
185186
186187 // 发送通知
187- sendFocusNotification(builder, text, tf, iconBundle, islandTemplate, extraData. packageName)
188+ sendFocusNotification(builder, text, tf, iconBundle, islandTemplate, packageName)
188189 }
189190
190191 /* *
@@ -204,14 +205,12 @@ abstract class MusicBaseHook : BaseHook() {
204205 /* *
205206 * 解析应用名称和启动 Intent
206207 */
207- private fun resolveAppNameAndLaunchIntent (packageName : String? ): Pair <String , Intent ?> {
208- packageName ? : return " unknown" to null
209-
208+ private fun resolveAppNameAndLaunchIntent (): Pair <String , Intent ?> {
210209 return runCatching {
211210 val pm = context.packageManager
212- val appInfo = pm.getApplicationInfo(packageName, 0 )
211+ val appInfo = pm.getApplicationInfo(context. packageName, 0 )
213212 val label = pm.getApplicationLabel(appInfo).toString()
214- val launchIntent = pm.getLaunchIntentForPackage(packageName)
213+ val launchIntent = pm.getLaunchIntentForPackage(context. packageName)
215214 label to launchIntent
216215 }.getOrElse { e ->
217216 XposedLog .e(TAG , e)
@@ -228,7 +227,7 @@ abstract class MusicBaseHook : BaseHook() {
228227 runCatching { context.packageManager.getActivityIcon(it).toBitmap() }.getOrNull()
229228 }
230229
231- val isSaltMusic = extraData .packageName == SALT_MUSIC_PACKAGE
230+ val isSaltMusic = context .packageName == SALT_MUSIC_PACKAGE
232231 val primaryBitmap = when {
233232 isSaltMusic -> activityIconBitmap
234233 else -> baseBitmap ? : activityIconBitmap
0 commit comments