Merge "QS: Fix crash switching users." into lmp-dev
diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
index abbaacc..da0bc30 100644
--- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java
+++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java
@@ -1729,6 +1729,7 @@
                         return true;
                     }
                 }
+                return false;
             }
 
             case KeyEvent.KEYCODE_MENU: {
@@ -1822,6 +1823,7 @@
                         return true;
                     }
                 }
+                return false;
             }
 
             case KeyEvent.KEYCODE_MENU: {
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index 8c8d14b..4cfd042 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -907,6 +907,8 @@
                     requestCode, callingPid, callingUid, callingPackage, startFlags, options,
                     componentSpecified, null, container);
 
+            Binder.restoreCallingIdentity(origId);
+
             if (stack.mConfigWillChange) {
                 // If the caller also wants to switch to a new configuration,
                 // do so now.  This allows a clean switch, as we are waiting
@@ -920,8 +922,6 @@
                 mService.updateConfigurationLocked(config, null, false, false);
             }
 
-            Binder.restoreCallingIdentity(origId);
-
             if (outResult != null) {
                 outResult.result = res;
                 if (res == ActivityManager.START_SUCCESS) {