From d60f6d05fb0bac52484b9762287a4f288f4bbf35 Mon Sep 17 00:00:00 2001 From: Peter Kalauskas Date: Mon, 22 Mar 2021 20:24:31 -0700 Subject: [PATCH] Add metrics for guest user Test: statsd_testdrive -terse 90 Bug: 169783558 Change-Id: I48fc45add7309c71f46c93f96ca92f5a34c565eb --- .../systemui/GuestResumeSessionReceiver.java | 15 +++++++++++++-- .../src/com/android/systemui/qs/QSEvents.kt | 14 +++++++++++++- .../statusbar/policy/UserSwitcherController.java | 6 ++++-- 3 files changed, 30 insertions(+), 5 deletions(-) diff --git a/packages/SystemUI/src/com/android/systemui/GuestResumeSessionReceiver.java b/packages/SystemUI/src/com/android/systemui/GuestResumeSessionReceiver.java index 4afa969874994..45a0ea19c8dc8 100644 --- a/packages/SystemUI/src/com/android/systemui/GuestResumeSessionReceiver.java +++ b/packages/SystemUI/src/com/android/systemui/GuestResumeSessionReceiver.java @@ -32,7 +32,9 @@ import android.provider.Settings; import android.util.Log; import android.view.WindowManagerGlobal; +import com.android.internal.logging.UiEventLogger; import com.android.systemui.broadcast.BroadcastDispatcher; +import com.android.systemui.qs.QSUserSwitcherEvent; import com.android.systemui.statusbar.phone.SystemUIDialog; /** @@ -45,6 +47,11 @@ public class GuestResumeSessionReceiver extends BroadcastReceiver { private static final String SETTING_GUEST_HAS_LOGGED_IN = "systemui.guest_has_logged_in"; private Dialog mNewSessionDialog; + private final UiEventLogger mUiEventLogger; + + public GuestResumeSessionReceiver(UiEventLogger uiEventLogger) { + mUiEventLogger = uiEventLogger; + } /** * Register this receiver with the {@link BroadcastDispatcher} @@ -83,7 +90,7 @@ public class GuestResumeSessionReceiver extends BroadcastReceiver { int notFirstLogin = Settings.System.getIntForUser( cr, SETTING_GUEST_HAS_LOGGED_IN, 0, userId); if (notFirstLogin != 0) { - mNewSessionDialog = new ResetSessionDialog(context, userId); + mNewSessionDialog = new ResetSessionDialog(context, mUiEventLogger, userId); mNewSessionDialog.show(); } else { Settings.System.putIntForUser( @@ -153,9 +160,10 @@ public class GuestResumeSessionReceiver extends BroadcastReceiver { private static final int BUTTON_WIPE = BUTTON_NEGATIVE; private static final int BUTTON_DONTWIPE = BUTTON_POSITIVE; + private final UiEventLogger mUiEventLogger; private final int mUserId; - public ResetSessionDialog(Context context, int userId) { + ResetSessionDialog(Context context, UiEventLogger uiEventLogger, int userId) { super(context); setTitle(context.getString(R.string.guest_wipe_session_title)); @@ -167,15 +175,18 @@ public class GuestResumeSessionReceiver extends BroadcastReceiver { setButton(BUTTON_DONTWIPE, context.getString(R.string.guest_wipe_session_dontwipe), this); + mUiEventLogger = uiEventLogger; mUserId = userId; } @Override public void onClick(DialogInterface dialog, int which) { if (which == BUTTON_WIPE) { + mUiEventLogger.log(QSUserSwitcherEvent.QS_USER_GUEST_WIPE); wipeGuestSession(getContext(), mUserId); dismiss(); } else if (which == BUTTON_DONTWIPE) { + mUiEventLogger.log(QSUserSwitcherEvent.QS_USER_GUEST_CONTINUE); cancel(); } } diff --git a/packages/SystemUI/src/com/android/systemui/qs/QSEvents.kt b/packages/SystemUI/src/com/android/systemui/qs/QSEvents.kt index 54e8a2be0d2a3..cc5a771f78c14 100644 --- a/packages/SystemUI/src/com/android/systemui/qs/QSEvents.kt +++ b/packages/SystemUI/src/com/android/systemui/qs/QSEvents.kt @@ -118,7 +118,19 @@ enum class QSUserSwitcherEvent(private val _id: Int) : UiEventLogger.UiEventEnum QS_USER_DETAIL_CLOSE(426), @UiEvent(doc = "User switcher QS detail panel more settings pressed") - QS_USER_MORE_SETTINGS(427); + QS_USER_MORE_SETTINGS(427), + + @UiEvent(doc = "The user has added a guest in the detail panel") + QS_USER_GUEST_ADD(754), + + @UiEvent(doc = "The user selected 'Start over' after switching to the existing Guest user") + QS_USER_GUEST_WIPE(755), + + @UiEvent(doc = "The user selected 'Yes, continue' after switching to the existing Guest user") + QS_USER_GUEST_CONTINUE(756), + + @UiEvent(doc = "The user has pressed 'Remove guest' in the detail panel") + QS_USER_GUEST_REMOVE(757); override fun getId() = _id } \ No newline at end of file diff --git a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java index d4029e64036ed..af1650b5b8ca5 100644 --- a/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java +++ b/packages/SystemUI/src/com/android/systemui/statusbar/policy/UserSwitcherController.java @@ -99,8 +99,7 @@ public class UserSwitcherController implements Dumpable { protected final Context mContext; protected final UserManager mUserManager; private final ArrayList> mAdapters = new ArrayList<>(); - private final GuestResumeSessionReceiver mGuestResumeSessionReceiver - = new GuestResumeSessionReceiver(); + private final GuestResumeSessionReceiver mGuestResumeSessionReceiver; private final KeyguardStateController mKeyguardStateController; protected final Handler mHandler; private final ActivityStarter mActivityStarter; @@ -132,6 +131,7 @@ public class UserSwitcherController implements Dumpable { mBroadcastDispatcher = broadcastDispatcher; mActivityTaskManager = activityTaskManager; mUiEventLogger = uiEventLogger; + mGuestResumeSessionReceiver = new GuestResumeSessionReceiver(mUiEventLogger); mUserDetailAdapter = new UserDetailAdapter(this, mContext, mUiEventLogger); if (!UserManager.isGuestUserEphemeral()) { mGuestResumeSessionReceiver.register(mBroadcastDispatcher); @@ -388,6 +388,7 @@ public class UserSwitcherController implements Dumpable { // haven't reloaded the user list yet. return; } + mUiEventLogger.log(QSUserSwitcherEvent.QS_USER_GUEST_ADD); id = guest.id; } else if (record.isAddUser) { showAddUserDialog(); @@ -891,6 +892,7 @@ public class UserSwitcherController implements Dumpable { if (which == BUTTON_NEGATIVE) { cancel(); } else { + mUiEventLogger.log(QSUserSwitcherEvent.QS_USER_GUEST_REMOVE); dismiss(); exitGuest(mGuestId, mTargetId); }