Make PlayerMediaBrowserService be activated/deactivated
This commit is contained in:
@@ -94,7 +94,8 @@
|
|||||||
</service>
|
</service>
|
||||||
|
|
||||||
<service android:name=".service.PlayerMediaBrowserService"
|
<service android:name=".service.PlayerMediaBrowserService"
|
||||||
android:exported="true">
|
android:exported="true"
|
||||||
|
android:enabled="false">
|
||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.media.browse.MediaBrowserService"/>
|
<action android:name="android.media.browse.MediaBrowserService"/>
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
|
|||||||
@@ -1,7 +1,9 @@
|
|||||||
package it.vfsfitvnm.vimusic.ui.screens.settings
|
package it.vfsfitvnm.vimusic.ui.screens.settings
|
||||||
|
|
||||||
import android.annotation.SuppressLint
|
import android.annotation.SuppressLint
|
||||||
|
import android.content.ComponentName
|
||||||
import android.content.Intent
|
import android.content.Intent
|
||||||
|
import android.content.pm.PackageManager
|
||||||
import android.net.Uri
|
import android.net.Uri
|
||||||
import android.os.Build
|
import android.os.Build
|
||||||
import android.provider.Settings
|
import android.provider.Settings
|
||||||
@@ -26,6 +28,8 @@ import it.vfsfitvnm.vimusic.LocalPlayerAwareWindowInsets
|
|||||||
import androidx.compose.foundation.layout.WindowInsetsSides
|
import androidx.compose.foundation.layout.WindowInsetsSides
|
||||||
import androidx.compose.foundation.layout.asPaddingValues
|
import androidx.compose.foundation.layout.asPaddingValues
|
||||||
import androidx.compose.foundation.layout.only
|
import androidx.compose.foundation.layout.only
|
||||||
|
import androidx.compose.runtime.SnapshotMutationPolicy
|
||||||
|
import it.vfsfitvnm.vimusic.service.PlayerMediaBrowserService
|
||||||
import it.vfsfitvnm.vimusic.ui.components.themed.Header
|
import it.vfsfitvnm.vimusic.ui.components.themed.Header
|
||||||
import it.vfsfitvnm.vimusic.ui.styling.LocalAppearance
|
import it.vfsfitvnm.vimusic.ui.styling.LocalAppearance
|
||||||
import it.vfsfitvnm.vimusic.utils.isIgnoringBatteryOptimizations
|
import it.vfsfitvnm.vimusic.utils.isIgnoringBatteryOptimizations
|
||||||
@@ -38,6 +42,26 @@ fun OtherSettings() {
|
|||||||
val context = LocalContext.current
|
val context = LocalContext.current
|
||||||
val (colorPalette) = LocalAppearance.current
|
val (colorPalette) = LocalAppearance.current
|
||||||
|
|
||||||
|
var isAndroidAutoEnabled by remember {
|
||||||
|
val component = ComponentName(context, PlayerMediaBrowserService::class.java)
|
||||||
|
val disabledFlag = PackageManager.COMPONENT_ENABLED_STATE_DISABLED
|
||||||
|
val enabledFlag = PackageManager.COMPONENT_ENABLED_STATE_ENABLED
|
||||||
|
|
||||||
|
mutableStateOf(
|
||||||
|
value = context.packageManager.getComponentEnabledSetting(component) == enabledFlag,
|
||||||
|
policy = object : SnapshotMutationPolicy<Boolean> {
|
||||||
|
override fun equivalent(a: Boolean, b: Boolean): Boolean {
|
||||||
|
context.packageManager.setComponentEnabledSetting(
|
||||||
|
component,
|
||||||
|
if (b) enabledFlag else disabledFlag,
|
||||||
|
PackageManager.DONT_KILL_APP
|
||||||
|
)
|
||||||
|
return a == b
|
||||||
|
}
|
||||||
|
}
|
||||||
|
)
|
||||||
|
}
|
||||||
|
|
||||||
var isInvincibilityEnabled by rememberPreference(isInvincibilityEnabledKey, false)
|
var isInvincibilityEnabled by rememberPreference(isInvincibilityEnabledKey, false)
|
||||||
|
|
||||||
var isIgnoringBatteryOptimizations by remember {
|
var isIgnoringBatteryOptimizations by remember {
|
||||||
@@ -62,9 +86,20 @@ fun OtherSettings() {
|
|||||||
) {
|
) {
|
||||||
Header(title = "Other")
|
Header(title = "Other")
|
||||||
|
|
||||||
|
SettingsEntryGroupText(title = "ANDROID AUTO")
|
||||||
|
|
||||||
|
SwitchSettingEntry(
|
||||||
|
title = "Android Auto",
|
||||||
|
text = "Enable Android Auto support",
|
||||||
|
isChecked = isAndroidAutoEnabled,
|
||||||
|
onCheckedChange = { isAndroidAutoEnabled = it }
|
||||||
|
)
|
||||||
|
|
||||||
|
SettingsGroupSpacer()
|
||||||
|
|
||||||
SettingsEntryGroupText(title = "SERVICE LIFETIME")
|
SettingsEntryGroupText(title = "SERVICE LIFETIME")
|
||||||
|
|
||||||
SettingsDescription(text = "If battery optimizations are applied, the playback notification can suddenly disappear when paused.")
|
ImportantSettingsDescription(text = "If battery optimizations are applied, the playback notification can suddenly disappear when paused.")
|
||||||
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) {
|
||||||
SettingsDescription(text = "Since Android 12, disabling battery optimizations is required for the \"Invincible service\" option to take effect.")
|
SettingsDescription(text = "Since Android 12, disabling battery optimizations is required for the \"Invincible service\" option to take effect.")
|
||||||
|
|||||||
Reference in New Issue
Block a user