summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
author TreeHugger Robot <treehugger-gerrit@google.com> 2020-05-15 22:38:34 +0000
committer Android (Google) Code Review <android-gerrit@google.com> 2020-05-15 22:38:34 +0000
commit4acfd1f0f296d52affd77db18bcad5f77df0244a (patch)
treec93e90ffe70df2511999dc7b9f432a2c91ea4ecc
parent81eefd515f7a4bd052ef1892fb02a85058c8d4b8 (diff)
parent0f4db1b1e24c49eac4dfc2a6c79ff66737ee18ca (diff)
Merge "Set DividerView accessibility embedded matrix to surface position" into rvc-dev
-rw-r--r--packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java25
1 files changed, 25 insertions, 0 deletions
diff --git a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
index 060760a2f940..db89cea385b7 100644
--- a/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
+++ b/packages/SystemUI/src/com/android/systemui/stackdivider/DividerView.java
@@ -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) {