[User Switcher] Ensure unlocked when launching
Ensure keyguard is unlocked when launching the Avatarpicker. There are multiple user journeys here, but they all seem to work fine. Test: Manual on device Bug: 234071952 Change-Id: I531cb4d2a500c60f7eaaea7c0b45ae6bb5436162
This commit is contained in:
@@ -31,6 +31,7 @@ import androidx.annotation.Nullable;
|
||||
|
||||
import com.android.settingslib.users.EditUserInfoController;
|
||||
import com.android.systemui.R;
|
||||
import com.android.systemui.plugins.ActivityStarter;
|
||||
|
||||
import javax.inject.Inject;
|
||||
|
||||
@@ -55,15 +56,18 @@ public class CreateUserActivity extends Activity {
|
||||
private final UserCreator mUserCreator;
|
||||
private final EditUserInfoController mEditUserInfoController;
|
||||
private final IActivityManager mActivityManager;
|
||||
private final ActivityStarter mActivityStarter;
|
||||
|
||||
private Dialog mSetupUserDialog;
|
||||
|
||||
@Inject
|
||||
public CreateUserActivity(UserCreator userCreator,
|
||||
EditUserInfoController editUserInfoController, IActivityManager activityManager) {
|
||||
EditUserInfoController editUserInfoController, IActivityManager activityManager,
|
||||
ActivityStarter activityStarter) {
|
||||
mUserCreator = userCreator;
|
||||
mEditUserInfoController = editUserInfoController;
|
||||
mActivityManager = activityManager;
|
||||
mActivityStarter = activityStarter;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -104,10 +108,7 @@ public class CreateUserActivity extends Activity {
|
||||
|
||||
return mEditUserInfoController.createDialog(
|
||||
this,
|
||||
(intent, requestCode) -> {
|
||||
mEditUserInfoController.startingActivityForResult();
|
||||
startActivityForResult(intent, requestCode);
|
||||
},
|
||||
this::startActivity,
|
||||
null,
|
||||
defaultUserName,
|
||||
getString(com.android.settingslib.R.string.user_add_user),
|
||||
@@ -160,4 +161,17 @@ public class CreateUserActivity extends Activity {
|
||||
Log.e(TAG, "Couldn't switch user.", e);
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Lambda to start activity from an intent. Ensures that device is unlocked first.
|
||||
* @param intent
|
||||
* @param requestCode
|
||||
*/
|
||||
private void startActivity(Intent intent, int requestCode) {
|
||||
mActivityStarter.dismissKeyguardThenExecute(() -> {
|
||||
mEditUserInfoController.startingActivityForResult();
|
||||
startActivityForResult(intent, requestCode);
|
||||
return true;
|
||||
}, /* cancel= */ null, /* afterKeyguardGone= */ true);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user