Added Nfc admin-integrated provisioning logging

Added logging for the new Nfc android-integrated based provisioning
workflow.

Test: No tests needed
Bug: 192228539
Change-Id: Ia76b8edf8d662bf7733ab8d6a9517547ce5477f5
diff --git a/src/com/android/managedprovisioning/analytics/ProvisioningAnalyticsTracker.java b/src/com/android/managedprovisioning/analytics/ProvisioningAnalyticsTracker.java
index 3677fd0..dba27d9 100644
--- a/src/com/android/managedprovisioning/analytics/ProvisioningAnalyticsTracker.java
+++ b/src/com/android/managedprovisioning/analytics/ProvisioningAnalyticsTracker.java
@@ -49,6 +49,7 @@
 import android.stats.devicepolicy.DevicePolicyEnums;
 
 import com.android.managedprovisioning.common.ManagedProvisioningSharedPreferences;
+import com.android.managedprovisioning.common.SettingsFacade;
 import com.android.managedprovisioning.model.ProvisioningParams;
 import com.android.managedprovisioning.task.AbstractProvisioningTask;
 
@@ -103,17 +104,6 @@
     }
 
     /**
-     * Logs some metrics when the preprovisioning starts.
-     *
-     * @param context Context passed to MetricsLogger
-     * @param intent Intent that started provisioning
-     */
-    public void logPreProvisioningStarted(Context context, Intent intent) {
-        logProvisioningExtras(context, intent);
-        maybeLogEntryPoint(context, intent);
-    }
-
-    /**
      * Logs when provisioning is cancelled.
      *
      * @param context Context passed to MetricsLogger
@@ -348,7 +338,7 @@
      * @param context Context passed to MetricsLogger
      * @param intent Intent that started provisioning
      */
-    private void logProvisioningExtras(Context context, Intent intent) {
+    public void logProvisioningExtras(Context context, Intent intent) {
         final List<String> provisioningExtras = AnalyticsUtils.getAllProvisioningExtras(intent);
         for (String extra : provisioningExtras) {
             mMetricsLoggerWrapper.logAction(context, PROVISIONING_EXTRA, extra);
@@ -365,7 +355,7 @@
      * @param context Context passed to MetricsLogger
      * @param intent Intent that started provisioning
      */
-    private void maybeLogEntryPoint(Context context, Intent intent) {
+    public void logEntryPoint(Context context, Intent intent) {
         if (intent == null || intent.getAction() == null) {
             return;
         }
@@ -392,7 +382,13 @@
         mMetricsWriter.write(DevicePolicyEventLogger
                 .createEvent(DevicePolicyEnums.PROVISIONING_ENTRY_POINT_TRUSTED_SOURCE)
                 .setInt(provisioningTrigger)
-                .setTimePeriod(AnalyticsUtils.getProvisioningTime(mSharedPreferences)));
+                .setTimePeriod(AnalyticsUtils.getProvisioningTime(mSharedPreferences))
+                .setBoolean(isDuringSetupWizard(context)));
+    }
+
+    private boolean isDuringSetupWizard(Context context) {
+        SettingsFacade settingsFacade = new SettingsFacade();
+        return settingsFacade.isDuringSetupWizard(context);
     }
 
     /**
diff --git a/src/com/android/managedprovisioning/preprovisioning/PreProvisioningActivityController.java b/src/com/android/managedprovisioning/preprovisioning/PreProvisioningActivityController.java
index e9a9b86..806de80 100644
--- a/src/com/android/managedprovisioning/preprovisioning/PreProvisioningActivityController.java
+++ b/src/com/android/managedprovisioning/preprovisioning/PreProvisioningActivityController.java
@@ -265,6 +265,9 @@
             return;
         }
 
+        mProvisioningAnalyticsTracker.logProvisioningExtras(mContext, intent);
+        mProvisioningAnalyticsTracker.logEntryPoint(mContext, intent);
+
         // Check whether provisioning is allowed for the current action. This check needs to happen
         // before any actions that might affect the state of the device.
         // Note that checkDevicePolicyPreconditions takes care of calling
@@ -306,7 +309,6 @@
         }
 
         mViewModel.getTimeLogger().start();
-        mProvisioningAnalyticsTracker.logPreProvisioningStarted(mContext, intent);
         mViewModel.onProvisioningInitiated();
 
         if (mUtils.checkAdminIntegratedFlowPreconditions(params)) {