Loading core/java/com/android/internal/widget/LockPatternUtils.java +6 −4 Original line number Diff line number Diff line Loading @@ -125,7 +125,9 @@ public class LockPatternUtils { private final ContentResolver mContentResolver; private DevicePolicyManager mDevicePolicyManager; private ILockSettings mLockSettingsService; private int mCurrentUserId = UserHandle.USER_NULL; // The current user is set by KeyguardViewMediator and shared by all LockPatternUtils. private static volatile int sCurrentUserId = UserHandle.USER_NULL; public DevicePolicyManager getDevicePolicyManager() { if (mDevicePolicyManager == null) { Loading Loading @@ -215,13 +217,13 @@ public class LockPatternUtils { } public void setCurrentUser(int userId) { mCurrentUserId = userId; sCurrentUserId = userId; } public int getCurrentUser() { if (mCurrentUserId != UserHandle.USER_NULL) { if (sCurrentUserId != UserHandle.USER_NULL) { // Someone is regularly updating using setCurrentUser() use that value. return mCurrentUserId; return sCurrentUserId; } try { return ActivityManagerNative.getDefault().getCurrentUser().id; Loading policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java +2 −1 Original line number Diff line number Diff line Loading @@ -153,7 +153,8 @@ public class KeyguardFaceUnlockView extends LinearLayout implements KeyguardSecu if (mBiometricUnlock != null) { mBiometricUnlock.stop(); } mLockPatternUtils.setCurrentUser(userId); // No longer required; static value set by KeyguardViewMediator // mLockPatternUtils.setCurrentUser(userId); } }; Loading policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java +33 −2 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.content.ActivityNotFoundException; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.os.RemoteException; import android.os.UserHandle; import android.provider.MediaStore; Loading @@ -38,6 +40,8 @@ import com.android.internal.widget.multiwaveview.GlowPadView; import com.android.internal.widget.multiwaveview.GlowPadView.OnTriggerListener; import com.android.internal.R; import java.util.List; public class KeyguardSelectorView extends LinearLayout implements KeyguardSecurityView { private static final boolean DEBUG = KeyguardHostView.DEBUG; private static final String TAG = "SecuritySelectorView"; Loading Loading @@ -118,12 +122,39 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri this(context, null); } private boolean wouldLaunchResolverActivity(Intent intent) { PackageManager packageManager = mContext.getPackageManager(); ResolveInfo resolved = packageManager.resolveActivityAsUser(intent, PackageManager.MATCH_DEFAULT_ONLY, mLockPatternUtils.getCurrentUser()); final List<ResolveInfo> appList = packageManager.queryIntentActivitiesAsUser( intent, PackageManager.MATCH_DEFAULT_ONLY, mLockPatternUtils.getCurrentUser()); // If the list contains the above resolved activity, then it can't be // ResolverActivity itself. for (int i = 0; i < appList.size(); i++) { ResolveInfo tmp = appList.get(i); if (tmp.activityInfo.name.equals(resolved.activityInfo.name) && tmp.activityInfo.packageName.equals(resolved.activityInfo.packageName)) { return false; } } return true; } protected void launchCamera() { if (mLockPatternUtils.isSecure()) { // Launch the secure version of the camera Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE); final Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE); intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); if (wouldLaunchResolverActivity(intent)) { // TODO: Show disambiguation dialog instead. // For now, we'll treat this like launching any other app from secure keyguard. // When they do, user sees the system's ResolverActivity which lets them choose // which secure camera to use. launchActivity(intent, false); } else { launchActivity(intent, true); } } else { // Launch the normal camera launchActivity(new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA), false); Loading policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java +2 −0 Original line number Diff line number Diff line Loading @@ -894,6 +894,8 @@ public class KeyguardViewMediator { /** * Update the newUserId. Call while holding WindowManagerService lock. * NOTE: Should only be called by KeyguardViewMediator in response to the user id changing. * * @param newUserId The id of the incoming user. */ public void setCurrentUser(int newUserId) { Loading Loading
core/java/com/android/internal/widget/LockPatternUtils.java +6 −4 Original line number Diff line number Diff line Loading @@ -125,7 +125,9 @@ public class LockPatternUtils { private final ContentResolver mContentResolver; private DevicePolicyManager mDevicePolicyManager; private ILockSettings mLockSettingsService; private int mCurrentUserId = UserHandle.USER_NULL; // The current user is set by KeyguardViewMediator and shared by all LockPatternUtils. private static volatile int sCurrentUserId = UserHandle.USER_NULL; public DevicePolicyManager getDevicePolicyManager() { if (mDevicePolicyManager == null) { Loading Loading @@ -215,13 +217,13 @@ public class LockPatternUtils { } public void setCurrentUser(int userId) { mCurrentUserId = userId; sCurrentUserId = userId; } public int getCurrentUser() { if (mCurrentUserId != UserHandle.USER_NULL) { if (sCurrentUserId != UserHandle.USER_NULL) { // Someone is regularly updating using setCurrentUser() use that value. return mCurrentUserId; return sCurrentUserId; } try { return ActivityManagerNative.getDefault().getCurrentUser().id; Loading
policy/src/com/android/internal/policy/impl/keyguard/KeyguardFaceUnlockView.java +2 −1 Original line number Diff line number Diff line Loading @@ -153,7 +153,8 @@ public class KeyguardFaceUnlockView extends LinearLayout implements KeyguardSecu if (mBiometricUnlock != null) { mBiometricUnlock.stop(); } mLockPatternUtils.setCurrentUser(userId); // No longer required; static value set by KeyguardViewMediator // mLockPatternUtils.setCurrentUser(userId); } }; Loading
policy/src/com/android/internal/policy/impl/keyguard/KeyguardSelectorView.java +33 −2 Original line number Diff line number Diff line Loading @@ -23,6 +23,8 @@ import android.content.ActivityNotFoundException; import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.PackageManager; import android.content.pm.ResolveInfo; import android.os.RemoteException; import android.os.UserHandle; import android.provider.MediaStore; Loading @@ -38,6 +40,8 @@ import com.android.internal.widget.multiwaveview.GlowPadView; import com.android.internal.widget.multiwaveview.GlowPadView.OnTriggerListener; import com.android.internal.R; import java.util.List; public class KeyguardSelectorView extends LinearLayout implements KeyguardSecurityView { private static final boolean DEBUG = KeyguardHostView.DEBUG; private static final String TAG = "SecuritySelectorView"; Loading Loading @@ -118,12 +122,39 @@ public class KeyguardSelectorView extends LinearLayout implements KeyguardSecuri this(context, null); } private boolean wouldLaunchResolverActivity(Intent intent) { PackageManager packageManager = mContext.getPackageManager(); ResolveInfo resolved = packageManager.resolveActivityAsUser(intent, PackageManager.MATCH_DEFAULT_ONLY, mLockPatternUtils.getCurrentUser()); final List<ResolveInfo> appList = packageManager.queryIntentActivitiesAsUser( intent, PackageManager.MATCH_DEFAULT_ONLY, mLockPatternUtils.getCurrentUser()); // If the list contains the above resolved activity, then it can't be // ResolverActivity itself. for (int i = 0; i < appList.size(); i++) { ResolveInfo tmp = appList.get(i); if (tmp.activityInfo.name.equals(resolved.activityInfo.name) && tmp.activityInfo.packageName.equals(resolved.activityInfo.packageName)) { return false; } } return true; } protected void launchCamera() { if (mLockPatternUtils.isSecure()) { // Launch the secure version of the camera Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE); final Intent intent = new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA_SECURE); intent.addFlags(Intent.FLAG_ACTIVITY_EXCLUDE_FROM_RECENTS); if (wouldLaunchResolverActivity(intent)) { // TODO: Show disambiguation dialog instead. // For now, we'll treat this like launching any other app from secure keyguard. // When they do, user sees the system's ResolverActivity which lets them choose // which secure camera to use. launchActivity(intent, false); } else { launchActivity(intent, true); } } else { // Launch the normal camera launchActivity(new Intent(MediaStore.INTENT_ACTION_STILL_IMAGE_CAMERA), false); Loading
policy/src/com/android/internal/policy/impl/keyguard/KeyguardViewMediator.java +2 −0 Original line number Diff line number Diff line Loading @@ -894,6 +894,8 @@ public class KeyguardViewMediator { /** * Update the newUserId. Call while holding WindowManagerService lock. * NOTE: Should only be called by KeyguardViewMediator in response to the user id changing. * * @param newUserId The id of the incoming user. */ public void setCurrentUser(int newUserId) { Loading