[Catalyst] Add back Airplane toggle metrics

- The original Airplane toggle metrics is recorded by AirplaneEnabler. Since the design of Catalyst removes AirplaneEnabler, the metrics needs to be added to Catalyst preference.

NO_IFTTT=Catalyst only

Bug: 386330825
Flag: EXEMPT bugfix
Test: Manual testing
atest -c AirplaneModePreferenceTest

Change-Id: I61f9fc5d623e7d497d13ddf7bc37990ce0fa223e
This commit is contained in:
Weng Su
2024-12-27 21:00:03 +08:00
parent a85144439d
commit 63215582d5
2 changed files with 26 additions and 0 deletions

View File

@@ -17,6 +17,7 @@
package com.android.settings.network package com.android.settings.network
import android.app.Activity import android.app.Activity
import android.app.settings.SettingsEnums.ACTION_AIRPLANE_TOGGLE
import android.content.Context import android.content.Context
import android.content.Intent import android.content.Intent
import android.content.pm.PackageManager import android.content.pm.PackageManager
@@ -33,6 +34,7 @@ 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.network.SatelliteRepository.Companion.isSatelliteOn import com.android.settings.network.SatelliteRepository.Companion.isSatelliteOn
import com.android.settings.overlay.FeatureFactory.Companion.featureFactory
import com.android.settingslib.RestrictedSwitchPreference import com.android.settingslib.RestrictedSwitchPreference
import com.android.settingslib.datastore.AbstractKeyedDataObservable import com.android.settingslib.datastore.AbstractKeyedDataObservable
import com.android.settingslib.datastore.DataChangeReason import com.android.settingslib.datastore.DataChangeReason
@@ -113,6 +115,9 @@ class AirplaneModePreference :
val intent = Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED) val intent = Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED)
intent.putExtra("state", value) intent.putExtra("state", value)
context.sendBroadcastAsUser(intent, UserHandle.ALL) context.sendBroadcastAsUser(intent, UserHandle.ALL)
val metricsFeature = featureFactory.metricsFeatureProvider
metricsFeature.action(context, ACTION_AIRPLANE_TOGGLE, value)
} }
} }

View File

@@ -16,6 +16,7 @@
package com.android.settings.network package com.android.settings.network
import android.app.settings.SettingsEnums.ACTION_AIRPLANE_TOGGLE
import android.content.Context import android.content.Context
import android.content.ContextWrapper import android.content.ContextWrapper
import android.content.pm.PackageManager import android.content.pm.PackageManager
@@ -26,12 +27,14 @@ import android.telephony.TelephonyManager
import androidx.preference.SwitchPreferenceCompat import androidx.preference.SwitchPreferenceCompat
import androidx.test.core.app.ApplicationProvider import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4 import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.testutils.FakeFeatureFactory
import com.android.settingslib.datastore.SettingsGlobalStore import com.android.settingslib.datastore.SettingsGlobalStore
import com.android.settingslib.preference.createAndBindWidget import com.android.settingslib.preference.createAndBindWidget
import com.google.common.truth.Truth.assertThat import com.google.common.truth.Truth.assertThat
import org.junit.Test import org.junit.Test
import org.junit.runner.RunWith import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers.anyInt import org.mockito.ArgumentMatchers.anyInt
import org.mockito.Mockito.verify
import org.mockito.kotlin.doReturn import org.mockito.kotlin.doReturn
import org.mockito.kotlin.mock import org.mockito.kotlin.mock
import org.mockito.kotlin.stub import org.mockito.kotlin.stub
@@ -103,6 +106,24 @@ class AirplaneModePreferenceTest {
assertThat(getValue).isFalse() assertThat(getValue).isFalse()
} }
@Test
fun setValue_valueTrue_metricsActionAirplaneToggleTrue() {
val metricsFeatureProvider = FakeFeatureFactory.setupForTest().metricsFeatureProvider
airplaneModePreference.storage(context).setBoolean(AirplaneModePreference.KEY, true)
verify(metricsFeatureProvider).action(context, ACTION_AIRPLANE_TOGGLE, true)
}
@Test
fun setValue_valueFalse_metricsActionAirplaneToggleFalse() {
val metricsFeatureProvider = FakeFeatureFactory.setupForTest().metricsFeatureProvider
airplaneModePreference.storage(context).setBoolean(AirplaneModePreference.KEY, false)
verify(metricsFeatureProvider).action(context, ACTION_AIRPLANE_TOGGLE, false)
}
@Test @Test
fun performClick_defaultOn_checkedIsFalse() { fun performClick_defaultOn_checkedIsFalse() {
SettingsGlobalStore.get(context).setInt(Settings.Global.AIRPLANE_MODE_ON, 1) SettingsGlobalStore.get(context).setInt(Settings.Global.AIRPLANE_MODE_ON, 1)