fix #4090 just do fix flow in vivo

This commit is contained in:
tick
2024-08-17 17:24:01 +08:00
parent ba0effa89e
commit 22057939db
@@ -14,6 +14,7 @@ import android.os.Bundle
import android.os.PowerManager
import android.support.v4.media.session.MediaSessionCompat
import android.support.v4.media.session.PlaybackStateCompat
import android.util.Log
import androidx.annotation.CallSuper
import androidx.core.app.NotificationCompat
import androidx.lifecycle.lifecycleScope
@@ -482,6 +483,24 @@ abstract class BaseReadAloudService : BaseService(),
}
}
val isVivoDevice: Boolean by lazy {
android.os.Build.MANUFACTURER.equals(
"vivo",
ignoreCase = true
)
}
private fun ChoiceMediaStyle(): androidx.media.app.NotificationCompat.MediaStyle {
//Log.d(TAG, "isVivoDevice=$isVivoDevice")
val type = androidx.media.app.NotificationCompat.MediaStyle()
.setShowActionsInCompactView(0, 1, 2)
if (isVivoDevice) {
//fix #4090 android 14 can not show play control in lock screen
type.setMediaSession(mediaSessionCompat.sessionToken)
}
return type
}
private fun createNotification(): NotificationCompat.Builder {
var nTitle: String = when {
pause -> getString(R.string.read_aloud_pause)
@@ -537,12 +556,7 @@ abstract class BaseReadAloudService : BaseService(),
getString(R.string.set_timer),
aloudServicePendingIntent(IntentAction.addTimer)
)
builder.setStyle(
androidx.media.app.NotificationCompat.MediaStyle()
.setShowActionsInCompactView(0, 1, 2)
//fix #4090 android 14 can not show play control in lock screen
.setMediaSession(mediaSessionCompat.sessionToken)
)
builder.setStyle(ChoiceMediaStyle())
return builder
}