Loading core/java/android/window/ITaskFragmentOrganizerController.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -44,4 +44,10 @@ interface ITaskFragmentOrganizerController { * Unregisters remote animations per transition type for the organizer. */ void unregisterRemoteAnimations(in ITaskFragmentOrganizer organizer); /** * Checks if an activity organized by a {@link android.window.TaskFragmentOrganizer} and * only occupies a portion of Task bounds. */ boolean isActivityEmbedded(in IBinder activityToken); } core/java/android/window/TaskFragmentOrganizer.java +13 −0 Original line number Diff line number Diff line Loading @@ -216,4 +216,17 @@ public class TaskFragmentOrganizer extends WindowOrganizer { return null; } } /** * Checks if an activity organized by a {@link android.window.TaskFragmentOrganizer} and * only occupies a portion of Task bounds. * @hide */ public boolean isActivityEmbedded(@NonNull IBinder activityToken) { try { return getController().isActivityEmbedded(activityToken); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } } libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java +8 −0 Original line number Diff line number Diff line Loading @@ -860,4 +860,12 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen launchingContainer.getTaskFragmentToken()); } } /** * Checks if an activity is embedded and its presentation is customized by a * {@link android.window.TaskFragmentOrganizer} to only occupy a portion of Task bounds. */ public boolean isActivityEmbedded(@NonNull Activity activity) { return mPresenter.isActivityEmbedded(activity.getActivityToken()); } } libs/WindowManager/Jetpack/window-extensions-release.aar +27 B (18.8 KiB) File changed.No diff preview for this file type. View original file View changed file services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java +23 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static com.android.server.wm.WindowOrganizerController.configurationsAreE import android.annotation.IntDef; import android.annotation.Nullable; import android.content.res.Configuration; import android.graphics.Rect; import android.os.Binder; import android.os.Bundle; import android.os.IBinder; Loading Loading @@ -579,4 +580,26 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr event.mException); } } // TODO(b/204399167): change to push the embedded state to the client side @Override public boolean isActivityEmbedded(IBinder activityToken) { synchronized (mGlobalLock) { final ActivityRecord activity = ActivityRecord.forTokenLocked(activityToken); if (activity == null) { return false; } final TaskFragment taskFragment = activity.getOrganizedTaskFragment(); if (taskFragment == null) { return false; } final Task parentTask = taskFragment.getTask(); if (parentTask != null) { final Rect taskBounds = parentTask.getBounds(); final Rect taskFragBounds = taskFragment.getBounds(); return !taskBounds.equals(taskFragBounds) && taskBounds.contains(taskFragBounds); } return false; } } } Loading
core/java/android/window/ITaskFragmentOrganizerController.aidl +6 −0 Original line number Diff line number Diff line Loading @@ -44,4 +44,10 @@ interface ITaskFragmentOrganizerController { * Unregisters remote animations per transition type for the organizer. */ void unregisterRemoteAnimations(in ITaskFragmentOrganizer organizer); /** * Checks if an activity organized by a {@link android.window.TaskFragmentOrganizer} and * only occupies a portion of Task bounds. */ boolean isActivityEmbedded(in IBinder activityToken); }
core/java/android/window/TaskFragmentOrganizer.java +13 −0 Original line number Diff line number Diff line Loading @@ -216,4 +216,17 @@ public class TaskFragmentOrganizer extends WindowOrganizer { return null; } } /** * Checks if an activity organized by a {@link android.window.TaskFragmentOrganizer} and * only occupies a portion of Task bounds. * @hide */ public boolean isActivityEmbedded(@NonNull IBinder activityToken) { try { return getController().isActivityEmbedded(activityToken); } catch (RemoteException e) { throw e.rethrowFromSystemServer(); } } }
libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java +8 −0 Original line number Diff line number Diff line Loading @@ -860,4 +860,12 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen launchingContainer.getTaskFragmentToken()); } } /** * Checks if an activity is embedded and its presentation is customized by a * {@link android.window.TaskFragmentOrganizer} to only occupy a portion of Task bounds. */ public boolean isActivityEmbedded(@NonNull Activity activity) { return mPresenter.isActivityEmbedded(activity.getActivityToken()); } }
libs/WindowManager/Jetpack/window-extensions-release.aar +27 B (18.8 KiB) File changed.No diff preview for this file type. View original file View changed file
services/core/java/com/android/server/wm/TaskFragmentOrganizerController.java +23 −0 Original line number Diff line number Diff line Loading @@ -24,6 +24,7 @@ import static com.android.server.wm.WindowOrganizerController.configurationsAreE import android.annotation.IntDef; import android.annotation.Nullable; import android.content.res.Configuration; import android.graphics.Rect; import android.os.Binder; import android.os.Bundle; import android.os.IBinder; Loading Loading @@ -579,4 +580,26 @@ public class TaskFragmentOrganizerController extends ITaskFragmentOrganizerContr event.mException); } } // TODO(b/204399167): change to push the embedded state to the client side @Override public boolean isActivityEmbedded(IBinder activityToken) { synchronized (mGlobalLock) { final ActivityRecord activity = ActivityRecord.forTokenLocked(activityToken); if (activity == null) { return false; } final TaskFragment taskFragment = activity.getOrganizedTaskFragment(); if (taskFragment == null) { return false; } final Task parentTask = taskFragment.getTask(); if (parentTask != null) { final Rect taskBounds = parentTask.getBounds(); final Rect taskFragBounds = taskFragment.getBounds(); return !taskBounds.equals(taskFragBounds) && taskBounds.contains(taskFragBounds); } return false; } } }