From 9a494273849a656fd6af49371b54dadc2d622306 Mon Sep 17 00:00:00 2001 From: Leon Scroggins III Date: Fri, 1 May 2020 15:35:20 -0400 Subject: [PATCH] Move Canvas compatibility settings into Compatibility class Bug: 155422223 Test: make Follow on to Ie7172fb93364a1e04ab844b8fa64887bf9d8b005. Remove @hidden APIs on Canvas - instead call setCompatibilityVersion from the Compatibility class already in the Java package. This is a step towards moving Canvas into a mainline module. Note that this means these are set when the application is bound, rather than when the first View is created. Change-Id: I3f73d77ba7351a6cb653dd550210698c6482e1bb --- core/java/android/view/View.java | 4 ---- graphics/java/android/graphics/Canvas.java | 11 +++++------ graphics/java/android/graphics/Compatibility.java | 1 + 3 files changed, 6 insertions(+), 10 deletions(-) diff --git a/core/java/android/view/View.java b/core/java/android/view/View.java index 89a55eb6c23d4..28d66e800ffb4 100644 --- a/core/java/android/view/View.java +++ b/core/java/android/view/View.java @@ -5277,10 +5277,6 @@ public class View implements Drawable.Callback, KeyEvent.Callback, // of whether a layout was requested on that View. sIgnoreMeasureCache = targetSdkVersion < Build.VERSION_CODES.KITKAT; - Canvas.sCompatibilityRestore = targetSdkVersion < Build.VERSION_CODES.M; - Canvas.sCompatibilitySetBitmap = targetSdkVersion < Build.VERSION_CODES.O; - Canvas.setCompatibilityVersion(targetSdkVersion); - // In M and newer, our widgets can pass a "hint" value in the size // for UNSPECIFIED MeasureSpecs. This lets child views of scrolling containers // know what the expected parent size is going to be, so e.g. list items can size diff --git a/graphics/java/android/graphics/Canvas.java b/graphics/java/android/graphics/Canvas.java index d949444d44d62..37ba869a94e3f 100644 --- a/graphics/java/android/graphics/Canvas.java +++ b/graphics/java/android/graphics/Canvas.java @@ -51,10 +51,8 @@ import javax.microedition.khronos.opengles.GL; */ public class Canvas extends BaseCanvas { private static int sCompatiblityVersion = 0; - /** @hide */ - public static boolean sCompatibilityRestore = false; - /** @hide */ - public static boolean sCompatibilitySetBitmap = false; + private static boolean sCompatibilityRestore = false; + private static boolean sCompatibilitySetBitmap = false; /** @hide */ @UnsupportedAppUsage @@ -1426,9 +1424,10 @@ public class Canvas extends BaseCanvas { nFreeTextLayoutCaches(); } - /** @hide */ - public static void setCompatibilityVersion(int apiLevel) { + /*package*/ static void setCompatibilityVersion(int apiLevel) { sCompatiblityVersion = apiLevel; + sCompatibilityRestore = apiLevel < Build.VERSION_CODES.M; + sCompatibilitySetBitmap = apiLevel < Build.VERSION_CODES.O; nSetCompatibilityVersion(apiLevel); } diff --git a/graphics/java/android/graphics/Compatibility.java b/graphics/java/android/graphics/Compatibility.java index 113cf9faab177..ed849127aedcf 100644 --- a/graphics/java/android/graphics/Compatibility.java +++ b/graphics/java/android/graphics/Compatibility.java @@ -37,6 +37,7 @@ public final class Compatibility { @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) public static void setTargetSdkVersion(int targetSdkVersion) { sTargetSdkVersion = targetSdkVersion; + Canvas.setCompatibilityVersion(targetSdkVersion); } /**