[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
import android.app.Activity
import android.app.settings.SettingsEnums.ACTION_AIRPLANE_TOGGLE
import android.content.Context
import android.content.Intent
import android.content.pm.PackageManager
@@ -33,6 +34,7 @@ import com.android.settings.PreferenceRestrictionMixin
import com.android.settings.R
import com.android.settings.Utils
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.datastore.AbstractKeyedDataObservable
import com.android.settingslib.datastore.DataChangeReason
@@ -113,6 +115,9 @@ class AirplaneModePreference :
val intent = Intent(Intent.ACTION_AIRPLANE_MODE_CHANGED)
intent.putExtra("state", value)
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
import android.app.settings.SettingsEnums.ACTION_AIRPLANE_TOGGLE
import android.content.Context
import android.content.ContextWrapper
import android.content.pm.PackageManager
@@ -26,12 +27,14 @@ import android.telephony.TelephonyManager
import androidx.preference.SwitchPreferenceCompat
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.testutils.FakeFeatureFactory
import com.android.settingslib.datastore.SettingsGlobalStore
import com.android.settingslib.preference.createAndBindWidget
import com.google.common.truth.Truth.assertThat
import org.junit.Test
import org.junit.runner.RunWith
import org.mockito.ArgumentMatchers.anyInt
import org.mockito.Mockito.verify
import org.mockito.kotlin.doReturn
import org.mockito.kotlin.mock
import org.mockito.kotlin.stub
@@ -103,6 +106,24 @@ class AirplaneModePreferenceTest {
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
fun performClick_defaultOn_checkedIsFalse() {
SettingsGlobalStore.get(context).setInt(Settings.Global.AIRPLANE_MODE_ON, 1)