Fixed elapsed_time_millis in SettingsUIChanged event
This change stores timestamp when received com.google.android.setupwizard.SETUP_WIZARD_FINISHED. This timestamp will be used to calculate elapsed_time_millis for SettingsUIChanged event after SUW complete. This enables to analyze how the user uses Settings in a specific time span after setup. Bug: 344466251 Test: metrics related change only Flag: EXEMPT metrics change only Change-Id: I85b15f1eb5e5a4502a27d8588bb01e59b7ad83b5
This commit is contained in:
@@ -237,6 +237,7 @@
|
|||||||
<intent-filter>
|
<intent-filter>
|
||||||
<action android:name="android.intent.action.USER_INITIALIZE"/>
|
<action android:name="android.intent.action.USER_INITIALIZE"/>
|
||||||
<action android:name="android.intent.action.PRE_BOOT_COMPLETED"/>
|
<action android:name="android.intent.action.PRE_BOOT_COMPLETED"/>
|
||||||
|
<action android:name="com.google.android.setupwizard.SETUP_WIZARD_FINISHED"/>
|
||||||
</intent-filter>
|
</intent-filter>
|
||||||
</receiver>
|
</receiver>
|
||||||
|
|
||||||
|
@@ -39,6 +39,7 @@ import android.util.Log;
|
|||||||
import androidx.annotation.VisibleForTesting;
|
import androidx.annotation.VisibleForTesting;
|
||||||
|
|
||||||
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
|
import com.android.settings.activityembedding.ActivityEmbeddingUtils;
|
||||||
|
import com.android.settings.core.instrumentation.ElapsedTimeUtils;
|
||||||
import com.android.settings.homepage.DeepLinkHomepageActivity;
|
import com.android.settings.homepage.DeepLinkHomepageActivity;
|
||||||
import com.android.settings.search.SearchStateReceiver;
|
import com.android.settings.search.SearchStateReceiver;
|
||||||
import com.android.settingslib.utils.ThreadUtils;
|
import com.android.settingslib.utils.ThreadUtils;
|
||||||
@@ -69,6 +70,7 @@ public class SettingsInitialize extends BroadcastReceiver {
|
|||||||
webviewSettingSetup(context, pm, userInfo);
|
webviewSettingSetup(context, pm, userInfo);
|
||||||
ThreadUtils.postOnBackgroundThread(() -> refreshExistingShortcuts(context));
|
ThreadUtils.postOnBackgroundThread(() -> refreshExistingShortcuts(context));
|
||||||
enableTwoPaneDeepLinkActivityIfNecessary(pm, context);
|
enableTwoPaneDeepLinkActivityIfNecessary(pm, context);
|
||||||
|
storeSuwCompleteTimestamp(context, broadcast);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void managedProfileSetup(Context context, final PackageManager pm, Intent broadcast,
|
private void managedProfileSetup(Context context, final PackageManager pm, Intent broadcast,
|
||||||
@@ -161,4 +163,10 @@ public class SettingsInitialize extends BroadcastReceiver {
|
|||||||
pm.setComponentEnabledSetting(searchStateReceiver, enableState,
|
pm.setComponentEnabledSetting(searchStateReceiver, enableState,
|
||||||
PackageManager.DONT_KILL_APP);
|
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());
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@@ -32,6 +32,9 @@ import java.util.Arrays;
|
|||||||
|
|
||||||
public class SetupWizardUtils {
|
public class SetupWizardUtils {
|
||||||
|
|
||||||
|
public static final String ACTION_SETUP_WIZARD_FINISHED =
|
||||||
|
"com.google.android.setupwizard.SETUP_WIZARD_FINISHED";
|
||||||
|
|
||||||
public static String getThemeString(Intent intent) {
|
public static String getThemeString(Intent intent) {
|
||||||
String theme = intent.getStringExtra(WizardManagerHelper.EXTRA_THEME);
|
String theme = intent.getStringExtra(WizardManagerHelper.EXTRA_THEME);
|
||||||
if (theme == null) {
|
if (theme == null) {
|
||||||
|
@@ -24,6 +24,7 @@ import android.content.pm.ShortcutInfo;
|
|||||||
|
|
||||||
import android.content.pm.ShortcutManager;
|
import android.content.pm.ShortcutManager;
|
||||||
|
|
||||||
|
import com.android.settings.core.instrumentation.ElapsedTimeUtils;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import org.junit.Before;
|
import org.junit.Before;
|
||||||
import org.junit.Test;
|
import org.junit.Test;
|
||||||
@@ -96,4 +97,12 @@ public class SettingsInitializeTest {
|
|||||||
assertThat(updatedShortcuts).hasSize(1);
|
assertThat(updatedShortcuts).hasSize(1);
|
||||||
assertThat(updatedShortcuts.get(0)).isSameInstanceAs(info);
|
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);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user