summaryrefslogtreecommitdiff
path: root/core/java/android
diff options
context:
space:
mode:
authorJohn Reck <jreck@google.com>2017-08-25 04:33:31 +0000
committerAndroid (Google) Code Review <android-gerrit@google.com>2017-08-25 04:33:31 +0000
commit1d4be040e06a11d750c364bac856120cbcc03669 (patch)
treeaf61a1ffa9083ec3b1cdbaff04a41779b774eefd /core/java/android
parentbb034af696961325b643a0c36a32aba211e13326 (diff)
parent938e884a1fcc385dba5a41475aad76d8b7189609 (diff)
Merge "Avoid setting high contrast in every view draw"
Diffstat (limited to 'core/java/android')
-rw-r--r--core/java/android/view/ThreadedRenderer.java9
-rw-r--r--core/java/android/view/View.java6
-rw-r--r--core/java/android/view/ViewRootImpl.java4
3 files changed, 11 insertions, 8 deletions
diff --git a/core/java/android/view/ThreadedRenderer.java b/core/java/android/view/ThreadedRenderer.java
index 489de565acb6..2166f6e4742b 100644
--- a/core/java/android/view/ThreadedRenderer.java
+++ b/core/java/android/view/ThreadedRenderer.java
@@ -914,6 +914,14 @@ public final class ThreadedRenderer {
return nCreateHardwareBitmap(node.getNativeDisplayList(), width, height);
}
+ /**
+ * Sets whether or not high contrast text rendering is enabled. The setting is global
+ * but only affects content rendered after the change is made.
+ */
+ public static void setHighContrastText(boolean highContrastText) {
+ nSetHighContrastText(highContrastText);
+ }
+
@Override
protected void finalize() throws Throwable {
try {
@@ -1063,4 +1071,5 @@ public final class ThreadedRenderer {
int srcLeft, int srcTop, int srcRight, int srcBottom, Bitmap bitmap);
private static native Bitmap nCreateHardwareBitmap(long renderNode, int width, int height);
+ private static native void nSetHighContrastText(boolean enabled);
}
diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java
index 2c41bf631813..d640236ae747 100644
--- a/core/java/android/view/View.java
+++ b/core/java/android/view/View.java
@@ -18055,7 +18055,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
int layerType = getLayerType();
final DisplayListCanvas canvas = renderNode.start(width, height);
- canvas.setHighContrastText(mAttachInfo.mHighContrastText);
try {
if (layerType == LAYER_TYPE_SOFTWARE) {
@@ -25365,11 +25364,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback,
boolean mViewScrollChanged;
/**
- * Set to true if high contrast mode enabled
- */
- boolean mHighContrastText;
-
- /**
* Set to true if a pointer event is currently being handled.
*/
boolean mHandlingPointerEvent;
diff --git a/core/java/android/view/ViewRootImpl.java b/core/java/android/view/ViewRootImpl.java
index 22faeed72a0f..415aad54ee78 100644
--- a/core/java/android/view/ViewRootImpl.java
+++ b/core/java/android/view/ViewRootImpl.java
@@ -7749,11 +7749,11 @@ public final class ViewRootImpl implements ViewParent,
final class HighContrastTextManager implements HighTextContrastChangeListener {
HighContrastTextManager() {
- mAttachInfo.mHighContrastText = mAccessibilityManager.isHighTextContrastEnabled();
+ ThreadedRenderer.setHighContrastText(mAccessibilityManager.isHighTextContrastEnabled());
}
@Override
public void onHighTextContrastStateChanged(boolean enabled) {
- mAttachInfo.mHighContrastText = enabled;
+ ThreadedRenderer.setHighContrastText(enabled);
// Destroy Displaylists so they can be recreated with high contrast recordings
destroyHardwareResources();