Adds hotspot support to LayerDrawable and InsetDrawable
Change-Id: Id17f460c8e4e0a6bf9fd39a4a7b8c79fa2df8d29
diff --git a/graphics/java/android/graphics/drawable/InsetDrawable.java b/graphics/java/android/graphics/drawable/InsetDrawable.java
index 8188782..f841d6a 100644
--- a/graphics/java/android/graphics/drawable/InsetDrawable.java
+++ b/graphics/java/android/graphics/drawable/InsetDrawable.java
@@ -182,6 +182,38 @@
}
}
+ /**
+ * @hide
+ */
+ @Override
+ public boolean supportsHotspots() {
+ return mInsetState.mDrawable.supportsHotspots();
+ }
+
+ /**
+ * @hide
+ */
+ @Override
+ public void setHotspot(int id, float x, float y) {
+ mInsetState.mDrawable.setHotspot(id, x, y);
+ }
+
+ /**
+ * @hide
+ */
+ @Override
+ public void removeHotspot(int id) {
+ mInsetState.mDrawable.removeHotspot(id);
+ }
+
+ /**
+ * @hide
+ */
+ @Override
+ public void clearHotspots() {
+ mInsetState.mDrawable.clearHotspots();
+ }
+
@Override
public boolean setVisible(boolean visible, boolean restart) {
mInsetState.mDrawable.setVisible(visible, restart);
diff --git a/graphics/java/android/graphics/drawable/LayerDrawable.java b/graphics/java/android/graphics/drawable/LayerDrawable.java
index e8b3f64..2e098a0 100644
--- a/graphics/java/android/graphics/drawable/LayerDrawable.java
+++ b/graphics/java/android/graphics/drawable/LayerDrawable.java
@@ -423,6 +423,58 @@
}
}
+ /**
+ * @hide
+ */
+ @Override
+ public boolean supportsHotspots() {
+ final ChildDrawable[] array = mLayerState.mChildren;
+ final int N = mLayerState.mNum;
+ for (int i = 0; i < N; i++) {
+ if (array[i].mDrawable.supportsHotspots()) {
+ return true;
+ }
+ }
+
+ return false;
+ }
+
+ /**
+ * @hide
+ */
+ @Override
+ public void setHotspot(int id, float x, float y) {
+ final ChildDrawable[] array = mLayerState.mChildren;
+ final int N = mLayerState.mNum;
+ for (int i = 0; i < N; i++) {
+ array[i].mDrawable.setHotspot(id, x, y);
+ }
+ }
+
+ /**
+ * @hide
+ */
+ @Override
+ public void removeHotspot(int id) {
+ final ChildDrawable[] array = mLayerState.mChildren;
+ final int N = mLayerState.mNum;
+ for (int i = 0; i < N; i++) {
+ array[i].mDrawable.removeHotspot(id);
+ }
+ }
+
+ /**
+ * @hide
+ */
+ @Override
+ public void clearHotspots() {
+ final ChildDrawable[] array = mLayerState.mChildren;
+ final int N = mLayerState.mNum;
+ for (int i = 0; i < N; i++) {
+ array[i].mDrawable.clearHotspots();
+ }
+ }
+
private void computeStackedPadding(Rect padding) {
padding.left = 0;
padding.top = 0;