Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 446346bc authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Android (Google) Code Review
Browse files

Merge "[RESTRICT AUTOMERGE] Dimming on an embedded TaskFragment vs. parent Task" into sc-v2-dev

parents fe84f243 66a576b4
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -486,7 +486,6 @@ class Task extends TaskFragment {
    // root task moves and we in fact do so when moving from full screen to pinned.
    private boolean mPreserveNonFloatingState = false;

    private Dimmer mDimmer = new Dimmer(this);
    private final Rect mTmpDimBoundsRect = new Rect();

    /** @see #setCanAffectSystemUiFlags */
+30 −0
Original line number Diff line number Diff line
@@ -162,6 +162,8 @@ class TaskFragment extends WindowContainer<WindowContainer> {
     */
    int mMinHeight;

    Dimmer mDimmer = new Dimmer(this);

    /** This task fragment will be removed when the cleanup of its children are done. */
    private boolean mIsRemovalRequested;

@@ -2352,6 +2354,34 @@ class TaskFragment extends WindowContainer<WindowContainer> {
        sendTaskFragmentVanished();
    }

    @Override
    Dimmer getDimmer() {
        // If the window is in an embedded TaskFragment, we want to dim at the TaskFragment.
        if (asTask() == null) {
            return mDimmer;
        }

        return super.getDimmer();
    }

    @Override
    void prepareSurfaces() {
        if (asTask() != null) {
            super.prepareSurfaces();
            return;
        }

        mDimmer.resetDimStates();
        super.prepareSurfaces();

        // Bounds need to be relative, as the dim layer is a child.
        final Rect dimBounds = getBounds();
        dimBounds.offsetTo(0 /* newLeft */, 0 /* newTop */);
        if (mDimmer.updateDims(getPendingTransaction(), dimBounds)) {
            scheduleAnimation();
        }
    }

    @Override
    boolean canBeAnimationTarget() {
        return true;