From d7c2cedd5e6ea84a8909ea1c8d894e1fccb0e9eb Mon Sep 17 00:00:00 2001 From: zhongerxll <160529153+zhongerxll@users.noreply.github.com> Date: Sat, 7 Jun 2025 08:06:31 -0500 Subject: [PATCH] Add option to change system media control compatibility (#5135) --- .../io/legado/app/service/BaseReadAloudService.kt | 6 ++---- .../main/java/io/legado/app/utils/RomExtensions.kt | 11 ----------- app/src/main/res/values-zh-rHK/strings.xml | 2 ++ app/src/main/res/values-zh-rTW/strings.xml | 2 ++ app/src/main/res/values-zh/strings.xml | 2 ++ app/src/main/res/values/strings.xml | 2 ++ app/src/main/res/xml/pref_config_aloud.xml | 7 +++++++ 7 files changed, 17 insertions(+), 15 deletions(-) delete mode 100644 app/src/main/java/io/legado/app/utils/RomExtensions.kt diff --git a/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt b/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt index 02993aacf..a7fe30d0f 100644 --- a/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt +++ b/app/src/main/java/io/legado/app/service/BaseReadAloudService.kt @@ -47,8 +47,6 @@ import io.legado.app.utils.LogUtils import io.legado.app.utils.activityPendingIntent import io.legado.app.utils.broadcastPendingIntent import io.legado.app.utils.getPrefBoolean -import io.legado.app.utils.isSamsungDevice -import io.legado.app.utils.isVivoDevice import io.legado.app.utils.observeEvent import io.legado.app.utils.observeSharedPreferences import io.legado.app.utils.postEvent @@ -462,7 +460,7 @@ abstract class BaseReadAloudService : BaseService(), */ @SuppressLint("UnspecifiedImmutableFlag") private fun initMediaSession() { - if (isSamsungDevice) { + if (getPrefBoolean("systemMediaControlCompatibilityChange")) { mediaSessionCompat.setCallback(object : MediaSessionCompat.Callback() { override fun onPlay() { resumeReadAloud() @@ -577,7 +575,7 @@ abstract class BaseReadAloudService : BaseService(), private fun choiceMediaStyle(): androidx.media.app.NotificationCompat.MediaStyle { val mediaStyle = androidx.media.app.NotificationCompat.MediaStyle() .setShowActionsInCompactView(1, 2, 4) - if (isVivoDevice || isSamsungDevice) { + if (getPrefBoolean("systemMediaControlCompatibilityChange")) { //fix #4090 android 14 can not show play control in lock screen mediaStyle.setMediaSession(mediaSessionCompat.sessionToken) } diff --git a/app/src/main/java/io/legado/app/utils/RomExtensions.kt b/app/src/main/java/io/legado/app/utils/RomExtensions.kt deleted file mode 100644 index 9638f152f..000000000 --- a/app/src/main/java/io/legado/app/utils/RomExtensions.kt +++ /dev/null @@ -1,11 +0,0 @@ -package io.legado.app.utils - -import android.os.Build - -val isVivoDevice by lazy { - Build.MANUFACTURER.equals("vivo", ignoreCase = true) -} - -val isSamsungDevice by lazy { - Build.MANUFACTURER.equals("samsung", ignoreCase = true) -} diff --git a/app/src/main/res/values-zh-rHK/strings.xml b/app/src/main/res/values-zh-rHK/strings.xml index 8f51d2ae3..17e73aad7 100644 --- a/app/src/main/res/values-zh-rHK/strings.xml +++ b/app/src/main/res/values-zh-rHK/strings.xml @@ -1211,4 +1211,6 @@ 隐藏漫画列表标题 刷新发现 填充刘海区域 + 系統媒體控件相容性更改 + 當鎖屏不顯示系統媒體控件時可以嘗試開啟,比如 OneUI7.0 或 vivo 等 diff --git a/app/src/main/res/values-zh-rTW/strings.xml b/app/src/main/res/values-zh-rTW/strings.xml index 106def4c1..58c487d03 100644 --- a/app/src/main/res/values-zh-rTW/strings.xml +++ b/app/src/main/res/values-zh-rTW/strings.xml @@ -1213,4 +1213,6 @@ 隐藏漫画列表标题 刷新发现 填充刘海区域 + 系統媒體控件相容性更改 + 當鎖屏不顯示系統媒體控件時可以嘗試開啟,比如 OneUI7.0 或 vivo 等 diff --git a/app/src/main/res/values-zh/strings.xml b/app/src/main/res/values-zh/strings.xml index d4cc3da14..82fe182b2 100644 --- a/app/src/main/res/values-zh/strings.xml +++ b/app/src/main/res/values-zh/strings.xml @@ -1218,4 +1218,6 @@ 隐藏漫画列表标题 刷新发现 填充刘海区域 + 系统媒体控件兼容性更改 + 当锁屏不显示系统媒体控件时可以尝试开启,比如oneui7.0或vivo等 diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index d0ec2603d..24e3e5da2 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1219,4 +1219,6 @@ 隐藏漫画列表标题 刷新发现 Padding display cutouts + System Media Control Compatibility Change + If system media controls do not appear on the lock screen, you can try enabling this, for example on OneUI 7.0 or Vivo devices. diff --git a/app/src/main/res/xml/pref_config_aloud.xml b/app/src/main/res/xml/pref_config_aloud.xml index 1a636c6cc..506ee7760 100644 --- a/app/src/main/res/xml/pref_config_aloud.xml +++ b/app/src/main/res/xml/pref_config_aloud.xml @@ -27,6 +27,13 @@ android:key="readAloudWakeLock" app:iconSpaceReserved="false" /> + +