From 81332eff4add38ca4a8acfe331b2d7d6d2307d8d Mon Sep 17 00:00:00 2001
From: Peter_Liang
+ * Statically set from + * {@link AccessibilityService#SERVICE_META_DATA meta-data}. + *
+ * @return The animated image drawable. + */ + @Nullable + public Drawable loadAnimatedImage(@NonNull PackageManager packageManager) { + if (mAnimatedImageRes == /* invalid */ 0) { + return null; + } + + final String packageName = mComponentName.getPackageName(); + final ApplicationInfo applicationInfo = mResolveInfo.serviceInfo.applicationInfo; + + return packageManager.getDrawable(packageName, mAnimatedImageRes, applicationInfo); + } + /** * Whether this service can retrieve the current window's content. *diff --git a/core/java/android/accessibilityservice/AccessibilityShortcutInfo.java b/core/java/android/accessibilityservice/AccessibilityShortcutInfo.java index 9912d2b1cc8b..d537ce1253dc 100644 --- a/core/java/android/accessibilityservice/AccessibilityShortcutInfo.java +++ b/core/java/android/accessibilityservice/AccessibilityShortcutInfo.java @@ -22,10 +22,12 @@ import android.content.ComponentName; import android.content.Context; import android.content.Intent; import android.content.pm.ActivityInfo; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.res.Resources; import android.content.res.TypedArray; import android.content.res.XmlResourceParser; +import android.graphics.drawable.Drawable; import android.util.AttributeSet; import android.util.Xml; @@ -193,11 +195,30 @@ public final class AccessibilityShortcutInfo { * The animated image resource id of the accessibility shortcut target. * * @return The animated image resource id. + * + * @hide */ public int getAnimatedImageRes() { return mAnimatedImageRes; } + /** + * The animated image drawable of the accessibility shortcut target. + * + * @return The animated image drawable. + */ + @Nullable + public Drawable loadAnimatedImage(@NonNull PackageManager packageManager) { + if (mAnimatedImageRes == /* invalid */ 0) { + return null; + } + + final String packageName = mComponentName.getPackageName(); + final ApplicationInfo applicationInfo = mActivityInfo.applicationInfo; + + return packageManager.getDrawable(packageName, mAnimatedImageRes, applicationInfo); + } + /** * The localized html description of the accessibility shortcut target. * diff --git a/core/tests/coretests/src/android/accessibilityservice/AccessibilityShortcutInfoTest.java b/core/tests/coretests/src/android/accessibilityservice/AccessibilityShortcutInfoTest.java index 82a7b2c9217e..9f0af60f33b7 100644 --- a/core/tests/coretests/src/android/accessibilityservice/AccessibilityShortcutInfoTest.java +++ b/core/tests/coretests/src/android/accessibilityservice/AccessibilityShortcutInfoTest.java @@ -89,6 +89,12 @@ public class AccessibilityShortcutInfoTest { mShortcutInfo.getAnimatedImageRes(), is(R.drawable.bitmap_drawable)); } + @Test + public void testLoadAnimatedImage() { + assertNotNull("Can't find animated image", + mShortcutInfo.loadAnimatedImage(mPackageManager)); + } + @Test public void testHtmlDescription() { final String htmlDescription = mTargetContext.getResources() -- cgit v1.2.3-59-g8ed1b