Merge "Set DividerView accessibility embedded matrix to surface position" into rvc-dev

This commit is contained in:
TreeHugger Robot
2020-05-15 22:38:34 +00:00
committed by Android (Google) Code Review

View File

@@ -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) {