Merge "Move DimLayer to Root if translucent window and not multi-window" into rvc-dev
This commit is contained in:
committed by
Android (Google) Code Review
commit
2d8d9812e9
@@ -253,6 +253,12 @@ public class DisplayArea<T extends WindowContainer> extends WindowContainer<T> {
|
||||
super.prepareSurfaces();
|
||||
getBounds(mTmpDimBoundsRect);
|
||||
|
||||
// If SystemUI is dragging for recents, we want to reset the dim state so any dim layer
|
||||
// on the display level fades out.
|
||||
if (forAllTasks(task -> !task.canAffectSystemUiFlags())) {
|
||||
mDimmer.resetDimStates();
|
||||
}
|
||||
|
||||
if (mDimmer.updateDims(getPendingTransaction(), mTmpDimBoundsRect)) {
|
||||
scheduleAnimation();
|
||||
}
|
||||
|
||||
@@ -3348,6 +3348,21 @@ class Task extends WindowContainer<WindowContainer> {
|
||||
|
||||
@Override
|
||||
Dimmer getDimmer() {
|
||||
// If the window is in multi-window mode, we want to dim at the Task level to ensure the dim
|
||||
// bounds match the area the app lives in
|
||||
if (inMultiWindowMode()) {
|
||||
return mDimmer;
|
||||
}
|
||||
|
||||
// If we're not at the root task level, we want to keep traversing through the parents to
|
||||
// find the root.
|
||||
// Once at the root task level, we want to check {@link #isTranslucent(ActivityRecord)}.
|
||||
// If true, we want to get the Dimmer from the level above since we don't want to animate
|
||||
// the dim with the Task.
|
||||
if (!isRootTask() || isTranslucent(null)) {
|
||||
return super.getDimmer();
|
||||
}
|
||||
|
||||
return mDimmer;
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user