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

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

Merge "[Catalyst] Introduce FloatValuePreference and BooleanValuePreference" into main

parents ea8f44e7 3054a19b
Loading
Loading
Loading
Loading
+3 −4
Original line number Diff line number Diff line
@@ -40,7 +40,6 @@ import com.android.settingslib.graph.proto.PreferenceProto
import com.android.settingslib.graph.proto.PreferenceProto.ActionTarget
import com.android.settingslib.graph.proto.PreferenceScreenProto
import com.android.settingslib.graph.proto.TextProto
import com.android.settingslib.metadata.FloatPersistentPreference
import com.android.settingslib.metadata.PersistentPreference
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.PreferenceHierarchy
@@ -410,13 +409,13 @@ fun PreferenceMetadata.toProto(
            value = preferenceValueProto {
                when (metadata) {
                    is RangeValue -> storage.getInt(metadata.key)?.let { intValue = it }
                    is FloatPersistentPreference ->
                        storage.getFloat(metadata.key)?.let { floatValue = it }
                    else -> {}
                }
                when (metadata.valueType) {
                    Boolean::class.javaObjectType ->
                        storage.getBoolean(metadata.key)?.let { booleanValue = it }
                    Float::class.javaObjectType ->
                        storage.getFloat(metadata.key)?.let { floatValue = it }
                }
            }
        }
@@ -428,12 +427,12 @@ fun PreferenceMetadata.toProto(
                            max = metadata.getMaxValue(context)
                            step = metadata.getIncrementStep(context)
                        }
                    is FloatPersistentPreference -> floatType = true
                    else -> {}
                }
                if (metadata is PersistentPreference<*>) {
                    when (metadata.valueType) {
                        Boolean::class.javaObjectType -> booleanType = true
                        Float::class.javaObjectType -> floatType = true
                    }
                }
            }
+0 −9
Original line number Diff line number Diff line
@@ -219,12 +219,3 @@ interface RangeValue : ValueDescriptor {
    override fun isValidValue(context: Context, index: Int) =
        index in getMinValue(context)..getMaxValue(context)
}

/** A persistent preference that has a boolean value. */
interface BooleanPreference : PersistentPreference<Boolean> {
    override val valueType: Class<Boolean>
        get() = Boolean::class.javaObjectType
}

/** A persistent preference that has a float value. */
interface FloatPersistentPreference : PersistentPreference<Float>
+13 −1
Original line number Diff line number Diff line
@@ -18,8 +18,20 @@ package com.android.settingslib.metadata

import androidx.annotation.StringRes

/** A persistent preference that has a boolean value. */
interface BooleanValuePreference : PersistentPreference<Boolean> {
    override val valueType: Class<Boolean>
        get() = Boolean::class.javaObjectType
}

/** A persistent preference that has a float value. */
interface FloatValuePreference : PersistentPreference<Float> {
    override val valueType: Class<Float>
        get() = Float::class.javaObjectType
}

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

/** A preference that provides a two-state toggleable option. */
open class SwitchPreference