Merge "Unlock the work profile for remote input" into rvc-dev am: defcfd0b47 am: e38ac17bde
Change-Id: I329642fa5ccc75da226794b4fe99883aff04a514
This commit is contained in:
@@ -28,6 +28,7 @@ import android.app.RemoteInput;
|
||||
import android.app.RemoteInputHistoryItem;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.UserInfo;
|
||||
import android.net.Uri;
|
||||
import android.os.Handler;
|
||||
import android.os.RemoteException;
|
||||
@@ -401,15 +402,35 @@ public class NotificationRemoteInputManager implements Dumpable {
|
||||
|
||||
if (!mLockscreenUserManager.shouldAllowLockscreenRemoteInput()) {
|
||||
final int userId = pendingIntent.getCreatorUserHandle().getIdentifier();
|
||||
|
||||
final boolean isLockedManagedProfile =
|
||||
mUserManager.getUserInfo(userId).isManagedProfile()
|
||||
&& mKeyguardManager.isDeviceLocked(userId);
|
||||
|
||||
final boolean isParentUserLocked;
|
||||
if (isLockedManagedProfile) {
|
||||
final UserInfo profileParent = mUserManager.getProfileParent(userId);
|
||||
isParentUserLocked = (profileParent != null)
|
||||
&& mKeyguardManager.isDeviceLocked(profileParent.id);
|
||||
} else {
|
||||
isParentUserLocked = false;
|
||||
}
|
||||
|
||||
if (mLockscreenUserManager.isLockscreenPublicMode(userId)
|
||||
|| mStatusBarStateController.getState() == StatusBarState.KEYGUARD) {
|
||||
// Even if we don't have security we should go through this flow, otherwise we won't
|
||||
// go to the shade
|
||||
mCallback.onLockedRemoteInput(row, view);
|
||||
// If the parent user is no longer locked, and the user to which the remote input
|
||||
// is destined is a locked, managed profile, then onLockedWorkRemoteInput should be
|
||||
// called to unlock it.
|
||||
if (isLockedManagedProfile && !isParentUserLocked) {
|
||||
mCallback.onLockedWorkRemoteInput(userId, row, view);
|
||||
} else {
|
||||
// Even if we don't have security we should go through this flow, otherwise
|
||||
// we won't go to the shade.
|
||||
mCallback.onLockedRemoteInput(row, view);
|
||||
}
|
||||
return true;
|
||||
}
|
||||
if (mUserManager.getUserInfo(userId).isManagedProfile()
|
||||
&& mKeyguardManager.isDeviceLocked(userId)) {
|
||||
if (isLockedManagedProfile) {
|
||||
mCallback.onLockedWorkRemoteInput(userId, row, view);
|
||||
return true;
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user