diff options
| author | 2024-02-26 13:18:41 +0000 | |
|---|---|---|
| committer | 2024-02-26 13:18:41 +0000 | |
| commit | 0491bba4b4778c401a8772372a08b18b7946bca6 (patch) | |
| tree | 96f32bf3105bca06c278b4d845352545c68954e4 /libs | |
| parent | 98a3f1219902f232dc744e6a90fa38cc07e61279 (diff) | |
| parent | f26047b7a111061d6954c589e94d0bccdbcc52e5 (diff) | |
Merge "Add ActivityWindowInfo into LaunchActivityItem" into main
Diffstat (limited to 'libs')
| -rw-r--r-- | libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java index b2e5b75cf0b5..ae3a854baf9f 100644 --- a/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java +++ b/libs/WindowManager/Jetpack/src/androidx/window/extensions/embedding/SplitController.java @@ -72,6 +72,7 @@ import android.util.Pair; import android.util.Size; import android.util.SparseArray; import android.view.WindowMetrics; +import android.window.ActivityWindowInfo; import android.window.TaskFragmentAnimationParams; import android.window.TaskFragmentInfo; import android.window.TaskFragmentOperation; @@ -2864,11 +2865,27 @@ public class SplitController implements JetpackTaskFragmentOrganizer.TaskFragmen */ @Override public boolean isActivityEmbedded(@NonNull Activity activity) { + Objects.requireNonNull(activity); synchronized (mLock) { + if (Flags.activityWindowInfoFlag()) { + final ActivityWindowInfo activityWindowInfo = getActivityWindowInfo(activity); + return activityWindowInfo != null && activityWindowInfo.isEmbedded(); + } return mPresenter.isActivityEmbedded(activity.getActivityToken()); } } + @Nullable + private static ActivityWindowInfo getActivityWindowInfo(@NonNull Activity activity) { + if (activity.isFinishing()) { + return null; + } + final ActivityThread.ActivityClientRecord record = + ActivityThread.currentActivityThread() + .getActivityClient(activity.getActivityToken()); + return record != null ? record.getActivityWindowInfo() : null; + } + /** * If the two rules have the same presentation, and the calculated {@link SplitAttributes} * matches the {@link SplitAttributes} of {@link SplitContainer}, we can reuse the same |