Merge "Fix getAnimationTargets so that it returns valid animation target" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-03-06 00:19:10 +00:00
committed by Android (Google) Code Review
4 changed files with 15 additions and 1 deletions

View File

@@ -7627,6 +7627,11 @@ final class ActivityRecord extends WindowToken implements WindowManagerService.A
record.mStartBounds); record.mStartBounds);
} }
@Override
boolean canCreateRemoteAnimationTarget() {
return true;
}
@Override @Override
void getAnimationFrames(Rect outFrame, Rect outInsets, Rect outStableInsets, void getAnimationFrames(Rect outFrame, Rect outInsets, Rect outStableInsets,
Rect outSurfaceInsets) { Rect outSurfaceInsets) {

View File

@@ -446,7 +446,7 @@ public class AppTransitionController {
siblings.add(current); siblings.add(current);
boolean canPromote = true; boolean canPromote = true;
if (parent == null) { if (parent == null || !parent.canCreateRemoteAnimationTarget()) {
canPromote = false; canPromote = false;
} else { } else {
// In case a descendant of the parent belongs to the other group, we cannot promote // In case a descendant of the parent belongs to the other group, we cannot promote

View File

@@ -3121,6 +3121,11 @@ class Task extends WindowContainer<WindowContainer> {
return activity != null ? activity.createRemoteAnimationTarget(record) : null; return activity != null ? activity.createRemoteAnimationTarget(record) : null;
} }
@Override
boolean canCreateRemoteAnimationTarget() {
return true;
}
WindowState getTopVisibleAppMainWindow() { WindowState getTopVisibleAppMainWindow() {
final ActivityRecord activity = getTopVisibleActivity(); final ActivityRecord activity = getTopVisibleActivity();
return activity != null ? activity.findMainWindow() : null; return activity != null ? activity.findMainWindow() : null;

View File

@@ -2196,6 +2196,10 @@ class WindowContainer<E extends WindowContainer> extends ConfigurationContainer<
return null; return null;
} }
boolean canCreateRemoteAnimationTarget() {
return false;
}
boolean okToDisplay() { boolean okToDisplay() {
final DisplayContent dc = getDisplayContent(); final DisplayContent dc = getDisplayContent();
return dc != null && dc.okToDisplay(); return dc != null && dc.okToDisplay();