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

Commit 350341e1 authored by Sandy Pan's avatar Sandy Pan Committed by Android (Google) Code Review
Browse files

Merge "Add metrics for PIN recovery related flows" into main

parents 01104a5b 82d54623
Loading
Loading
Loading
Loading
+6 −0
Original line number Diff line number Diff line
@@ -15,11 +15,13 @@
 */
package com.android.settings.supervision

import android.app.settings.SettingsEnums.ACTION_SUPERVISION_MANAGE_PIN
import android.app.supervision.SupervisionManager
import android.app.supervision.SupervisionRecoveryInfo.STATE_PENDING
import android.app.supervision.flags.Flags
import android.content.Context
import com.android.settings.R
import com.android.settings.metrics.PreferenceActionMetricsProvider
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.PreferenceIconProvider
import com.android.settingslib.metadata.PreferenceSummaryProvider
@@ -34,10 +36,14 @@ class SupervisionPinManagementScreen :
    PreferenceScreenCreator,
    PreferenceAvailabilityProvider,
    PreferenceSummaryProvider,
    PreferenceActionMetricsProvider,
    PreferenceIconProvider {
    override val key: String
        get() = KEY

    override val preferenceActionMetrics: Int
        get() = ACTION_SUPERVISION_MANAGE_PIN

    override val title: Int
        get() = R.string.supervision_pin_management_preference_title

+7 −0
Original line number Diff line number Diff line
@@ -17,6 +17,8 @@ package com.android.settings.supervision

import android.annotation.DrawableRes
import android.app.Activity
import android.app.settings.SettingsEnums.ACTION_SUPERVISION_ADD_RECOVERY
import android.app.settings.SettingsEnums.ACTION_SUPERVISION_VERIFY_RECOVERY
import android.app.supervision.SupervisionManager
import android.app.supervision.SupervisionRecoveryInfo.STATE_PENDING
import android.app.supervision.flags.Flags
@@ -27,6 +29,7 @@ import androidx.activity.result.ActivityResultLauncher
import androidx.activity.result.contract.ActivityResultContracts
import androidx.preference.Preference
import com.android.settings.R
import com.android.settings.overlay.FeatureFactory
import com.android.settings.supervision.SupervisionUpdateRecoveryEmailPreference.Companion.asMaskedEmail
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.PreferenceLifecycleContext
@@ -51,6 +54,7 @@ class SupervisionSetupRecoveryPreference :

    private lateinit var lifeCycleContext: PreferenceLifecycleContext
    private lateinit var setUpRecoveryLauncher: ActivityResultLauncher<Intent>

    override val key: String
        get() = KEY

@@ -102,10 +106,13 @@ class SupervisionSetupRecoveryPreference :

    override fun onPreferenceClick(preference: Preference): Boolean {
        val intent = Intent(lifeCycleContext, SupervisionPinRecoveryActivity::class.java)
        val metricsFeatureProvider = FeatureFactory.featureFactory.metricsFeatureProvider
        if (hasAccountNameToVerify(lifeCycleContext)) {
            intent.action = SupervisionPinRecoveryActivity.ACTION_POST_SETUP_VERIFY
            metricsFeatureProvider.action(preference.context, ACTION_SUPERVISION_VERIFY_RECOVERY)
        } else {
            intent.action = SupervisionPinRecoveryActivity.ACTION_SETUP_VERIFIED
            metricsFeatureProvider.action(preference.context, ACTION_SUPERVISION_ADD_RECOVERY)
        }
        setUpRecoveryLauncher.launch(intent)
        return true
+6 −0
Original line number Diff line number Diff line
@@ -16,6 +16,7 @@
package com.android.settings.supervision

import android.app.Activity
import android.app.settings.SettingsEnums.ACTION_SUPERVISION_UPDATE_RECOVERY
import android.app.supervision.SupervisionManager
import android.app.supervision.SupervisionRecoveryInfo.STATE_VERIFIED
import android.app.supervision.flags.Flags
@@ -23,6 +24,7 @@ import android.content.Context
import android.content.Intent
import androidx.preference.Preference
import com.android.settings.R
import com.android.settings.metrics.PreferenceActionMetricsProvider
import com.android.settingslib.metadata.PreferenceAvailabilityProvider
import com.android.settingslib.metadata.PreferenceLifecycleContext
import com.android.settingslib.metadata.PreferenceLifecycleProvider
@@ -40,12 +42,16 @@ class SupervisionUpdateRecoveryEmailPreference :
    PreferenceLifecycleProvider,
    PreferenceBinding,
    PreferenceSummaryProvider,
    PreferenceActionMetricsProvider,
    Preference.OnPreferenceClickListener {

    private lateinit var lifeCycleContext: PreferenceLifecycleContext
    override val key: String
        get() = KEY

    override val preferenceActionMetrics: Int
        get() = ACTION_SUPERVISION_UPDATE_RECOVERY

    override val title: Int
        get() = R.string.supervision_update_recovery_email_preference_title

+7 −0
Original line number Diff line number Diff line
@@ -15,6 +15,8 @@
 */
package com.android.settings.supervision

import android.app.settings.SettingsEnums.ACTION_SUPERVISION_ADD_RECOVERY
import android.app.settings.SettingsEnums.ACTION_SUPERVISION_VERIFY_RECOVERY
import android.app.supervision.SupervisionManager
import android.app.supervision.SupervisionRecoveryInfo
import android.app.supervision.SupervisionRecoveryInfo.STATE_PENDING
@@ -32,6 +34,7 @@ import androidx.preference.Preference
import androidx.test.core.app.ApplicationProvider
import androidx.test.ext.junit.runners.AndroidJUnit4
import com.android.settings.R
import com.android.settings.testutils.MetricsRule
import com.android.settingslib.metadata.PreferenceLifecycleContext
import com.android.settingslib.preference.createAndBindWidget
import com.google.common.truth.Truth.assertThat
@@ -56,6 +59,7 @@ class SupervisionSetupRecoveryPreferenceTest {

    private val mockActivityResultLauncher = mock<ActivityResultLauncher<Intent>>()

    @get:Rule val metricsRule = MetricsRule()
    @get:Rule val setFlagsRule = SetFlagsRule()
    private var preference = SupervisionSetupRecoveryPreference()
    private val context =
@@ -182,6 +186,7 @@ class SupervisionSetupRecoveryPreferenceTest {
        widget.performClick()

        verifyPinRecoveryActivityStarted(SupervisionPinRecoveryActivity.ACTION_SETUP_VERIFIED)
        verify(metricsRule.metricsFeatureProvider).action(context, ACTION_SUPERVISION_ADD_RECOVERY)
    }

    @Test
@@ -205,6 +210,8 @@ class SupervisionSetupRecoveryPreferenceTest {
        widget.performClick()

        verifyPinRecoveryActivityStarted(SupervisionPinRecoveryActivity.ACTION_POST_SETUP_VERIFY)
        verify(metricsRule.metricsFeatureProvider)
            .action(context, ACTION_SUPERVISION_VERIFY_RECOVERY)
    }

    private fun verifyPinRecoveryActivityStarted(expectedAction: String) {