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

Commit 14b8fe99 authored by Treehugger Robot's avatar Treehugger Robot Committed by Android (Google) Code Review
Browse files

Merge changes from topic "catalyst" into main

* changes:
  [Catalyst] Clean up DefaultValueStoreDelegate
  [Catalyst] Simplify data store for media controls
parents 804978a1 a8a20937
Loading
Loading
Loading
Loading
+0 −27
Original line number Diff line number Diff line
/*
 * Copyright (C) 2025 The Android Open Source Project
 *
 * Licensed under the Apache License, Version 2.0 (the "License");
 * you may not use this file except in compliance with the License.
 * You may obtain a copy of the License at
 *
 *      http://www.apache.org/licenses/LICENSE-2.0
 *
 * Unless required by applicable law or agreed to in writing, software
 * distributed under the License is distributed on an "AS IS" BASIS,
 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
 * See the License for the specific language governing permissions and
 * limitations under the License.
 */
package com.android.settings

import com.android.settingslib.datastore.KeyValueStore
import com.android.settingslib.datastore.KeyValueStoreDelegate

@Suppress("UNCHECKED_CAST")
class DefaultValueStoreDelegate(
    override val keyValueStoreDelegate: KeyValueStore,
    private val value: Any,
) : KeyValueStoreDelegate {
    override fun <T : Any> getDefaultValue(key: String, valueType: Class<T>) = value as T
}
+10 −4
Original line number Diff line number Diff line
@@ -18,10 +18,10 @@ package com.android.settings.notification
import android.app.settings.SettingsEnums.ACTION_CHARGING_SOUND
import android.content.Context
import android.provider.Settings.Secure.CHARGING_SOUNDS_ENABLED
import com.android.settings.DefaultValueStoreDelegate
import com.android.settings.R
import com.android.settings.contract.KEY_CHARGING_SOUNDS
import com.android.settings.metrics.PreferenceActionMetricsProvider
import com.android.settingslib.datastore.KeyValueStore
import com.android.settingslib.datastore.SettingsSecureStore
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.ReadWritePermit
@@ -30,7 +30,7 @@ import com.android.settingslib.metadata.SwitchPreference

// LINT.IfChange
class ChargingSoundPreference :
    SwitchPreference(CHARGING_SOUNDS_ENABLED, R.string.charging_sounds_title),
    SwitchPreference(KEY, R.string.charging_sounds_title),
    PreferenceActionMetricsProvider,
    PreferenceAvailabilityProvider {
    override val preferenceActionMetrics: Int
@@ -38,8 +38,7 @@ class ChargingSoundPreference :

    override fun tags(context: Context) = arrayOf(KEY_CHARGING_SOUNDS)

    override fun storage(context: Context) =
        DefaultValueStoreDelegate(SettingsSecureStore.get(context), true)
    override fun storage(context: Context) = context.dataStore

    override fun isAvailable(context: Context) =
        context.resources.getBoolean(R.bool.config_show_charging_sounds)
@@ -56,5 +55,12 @@ class ChargingSoundPreference :

    override val sensitivityLevel
        get() = SensitivityLevel.NO_SENSITIVITY

    companion object {
        const val KEY = CHARGING_SOUNDS_ENABLED

        private val Context.dataStore: KeyValueStore
            get() = SettingsSecureStore.get(this).apply { setDefaultValue(KEY, true) }
    }
}
// LINT.ThenChange(ChargingSoundPreferenceController.java)
+10 −4
Original line number Diff line number Diff line
@@ -18,10 +18,10 @@ package com.android.settings.notification
import android.app.settings.SettingsEnums.ACTION_SCREEN_LOCKING_SOUND
import android.content.Context
import android.provider.Settings.System.LOCKSCREEN_SOUNDS_ENABLED
import com.android.settings.DefaultValueStoreDelegate
import com.android.settings.R
import com.android.settings.contract.KEY_SCREEN_LOCKING_SOUND
import com.android.settings.metrics.PreferenceActionMetricsProvider
import com.android.settingslib.datastore.KeyValueStore
import com.android.settingslib.datastore.SettingsSystemStore
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.ReadWritePermit
@@ -30,7 +30,7 @@ import com.android.settingslib.metadata.SwitchPreference

// LINT.IfChange
class ScreenLockSoundPreference :
    SwitchPreference(LOCKSCREEN_SOUNDS_ENABLED, R.string.screen_locking_sounds_title),
    SwitchPreference(KEY, R.string.screen_locking_sounds_title),
    PreferenceActionMetricsProvider,
    PreferenceAvailabilityProvider {
    override val preferenceActionMetrics: Int
@@ -38,8 +38,7 @@ class ScreenLockSoundPreference :

    override fun tags(context: Context) = arrayOf(KEY_SCREEN_LOCKING_SOUND)

    override fun storage(context: Context) =
        DefaultValueStoreDelegate(SettingsSystemStore.get(context), true)
    override fun storage(context: Context) = context.dataStore

    override fun isAvailable(context: Context) =
        context.resources.getBoolean(R.bool.config_show_screen_locking_sounds)
@@ -56,5 +55,12 @@ class ScreenLockSoundPreference :

    override val sensitivityLevel
        get() = SensitivityLevel.NO_SENSITIVITY

    companion object {
        const val KEY = LOCKSCREEN_SOUNDS_ENABLED

        private val Context.dataStore: KeyValueStore
            get() = SettingsSystemStore.get(this).apply { setDefaultValue(KEY, true) }
    }
}
// LINT.ThenChange(ScreenLockSoundPreferenceController.java)
+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"
    }
Loading