summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorVarun Shah <varunshah@google.com>2019-12-18 11:45:38 -0800
committerVarun Shah <varunshah@google.com>2020-04-14 11:25:07 -0700
commitacb5634dc4f9a266068958f4dce0bd1af3eb5e3c (patch)
treecfd6af91c219f7b301f99da0e72f0adc19fd5531 /core/java/android
parent3dd11b7958f26ae7216c63b6ff1510173cd1aceb (diff)
Add new atoms to track user journeys, such as user switches.
Define new atoms to better log and understand various user journeys, such as user switches, user starts, and user creation. The UserLifecycleJourneyReported atom defines a user's journey and holds a user's information such as their user id, user type, and flags associated with the user. This atom includes a session-id which is used to link to the UserLifecycleEventOccurred atom which keeps track of lifycycle events that occur throughout a user's journey. As more user journeys are defined, there could be more Events added in the future. Note: the JourneyReported atom can currently be logged more than once per user journey since there is no record of the user's ongoing journey. This will be updated in a future CL. Bug: 146505521 Bug: 150788910 Test: statsd_testdrive 264 265 Change-Id: Iff3847be64d718fb2ec17e58c33d47f7fa4b627a
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/os/UserManager.java30
1 files changed, 30 insertions, 0 deletions
diff --git a/core/java/android/os/UserManager.java b/core/java/android/os/UserManager.java
index 0f2060a36ac9..187274a837a0 100644
--- a/core/java/android/os/UserManager.java
+++ b/core/java/android/os/UserManager.java
@@ -57,6 +57,7 @@ import android.view.WindowManager.LayoutParams;
import com.android.internal.R;
import com.android.internal.os.RoSystemProperties;
+import com.android.internal.util.FrameworkStatsLog;
import java.io.IOException;
import java.lang.annotation.Retention;
@@ -1841,6 +1842,35 @@ public class UserManager {
}
/**
+ * Returns the enum defined in the statsd UserLifecycleJourneyReported atom corresponding to the
+ * user type.
+ * @hide
+ */
+ public static int getUserTypeForStatsd(@NonNull String userType) {
+ switch (userType) {
+ case USER_TYPE_FULL_SYSTEM:
+ return FrameworkStatsLog.USER_LIFECYCLE_JOURNEY_REPORTED__USER_TYPE__FULL_SYSTEM;
+ case USER_TYPE_FULL_SECONDARY:
+ return FrameworkStatsLog.USER_LIFECYCLE_JOURNEY_REPORTED__USER_TYPE__FULL_SECONDARY;
+ case USER_TYPE_FULL_GUEST:
+ return FrameworkStatsLog.USER_LIFECYCLE_JOURNEY_REPORTED__USER_TYPE__FULL_GUEST;
+ case USER_TYPE_FULL_DEMO:
+ return FrameworkStatsLog.USER_LIFECYCLE_JOURNEY_REPORTED__USER_TYPE__FULL_DEMO;
+ case USER_TYPE_FULL_RESTRICTED:
+ return FrameworkStatsLog
+ .USER_LIFECYCLE_JOURNEY_REPORTED__USER_TYPE__FULL_RESTRICTED;
+ case USER_TYPE_PROFILE_MANAGED:
+ return FrameworkStatsLog
+ .USER_LIFECYCLE_JOURNEY_REPORTED__USER_TYPE__PROFILE_MANAGED;
+ case USER_TYPE_SYSTEM_HEADLESS:
+ return FrameworkStatsLog
+ .USER_LIFECYCLE_JOURNEY_REPORTED__USER_TYPE__SYSTEM_HEADLESS;
+ default:
+ return FrameworkStatsLog.USER_LIFECYCLE_JOURNEY_REPORTED__USER_TYPE__TYPE_UNKNOWN;
+ }
+ }
+
+ /**
* @hide
* @deprecated Use {@link #isRestrictedProfile()}
*/