Merge "[Catalyst] Refactor some Text Reading items" into main
diff --git a/res/xml/mobile_network_settings.xml b/res/xml/mobile_network_settings.xml
index 3c1317d..a1a2276 100644
--- a/res/xml/mobile_network_settings.xml
+++ b/res/xml/mobile_network_settings.xml
@@ -18,7 +18,7 @@
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:key="mobile_network_pref_screen">
- <com.android.settings.spa.preference.ComposePreference
+ <com.android.settings.spa.preference.ComposeMainSwitchPreference
android:key="use_sim_switch"
settings:controller="com.android.settings.network.telephony.MobileNetworkSwitchController"/>
diff --git a/src/com/android/settings/applications/manageapplications/ResetAppPrefPreferenceController.java b/src/com/android/settings/applications/manageapplications/ResetAppPrefPreferenceController.java
index 6ef4593..e7bf62f 100644
--- a/src/com/android/settings/applications/manageapplications/ResetAppPrefPreferenceController.java
+++ b/src/com/android/settings/applications/manageapplications/ResetAppPrefPreferenceController.java
@@ -18,9 +18,11 @@
import android.content.Context;
import android.os.Bundle;
+import android.telephony.TelephonyManager;
import android.text.TextUtils;
import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
import com.android.settings.core.PreferenceControllerMixin;
import com.android.settingslib.core.AbstractPreferenceController;
@@ -70,4 +72,19 @@
public void onSaveInstanceState(Bundle outState) {
mResetAppsHelper.onSaveInstanceState(outState);
}
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ Preference preference = screen.findPreference(getPreferenceKey());
+ if (preference != null) {
+ preference.setEnabled(!isInCallState());
+ }
+ }
+
+ boolean isInCallState() {
+ TelephonyManager telephonyManager = mContext.getSystemService(TelephonyManager.class);
+ return telephonyManager.getCallState(telephonyManager.getSubscriptionId())
+ != TelephonyManager.CALL_STATE_IDLE;
+ }
}
diff --git a/src/com/android/settings/datausage/DataSaverMainSwitchPreference.kt b/src/com/android/settings/datausage/DataSaverMainSwitchPreference.kt
index e4e38d4..23cfadc 100644
--- a/src/com/android/settings/datausage/DataSaverMainSwitchPreference.kt
+++ b/src/com/android/settings/datausage/DataSaverMainSwitchPreference.kt
@@ -19,18 +19,14 @@
import android.content.Context
import com.android.settings.R
import com.android.settings.widget.MainSwitchBarMetadata
+import com.android.settingslib.datastore.AbstractKeyedDataObservable
+import com.android.settingslib.datastore.DataChangeReason
import com.android.settingslib.datastore.KeyValueStore
-import com.android.settingslib.datastore.NoOpKeyedObservable
-import com.android.settingslib.metadata.PreferenceLifecycleContext
import com.android.settingslib.metadata.PreferenceLifecycleProvider
import com.android.settingslib.metadata.ReadWritePermit
import com.android.settingslib.metadata.SensitivityLevel
-class DataSaverMainSwitchPreference(context: Context) :
- MainSwitchBarMetadata, PreferenceLifecycleProvider {
-
- private val dataSaverBackend = DataSaverBackend(context)
- private var dataSaverBackendListener: DataSaverBackend.Listener? = null
+class DataSaverMainSwitchPreference : MainSwitchBarMetadata, PreferenceLifecycleProvider {
override val key
get() = KEY
@@ -38,7 +34,7 @@
override val title
get() = R.string.data_saver_switch_title
- override fun storage(context: Context): KeyValueStore = DataSaverStore(dataSaverBackend)
+ override fun storage(context: Context) = createDataStore(context)
override fun getReadPermit(context: Context, myUid: Int, callingUid: Int) =
ReadWritePermit.ALLOW
@@ -49,24 +45,11 @@
override val sensitivityLevel
get() = SensitivityLevel.NO_SENSITIVITY
- override fun onStart(context: PreferenceLifecycleContext) {
- val listener = DataSaverBackend.Listener { context.notifyPreferenceChange(KEY) }
- dataSaverBackendListener = listener
- dataSaverBackend.addListener(listener)
- }
-
- override fun onStop(context: PreferenceLifecycleContext) {
- dataSaverBackendListener?.let {
- dataSaverBackend.remListener(it)
- dataSaverBackendListener = null
- }
- }
-
@Suppress("UNCHECKED_CAST")
private class DataSaverStore(private val dataSaverBackend: DataSaverBackend) :
- NoOpKeyedObservable<String>(), KeyValueStore {
+ AbstractKeyedDataObservable<String>(), KeyValueStore, DataSaverBackend.Listener {
- override fun contains(key: String) = true // just assume the datastore contains the value
+ override fun contains(key: String) = key == KEY
override fun <T : Any> getValue(key: String, valueType: Class<T>): T? =
dataSaverBackend.isDataSaverEnabled as T?
@@ -74,9 +57,20 @@
override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) {
dataSaverBackend.isDataSaverEnabled = value as Boolean
}
+
+ override fun onFirstObserverAdded() = dataSaverBackend.addListener(this)
+
+ override fun onLastObserverRemoved() = dataSaverBackend.remListener(this)
+
+ override fun onDataSaverChanged(isDataSaving: Boolean) =
+ notifyChange(KEY, DataChangeReason.UPDATE)
}
companion object {
const val KEY = "use_data_saver"
+
+ /** Creates [KeyValueStore] for data saver preference. */
+ fun createDataStore(context: Context): KeyValueStore =
+ DataSaverStore(DataSaverBackend(context))
}
}
diff --git a/src/com/android/settings/datausage/DataSaverScreen.kt b/src/com/android/settings/datausage/DataSaverScreen.kt
index 2e80643..fd4441f 100644
--- a/src/com/android/settings/datausage/DataSaverScreen.kt
+++ b/src/com/android/settings/datausage/DataSaverScreen.kt
@@ -19,24 +19,30 @@
import android.content.Context
import android.telephony.SubscriptionManager.INVALID_SUBSCRIPTION_ID
import com.android.settings.R
+import com.android.settings.Settings.DataSaverSummaryActivity
import com.android.settings.flags.Flags
+import com.android.settings.utils.makeLaunchIntent
+import com.android.settingslib.datastore.HandlerExecutor
+import com.android.settingslib.datastore.KeyedObserver
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.PreferenceLifecycleContext
import com.android.settingslib.metadata.PreferenceLifecycleProvider
+import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.metadata.PreferenceSummaryProvider
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceScreenCreator
+import com.android.settings.datausage.DataSaverMainSwitchPreference.Companion.KEY as DATA_SAVER_KEY
@ProvidePreferenceScreen
-class DataSaverScreen :
+class DataSaverScreen(context: Context) :
PreferenceScreenCreator,
PreferenceAvailabilityProvider,
PreferenceSummaryProvider,
PreferenceLifecycleProvider {
- private var dataSaverBackend: DataSaverBackend? = null
- private var dataSaverBackendListener: DataSaverBackend.Listener? = null
+ private val dataSaverStore = DataSaverMainSwitchPreference.createDataStore(context)
+ private lateinit var keyedObserver: KeyedObserver<String>
override val key
get() = KEY
@@ -53,7 +59,7 @@
override fun getSummary(context: Context): CharSequence? =
when {
- DataSaverBackend(context).isDataSaverEnabled ->
+ dataSaverStore.getBoolean(DATA_SAVER_KEY) == true ->
context.getString(R.string.data_saver_on)
else -> context.getString(R.string.data_saver_off)
}
@@ -65,21 +71,21 @@
override fun fragmentClass() = DataSaverSummary::class.java
+ override fun getLaunchIntent(context: Context, metadata: PreferenceMetadata?) =
+ makeLaunchIntent(context, DataSaverSummaryActivity::class.java, metadata?.key)
+
override fun getPreferenceHierarchy(context: Context) =
- preferenceHierarchy(this) { +DataSaverMainSwitchPreference(context) }
+ preferenceHierarchy(this) { +DataSaverMainSwitchPreference() }
override fun hasCompleteHierarchy() = false
- override fun onStart(context: PreferenceLifecycleContext) {
- val listener = DataSaverBackend.Listener { context.notifyPreferenceChange(KEY) }
- dataSaverBackendListener = listener
- dataSaverBackend = DataSaverBackend(context).apply { addListener(listener) }
+ override fun onCreate(context: PreferenceLifecycleContext) {
+ keyedObserver = KeyedObserver { _, _ -> context.notifyPreferenceChange(KEY) }
+ dataSaverStore.addObserver(DATA_SAVER_KEY, keyedObserver, HandlerExecutor.main)
}
- override fun onStop(context: PreferenceLifecycleContext) {
- dataSaverBackend?.remListener(dataSaverBackendListener)
- dataSaverBackend = null
- dataSaverBackendListener = null
+ override fun onDestroy(context: PreferenceLifecycleContext) {
+ dataSaverStore.removeObserver(DATA_SAVER_KEY, keyedObserver)
}
companion object {
diff --git a/src/com/android/settings/display/NightDisplayActivationPreferenceController.java b/src/com/android/settings/display/NightDisplayActivationPreferenceController.java
index fd6d199..aa963c9 100644
--- a/src/com/android/settings/display/NightDisplayActivationPreferenceController.java
+++ b/src/com/android/settings/display/NightDisplayActivationPreferenceController.java
@@ -90,11 +90,6 @@
}
}
- @Override
- public final void updateState(Preference preference) {
- updateStateInternal();
- }
-
/** FOR SLICES */
@Override
@@ -112,14 +107,4 @@
return mTimeFormatter.getAutoModeSummary(mContext, mColorDisplayManager);
}
- private void updateStateInternal() {
- final boolean isActivated = mColorDisplayManager.isNightDisplayActivated();
- final int autoMode = mColorDisplayManager.getNightDisplayAutoMode();
-
- if (autoMode == ColorDisplayManager.AUTO_MODE_CUSTOM_TIME) {
- mTimeFormatter.getFormattedTimeString(isActivated
- ? mColorDisplayManager.getNightDisplayCustomStartTime()
- : mColorDisplayManager.getNightDisplayCustomEndTime());
- }
- }
}
diff --git a/src/com/android/settings/network/AirplaneModePreference.kt b/src/com/android/settings/network/AirplaneModePreference.kt
index 96fbe76..758bcfb 100644
--- a/src/com/android/settings/network/AirplaneModePreference.kt
+++ b/src/com/android/settings/network/AirplaneModePreference.kt
@@ -152,7 +152,7 @@
data: Intent?,
): Boolean {
if (requestCode == REQUEST_CODE_EXIT_ECM && resultCode == Activity.RESULT_OK) {
- storage(context).setBoolean(KEY, true)
+ context.getKeyValueStore(KEY)?.setBoolean(KEY, true)
}
return true
}
diff --git a/src/com/android/settings/network/tether/TetherScreen.kt b/src/com/android/settings/network/tether/TetherScreen.kt
index c666683..5865c86 100644
--- a/src/com/android/settings/network/tether/TetherScreen.kt
+++ b/src/com/android/settings/network/tether/TetherScreen.kt
@@ -20,19 +20,27 @@
import android.os.UserManager
import com.android.settings.PreferenceRestrictionMixin
import com.android.settings.R
+import com.android.settings.Settings.TetherSettingsActivity
+import com.android.settings.datausage.DataSaverMainSwitchPreference
import com.android.settings.flags.Flags
import com.android.settings.network.TetherPreferenceController
+import com.android.settings.utils.makeLaunchIntent
import com.android.settings.wifi.tether.WifiHotspotSwitchPreference
import com.android.settingslib.TetherUtil
import com.android.settingslib.Utils
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
+import com.android.settingslib.metadata.PreferenceMetadata
+import com.android.settingslib.metadata.PreferenceTitleProvider
import com.android.settingslib.metadata.ProvidePreferenceScreen
import com.android.settingslib.metadata.preferenceHierarchy
import com.android.settingslib.preference.PreferenceScreenCreator
@ProvidePreferenceScreen
class TetherScreen :
- PreferenceScreenCreator, PreferenceAvailabilityProvider, PreferenceRestrictionMixin {
+ PreferenceScreenCreator,
+ PreferenceTitleProvider,
+ PreferenceAvailabilityProvider,
+ PreferenceRestrictionMixin {
override val key: String
get() = KEY
@@ -43,7 +51,7 @@
override val keywords: Int
get() = R.string.keywords_hotspot_tethering
- override fun getPreferenceTitle(context: Context): CharSequence? =
+ override fun getTitle(context: Context): CharSequence? =
if (TetherPreferenceController.isTetherConfigDisallowed(context)) {
context.getText(R.string.tether_settings_title_all)
} else {
@@ -64,9 +72,14 @@
override fun fragmentClass() = TetherSettings::class.java
- override fun getPreferenceHierarchy(context: Context) = preferenceHierarchy(this) {
- +WifiHotspotSwitchPreference(context)
- }
+ override fun getLaunchIntent(context: Context, metadata: PreferenceMetadata?) =
+ makeLaunchIntent(context, TetherSettingsActivity::class.java, metadata?.key)
+
+ override fun getPreferenceHierarchy(context: Context) =
+ preferenceHierarchy(this) {
+ val dataSaverStore = DataSaverMainSwitchPreference.createDataStore(context)
+ +WifiHotspotSwitchPreference(context, dataSaverStore)
+ }
companion object {
const val KEY = "tether_settings"
diff --git a/src/com/android/settings/spa/preference/ComposePreference.kt b/src/com/android/settings/spa/preference/ComposePreference.kt
index 55a469c..91b2d8a 100644
--- a/src/com/android/settings/spa/preference/ComposePreference.kt
+++ b/src/com/android/settings/spa/preference/ComposePreference.kt
@@ -26,6 +26,14 @@
import androidx.preference.PreferenceViewHolder
import com.android.settings.R
import com.android.settingslib.spa.framework.theme.SettingsTheme
+import com.android.settingslib.widget.GroupSectionDividerMixin
+
+open class ComposeMainSwitchPreference @JvmOverloads constructor(
+ context: Context,
+ attrs: AttributeSet? = null,
+ defStyleAttr: Int = 0,
+ defStyleRes: Int = 0,
+) : ComposePreference(context, attrs, defStyleAttr, defStyleRes), GroupSectionDividerMixin
open class ComposePreference @JvmOverloads constructor(
context: Context,
diff --git a/src/com/android/settings/wifi/tether/WifiHotspotSwitchPreference.kt b/src/com/android/settings/wifi/tether/WifiHotspotSwitchPreference.kt
index 4866d19..c185e02 100644
--- a/src/com/android/settings/wifi/tether/WifiHotspotSwitchPreference.kt
+++ b/src/com/android/settings/wifi/tether/WifiHotspotSwitchPreference.kt
@@ -20,6 +20,7 @@
import android.content.Context
import android.content.Intent
import android.net.TetheringManager
+import android.net.TetheringManager.TETHERING_WIFI
import android.net.wifi.WifiClient
import android.net.wifi.WifiManager
import android.os.UserManager
@@ -30,7 +31,7 @@
import com.android.settings.R
import com.android.settings.Utils
import com.android.settings.core.SubSettingLauncher
-import com.android.settings.datausage.DataSaverBackend
+import com.android.settings.datausage.DataSaverMainSwitchPreference.Companion.KEY as DATA_SAVER_KEY
import com.android.settings.wifi.WifiUtils.canShowWifiHotspot
import com.android.settingslib.PrimarySwitchPreference
import com.android.settingslib.TetherUtil
@@ -38,9 +39,8 @@
import com.android.settingslib.datastore.DataChangeReason
import com.android.settingslib.datastore.HandlerExecutor
import com.android.settingslib.datastore.KeyValueStore
+import com.android.settingslib.datastore.KeyedObserver
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
-import com.android.settingslib.metadata.PreferenceLifecycleContext
-import com.android.settingslib.metadata.PreferenceLifecycleProvider
import com.android.settingslib.metadata.PreferenceMetadata
import com.android.settingslib.metadata.PreferenceSummaryProvider
import com.android.settingslib.metadata.ReadWritePermit
@@ -50,20 +50,15 @@
import com.android.settingslib.wifi.WifiUtils.Companion.getWifiTetherSummaryForConnectedDevices
// LINT.IfChange
-@Deprecated("Deprecated in Java")
@Suppress("MissingPermission", "NewApi", "UNCHECKED_CAST")
-class WifiHotspotSwitchPreference(context: Context) :
+class WifiHotspotSwitchPreference(context: Context, dataSaverStore: KeyValueStore) :
SwitchPreference(KEY, R.string.wifi_hotspot_checkbox_text),
PreferenceBinding,
PreferenceAvailabilityProvider,
PreferenceSummaryProvider,
- PreferenceLifecycleProvider,
PreferenceRestrictionMixin {
- private val wifiHotspotStore = WifiHotspotStore(context)
-
- private val dataSaverBackend = DataSaverBackend(context)
- private var dataSaverBackendListener: DataSaverBackend.Listener? = null
+ private val wifiHotspotStore = WifiHotspotStore(context, dataSaverStore)
override fun isAvailable(context: Context) =
canShowWifiHotspot(context) &&
@@ -71,22 +66,19 @@
!Utils.isMonkeyRunning()
override fun getSummary(context: Context): CharSequence? =
- when (wifiHotspotStore.sapState) {
+ when (context.wifiManager?.wifiApState) {
WifiManager.WIFI_AP_STATE_ENABLING -> context.getString(R.string.wifi_tether_starting)
- WifiManager.WIFI_AP_STATE_ENABLED ->
- when (wifiHotspotStore.sapClientsSize) {
- null ->
- context.getString(
- R.string.wifi_tether_enabled_subtext,
- BidiFormatter.getInstance()
- .unicodeWrap(context.getSoftApConfiguration()?.ssid),
- )
- else ->
- getWifiTetherSummaryForConnectedDevices(
- context,
- wifiHotspotStore.sapClientsSize!!,
- )
+ WifiManager.WIFI_AP_STATE_ENABLED -> {
+ val sapClientsSize = wifiHotspotStore.sapClientsSize
+ if (sapClientsSize == null) {
+ context.getString(
+ R.string.wifi_tether_enabled_subtext,
+ BidiFormatter.getInstance().unicodeWrap(context.wifiSsid),
+ )
+ } else {
+ getWifiTetherSummaryForConnectedDevices(context, sapClientsSize)
}
+ }
WifiManager.WIFI_AP_STATE_DISABLING -> context.getString(R.string.wifi_tether_stopping)
WifiManager.WIFI_AP_STATE_DISABLED ->
context.getString(R.string.wifi_hotspot_off_subtext)
@@ -108,7 +100,8 @@
.toIntent()
override fun isEnabled(context: Context) =
- !dataSaverBackend.isDataSaverEnabled && super<PreferenceRestrictionMixin>.isEnabled(context)
+ wifiHotspotStore.dataSaverStore.getBoolean(DATA_SAVER_KEY) == true &&
+ super<PreferenceRestrictionMixin>.isEnabled(context)
override val restrictionKeys
get() = arrayOf(UserManager.DISALLOW_WIFI_TETHERING)
@@ -117,10 +110,7 @@
ReadWritePermit.ALLOW
override fun getWritePermit(context: Context, value: Boolean?, myUid: Int, callingUid: Int) =
- when {
- dataSaverBackend.isDataSaverEnabled -> ReadWritePermit.DISALLOW
- else -> ReadWritePermit.ALLOW
- }
+ ReadWritePermit.ALLOW
override val sensitivityLevel
get() = SensitivityLevel.HIGH_SENSITIVITY
@@ -129,11 +119,17 @@
override fun storage(context: Context): KeyValueStore = wifiHotspotStore
- private class WifiHotspotStore(private val context: Context) :
- AbstractKeyedDataObservable<String>(), KeyValueStore {
+ private class WifiHotspotStore(
+ private val context: Context,
+ val dataSaverStore: KeyValueStore,
+ ) :
+ AbstractKeyedDataObservable<String>(),
+ KeyValueStore,
+ WifiTetherSoftApManager.WifiTetherSoftApCallback,
+ TetheringManager.StartTetheringCallback,
+ KeyedObserver<String> {
private var wifiTetherSoftApManager: WifiTetherSoftApManager? = null
- var sapState: Int = WifiManager.WIFI_AP_STATE_DISABLED
var sapFailureReason: Int? = null
var sapClientsSize: Int? = null
@@ -150,54 +146,47 @@
override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) {
if (value !is Boolean) return
- context.tetheringManager?.let {
- if (value) {
- val startTetheringCallback =
- object : TetheringManager.StartTetheringCallback {
- override fun onTetheringStarted() {
- Log.d(TAG, "onTetheringStarted()")
- }
-
- override fun onTetheringFailed(error: Int) {
- Log.e(TAG, "onTetheringFailed(),error=$error")
- }
- }
- it.startTethering(
- TetheringManager.TETHERING_WIFI,
- HandlerExecutor.main,
- startTetheringCallback,
- )
- } else {
- it.stopTethering(TetheringManager.TETHERING_WIFI)
- }
+ val tetheringManager = context.tetheringManager ?: return
+ if (value) {
+ tetheringManager.startTethering(TETHERING_WIFI, HandlerExecutor.main, this)
+ } else {
+ tetheringManager.stopTethering(TETHERING_WIFI)
}
}
override fun onFirstObserverAdded() {
- val wifiSoftApCallback =
- object : WifiTetherSoftApManager.WifiTetherSoftApCallback {
- override fun onStateChanged(state: Int, failureReason: Int) {
- Log.d(TAG, "onStateChanged(),state=$state,failureReason=$failureReason")
- sapState = state
- sapFailureReason = failureReason
- if (state == WifiManager.WIFI_AP_STATE_DISABLED) sapClientsSize = null
- notifyChange(KEY, DataChangeReason.UPDATE)
- }
-
- override fun onConnectedClientsChanged(clients: List<WifiClient>?) {
- sapClientsSize = clients?.size ?: 0
- Log.d(TAG, "onConnectedClientsChanged(),sapClientsSize=$sapClientsSize")
- notifyChange(KEY, DataChangeReason.UPDATE)
- }
- }
- wifiTetherSoftApManager =
- WifiTetherSoftApManager(context.wifiManager, wifiSoftApCallback)
- wifiTetherSoftApManager?.registerSoftApCallback()
+ val apManager = WifiTetherSoftApManager(context.wifiManager, this)
+ wifiTetherSoftApManager = apManager
+ apManager.registerSoftApCallback()
+ dataSaverStore.addObserver(DATA_SAVER_KEY, this, HandlerExecutor.main)
}
override fun onLastObserverRemoved() {
+ dataSaverStore.removeObserver(DATA_SAVER_KEY, this)
wifiTetherSoftApManager?.unRegisterSoftApCallback()
}
+
+ override fun onStateChanged(state: Int, failureReason: Int) {
+ Log.d(TAG, "onStateChanged(),state=$state,failureReason=$failureReason")
+ sapFailureReason = failureReason
+ if (state == WifiManager.WIFI_AP_STATE_DISABLED) sapClientsSize = null
+ notifyChange(KEY, DataChangeReason.UPDATE)
+ }
+
+ override fun onConnectedClientsChanged(clients: List<WifiClient>?) {
+ sapClientsSize = clients?.size ?: 0
+ Log.d(TAG, "onConnectedClientsChanged(),sapClientsSize=$sapClientsSize")
+ notifyChange(KEY, DataChangeReason.UPDATE)
+ }
+
+ override fun onTetheringStarted() {}
+
+ override fun onTetheringFailed(error: Int) {
+ Log.e(TAG, "onTetheringFailed(),error=$error")
+ }
+
+ override fun onKeyChanged(key: String, reason: Int) =
+ notifyChange(KEY, DataChangeReason.UPDATE)
}
override fun bind(preference: Preference, metadata: PreferenceMetadata) {
@@ -207,24 +196,6 @@
}
}
- override fun onStart(context: PreferenceLifecycleContext) {
- val listener =
- DataSaverBackend.Listener { isDataSaving: Boolean ->
- context.findPreference<PrimarySwitchPreference>(KEY)?.isSwitchEnabled =
- !isDataSaving
- context.notifyPreferenceChange(KEY)
- }
- dataSaverBackendListener = listener
- dataSaverBackend.addListener(listener)
- }
-
- override fun onStop(context: PreferenceLifecycleContext) {
- dataSaverBackendListener?.let {
- dataSaverBackend.remListener(it)
- dataSaverBackendListener = null
- }
- }
-
companion object {
const val TAG = "WifiHotspotSwitchPreference"
const val KEY = "wifi_tether"
@@ -232,7 +203,9 @@
private val Context.wifiManager: WifiManager?
get() = applicationContext.getSystemService(WifiManager::class.java)
- private fun Context.getSoftApConfiguration() = wifiManager?.softApConfiguration
+ @Suppress("DEPRECATION")
+ private val Context.wifiSsid
+ get() = wifiManager?.softApConfiguration?.ssid
private val Context.tetheringManager: TetheringManager?
get() = applicationContext.getSystemService(TetheringManager::class.java)
diff --git a/tests/robotests/src/com/android/settings/datausage/DataSaverScreenTest.kt b/tests/robotests/src/com/android/settings/datausage/DataSaverScreenTest.kt
index 08af4c0..24e8213 100644
--- a/tests/robotests/src/com/android/settings/datausage/DataSaverScreenTest.kt
+++ b/tests/robotests/src/com/android/settings/datausage/DataSaverScreenTest.kt
@@ -16,13 +16,16 @@
package com.android.settings.datausage
+import androidx.test.core.app.ApplicationProvider
import com.android.settings.flags.Flags
import com.android.settingslib.preference.CatalystScreenTestCase
import com.google.common.truth.Truth.assertThat
import org.junit.Test
class DataSaverScreenTest : CatalystScreenTestCase() {
- override val preferenceScreenCreator = DataSaverScreen()
+ override val preferenceScreenCreator =
+ DataSaverScreen(ApplicationProvider.getApplicationContext())
+
override val flagName
get() = Flags.FLAG_CATALYST_RESTRICT_BACKGROUND_PARENT_ENTRY