[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:
Weng Su
2025-01-09 03:37:06 +08:00
parent 32f8eff7a9
commit cd9af665c3
3 changed files with 82 additions and 2 deletions

View File

@@ -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)
}
}