Merge "Allow for the possibility of null ActivityContainer" into klp-modular-dev

This commit is contained in:
Craig Mautner
2014-01-10 18:21:49 +00:00
committed by Android (Google) Code Review
2 changed files with 28 additions and 7 deletions

View File

@@ -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;

View File

@@ -2225,7 +2225,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);