Pass the provisioning trigger to the role holder updater

Fixes: 220134772
Test: atest DeviceManagementRoleHolderUpdaterHelperTest
Change-Id: I7f12fa0f6e8195dfc8b9504b4266e309d88ff8b1
diff --git a/src/com/android/managedprovisioning/common/DeviceManagementRoleHolderUpdaterHelper.java b/src/com/android/managedprovisioning/common/DeviceManagementRoleHolderUpdaterHelper.java
index 0a4d60b..bfe5c78 100644
--- a/src/com/android/managedprovisioning/common/DeviceManagementRoleHolderUpdaterHelper.java
+++ b/src/com/android/managedprovisioning/common/DeviceManagementRoleHolderUpdaterHelper.java
@@ -17,6 +17,7 @@
 package com.android.managedprovisioning.common;
 
 import static android.app.admin.DevicePolicyManager.ACTION_UPDATE_DEVICE_POLICY_MANAGEMENT_ROLE_HOLDER;
+import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_TRIGGER;
 
 import static java.util.Objects.requireNonNull;
 
@@ -124,12 +125,15 @@
     /**
      * Creates an intent to be used to launch the role holder updater.
      */
-    public Intent createRoleHolderUpdaterIntent(@Nullable Intent parentActivityIntent) {
+    public Intent createRoleHolderUpdaterIntent(
+            @Nullable Intent parentActivityIntent,
+            int provisioningTrigger) {
         if (TextUtils.isEmpty(mRoleHolderUpdaterPackageName)) {
             throw new IllegalStateException("Role holder updater package name is null or empty.");
         }
         Intent intent = new Intent(ACTION_UPDATE_DEVICE_POLICY_MANAGEMENT_ROLE_HOLDER)
-                .setPackage(mRoleHolderUpdaterPackageName);
+                .setPackage(mRoleHolderUpdaterPackageName)
+                .putExtra(EXTRA_PROVISIONING_TRIGGER, provisioningTrigger);
         if (parentActivityIntent != null) {
             WizardManagerHelper.copyWizardManagerExtras(parentActivityIntent, intent);
         }
diff --git a/src/com/android/managedprovisioning/preprovisioning/PreProvisioningActivity.java b/src/com/android/managedprovisioning/preprovisioning/PreProvisioningActivity.java
index c08bb37..9cd4e57 100644
--- a/src/com/android/managedprovisioning/preprovisioning/PreProvisioningActivity.java
+++ b/src/com/android/managedprovisioning/preprovisioning/PreProvisioningActivity.java
@@ -16,7 +16,9 @@
 
 package com.android.managedprovisioning.preprovisioning;
 
+import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_TRIGGER;
 import static android.app.admin.DevicePolicyManager.EXTRA_RESULT_LAUNCH_INTENT;
+import static android.app.admin.DevicePolicyManager.PROVISIONING_TRIGGER_UNSPECIFIED;
 import static android.app.admin.DevicePolicyManager.RESULT_UPDATE_DEVICE_POLICY_MANAGEMENT_ROLE_HOLDER_PROVISIONING_DISABLED;
 import static android.app.admin.DevicePolicyManager.RESULT_UPDATE_DEVICE_POLICY_MANAGEMENT_ROLE_HOLDER_RECOVERABLE_ERROR;
 import static android.app.admin.DevicePolicyManager.RESULT_UPDATE_ROLE_HOLDER;
@@ -546,7 +548,10 @@
         Intent intent = new Intent(this, getActivityForScreen(RETRY_LAUNCH));
         intent.putExtra(
                 EXTRA_INTENT_TO_LAUNCH,
-                roleHolderUpdaterHelper.createRoleHolderUpdaterIntent(getIntent()));
+                roleHolderUpdaterHelper.createRoleHolderUpdaterIntent(
+                        getIntent(),
+                        getIntent().getIntExtra(
+                                EXTRA_PROVISIONING_TRIGGER, PROVISIONING_TRIGGER_UNSPECIFIED)));
         getTransitionHelper().startActivityForResultWithTransition(
                  this,
                 intent,
diff --git a/tests/instrumentation/src/com/android/managedprovisioning/common/DeviceManagementRoleHolderUpdaterHelperTest.java b/tests/instrumentation/src/com/android/managedprovisioning/common/DeviceManagementRoleHolderUpdaterHelperTest.java
index 3de74a3..fa15957 100644
--- a/tests/instrumentation/src/com/android/managedprovisioning/common/DeviceManagementRoleHolderUpdaterHelperTest.java
+++ b/tests/instrumentation/src/com/android/managedprovisioning/common/DeviceManagementRoleHolderUpdaterHelperTest.java
@@ -16,6 +16,8 @@
 
 package com.android.managedprovisioning.common;
 
+import static android.app.admin.DevicePolicyManager.EXTRA_PROVISIONING_TRIGGER;
+
 import static com.android.managedprovisioning.TestUtils.assertIntentsEqual;
 
 import static com.google.common.truth.Truth.assertThat;
@@ -49,9 +51,12 @@
     private static final String ROLE_HOLDER_UPDATER_NULL_PACKAGE_NAME = null;
     private static final String ROLE_HOLDER_EMPTY_PACKAGE_NAME = "";
     private static final String ROLE_HOLDER_NULL_PACKAGE_NAME = null;
+    private static final int TEST_PROVISIONING_TRIGGER =
+            DevicePolicyManager.PROVISIONING_TRIGGER_QR_CODE;
     private static final Intent ROLE_HOLDER_UPDATER_INTENT =
             new Intent(DevicePolicyManager.ACTION_UPDATE_DEVICE_POLICY_MANAGEMENT_ROLE_HOLDER)
-                    .setPackage(ROLE_HOLDER_UPDATER_PACKAGE_NAME);
+                    .setPackage(ROLE_HOLDER_UPDATER_PACKAGE_NAME)
+                    .putExtra(EXTRA_PROVISIONING_TRIGGER, TEST_PROVISIONING_TRIGGER);
     public static final String TEST_EXTRA_KEY = "test_extra_key";
     public static final String TEST_EXTRA_VALUE = "test_extra_value";
     private static final Intent MANAGED_PROFILE_INTENT =
@@ -218,7 +223,8 @@
 
         assertIntentsEqual(
                 roleHolderUpdaterHelper.createRoleHolderUpdaterIntent(
-                        /* parentActivityIntent= */ null),
+                        /* parentActivityIntent= */ null,
+                        TEST_PROVISIONING_TRIGGER),
                 ROLE_HOLDER_UPDATER_INTENT);
     }
 
@@ -230,7 +236,8 @@
 
         assertThrows(IllegalStateException.class,
                 () -> roleHolderUpdaterHelper.createRoleHolderUpdaterIntent(
-                        /* parentActivityIntent= */ null));
+                        /* parentActivityIntent= */ null,
+                        TEST_PROVISIONING_TRIGGER));
     }
 
     @Test
@@ -241,7 +248,8 @@
 
         assertThrows(IllegalStateException.class,
                 () -> roleHolderUpdaterHelper.createRoleHolderUpdaterIntent(
-                        /* parentActivityIntent= */ null));
+                        /* parentActivityIntent= */ null,
+                        TEST_PROVISIONING_TRIGGER));
     }
 
     @Test