Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 63215582 authored by Weng Su's avatar Weng Su
Browse files

[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
parent a8514443
Loading
Loading
Loading
Loading
+5 −0
Original line number Diff line number Diff line
@@ -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)
            }
        }

+21 −0
Original line number Diff line number Diff line
@@ -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)