Merge "[Catalyst] Leverage PrimarySwitchPreferenceBinding" into main
This commit is contained in:
committed by
Android (Google) Code Review
commit
1ac39a1547
@@ -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_AUTOMATIC
|
||||||
import android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
|
import android.provider.Settings.System.SCREEN_BRIGHTNESS_MODE_MANUAL
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
|
import androidx.preference.PreferenceScreen
|
||||||
import com.android.settings.PreferenceRestrictionMixin
|
import com.android.settings.PreferenceRestrictionMixin
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.flags.Flags
|
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.KeyValueStore
|
||||||
import com.android.settingslib.datastore.KeyedObservableDelegate
|
import com.android.settingslib.datastore.KeyedObservableDelegate
|
||||||
import com.android.settingslib.datastore.SettingsStore
|
import com.android.settingslib.datastore.SettingsStore
|
||||||
@@ -42,7 +43,8 @@ import com.android.settingslib.preference.PreferenceScreenCreator
|
|||||||
@ProvidePreferenceScreen(AutoBrightnessScreen.KEY)
|
@ProvidePreferenceScreen(AutoBrightnessScreen.KEY)
|
||||||
class AutoBrightnessScreen :
|
class AutoBrightnessScreen :
|
||||||
PreferenceScreenCreator,
|
PreferenceScreenCreator,
|
||||||
PreferenceScreenBinding,
|
PreferenceScreenBinding, // binding for screen page
|
||||||
|
PrimarySwitchPreferenceBinding, // binding for screen entry point widget
|
||||||
PreferenceAvailabilityProvider,
|
PreferenceAvailabilityProvider,
|
||||||
PreferenceRestrictionMixin,
|
PreferenceRestrictionMixin,
|
||||||
BooleanValuePreference {
|
BooleanValuePreference {
|
||||||
@@ -93,15 +95,10 @@ class AutoBrightnessScreen :
|
|||||||
override val useAdminDisabledSummary: Boolean
|
override val useAdminDisabledSummary: Boolean
|
||||||
get() = true
|
get() = true
|
||||||
|
|
||||||
override fun createWidget(context: Context) = PrimarySwitchPreference(context)
|
override fun bind(preference: Preference, metadata: PreferenceMetadata) =
|
||||||
|
when (preference) {
|
||||||
override fun bind(preference: Preference, metadata: PreferenceMetadata) {
|
is PreferenceScreen -> super<PreferenceScreenBinding>.bind(preference, metadata)
|
||||||
super.bind(preference, metadata)
|
else -> super<PrimarySwitchPreferenceBinding>.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)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@@ -20,9 +20,10 @@ import android.Manifest
|
|||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.os.PowerManager
|
import android.os.PowerManager
|
||||||
import androidx.preference.Preference
|
import androidx.preference.Preference
|
||||||
|
import androidx.preference.PreferenceScreen
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.flags.Flags
|
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.KeyValueStore
|
||||||
import com.android.settingslib.datastore.Permissions
|
import com.android.settingslib.datastore.Permissions
|
||||||
import com.android.settingslib.metadata.BooleanValuePreference
|
import com.android.settingslib.metadata.BooleanValuePreference
|
||||||
@@ -39,7 +40,8 @@ import com.android.settingslib.preference.PreferenceScreenCreator
|
|||||||
@ProvidePreferenceScreen(DarkModeScreen.KEY)
|
@ProvidePreferenceScreen(DarkModeScreen.KEY)
|
||||||
class DarkModeScreen(context: Context) :
|
class DarkModeScreen(context: Context) :
|
||||||
PreferenceScreenCreator,
|
PreferenceScreenCreator,
|
||||||
PreferenceScreenBinding,
|
PreferenceScreenBinding, // binding for screen page
|
||||||
|
PrimarySwitchPreferenceBinding, // binding for screen entry point widget
|
||||||
BooleanValuePreference,
|
BooleanValuePreference,
|
||||||
PreferenceSummaryProvider {
|
PreferenceSummaryProvider {
|
||||||
|
|
||||||
@@ -82,14 +84,11 @@ class DarkModeScreen(context: Context) :
|
|||||||
|
|
||||||
override fun storage(context: Context): KeyValueStore = darkModeStorage
|
override fun storage(context: Context): KeyValueStore = darkModeStorage
|
||||||
|
|
||||||
override fun createWidget(context: Context) = PrimarySwitchPreference(context)
|
|
||||||
|
|
||||||
override fun bind(preference: Preference, metadata: PreferenceMetadata) {
|
override fun bind(preference: Preference, metadata: PreferenceMetadata) {
|
||||||
super.bind(preference, metadata)
|
|
||||||
if (preference is DarkModePreference) preference.setCatalystEnabled(true)
|
if (preference is DarkModePreference) preference.setCatalystEnabled(true)
|
||||||
(preference as? PrimarySwitchPreference)?.apply {
|
when (preference) {
|
||||||
isSwitchEnabled = isEnabled
|
is PreferenceScreen -> super<PreferenceScreenBinding>.bind(preference, metadata)
|
||||||
isChecked = darkModeStorage.getBoolean(KEY) == true
|
else -> super<PrimarySwitchPreferenceBinding>.bind(preference, metadata)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -27,17 +27,17 @@ import android.net.wifi.WifiManager
|
|||||||
import android.os.UserManager
|
import android.os.UserManager
|
||||||
import android.text.BidiFormatter
|
import android.text.BidiFormatter
|
||||||
import android.util.Log
|
import android.util.Log
|
||||||
import androidx.preference.Preference
|
|
||||||
import com.android.settings.PreferenceRestrictionMixin
|
import com.android.settings.PreferenceRestrictionMixin
|
||||||
import com.android.settings.R
|
import com.android.settings.R
|
||||||
import com.android.settings.Utils
|
import com.android.settings.Utils
|
||||||
import com.android.settings.core.SubSettingLauncher
|
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.WifiUtils.canShowWifiHotspot
|
||||||
import com.android.settings.wifi.utils.tetheringManager
|
import com.android.settings.wifi.utils.tetheringManager
|
||||||
import com.android.settings.wifi.utils.wifiApState
|
import com.android.settings.wifi.utils.wifiApState
|
||||||
import com.android.settings.wifi.utils.wifiManager
|
import com.android.settings.wifi.utils.wifiManager
|
||||||
import com.android.settings.wifi.utils.wifiSoftApSsid
|
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.TetherUtil
|
||||||
import com.android.settingslib.datastore.AbstractKeyedDataObservable
|
import com.android.settingslib.datastore.AbstractKeyedDataObservable
|
||||||
import com.android.settingslib.datastore.HandlerExecutor
|
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.datastore.Permissions
|
||||||
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
|
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
|
||||||
import com.android.settingslib.metadata.PreferenceChangeReason
|
import com.android.settingslib.metadata.PreferenceChangeReason
|
||||||
import com.android.settingslib.metadata.PreferenceMetadata
|
|
||||||
import com.android.settingslib.metadata.PreferenceSummaryProvider
|
import com.android.settingslib.metadata.PreferenceSummaryProvider
|
||||||
import com.android.settingslib.metadata.ReadWritePermit
|
import com.android.settingslib.metadata.ReadWritePermit
|
||||||
import com.android.settingslib.metadata.SensitivityLevel
|
import com.android.settingslib.metadata.SensitivityLevel
|
||||||
import com.android.settingslib.metadata.SwitchPreference
|
import com.android.settingslib.metadata.SwitchPreference
|
||||||
import com.android.settingslib.preference.PreferenceBinding
|
|
||||||
import com.android.settingslib.wifi.WifiUtils.Companion.getWifiTetherSummaryForConnectedDevices
|
import com.android.settingslib.wifi.WifiUtils.Companion.getWifiTetherSummaryForConnectedDevices
|
||||||
import com.android.settings.datausage.DataSaverMainSwitchPreference.Companion.KEY as DATA_SAVER_KEY
|
|
||||||
|
|
||||||
// LINT.IfChange
|
// LINT.IfChange
|
||||||
class WifiHotspotSwitchPreference(context: Context, dataSaverStore: KeyValueStore) :
|
class WifiHotspotSwitchPreference(context: Context, dataSaverStore: KeyValueStore) :
|
||||||
SwitchPreference(KEY, R.string.wifi_hotspot_checkbox_text),
|
SwitchPreference(KEY, R.string.wifi_hotspot_checkbox_text),
|
||||||
PreferenceBinding,
|
PrimarySwitchPreferenceBinding,
|
||||||
PreferenceAvailabilityProvider,
|
PreferenceAvailabilityProvider,
|
||||||
PreferenceSummaryProvider,
|
PreferenceSummaryProvider,
|
||||||
PreferenceRestrictionMixin {
|
PreferenceRestrictionMixin {
|
||||||
@@ -130,8 +127,6 @@ class WifiHotspotSwitchPreference(context: Context, dataSaverStore: KeyValueStor
|
|||||||
override val sensitivityLevel
|
override val sensitivityLevel
|
||||||
get() = SensitivityLevel.HIGH_SENSITIVITY
|
get() = SensitivityLevel.HIGH_SENSITIVITY
|
||||||
|
|
||||||
override fun createWidget(context: Context) = PrimarySwitchPreference(context)
|
|
||||||
|
|
||||||
override fun storage(context: Context): KeyValueStore = wifiHotspotStore
|
override fun storage(context: Context): KeyValueStore = wifiHotspotStore
|
||||||
|
|
||||||
@Suppress("UNCHECKED_CAST")
|
@Suppress("UNCHECKED_CAST")
|
||||||
@@ -201,16 +196,7 @@ class WifiHotspotSwitchPreference(context: Context, dataSaverStore: KeyValueStor
|
|||||||
Log.e(TAG, "onTetheringFailed(),error=$error")
|
Log.e(TAG, "onTetheringFailed(),error=$error")
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun onKeyChanged(key: String, reason: Int) =
|
override fun onKeyChanged(key: String, reason: Int) = notifyChange(KEY, reason)
|
||||||
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
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
companion object {
|
companion object {
|
||||||
|
Reference in New Issue
Block a user