summaryrefslogtreecommitdiffstats
path: root/core/java/android
diff options
context:
space:
mode:
authorCraig Mautner <cmautner@google.com>2014-01-10 18:27:49 +0000
committerAndroid Git Automerger <android-git-automerger@android.com>2014-01-10 18:27:49 +0000
commit5ab77ac4a539e2117425e2dffeff7a29b6bc03d6 (patch)
tree39aaa07d3cc99a9cb79fbffedcc23e72bbb16c33 /core/java/android
parentc9eff80ecac251f19af38b277760e960bbf1a655 (diff)
parent96ada57b2c0c456e9d3a1f43e3ff691f14ec1459 (diff)
downloadframeworks_base-5ab77ac4a539e2117425e2dffeff7a29b6bc03d6.zip
frameworks_base-5ab77ac4a539e2117425e2dffeff7a29b6bc03d6.tar.gz
frameworks_base-5ab77ac4a539e2117425e2dffeff7a29b6bc03d6.tar.bz2
am 96ada57b: Merge "Allow for the possibility of null ActivityContainer" into klp-modular-dev
* commit '96ada57b2c0c456e9d3a1f43e3ff691f14ec1459': Allow for the possibility of null ActivityContainer
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/app/ActivityManagerNative.java32
-rw-r--r--core/java/android/app/ActivityThread.java3
2 files changed, 28 insertions, 7 deletions
diff --git a/core/java/android/app/ActivityManagerNative.java b/core/java/android/app/ActivityManagerNative.java
index 3bc2ee6..7b81713 100644
--- a/core/java/android/app/ActivityManagerNative.java
+++ b/core/java/android/app/ActivityManagerNative.java
@@ -2027,7 +2027,12 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM
IActivityContainer activityContainer =
createActivityContainer(parentActivityToken, callback);
reply.writeNoException();
- reply.writeStrongBinder(activityContainer.asBinder());
+ if (activityContainer != null) {
+ reply.writeInt(1);
+ reply.writeStrongBinder(activityContainer.asBinder());
+ } else {
+ reply.writeInt(0);
+ }
return true;
}
@@ -2036,7 +2041,12 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM
IBinder activityToken = data.readStrongBinder();
IActivityContainer activityContainer = getEnclosingActivityContainer(activityToken);
reply.writeNoException();
- reply.writeStrongBinder(activityContainer.asBinder());
+ if (activityContainer != null) {
+ reply.writeInt(1);
+ reply.writeStrongBinder(activityContainer.asBinder());
+ } else {
+ reply.writeInt(0);
+ }
return true;
}
@@ -4670,8 +4680,13 @@ class ActivityManagerProxy implements IActivityManager
data.writeStrongBinder((IBinder)callback);
mRemote.transact(CREATE_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0);
reply.readException();
- IActivityContainer res =
- IActivityContainer.Stub.asInterface(reply.readStrongBinder());
+ final int result = reply.readInt();
+ final IActivityContainer res;
+ if (result == 1) {
+ res = IActivityContainer.Stub.asInterface(reply.readStrongBinder());
+ } else {
+ res = null;
+ }
data.recycle();
reply.recycle();
return res;
@@ -4685,8 +4700,13 @@ class ActivityManagerProxy implements IActivityManager
data.writeStrongBinder(activityToken);
mRemote.transact(GET_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0);
reply.readException();
- IActivityContainer res =
- IActivityContainer.Stub.asInterface(reply.readStrongBinder());
+ final int result = reply.readInt();
+ final IActivityContainer res;
+ if (result == 1) {
+ res = IActivityContainer.Stub.asInterface(reply.readStrongBinder());
+ } else {
+ res = null;
+ }
data.recycle();
reply.recycle();
return res;
diff --git a/core/java/android/app/ActivityThread.java b/core/java/android/app/ActivityThread.java
index 94ebff9..5239cc6 100644
--- a/core/java/android/app/ActivityThread.java
+++ b/core/java/android/app/ActivityThread.java
@@ -2235,7 +2235,8 @@ public final class ActivityThread {
try {
IActivityContainer container =
ActivityManagerNative.getDefault().getEnclosingActivityContainer(r.token);
- final int displayId = container.getDisplayId();
+ final int displayId =
+ container == null ? Display.DEFAULT_DISPLAY : container.getDisplayId();
if (displayId > Display.DEFAULT_DISPLAY) {
Display display = dm.getRealDisplay(displayId, r.token);
baseContext = appContext.createDisplayContext(display);