Loading core/java/android/app/ActivityManagerNative.java +9 −20 Original line number Original line Diff line number Diff line Loading @@ -17,7 +17,6 @@ package android.app; package android.app; import android.app.ActivityManager.StackInfo; import android.app.ActivityManager.StackInfo; import android.app.ProfilerInfo; import android.content.ComponentName; import android.content.ComponentName; import android.content.IIntentReceiver; import android.content.IIntentReceiver; import android.content.IIntentSender; import android.content.IIntentSender; Loading Loading @@ -2189,17 +2188,12 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; return true; } } case GET_ACTIVITY_CONTAINER_TRANSACTION: { case GET_ACTIVITY_DISPLAY_ID_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); data.enforceInterface(IActivityManager.descriptor); IBinder activityToken = data.readStrongBinder(); IBinder activityToken = data.readStrongBinder(); IActivityContainer activityContainer = getEnclosingActivityContainer(activityToken); int displayId = getActivityDisplayId(activityToken); reply.writeNoException(); reply.writeNoException(); if (activityContainer != null) { reply.writeInt(displayId); reply.writeInt(1); reply.writeStrongBinder(activityContainer.asBinder()); } else { reply.writeInt(0); } return true; return true; } } Loading Loading @@ -5169,26 +5163,21 @@ class ActivityManagerProxy implements IActivityManager reply.recycle(); reply.recycle(); } } public IActivityContainer getEnclosingActivityContainer(IBinder activityToken) @Override throws RemoteException { public int getActivityDisplayId(IBinder activityToken) throws RemoteException { Parcel data = Parcel.obtain(); Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); data.writeInterfaceToken(IActivityManager.descriptor); data.writeStrongBinder(activityToken); data.writeStrongBinder(activityToken); mRemote.transact(GET_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0); mRemote.transact(GET_ACTIVITY_DISPLAY_ID_TRANSACTION, data, reply, 0); reply.readException(); reply.readException(); final int result = reply.readInt(); final int displayId = reply.readInt(); final IActivityContainer res; if (result == 1) { res = IActivityContainer.Stub.asInterface(reply.readStrongBinder()); } else { res = null; } data.recycle(); data.recycle(); reply.recycle(); reply.recycle(); return res; return displayId; } } @Override public IBinder getHomeActivityToken() throws RemoteException { public IBinder getHomeActivityToken() throws RemoteException { Parcel data = Parcel.obtain(); Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); Parcel reply = Parcel.obtain(); Loading core/java/android/app/ActivityThread.java +2 −4 Original line number Original line Diff line number Diff line Loading @@ -2312,10 +2312,7 @@ public final class ActivityThread { final DisplayManagerGlobal dm = DisplayManagerGlobal.getInstance(); final DisplayManagerGlobal dm = DisplayManagerGlobal.getInstance(); try { try { IActivityContainer container = int displayId = ActivityManagerNative.getDefault().getActivityDisplayId(r.token); ActivityManagerNative.getDefault().getEnclosingActivityContainer(r.token); final int displayId = container == null ? Display.DEFAULT_DISPLAY : container.getDisplayId(); if (displayId > Display.DEFAULT_DISPLAY) { if (displayId > Display.DEFAULT_DISPLAY) { Display display = dm.getRealDisplay(displayId, r.token); Display display = dm.getRealDisplay(displayId, r.token); baseContext = appContext.createDisplayContext(display); baseContext = appContext.createDisplayContext(display); Loading @@ -2323,6 +2320,7 @@ public final class ActivityThread { } catch (RemoteException e) { } catch (RemoteException e) { } } // For debugging purposes, if the activity's package name contains the value of // For debugging purposes, if the activity's package name contains the value of // the "debug.use-second-display" system property as a substring, then show // the "debug.use-second-display" system property as a substring, then show // its content on a secondary display if there is one. // its content on a secondary display if there is one. Loading core/java/android/app/IActivityManager.java +2 −3 Original line number Original line Diff line number Diff line Loading @@ -435,8 +435,7 @@ public interface IActivityManager extends IInterface { public void deleteActivityContainer(IActivityContainer container) throws RemoteException; public void deleteActivityContainer(IActivityContainer container) throws RemoteException; public IActivityContainer getEnclosingActivityContainer(IBinder activityToken) public int getActivityDisplayId(IBinder activityToken) throws RemoteException; throws RemoteException; public IBinder getHomeActivityToken() throws RemoteException; public IBinder getHomeActivityToken() throws RemoteException; Loading Loading @@ -746,7 +745,7 @@ public interface IActivityManager extends IInterface { int GET_PERSISTED_URI_PERMISSIONS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+181; int GET_PERSISTED_URI_PERMISSIONS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+181; int APP_NOT_RESPONDING_VIA_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+182; int APP_NOT_RESPONDING_VIA_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+182; int GET_HOME_ACTIVITY_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+183; int GET_HOME_ACTIVITY_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+183; int GET_ACTIVITY_CONTAINER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+184; int GET_ACTIVITY_DISPLAY_ID_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+184; int DELETE_ACTIVITY_CONTAINER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+185; int DELETE_ACTIVITY_CONTAINER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+185; Loading services/core/java/com/android/server/am/ActivityManagerService.java +5 −5 Original line number Original line Diff line number Diff line Loading @@ -55,6 +55,7 @@ import android.util.ArrayMap; import android.util.ArraySet; import android.util.ArraySet; import android.util.SparseIntArray; import android.util.SparseIntArray; import android.view.Display; import com.android.internal.R; import com.android.internal.R; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.GuardedBy; import com.android.internal.app.IAppOpsService; import com.android.internal.app.IAppOpsService; Loading Loading @@ -8721,14 +8722,13 @@ public final class ActivityManagerService extends ActivityManagerNative } } @Override @Override public IActivityContainer getEnclosingActivityContainer(IBinder activityToken) public int getActivityDisplayId(IBinder activityToken) throws RemoteException { throws RemoteException { synchronized (this) { synchronized (this) { ActivityStack stack = ActivityRecord.getStackLocked(activityToken); ActivityStack stack = ActivityRecord.getStackLocked(activityToken); if (stack != null) { if (stack != null && stack.mActivityContainer.isAttachedLocked()) { return stack.mActivityContainer; return stack.mActivityContainer.getDisplayId(); } } return null; return Display.DEFAULT_DISPLAY; } } } } Loading Loading
core/java/android/app/ActivityManagerNative.java +9 −20 Original line number Original line Diff line number Diff line Loading @@ -17,7 +17,6 @@ package android.app; package android.app; import android.app.ActivityManager.StackInfo; import android.app.ActivityManager.StackInfo; import android.app.ProfilerInfo; import android.content.ComponentName; import android.content.ComponentName; import android.content.IIntentReceiver; import android.content.IIntentReceiver; import android.content.IIntentSender; import android.content.IIntentSender; Loading Loading @@ -2189,17 +2188,12 @@ public abstract class ActivityManagerNative extends Binder implements IActivityM return true; return true; } } case GET_ACTIVITY_CONTAINER_TRANSACTION: { case GET_ACTIVITY_DISPLAY_ID_TRANSACTION: { data.enforceInterface(IActivityManager.descriptor); data.enforceInterface(IActivityManager.descriptor); IBinder activityToken = data.readStrongBinder(); IBinder activityToken = data.readStrongBinder(); IActivityContainer activityContainer = getEnclosingActivityContainer(activityToken); int displayId = getActivityDisplayId(activityToken); reply.writeNoException(); reply.writeNoException(); if (activityContainer != null) { reply.writeInt(displayId); reply.writeInt(1); reply.writeStrongBinder(activityContainer.asBinder()); } else { reply.writeInt(0); } return true; return true; } } Loading Loading @@ -5169,26 +5163,21 @@ class ActivityManagerProxy implements IActivityManager reply.recycle(); reply.recycle(); } } public IActivityContainer getEnclosingActivityContainer(IBinder activityToken) @Override throws RemoteException { public int getActivityDisplayId(IBinder activityToken) throws RemoteException { Parcel data = Parcel.obtain(); Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); Parcel reply = Parcel.obtain(); data.writeInterfaceToken(IActivityManager.descriptor); data.writeInterfaceToken(IActivityManager.descriptor); data.writeStrongBinder(activityToken); data.writeStrongBinder(activityToken); mRemote.transact(GET_ACTIVITY_CONTAINER_TRANSACTION, data, reply, 0); mRemote.transact(GET_ACTIVITY_DISPLAY_ID_TRANSACTION, data, reply, 0); reply.readException(); reply.readException(); final int result = reply.readInt(); final int displayId = reply.readInt(); final IActivityContainer res; if (result == 1) { res = IActivityContainer.Stub.asInterface(reply.readStrongBinder()); } else { res = null; } data.recycle(); data.recycle(); reply.recycle(); reply.recycle(); return res; return displayId; } } @Override public IBinder getHomeActivityToken() throws RemoteException { public IBinder getHomeActivityToken() throws RemoteException { Parcel data = Parcel.obtain(); Parcel data = Parcel.obtain(); Parcel reply = Parcel.obtain(); Parcel reply = Parcel.obtain(); Loading
core/java/android/app/ActivityThread.java +2 −4 Original line number Original line Diff line number Diff line Loading @@ -2312,10 +2312,7 @@ public final class ActivityThread { final DisplayManagerGlobal dm = DisplayManagerGlobal.getInstance(); final DisplayManagerGlobal dm = DisplayManagerGlobal.getInstance(); try { try { IActivityContainer container = int displayId = ActivityManagerNative.getDefault().getActivityDisplayId(r.token); ActivityManagerNative.getDefault().getEnclosingActivityContainer(r.token); final int displayId = container == null ? Display.DEFAULT_DISPLAY : container.getDisplayId(); if (displayId > Display.DEFAULT_DISPLAY) { if (displayId > Display.DEFAULT_DISPLAY) { Display display = dm.getRealDisplay(displayId, r.token); Display display = dm.getRealDisplay(displayId, r.token); baseContext = appContext.createDisplayContext(display); baseContext = appContext.createDisplayContext(display); Loading @@ -2323,6 +2320,7 @@ public final class ActivityThread { } catch (RemoteException e) { } catch (RemoteException e) { } } // For debugging purposes, if the activity's package name contains the value of // For debugging purposes, if the activity's package name contains the value of // the "debug.use-second-display" system property as a substring, then show // the "debug.use-second-display" system property as a substring, then show // its content on a secondary display if there is one. // its content on a secondary display if there is one. Loading
core/java/android/app/IActivityManager.java +2 −3 Original line number Original line Diff line number Diff line Loading @@ -435,8 +435,7 @@ public interface IActivityManager extends IInterface { public void deleteActivityContainer(IActivityContainer container) throws RemoteException; public void deleteActivityContainer(IActivityContainer container) throws RemoteException; public IActivityContainer getEnclosingActivityContainer(IBinder activityToken) public int getActivityDisplayId(IBinder activityToken) throws RemoteException; throws RemoteException; public IBinder getHomeActivityToken() throws RemoteException; public IBinder getHomeActivityToken() throws RemoteException; Loading Loading @@ -746,7 +745,7 @@ public interface IActivityManager extends IInterface { int GET_PERSISTED_URI_PERMISSIONS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+181; int GET_PERSISTED_URI_PERMISSIONS_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+181; int APP_NOT_RESPONDING_VIA_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+182; int APP_NOT_RESPONDING_VIA_PROVIDER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+182; int GET_HOME_ACTIVITY_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+183; int GET_HOME_ACTIVITY_TOKEN_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+183; int GET_ACTIVITY_CONTAINER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+184; int GET_ACTIVITY_DISPLAY_ID_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+184; int DELETE_ACTIVITY_CONTAINER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+185; int DELETE_ACTIVITY_CONTAINER_TRANSACTION = IBinder.FIRST_CALL_TRANSACTION+185; Loading
services/core/java/com/android/server/am/ActivityManagerService.java +5 −5 Original line number Original line Diff line number Diff line Loading @@ -55,6 +55,7 @@ import android.util.ArrayMap; import android.util.ArraySet; import android.util.ArraySet; import android.util.SparseIntArray; import android.util.SparseIntArray; import android.view.Display; import com.android.internal.R; import com.android.internal.R; import com.android.internal.annotations.GuardedBy; import com.android.internal.annotations.GuardedBy; import com.android.internal.app.IAppOpsService; import com.android.internal.app.IAppOpsService; Loading Loading @@ -8721,14 +8722,13 @@ public final class ActivityManagerService extends ActivityManagerNative } } @Override @Override public IActivityContainer getEnclosingActivityContainer(IBinder activityToken) public int getActivityDisplayId(IBinder activityToken) throws RemoteException { throws RemoteException { synchronized (this) { synchronized (this) { ActivityStack stack = ActivityRecord.getStackLocked(activityToken); ActivityStack stack = ActivityRecord.getStackLocked(activityToken); if (stack != null) { if (stack != null && stack.mActivityContainer.isAttachedLocked()) { return stack.mActivityContainer; return stack.mActivityContainer.getDisplayId(); } } return null; return Display.DEFAULT_DISPLAY; } } } } Loading