Merge "Move DimLayer to Root if translucent window and not multi-window" into rvc-dev am: 2d8d9812e9 am: 7aad5fc364
Change-Id: I50befa620229ac844789bdaa3664ed149aecf960
This commit is contained in:
@@ -253,6 +253,12 @@ public class DisplayArea<T extends WindowContainer> extends WindowContainer<T> {
|
|||||||
super.prepareSurfaces();
|
super.prepareSurfaces();
|
||||||
getBounds(mTmpDimBoundsRect);
|
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)) {
|
if (mDimmer.updateDims(getPendingTransaction(), mTmpDimBoundsRect)) {
|
||||||
scheduleAnimation();
|
scheduleAnimation();
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3348,6 +3348,21 @@ class Task extends WindowContainer<WindowContainer> {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
Dimmer getDimmer() {
|
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;
|
return mDimmer;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user