summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2014-06-12 23:36:54 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-06-12 23:36:54 +0000
commit4849aa86b1f26c12d036f32fa5b1413cecd77760 (patch)
tree305a0debedf6da6680028cf3b40b9c581e7d0fcf
parent604ea0e415faa2466ab6c89372001d6c93ad0d98 (diff)
parentbe63495101dba3b0c3c496cdd810df9e30e926d4 (diff)
downloadframeworks_base-4849aa86b1f26c12d036f32fa5b1413cecd77760.zip
frameworks_base-4849aa86b1f26c12d036f32fa5b1413cecd77760.tar.gz
frameworks_base-4849aa86b1f26c12d036f32fa5b1413cecd77760.tar.bz2
am be634951: Fix permission problem and NPE
* commit 'be63495101dba3b0c3c496cdd810df9e30e926d4': Fix permission problem and NPE
-rw-r--r--services/core/java/com/android/server/am/ActivityStackSupervisor.java12
-rw-r--r--services/core/java/com/android/server/wm/WindowState.java6
2 files changed, 16 insertions, 2 deletions
diff --git a/services/core/java/com/android/server/am/ActivityStackSupervisor.java b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
index 6cb57de..bca215d 100644
--- a/services/core/java/com/android/server/am/ActivityStackSupervisor.java
+++ b/services/core/java/com/android/server/am/ActivityStackSupervisor.java
@@ -2768,16 +2768,19 @@ public final class ActivityStackSupervisor implements DisplayListener {
@Override
public void onDisplayAdded(int displayId) {
+ Slog.v(TAG, "Display added displayId=" + displayId);
mHandler.sendMessage(mHandler.obtainMessage(HANDLE_DISPLAY_ADDED, displayId, 0));
}
@Override
public void onDisplayRemoved(int displayId) {
+ Slog.v(TAG, "Display removed displayId=" + displayId);
mHandler.sendMessage(mHandler.obtainMessage(HANDLE_DISPLAY_REMOVED, displayId, 0));
}
@Override
public void onDisplayChanged(int displayId) {
+ Slog.v(TAG, "Display changed displayId=" + displayId);
mHandler.sendMessage(mHandler.obtainMessage(HANDLE_DISPLAY_CHANGED, displayId, 0));
}
@@ -3048,10 +3051,17 @@ public final class ActivityStackSupervisor implements DisplayListener {
return;
}
mContainerState = CONTAINER_STATE_FINISHING;
+
final Message msg =
mHandler.obtainMessage(CONTAINER_TASK_LIST_EMPTY_TIMEOUT, this);
mHandler.sendMessageDelayed(msg, 1000);
- mStack.finishAllActivitiesLocked();
+
+ long origId = Binder.clearCallingIdentity();
+ try {
+ mStack.finishAllActivitiesLocked();
+ } finally {
+ Binder.restoreCallingIdentity(origId);
+ }
}
}
diff --git a/services/core/java/com/android/server/wm/WindowState.java b/services/core/java/com/android/server/wm/WindowState.java
index 9f3415e..0b11a1b 100644
--- a/services/core/java/com/android/server/wm/WindowState.java
+++ b/services/core/java/com/android/server/wm/WindowState.java
@@ -715,7 +715,11 @@ final class WindowState implements WindowManagerPolicy.WindowState {
}
public DisplayContent getDisplayContent() {
- return mAppToken == null ? mDisplayContent : getStack().getDisplayContent();
+ if (mAppToken == null) {
+ return mDisplayContent;
+ }
+ final TaskStack stack = getStack();
+ return stack == null ? mDisplayContent : stack.getDisplayContent();
}
public int getDisplayId() {