Add option to change system media control compatibility (#5135)

This commit is contained in:
zhongerxll
2025-06-07 08:06:31 -05:00
committed by GitHub
parent 3cf7e404c2
commit d7c2cedd5e
7 changed files with 17 additions and 15 deletions

View File

@@ -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)
}

View File

@@ -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)
}

View File

@@ -1211,4 +1211,6 @@
<string name="hide_manga_title">隐藏漫画列表标题</string>
<string name="refresh_explore">刷新发现</string>
<string name="padding_display_cutouts">填充刘海区域</string>
<string name="system_media_control_compatibility_change">系統媒體控件相容性更改</string>
<string name="system_media_control_compatibility_change_summary">當鎖屏不顯示系統媒體控件時可以嘗試開啟,比如 OneUI7.0 或 vivo 等</string>
</resources>

View File

@@ -1213,4 +1213,6 @@
<string name="hide_manga_title">隐藏漫画列表标题</string>
<string name="refresh_explore">刷新发现</string>
<string name="padding_display_cutouts">填充刘海区域</string>
<string name="system_media_control_compatibility_change">系統媒體控件相容性更改</string>
<string name="system_media_control_compatibility_change_summary">當鎖屏不顯示系統媒體控件時可以嘗試開啟,比如 OneUI7.0 或 vivo 等</string>
</resources>

View File

@@ -1218,4 +1218,6 @@
<string name="hide_manga_title">隐藏漫画列表标题</string>
<string name="refresh_explore">刷新发现</string>
<string name="padding_display_cutouts">填充刘海区域</string>
<string name="system_media_control_compatibility_change">系统媒体控件兼容性更改</string>
<string name="system_media_control_compatibility_change_summary">当锁屏不显示系统媒体控件时可以尝试开启比如oneui7.0或vivo等</string>
</resources>

View File

@@ -1219,4 +1219,6 @@
<string name="hide_manga_title">隐藏漫画列表标题</string>
<string name="refresh_explore">刷新发现</string>
<string name="padding_display_cutouts">Padding display cutouts</string>
<string name="system_media_control_compatibility_change">System Media Control Compatibility Change</string>
<string name="system_media_control_compatibility_change_summary">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.</string>
</resources>

View File

@@ -27,6 +27,13 @@
android:key="readAloudWakeLock"
app:iconSpaceReserved="false" />
<io.legado.app.lib.prefs.SwitchPreference
android:defaultValue="false"
android:title="@string/system_media_control_compatibility_change"
android:summary="@string/system_media_control_compatibility_change_summary"
android:key="systemMediaControlCompatibilityChange"
app:iconSpaceReserved="false" />
<io.legado.app.lib.prefs.SwitchPreference
android:defaultValue="false"
android:title="@string/pref_media_button_per_next"