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

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

Merge "[Catalyst] Leverage PrimarySwitchPreferenceBinding" into main

parents 733f174f 5a747c5a
Loading
Loading
Loading
Loading
+8 −11
Original line number Diff line number Diff line
@@ -21,10 +21,11 @@ import android.provider.Settings
import android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_AUTOMATIC
import android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
import androidx.preference.Preference
import androidx.preference.PreferenceScreen
import com.android.settings.PreferenceRestrictionMixin
import com.android.settings.R
import com.android.settings.flags.Flags
import com.android.settingslib.PrimarySwitchPreference
import com.android.settingslib.PrimarySwitchPreferenceBinding
import com.android.settingslib.datastore.KeyValueStore
import com.android.settingslib.datastore.KeyedObservableDelegate
import com.android.settingslib.datastore.SettingsStore
@@ -42,7 +43,8 @@ import com.android.settingslib.preference.PreferenceScreenCreator
@ProvidePreferenceScreen(AutoBrightnessScreen.KEY)
class AutoBrightnessScreen :
    PreferenceScreenCreator,
    PreferenceScreenBinding,
    PreferenceScreenBinding, // binding for screen page
    PrimarySwitchPreferenceBinding, // binding for screen entry point widget
    PreferenceAvailabilityProvider,
    PreferenceRestrictionMixin,
    BooleanValuePreference {
@@ -93,15 +95,10 @@ class AutoBrightnessScreen :
    override val useAdminDisabledSummary: Boolean
        get() = true

    override fun createWidget(context: Context) = PrimarySwitchPreference(context)

    override fun bind(preference: Preference, metadata: PreferenceMetadata) {
        super.bind(preference, metadata)
        (preference as PrimarySwitchPreference).apply {
            isSwitchEnabled = isEnabled
            // "true" is not the real default value (it is provided by AutoBrightnessDataStore)
            isChecked = preferenceDataStore!!.getBoolean(key, true)
        }
    override fun bind(preference: Preference, metadata: PreferenceMetadata) =
        when (preference) {
            is PreferenceScreen -> super<PreferenceScreenBinding>.bind(preference, metadata)
            else -> super<PrimarySwitchPreferenceBinding>.bind(preference, metadata)
        }

    /**
+7 −8
Original line number Diff line number Diff line
@@ -20,9 +20,10 @@ import android.Manifest
import android.content.Context
import android.os.PowerManager
import androidx.preference.Preference
import androidx.preference.PreferenceScreen
import com.android.settings.R
import com.android.settings.flags.Flags
import com.android.settingslib.PrimarySwitchPreference
import com.android.settingslib.PrimarySwitchPreferenceBinding
import com.android.settingslib.datastore.KeyValueStore
import com.android.settingslib.datastore.Permissions
import com.android.settingslib.metadata.BooleanValuePreference
@@ -39,7 +40,8 @@ import com.android.settingslib.preference.PreferenceScreenCreator
@ProvidePreferenceScreen(DarkModeScreen.KEY)
class DarkModeScreen(context: Context) :
    PreferenceScreenCreator,
    PreferenceScreenBinding,
    PreferenceScreenBinding, // binding for screen page
    PrimarySwitchPreferenceBinding, // binding for screen entry point widget
    BooleanValuePreference,
    PreferenceSummaryProvider {

@@ -82,14 +84,11 @@ class DarkModeScreen(context: Context) :

    override fun storage(context: Context): KeyValueStore = darkModeStorage

    override fun createWidget(context: Context) = PrimarySwitchPreference(context)

    override fun bind(preference: Preference, metadata: PreferenceMetadata) {
        super.bind(preference, metadata)
        if (preference is DarkModePreference) preference.setCatalystEnabled(true)
        (preference as? PrimarySwitchPreference)?.apply {
            isSwitchEnabled = isEnabled
            isChecked = darkModeStorage.getBoolean(KEY) == true
        when (preference) {
            is PreferenceScreen -> super<PreferenceScreenBinding>.bind(preference, metadata)
            else -> super<PrimarySwitchPreferenceBinding>.bind(preference, metadata)
        }
    }

+4 −18
Original line number Diff line number Diff line
@@ -27,17 +27,17 @@ import android.net.wifi.WifiManager
import android.os.UserManager
import android.text.BidiFormatter
import android.util.Log
import androidx.preference.Preference
import com.android.settings.PreferenceRestrictionMixin
import com.android.settings.R
import com.android.settings.Utils
import com.android.settings.core.SubSettingLauncher
import com.android.settings.datausage.DataSaverMainSwitchPreference.Companion.KEY as DATA_SAVER_KEY
import com.android.settings.wifi.WifiUtils.canShowWifiHotspot
import com.android.settings.wifi.utils.tetheringManager
import com.android.settings.wifi.utils.wifiApState
import com.android.settings.wifi.utils.wifiManager
import com.android.settings.wifi.utils.wifiSoftApSsid
import com.android.settingslib.PrimarySwitchPreference
import com.android.settingslib.PrimarySwitchPreferenceBinding
import com.android.settingslib.TetherUtil
import com.android.settingslib.datastore.AbstractKeyedDataObservable
import com.android.settingslib.datastore.HandlerExecutor
@@ -46,19 +46,16 @@ import com.android.settingslib.datastore.KeyedObserver
import com.android.settingslib.datastore.Permissions
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.PreferenceChangeReason
import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.metadata.PreferenceSummaryProvider
import com.android.settingslib.metadata.ReadWritePermit
import com.android.settingslib.metadata.SensitivityLevel
import com.android.settingslib.metadata.SwitchPreference
import com.android.settingslib.preference.PreferenceBinding
import com.android.settingslib.wifi.WifiUtils.Companion.getWifiTetherSummaryForConnectedDevices
import com.android.settings.datausage.DataSaverMainSwitchPreference.Companion.KEY as DATA_SAVER_KEY

// LINT.IfChange
class WifiHotspotSwitchPreference(context: Context, dataSaverStore: KeyValueStore) :
    SwitchPreference(KEY, R.string.wifi_hotspot_checkbox_text),
    PreferenceBinding,
    PrimarySwitchPreferenceBinding,
    PreferenceAvailabilityProvider,
    PreferenceSummaryProvider,
    PreferenceRestrictionMixin {
@@ -130,8 +127,6 @@ class WifiHotspotSwitchPreference(context: Context, dataSaverStore: KeyValueStor
    override val sensitivityLevel
        get() = SensitivityLevel.HIGH_SENSITIVITY

    override fun createWidget(context: Context) = PrimarySwitchPreference(context)

    override fun storage(context: Context): KeyValueStore = wifiHotspotStore

    @Suppress("UNCHECKED_CAST")
@@ -201,16 +196,7 @@ class WifiHotspotSwitchPreference(context: Context, dataSaverStore: KeyValueStor
            Log.e(TAG, "onTetheringFailed(),error=$error")
        }

        override fun onKeyChanged(key: String, reason: Int) =
            notifyChange(KEY, reason)
    }

    override fun bind(preference: Preference, metadata: PreferenceMetadata) {
        super.bind(preference, metadata)
        (preference as PrimarySwitchPreference).apply {
            isChecked = preferenceDataStore!!.getBoolean(key, false)
            isSwitchEnabled = isEnabled
        }
        override fun onKeyChanged(key: String, reason: Int) = notifyChange(KEY, reason)
    }

    companion object {