OSDN Git Service

Set lock screen to be in public mode if one of its profile is secure
authorTony Mak <tonymak@google.com>
Tue, 19 Apr 2016 13:02:44 +0000 (14:02 +0100)
committerTony Mak <tonymak@google.com>
Tue, 19 Apr 2016 13:03:51 +0000 (14:03 +0100)
Change-Id: I7d819c7d4a52ff45705b1a1b9e215faf0957cccb
Fix: 27118634

packages/SystemUI/src/com/android/systemui/statusbar/phone/PhoneStatusBar.java

index b75c291..d3f3b2d 100644 (file)
@@ -34,6 +34,7 @@ import android.content.Intent;
 import android.content.IntentFilter;
 import android.content.pm.IPackageManager;
 import android.content.pm.PackageManager;
+import android.content.pm.UserInfo;
 import android.content.res.Configuration;
 import android.content.res.Resources;
 import android.database.ContentObserver;
@@ -3950,9 +3951,17 @@ public class PhoneStatusBar extends BaseStatusBar implements DemoMode,
     }
 
     private void updatePublicMode() {
-        setLockscreenPublicMode(
-                mStatusBarKeyguardViewManager.isShowing() && mStatusBarKeyguardViewManager
-                        .isSecure(mCurrentUserId));
+        boolean isPublic = false;
+        if (mStatusBarKeyguardViewManager.isShowing()) {
+            for (int i = mCurrentProfiles.size() - 1; i >= 0; i--) {
+                UserInfo userInfo = mCurrentProfiles.valueAt(i);
+                if (mStatusBarKeyguardViewManager.isSecure(userInfo.id)) {
+                    isPublic = true;
+                    break;
+                }
+            }
+        }
+        setLockscreenPublicMode(isPublic);
     }
 
     protected void updateKeyguardState(boolean goingToFullShade, boolean fromShadeLocked) {