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

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

Merge "[Catalyst] Let PersistentPreference extend PreferenceMetadata" into main

parents ff146155 1173d25f
Loading
Loading
Loading
Loading
+4 −4
Original line number Diff line number Diff line
@@ -76,7 +76,7 @@ annotation class SensitivityLevel {
}

/** Preference interface that has a value persisted in datastore. */
interface PersistentPreference<T> {
interface PersistentPreference<T> : PreferenceMetadata {

    /**
     * The value type the preference is associated with.
@@ -93,7 +93,7 @@ interface PersistentPreference<T> {
     * [PreferenceScreenRegistry.getKeyValueStore].
     */
    fun storage(context: Context): KeyValueStore =
        PreferenceScreenRegistry.getKeyValueStore(context, this as PreferenceMetadata)!!
        PreferenceScreenRegistry.getKeyValueStore(context, this)!!

    /** Returns the required permissions to read preference value. */
    fun getReadPermissions(context: Context): Permissions? = null
@@ -111,7 +111,7 @@ interface PersistentPreference<T> {
            context,
            callingPid,
            callingUid,
            this as PreferenceMetadata,
            this,
        )

    /** Returns the required permissions to write preference value. */
@@ -136,7 +136,7 @@ interface PersistentPreference<T> {
            value,
            callingPid,
            callingUid,
            this as PreferenceMetadata,
            this,
        )

    /** The sensitivity level of the preference. */
+3 −5
Original line number Diff line number Diff line
@@ -30,9 +30,6 @@ interface FloatValuePreference : PersistentPreference<Float> {
        get() = Float::class.javaObjectType
}

/** Common base class for preferences that have two selectable states and save a boolean value. */
interface TwoStatePreference : PreferenceMetadata, BooleanValuePreference

/** A preference that provides a two-state toggleable option. */
open class SwitchPreference
@JvmOverloads
@@ -40,9 +37,10 @@ constructor(
    override val key: String,
    @StringRes override val title: Int = 0,
    @StringRes override val summary: Int = 0,
) : TwoStatePreference
) : BooleanValuePreference

/** A preference that provides a two-state toggleable option that can be used as a main switch. */
open class MainSwitchPreference
@JvmOverloads
constructor(override val key: String, @StringRes override val title: Int = 0) : TwoStatePreference
constructor(override val key: String, @StringRes override val title: Int = 0) :
    BooleanValuePreference
+3 −3
Original line number Diff line number Diff line
@@ -66,7 +66,7 @@ interface PreferenceCategoryBinding : PreferenceBinding {
}

/** A boolean value type preference associated with the abstract [TwoStatePreference]. */
interface TwoStatePreferenceBinding : PreferenceBinding {
interface BooleanValuePreferenceBinding : PreferenceBinding {

    override fun bind(preference: Preference, metadata: PreferenceMetadata) {
        super.bind(preference, metadata)
@@ -78,7 +78,7 @@ interface TwoStatePreferenceBinding : PreferenceBinding {
}

/** A boolean value type preference associated with [SwitchPreferenceCompat]. */
interface SwitchPreferenceBinding : TwoStatePreferenceBinding {
interface SwitchPreferenceBinding : BooleanValuePreferenceBinding {

    override fun createWidget(context: Context): Preference = SwitchPreferenceCompat(context)

@@ -88,7 +88,7 @@ interface SwitchPreferenceBinding : TwoStatePreferenceBinding {
}

/** A boolean value type preference associated with [MainSwitchPreference]. */
interface MainSwitchPreferenceBinding : TwoStatePreferenceBinding {
interface MainSwitchPreferenceBinding : BooleanValuePreferenceBinding {

    override fun createWidget(context: Context): Preference = MainSwitchPreference(context)