diff options
| author | John Reck <jreck@google.com> | 2017-08-25 04:33:31 +0000 |
|---|---|---|
| committer | Android (Google) Code Review <android-gerrit@google.com> | 2017-08-25 04:33:31 +0000 |
| commit | 1d4be040e06a11d750c364bac856120cbcc03669 (patch) | |
| tree | af61a1ffa9083ec3b1cdbaff04a41779b774eefd /core/java/android | |
| parent | bb034af696961325b643a0c36a32aba211e13326 (diff) | |
| parent | 938e884a1fcc385dba5a41475aad76d8b7189609 (diff) | |
Merge "Avoid setting high contrast in every view draw"
Diffstat (limited to 'core/java/android')
| -rw-r--r-- | core/java/android/view/ThreadedRenderer.java | 9 | ||||
| -rw-r--r-- | core/java/android/view/View.java | 6 | ||||
| -rw-r--r-- | core/java/android/view/ViewRootImpl.java | 4 |
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(); |
