summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDeepanshu Gupta <deepanshu@google.com>2014-07-30 20:18:48 -0700
committerDeepanshu Gupta <deepanshu@google.com>2014-08-04 23:00:43 +0000
commit1840e8f2c73570e7b51c66c03d3a50bd00f3f742 (patch)
tree731ea65ab7f7abf4f06a0fd348071b61f320078a /tools
parentd2a411840c58eaee05499bab0190e3f3656e2e84 (diff)
downloadframeworks_base-1840e8f2c73570e7b51c66c03d3a50bd00f3f742.zip
frameworks_base-1840e8f2c73570e7b51c66c03d3a50bd00f3f742.tar.gz
frameworks_base-1840e8f2c73570e7b51c66c03d3a50bd00f3f742.tar.bz2
Fix Delegates
Change-Id: I2b6a6b679b7a5b2532b76b723155bc2763b70768
Diffstat (limited to 'tools')
-rw-r--r--tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java78
-rw-r--r--tools/layoutlib/bridge/src/android/graphics/NinePatch_Delegate.java6
-rw-r--r--tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java16
-rw-r--r--tools/layoutlib/bridge/src/android/graphics/Shader_Delegate.java9
-rw-r--r--tools/layoutlib/bridge/src/android/text/format/Time_Delegate.java85
-rw-r--r--tools/layoutlib/bridge/src/android/view/accessibility/AccessibilityManager.java172
-rw-r--r--tools/layoutlib/bridge/src/libcore/icu/ICU_Delegate.java6
7 files changed, 185 insertions, 187 deletions
diff --git a/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java
index 2ff0fc1..be75dde 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Canvas_Delegate.java
@@ -132,20 +132,6 @@ public final class Canvas_Delegate {
}
@LayoutlibDelegate
- /*package*/ static long initCanvas(long nativeCanvas) {
- // get the delegate from the native int.
- Canvas_Delegate nativeCanvasDelegate = sManager.getDelegate(nativeCanvas);
- if (nativeCanvasDelegate == null) {
- return 0;
- }
-
- Canvas_Delegate newDelegate = new Canvas_Delegate();
-
- // TODO: actually copy the canvas state.
- return sManager.addNewDelegate(newDelegate);
- }
-
- @LayoutlibDelegate
/*package*/
static void native_setBitmap(long canvas, long bitmap, boolean copyState) {
Canvas_Delegate canvasDelegate = sManager.getDelegate(canvas);
@@ -498,24 +484,6 @@ public final class Canvas_Delegate {
}
@LayoutlibDelegate
- /*package*/ static void native_drawRGB(long nativeCanvas, int r, int g, int b) {
- native_drawColor(nativeCanvas, 0xFF000000 | r << 16 | (g&0xFF) << 8 | (b&0xFF),
- PorterDuff.Mode.SRC_OVER.nativeInt);
-
- }
-
- @LayoutlibDelegate
- /*package*/ static void native_drawARGB(long nativeCanvas, int a, int r, int g, int b) {
- native_drawColor(nativeCanvas, a << 24 | (r&0xFF) << 16 | (g&0xFF) << 8 | (b&0xFF),
- PorterDuff.Mode.SRC_OVER.nativeInt);
- }
-
- @LayoutlibDelegate
- /*package*/ static void native_drawColor(long nativeCanvas, int color) {
- native_drawColor(nativeCanvas, color, PorterDuff.Mode.SRC_OVER.nativeInt);
- }
-
- @LayoutlibDelegate
/*package*/ static void native_drawColor(long nativeCanvas, final int color, final int mode) {
// get the delegate from the native int.
Canvas_Delegate canvasDelegate = sManager.getDelegate(nativeCanvas);
@@ -772,52 +740,18 @@ public final class Canvas_Delegate {
@LayoutlibDelegate
/*package*/ static void native_drawBitmap(Canvas thisCanvas, long nativeCanvas, long bitmap,
- Rect src, RectF dst,
- long nativePaintOrZero,
- int screenDensity,
- int bitmapDensity) {
+ float srcLeft, float srcTop, float srcRight, float srcBottom,
+ float dstLeft, float dstTop, float dstRight, float dstBottom,
+ long nativePaintOrZero, int screenDensity, int bitmapDensity) {
// get the delegate from the native int.
Bitmap_Delegate bitmapDelegate = Bitmap_Delegate.getDelegate(bitmap);
if (bitmapDelegate == null) {
return;
}
- BufferedImage image = bitmapDelegate.getImage();
-
- if (src == null) {
- drawBitmap(nativeCanvas, bitmapDelegate, nativePaintOrZero,
- 0, 0, image.getWidth(), image.getHeight(),
- (int)dst.left, (int)dst.top, (int)dst.right, (int)dst.bottom);
- } else {
- drawBitmap(nativeCanvas, bitmapDelegate, nativePaintOrZero,
- src.left, src.top, src.width(), src.height(),
- (int)dst.left, (int)dst.top, (int)dst.right, (int)dst.bottom);
- }
- }
-
- @LayoutlibDelegate
- /*package*/ static void native_drawBitmap(long nativeCanvas, long bitmap,
- Rect src, Rect dst,
- long nativePaintOrZero,
- int screenDensity,
- int bitmapDensity) {
- // get the delegate from the native int.
- Bitmap_Delegate bitmapDelegate = Bitmap_Delegate.getDelegate(bitmap);
- if (bitmapDelegate == null) {
- return;
- }
-
- BufferedImage image = bitmapDelegate.getImage();
-
- if (src == null) {
- drawBitmap(nativeCanvas, bitmapDelegate, nativePaintOrZero,
- 0, 0, image.getWidth(), image.getHeight(),
- dst.left, dst.top, dst.right, dst.bottom);
- } else {
- drawBitmap(nativeCanvas, bitmapDelegate, nativePaintOrZero,
- src.left, src.top, src.width(), src.height(),
- dst.left, dst.top, dst.right, dst.bottom);
- }
+ drawBitmap(nativeCanvas, bitmapDelegate, nativePaintOrZero,
+ (int)srcLeft, (int)srcTop, (int)srcRight, (int)srcBottom,
+ (int)dstLeft, (int)dstTop, (int)dstRight, (int)dstBottom);
}
@LayoutlibDelegate
diff --git a/tools/layoutlib/bridge/src/android/graphics/NinePatch_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/NinePatch_Delegate.java
index 74b2893..e16dbda 100644
--- a/tools/layoutlib/bridge/src/android/graphics/NinePatch_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/NinePatch_Delegate.java
@@ -215,9 +215,9 @@ public final class NinePatch_Delegate {
if (c == null) {
// not a 9-patch?
BufferedImage image = bitmap_delegate.getImage();
- Canvas_Delegate.native_drawBitmap(canvas_instance, bitmap_instance,
- new Rect(0, 0, image.getWidth(), image.getHeight()),
- new Rect(left, top, right, bottom),
+ Canvas_Delegate.native_drawBitmap(null, canvas_instance, bitmap_instance,
+ 0f, 0f, (float)image.getWidth(), (float)image.getHeight(),
+ (float)left, (float)top, (float)right, (float)bottom,
paint_instance_or_null, destDensity, srcDensity);
return;
}
diff --git a/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java
index 24ef189..73d67a7 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Paint_Delegate.java
@@ -1084,6 +1084,22 @@ public class Paint_Delegate {
sManager.removeJavaReferenceFor(nativePaint);
}
+ @LayoutlibDelegate
+ /*package*/ static float native_getLetterSpacing(long nativePaint) {
+ // TODO: throw a fidelity warning.
+ return 0;
+ }
+
+ @LayoutlibDelegate
+ /*package*/ static void native_setLetterSpacing(long nativePaint, float letterSpacing) {
+ // pass.
+ }
+
+ @LayoutlibDelegate
+ /*package*/ static void native_setFontFeatureSettings(long nativePaint, String settings) {
+ // pass.
+ }
+
// ---- Private delegate/helper methods ----
/*package*/ Paint_Delegate() {
diff --git a/tools/layoutlib/bridge/src/android/graphics/Shader_Delegate.java b/tools/layoutlib/bridge/src/android/graphics/Shader_Delegate.java
index 14e9960..832d0a3 100644
--- a/tools/layoutlib/bridge/src/android/graphics/Shader_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/graphics/Shader_Delegate.java
@@ -76,19 +76,22 @@ public abstract class Shader_Delegate {
// ---- native methods ----
@LayoutlibDelegate
- /*package*/ static void nativeDestructor(long native_shader) {
+ /*package*/ static void nativeDestructor(long native_shader, long native_with_local_matrix) {
+ // TODO: check what's native_with_local_matrix
sManager.removeJavaReferenceFor(native_shader);
}
@LayoutlibDelegate
- /*package*/ static void nativeSetLocalMatrix(long native_shader, long matrix_instance) {
+ /*package*/ static long nativeSetLocalMatrix(long native_shader,
+ long native_with_local_matrix, long matrix_instance) {
// get the delegate from the native int.
Shader_Delegate shaderDelegate = sManager.getDelegate(native_shader);
if (shaderDelegate == null) {
- return;
+ return 0;
}
shaderDelegate.mLocalMatrix = Matrix_Delegate.getDelegate(matrix_instance);
+ return 0;
}
// ---- Private delegate/helper methods ----
diff --git a/tools/layoutlib/bridge/src/android/text/format/Time_Delegate.java b/tools/layoutlib/bridge/src/android/text/format/Time_Delegate.java
index 320dd0d..ed8498f 100644
--- a/tools/layoutlib/bridge/src/android/text/format/Time_Delegate.java
+++ b/tools/layoutlib/bridge/src/android/text/format/Time_Delegate.java
@@ -39,91 +39,6 @@ public class Time_Delegate {
// Format used by toString()
private static final String FORMAT = "%1$tY%1$tm%1$tdT%1$tH%1$tM%1$tS<%1$tZ>";
- @LayoutlibDelegate
- /*package*/ static long normalize(Time thisTime, boolean ignoreDst) {
- long millis = toMillis(thisTime, ignoreDst);
- set(thisTime, millis);
- return millis;
- }
-
- @LayoutlibDelegate
- /*package*/ static void switchTimezone(Time thisTime, String timezone) {
- Calendar c = timeToCalendar(thisTime);
- c.setTimeZone(TimeZone.getTimeZone(timezone));
- calendarToTime(c, thisTime);
- }
-
- @LayoutlibDelegate
- /*package*/ static int nativeCompare(Time a, Time b) {
- return timeToCalendar(a).compareTo(timeToCalendar(b));
- }
-
- @LayoutlibDelegate
- /*package*/ static String format1(Time thisTime, String format) {
-
- try {
- // Change the format by adding changing '%' to "%1$t". This is required to tell the
- // formatter which argument to use from the argument list. '%%' is left as is. In the
- // replacement string, $0 refers to matched pattern. \\1 means '1', written this way to
- // separate it from 0. \\$ means '$', written this way to suppress the special meaning
- // of $.
- return String.format(
- p.matcher(format).replaceAll("$0\\1\\$t"),
- timeToCalendar(thisTime));
- } catch (UnknownFormatConversionException e) {
- Bridge.getLog().fidelityWarning(LayoutLog.TAG_STRFTIME, "Unrecognized format", e, format);
- return format;
- }
- }
-
- /**
- * Return the current time in YYYYMMDDTHHMMSS<tz> format
- */
- @LayoutlibDelegate
- /*package*/ static String toString(Time thisTime) {
- Calendar c = timeToCalendar(thisTime);
- return String.format(FORMAT, c);
- }
-
- @LayoutlibDelegate
- /*package*/ static boolean nativeParse(Time thisTime, String s) {
- Bridge.getLog().error(LayoutLog.TAG_UNSUPPORTED,
- "android.text.format.Time.parse() not supported.", null);
- return false;
- }
-
- @LayoutlibDelegate
- /*package*/ static boolean nativeParse3339(Time thisTime, String s) {
- Bridge.getLog().error(LayoutLog.TAG_UNSUPPORTED,
- "android.text.format.Time.parse3339() not supported.", null);
- return false;
- }
-
- @LayoutlibDelegate
- /*package*/ static void setToNow(Time thisTime) {
- calendarToTime(getCalendarInstance(thisTime), thisTime);
- }
-
- @LayoutlibDelegate
- /*package*/ static long toMillis(Time thisTime, boolean ignoreDst) {
- // TODO: Respect ignoreDst.
- return timeToCalendar(thisTime).getTimeInMillis();
- }
-
- @LayoutlibDelegate
- /*package*/ static void set(Time thisTime, long millis) {
- Calendar c = getCalendarInstance(thisTime);
- c.setTimeInMillis(millis);
- calendarToTime(c,thisTime);
- }
-
- @LayoutlibDelegate
- /*package*/ static String format2445(Time thisTime) {
- Bridge.getLog().error(LayoutLog.TAG_UNSUPPORTED,
- "android.text.format.Time.format2445() not supported.", null);
- return "";
- }
-
// ---- private helper methods ----
private static Calendar timeToCalendar(Time time) {
diff --git a/tools/layoutlib/bridge/src/android/view/accessibility/AccessibilityManager.java b/tools/layoutlib/bridge/src/android/view/accessibility/AccessibilityManager.java
index 1fd7836..d5170aa 100644
--- a/tools/layoutlib/bridge/src/android/view/accessibility/AccessibilityManager.java
+++ b/tools/layoutlib/bridge/src/android/view/accessibility/AccessibilityManager.java
@@ -16,6 +16,8 @@
package android.view.accessibility;
+import com.android.annotations.NonNull;
+
import android.accessibilityservice.AccessibilityServiceInfo;
import android.content.Context;
import android.content.pm.ServiceInfo;
@@ -31,14 +33,16 @@ import java.util.List;
* for example an {@link android.app.Activity} starts, the focus or selection of a
* {@link android.view.View} changes etc. Parties interested in handling accessibility
* events implement and register an accessibility service which extends
- * {@link android.accessibilityservice.AccessibilityService}.
+ * {@code android.accessibilityservice.AccessibilityService}.
*
* @see AccessibilityEvent
- * @see android.accessibilityservice.AccessibilityService
* @see android.content.Context#getSystemService
*/
+@SuppressWarnings("UnusedDeclaration")
public final class AccessibilityManager {
- private static AccessibilityManager sInstance = new AccessibilityManager();
+
+ private static AccessibilityManager sInstance = new AccessibilityManager(null, null, 0);
+
/**
* Listener for the accessibility state.
@@ -54,9 +58,46 @@ public final class AccessibilityManager {
}
/**
+ * Listener for the system touch exploration state. To listen for changes to
+ * the touch exploration state on the device, implement this interface and
+ * register it with the system by calling
+ * {@link #addTouchExplorationStateChangeListener}.
+ */
+ public interface TouchExplorationStateChangeListener {
+
+ /**
+ * Called when the touch exploration enabled state changes.
+ *
+ * @param enabled Whether touch exploration is enabled.
+ */
+ public void onTouchExplorationStateChanged(boolean enabled);
+ }
+
+ /**
+ * Listener for the system high text contrast state. To listen for changes to
+ * the high text contrast state on the device, implement this interface and
+ * register it with the system by calling
+ * {@link #addHighTextContrastStateChangeListener}.
+ */
+ public interface HighTextContrastChangeListener {
+
+ /**
+ * Called when the high text contrast enabled state changes.
+ *
+ * @param enabled Whether high text contrast is enabled.
+ */
+ public void onHighTextContrastStateChanged(boolean enabled);
+ }
+
+ private final IAccessibilityManagerClient.Stub mClient =
+ new IAccessibilityManagerClient.Stub() {
+ public void setState(int state) {
+ }
+ };
+
+ /**
* Get an AccessibilityManager instance (create one if necessary).
*
- * @hide
*/
public static AccessibilityManager getInstance(Context context) {
return sInstance;
@@ -67,7 +108,11 @@ public final class AccessibilityManager {
*
* @param context A {@link Context}.
*/
- private AccessibilityManager() {
+ public AccessibilityManager(Context context, IAccessibilityManager service, int userId) {
+ }
+
+ public IAccessibilityManagerClient getClient() {
+ return mClient;
}
/**
@@ -80,13 +125,28 @@ public final class AccessibilityManager {
}
/**
- * Sends an {@link AccessibilityEvent}. If this {@link AccessibilityManager} is not
- * enabled the call is a NOOP.
+ * Returns if the touch exploration in the system is enabled.
*
- * @param event The {@link AccessibilityEvent}.
+ * @return True if touch exploration is enabled, false otherwise.
+ */
+ public boolean isTouchExplorationEnabled() {
+ return true;
+ }
+
+ /**
+ * Returns if the high text contrast in the system is enabled.
+ * <p>
+ * <strong>Note:</strong> You need to query this only if you application is
+ * doing its own rendering and does not rely on the platform rendering pipeline.
+ * </p>
*
- * @throws IllegalStateException if a client tries to send an {@link AccessibilityEvent}
- * while accessibility is not enabled.
+ */
+ public boolean isHighTextContrastEnabled() {
+ return false;
+ }
+
+ /**
+ * Sends an {@link AccessibilityEvent}.
*/
public void sendAccessibilityEvent(AccessibilityEvent event) {
}
@@ -102,20 +162,40 @@ public final class AccessibilityManager {
*
* @return An unmodifiable list with {@link ServiceInfo}s.
*/
+ @Deprecated
public List<ServiceInfo> getAccessibilityServiceList() {
- // normal implementation does this in some case, so let's do the same
- // (unmodifiableList wrapped around null).
- List<ServiceInfo> services = null;
- return Collections.unmodifiableList(services);
+ return Collections.emptyList();
}
public List<AccessibilityServiceInfo> getInstalledAccessibilityServiceList() {
- // normal implementation does this in some case, so let's do the same
- // (unmodifiableList wrapped around null).
- List<AccessibilityServiceInfo> services = null;
- return Collections.unmodifiableList(services);
+ return Collections.emptyList();
+ }
+
+ /**
+ * Returns the {@link AccessibilityServiceInfo}s of the enabled accessibility services
+ * for a given feedback type.
+ *
+ * @param feedbackTypeFlags The feedback type flags.
+ * @return An unmodifiable list with {@link AccessibilityServiceInfo}s.
+ *
+ * @see AccessibilityServiceInfo#FEEDBACK_AUDIBLE
+ * @see AccessibilityServiceInfo#FEEDBACK_GENERIC
+ * @see AccessibilityServiceInfo#FEEDBACK_HAPTIC
+ * @see AccessibilityServiceInfo#FEEDBACK_SPOKEN
+ * @see AccessibilityServiceInfo#FEEDBACK_VISUAL
+ */
+ public List<AccessibilityServiceInfo> getEnabledAccessibilityServiceList(
+ int feedbackTypeFlags) {
+ return Collections.emptyList();
}
+ /**
+ * Registers an {@link AccessibilityStateChangeListener} for changes in
+ * the global accessibility state of the system.
+ *
+ * @param listener The listener.
+ * @return True if successfully registered.
+ */
public boolean addAccessibilityStateChangeListener(
AccessibilityStateChangeListener listener) {
return true;
@@ -126,6 +206,62 @@ public final class AccessibilityManager {
return true;
}
+ /**
+ * Registers a {@link TouchExplorationStateChangeListener} for changes in
+ * the global touch exploration state of the system.
+ *
+ * @param listener The listener.
+ * @return True if successfully registered.
+ */
+ public boolean addTouchExplorationStateChangeListener(
+ @NonNull TouchExplorationStateChangeListener listener) {
+ return true;
+ }
+
+ /**
+ * Unregisters a {@link TouchExplorationStateChangeListener}.
+ *
+ * @param listener The listener.
+ * @return True if successfully unregistered.
+ */
+ public boolean removeTouchExplorationStateChangeListener(
+ @NonNull TouchExplorationStateChangeListener listener) {
+ return true;
+ }
+
+ /**
+ * Registers a {@link HighTextContrastChangeListener} for changes in
+ * the global high text contrast state of the system.
+ *
+ * @param listener The listener.
+ * @return True if successfully registered.
+ *
+ */
+ public boolean addHighTextContrastStateChangeListener(
+ @NonNull HighTextContrastChangeListener listener) {
+ return true;
+ }
+
+ /**
+ * Unregisters a {@link HighTextContrastChangeListener}.
+ *
+ * @param listener The listener.
+ * @return True if successfully unregistered.
+ *
+ */
+ public boolean removeHighTextContrastStateChangeListener(
+ @NonNull HighTextContrastChangeListener listener) {
+ return true;
+ }
+
+ /**
+ * Sets the current state and notifies listeners, if necessary.
+ *
+ * @param stateFlags The state flags.
+ */
+ private void setStateLocked(int stateFlags) {
+ }
+
public int addAccessibilityInteractionConnection(IWindow windowToken,
IAccessibilityInteractionConnection connection) {
return View.NO_ID;
diff --git a/tools/layoutlib/bridge/src/libcore/icu/ICU_Delegate.java b/tools/layoutlib/bridge/src/libcore/icu/ICU_Delegate.java
index 71947b0..8898856 100644
--- a/tools/layoutlib/bridge/src/libcore/icu/ICU_Delegate.java
+++ b/tools/layoutlib/bridge/src/libcore/icu/ICU_Delegate.java
@@ -177,12 +177,6 @@ public class ICU_Delegate {
return Locale.getISOCountries();
}
-
- @LayoutlibDelegate
- /*package*/ static String localeForLanguageTag(String languageTag, boolean strict) {
- return "";
- }
-
@LayoutlibDelegate
/*package*/ static boolean initLocaleDataNative(String locale, LocaleData result) {