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

Commit 82d54623 authored by Treehugger Robot's avatar Treehugger Robot Committed by Sandy Pan
Browse files

Add metrics for PIN recovery related flows

Bug: 415118265
Flag: android.app.supervision.flags.enable_supervision_pin_recovery_screen
Test: SupervisionSetupRecoveryPreferenceTest.kt
Change-Id: Ic38859d1aaf4701c7914c1295abc4019270a0819
parents 0b07b58f 6f080505
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) {