diff --git a/AndroidManifest.xml b/AndroidManifest.xml index fd40e905fda..771337ff6dc 100644 --- a/AndroidManifest.xml +++ b/AndroidManifest.xml @@ -237,6 +237,7 @@ + diff --git a/src/com/android/settings/SettingsInitialize.java b/src/com/android/settings/SettingsInitialize.java index 4887e26940c..254ef8c8b1a 100644 --- a/src/com/android/settings/SettingsInitialize.java +++ b/src/com/android/settings/SettingsInitialize.java @@ -39,6 +39,7 @@ import android.util.Log; import androidx.annotation.VisibleForTesting; import com.android.settings.activityembedding.ActivityEmbeddingUtils; +import com.android.settings.core.instrumentation.ElapsedTimeUtils; import com.android.settings.homepage.DeepLinkHomepageActivity; import com.android.settings.search.SearchStateReceiver; import com.android.settingslib.utils.ThreadUtils; @@ -69,6 +70,7 @@ public class SettingsInitialize extends BroadcastReceiver { webviewSettingSetup(context, pm, userInfo); ThreadUtils.postOnBackgroundThread(() -> refreshExistingShortcuts(context)); enableTwoPaneDeepLinkActivityIfNecessary(pm, context); + storeSuwCompleteTimestamp(context, broadcast); } private void managedProfileSetup(Context context, final PackageManager pm, Intent broadcast, @@ -161,4 +163,10 @@ public class SettingsInitialize extends BroadcastReceiver { pm.setComponentEnabledSetting(searchStateReceiver, enableState, PackageManager.DONT_KILL_APP); } + + private void storeSuwCompleteTimestamp(Context context, Intent broadcast) { + if (SetupWizardUtils.ACTION_SETUP_WIZARD_FINISHED.equals(broadcast.getAction())) { + ElapsedTimeUtils.storeSuwFinishedTimestamp(context, System.currentTimeMillis()); + } + } } diff --git a/src/com/android/settings/SetupWizardUtils.java b/src/com/android/settings/SetupWizardUtils.java index 25e91598f3b..57adeee895d 100644 --- a/src/com/android/settings/SetupWizardUtils.java +++ b/src/com/android/settings/SetupWizardUtils.java @@ -32,6 +32,9 @@ import java.util.Arrays; public class SetupWizardUtils { + public static final String ACTION_SETUP_WIZARD_FINISHED = + "com.google.android.setupwizard.SETUP_WIZARD_FINISHED"; + public static String getThemeString(Intent intent) { String theme = intent.getStringExtra(WizardManagerHelper.EXTRA_THEME); if (theme == null) { diff --git a/tests/robotests/src/com/android/settings/SettingsInitializeTest.java b/tests/robotests/src/com/android/settings/SettingsInitializeTest.java index a8f42c2b7c7..467436b2566 100644 --- a/tests/robotests/src/com/android/settings/SettingsInitializeTest.java +++ b/tests/robotests/src/com/android/settings/SettingsInitializeTest.java @@ -24,6 +24,7 @@ import android.content.pm.ShortcutInfo; import android.content.pm.ShortcutManager; +import com.android.settings.core.instrumentation.ElapsedTimeUtils; import java.util.Collections; import org.junit.Before; import org.junit.Test; @@ -96,4 +97,12 @@ public class SettingsInitializeTest { assertThat(updatedShortcuts).hasSize(1); assertThat(updatedShortcuts.get(0)).isSameInstanceAs(info); } + + @Test + public void onReceive_suwFinished_shouldHaveElapsedTime() { + mSettingsInitialize.onReceive(mContext, new Intent(SetupWizardUtils.ACTION_SETUP_WIZARD_FINISHED)); + + final long elapsedTime = ElapsedTimeUtils.getElapsedTime(System.currentTimeMillis()); + assertThat(elapsedTime).isNotEqualTo(-1L); + } }