[Catalyst] Add back Wi-Fi switch metrics
- The original Wi-Fi switch metrics is recorded by WifiEnabler. - Since the design of Catalyst removes WifiEnabler, the metrics needs to be added to Catalyst preference. NO_IFTTT=Catalyst only Bug: 388547699 Flag: EXEMPT bugfix Test: Manual testing atest -c WifiSwitchPreferenceTest Change-Id: I8819e8f660784b8b04c7958b65f4792b5d4d0919
This commit is contained in:
@@ -17,6 +17,8 @@
|
||||
package com.android.settings.wifi
|
||||
|
||||
import android.Manifest
|
||||
import android.app.settings.SettingsEnums.ACTION_WIFI_OFF
|
||||
import android.app.settings.SettingsEnums.ACTION_WIFI_ON
|
||||
import android.content.BroadcastReceiver
|
||||
import android.content.Context
|
||||
import android.content.Intent
|
||||
@@ -31,6 +33,8 @@ import com.android.settings.PreferenceRestrictionMixin
|
||||
import com.android.settings.R
|
||||
import com.android.settings.network.SatelliteRepository.Companion.isSatelliteOn
|
||||
import com.android.settings.network.SatelliteWarningDialogActivity
|
||||
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
|
||||
import com.android.settings.wifi.utils.isDefaultNetworkWifi
|
||||
import com.android.settings.wifi.utils.isWifiEnabled
|
||||
import com.android.settings.wifi.utils.wifiManager
|
||||
import com.android.settingslib.RestrictedSwitchPreference
|
||||
@@ -137,8 +141,15 @@ class WifiSwitchPreference :
|
||||
context.isWifiEnabled as T?
|
||||
|
||||
override fun <T : Any> setValue(key: String, valueType: Class<T>, value: T?) {
|
||||
if (value is Boolean) {
|
||||
context.isWifiEnabled = value
|
||||
if (value !is Boolean) return
|
||||
|
||||
context.isWifiEnabled = value
|
||||
|
||||
val metricsFeature = featureFactory.metricsFeatureProvider
|
||||
if (value) {
|
||||
metricsFeature.action(context, ACTION_WIFI_ON)
|
||||
} else {
|
||||
metricsFeature.action(context, ACTION_WIFI_OFF, context.isDefaultNetworkWifi)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -19,6 +19,8 @@
|
||||
package com.android.settings.wifi.utils
|
||||
|
||||
import android.content.Context
|
||||
import android.net.ConnectivityManager
|
||||
import android.net.NetworkCapabilities
|
||||
import android.net.TetheringManager
|
||||
import android.net.wifi.WifiManager
|
||||
|
||||
@@ -52,3 +54,18 @@ var Context.isWifiEnabled: Boolean
|
||||
*/
|
||||
val Context.tetheringManager: TetheringManager?
|
||||
get() = applicationContext.getSystemService(TetheringManager::class.java)
|
||||
|
||||
/**
|
||||
* Gets the {@link android.net.ConnectivityManager} system service.
|
||||
*
|
||||
* Use application context to get system services to avoid memory leaks.
|
||||
*/
|
||||
val Context.connectivityManager: ConnectivityManager?
|
||||
get() = applicationContext.getSystemService(ConnectivityManager::class.java)
|
||||
|
||||
/** Return true if the default network is a Wi-Fi network */
|
||||
val Context.isDefaultNetworkWifi: Boolean
|
||||
get() =
|
||||
connectivityManager
|
||||
?.getNetworkCapabilities(connectivityManager?.activeNetwork)
|
||||
?.hasTransport(NetworkCapabilities.TRANSPORT_WIFI) == true
|
||||
|
||||
Reference in New Issue
Block a user