Explorar o código

feat: 朗读的另外一个崩溃问题

我要去成都旅游
让我流下眼泪的
不止 昨夜的酒
让我 依依不舍的
不止你的温柔
HapeLee hai 1 mes
pai
achega
842871422e

+ 6 - 5
app/src/main/java/io/legado/app/service/readaloud/ReadAloudOverlayWindow.kt

@@ -27,16 +27,15 @@ import androidx.savedstate.SavedStateRegistry
 import androidx.savedstate.SavedStateRegistryController
 import androidx.savedstate.SavedStateRegistryOwner
 import androidx.savedstate.setViewTreeSavedStateRegistryOwner
+import io.legado.app.base.BaseService
 import io.legado.app.domain.gateway.AppUiConfigurationGateway
+import io.legado.app.domain.gateway.PlaybackCapsuleGateway
 import io.legado.app.domain.gateway.ReadAloudSettingsGateway
+import io.legado.app.domain.model.PlaybackCapsuleSource
 import io.legado.app.feature.readaloud.overlay.capsulePresentationOffsetX
 import io.legado.app.feature.readaloud.overlay.capsuleWindowY
 import io.legado.app.help.LifecycleHelp
-import io.legado.app.base.BaseService
-import io.legado.app.domain.gateway.PlaybackCapsuleGateway
-import io.legado.app.domain.model.PlaybackCapsuleSource
 import io.legado.app.ui.book.read.ReadAloudCapsule
-import io.legado.app.ui.main.MainActivity
 import io.legado.app.ui.main.MainIntent
 import io.legado.app.ui.theme.AppTheme
 import io.legado.app.utils.LogUtils
@@ -173,7 +172,9 @@ class ReadAloudOverlayWindow(
                                         playerState.inBookshelf
                                     )
                                 } else {
-                                    Intent(service, MainActivity::class.java).apply {
+                                    // 换图标变体会禁用 MainActivity 组件,显式 Intent 会抛
+                                    // ActivityNotFoundException;必须解析当前启用的启动器组件。
+                                    MainIntent.createLauncherIntent(service).apply {
                                         putExtra(MainIntent.EXTRA_OPEN_READ_ALOUD_PLAYER, true)
                                     }
                                 }