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" />
+
+