Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 19d4ec0b authored by Jacky Wang's avatar Jacky Wang
Browse files

[Catalyst] Simplify data store for media controls

NO_IFTTT=Catalyst only

Bug: 417340188
Flag: EXEMPT refactor
Test: adb shell settings put/delete
Change-Id: I1391fb88a5ee68a33f2d887f0348ea6a001d2432
parent 00bc6d85
Loading
Loading
Loading
Loading
+4 −13
Original line number Diff line number Diff line
@@ -23,7 +23,6 @@ import com.android.settings.R
import com.android.settings.contract.KEY_SHOW_MEDIA_ON_LOCK_SCREEN
import com.android.settings.metrics.PreferenceActionMetricsProvider
import com.android.settingslib.datastore.KeyValueStore
import com.android.settingslib.datastore.KeyValueStoreDelegate
import com.android.settingslib.datastore.SettingsSecureStore
import com.android.settingslib.metadata.ReadWritePermit
import com.android.settingslib.metadata.SensitivityLevel
@@ -56,21 +55,13 @@ class MediaControlsLockscreenSwitchPreference :
    override fun getWritePermit(context: Context, callingPid: Int, callingUid: Int) =
        ReadWritePermit.ALLOW

    override fun storage(context: Context): KeyValueStore =
        MediaControlsLockscreenStore(SettingsSecureStore.get(context))

    @Suppress("UNCHECKED_CAST")
    private class MediaControlsLockscreenStore(private val settingsStore: KeyValueStore) :
        KeyValueStoreDelegate {

        override val keyValueStoreDelegate
            get() = settingsStore

        override fun <T : Any> getDefaultValue(key: String, valueType: Class<T>) = true as T
    }
    override fun storage(context: Context) = context.dataStore

    companion object {
        const val KEY = MEDIA_CONTROLS_LOCK_SCREEN

        private val Context.dataStore: KeyValueStore
            get() = SettingsSecureStore.get(this).apply { setDefaultValue(KEY, true) }
    }
}
// LINT.ThenChange(MediaControlsLockScreenPreferenceController.java)
+2 −13
Original line number Diff line number Diff line
@@ -19,12 +19,10 @@ package com.android.settings.sound
import android.content.Context
import com.android.settings.R
import com.android.settings.flags.Flags
import com.android.settings.sound.MediaControlsSwitchPreference.Companion.mediaControlsDataStore
import com.android.settingslib.datastore.AbstractKeyedDataObservable
import com.android.settingslib.datastore.HandlerExecutor
import com.android.settingslib.datastore.KeyValueStore
import com.android.settingslib.datastore.KeyValueStoreDelegate
import com.android.settingslib.datastore.KeyedObserver
import com.android.settingslib.datastore.SettingsSecureStore
import com.android.settingslib.metadata.PreferenceChangeReason
import com.android.settingslib.metadata.PreferenceSummaryProvider
import com.android.settingslib.metadata.ProvidePreferenceScreen
@@ -39,7 +37,7 @@ class MediaControlsScreen(context: Context) :
    private val observer =
        KeyedObserver<String> { _, _ -> notifyChange(KEY, PreferenceChangeReason.STATE) }

    private val mediaControlsStore = MediaControlsStore(SettingsSecureStore.get(context))
    private val mediaControlsStore = context.mediaControlsDataStore

    override val key: String
        get() = KEY
@@ -79,15 +77,6 @@ class MediaControlsScreen(context: Context) :
            context.getString(R.string.media_controls_show_player)
        }

    @Suppress("UNCHECKED_CAST")
    class MediaControlsStore(private val settingsStore: KeyValueStore) : KeyValueStoreDelegate {

        override val keyValueStoreDelegate
            get() = settingsStore

        override fun <T : Any> getDefaultValue(key: String, valueType: Class<T>) = true as T
    }

    companion object {
        const val KEY = "media_controls"
    }
+4 −3
Original line number Diff line number Diff line
@@ -29,9 +29,7 @@ import com.android.settingslib.metadata.SensitivityLevel
import com.android.settingslib.metadata.SwitchPreference

// LINT.IfChange
class MediaControlsSwitchPreference(
    private val mediaControlsStore: MediaControlsScreen.MediaControlsStore
) :
class MediaControlsSwitchPreference(private val mediaControlsStore: KeyValueStore) :
    SwitchPreference(
        KEY,
        R.string.media_controls_resume_title,
@@ -63,6 +61,9 @@ class MediaControlsSwitchPreference(

    companion object {
        const val KEY = MEDIA_CONTROLS_RESUME

        val Context.mediaControlsDataStore: KeyValueStore
            get() = SettingsSecureStore.get(this).apply { setDefaultValue(KEY, true) }
    }
}
// LINT.ThenChange(MediaControlsPreferenceController.java)
+2 −1
Original line number Diff line number Diff line
@@ -21,6 +21,7 @@ import android.content.Context
import androidx.preference.SwitchPreferenceCompat
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.sound.MediaControlsSwitchPreference.Companion.mediaControlsDataStore

import com.android.settingslib.datastore.SettingsSecureStore
import com.android.settingslib.preference.createAndBindWidget
@@ -36,7 +37,7 @@ import org.junit.runner.RunWith
class MediaControlsSwitchPreferenceTest {
    private val appContext: Context = ApplicationProvider.getApplicationContext()
    private var originalValue: Boolean? = null
    private val store = MediaControlsScreen.MediaControlsStore(SettingsSecureStore.get(appContext))
    private val store = appContext.mediaControlsDataStore
    private val key = MediaControlsSwitchPreference.KEY

    private val preference = MediaControlsSwitchPreference(store)