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

Commit 47a92e67 authored by TreeHugger Robot's avatar TreeHugger Robot Committed by Automerger Merge Worker
Browse files

Merge "Set DividerView accessibility embedded matrix to surface position" into...

Merge "Set DividerView accessibility embedded matrix to surface position" into rvc-dev am: 4acfd1f0 am: 8f872b0c am: 9c453e54

Change-Id: Ie9c604a5d5d045c6ce200cbc439123892a6bf7e2
parents 50ab36ca 9c453e54
Loading
Loading
Loading
Loading
+25 −0
Original line number Diff line number Diff line
@@ -28,12 +28,14 @@ import android.animation.ValueAnimator;
import android.annotation.Nullable;
import android.content.Context;
import android.content.res.Configuration;
import android.graphics.Matrix;
import android.graphics.Rect;
import android.graphics.Region;
import android.graphics.Region.Op;
import android.hardware.display.DisplayManager;
import android.os.Bundle;
import android.os.Handler;
import android.os.RemoteException;
import android.util.AttributeSet;
import android.util.Slog;
import android.view.Display;
@@ -164,6 +166,9 @@ public class DividerView extends FrameLayout implements OnTouchListener,
    int mDividerPositionX;
    int mDividerPositionY;

    private final Matrix mTmpMatrix = new Matrix();
    private final float[] mTmpValues = new float[9];

    // The view is removed or in the process of been removed from the system.
    private boolean mRemoved;

@@ -249,6 +254,22 @@ public class DividerView extends FrameLayout implements OnTouchListener,
        }
    };

    private Runnable mUpdateEmbeddedMatrix = () -> {
        if (getViewRootImpl() == null) {
            return;
        }
        if (isHorizontalDivision()) {
            mTmpMatrix.setTranslate(0, mDividerPositionY - mDividerInsets);
        } else {
            mTmpMatrix.setTranslate(mDividerPositionX - mDividerInsets, 0);
        }
        mTmpMatrix.getValues(mTmpValues);
        try {
            getViewRootImpl().getAccessibilityEmbeddedConnection().setScreenMatrix(mTmpValues);
        } catch (RemoteException e) {
        }
    };

    public DividerView(Context context) {
        this(context, null);
    }
@@ -1084,6 +1105,10 @@ public class DividerView extends FrameLayout implements OnTouchListener,
                t.setPosition(dividerCtrl, mDividerPositionX - mDividerInsets, 0);
            }
        }
        if (getViewRootImpl() != null) {
            mHandler.removeCallbacks(mUpdateEmbeddedMatrix);
            mHandler.post(mUpdateEmbeddedMatrix);
        }
    }

    void setResizeDimLayer(Transaction t, boolean primary, float alpha) {