Merge "Add metrics for guest user" into sc-dev

This commit is contained in:
Peter Kalauskas
2021-03-23 17:30:07 +00:00
committed by Android (Google) Code Review
3 changed files with 30 additions and 5 deletions

View File

@@ -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();
}
}

View File

@@ -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
}

View File

@@ -99,8 +99,7 @@ public class UserSwitcherController implements Dumpable {
protected final Context mContext;
protected final UserManager mUserManager;
private final ArrayList<WeakReference<BaseUserAdapter>> 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);
}