diff options
| author | 2020-02-19 23:51:48 +0000 | |
|---|---|---|
| committer | 2020-02-19 23:51:48 +0000 | |
| commit | 2187f9e855941e62b4db310a05464b737637455c (patch) | |
| tree | fc6d64e2ff32cc7c87f9f870732c3950fe477995 | |
| parent | 9e5b4507635bbaab3acb307fef10a774c401c2c2 (diff) | |
| parent | 81332eff4add38ca4a8acfe331b2d7d6d2307d8d (diff) | |
Merge "Revise the modifier and naming of public APIs for allow rich content."
4 files changed, 51 insertions, 1 deletions
diff --git a/api/current.txt b/api/current.txt index 4120d6798763..0f1d6f0465a5 100644 --- a/api/current.txt +++ b/api/current.txt @@ -2983,7 +2983,6 @@ package android.accessibilityservice { method public int describeContents(); method public static String feedbackTypeToString(int); method public static String flagToString(int); - method public int getAnimatedImageRes(); method @Deprecated public boolean getCanRetrieveWindowContent(); method public int getCapabilities(); method @Deprecated public String getDescription(); @@ -2992,6 +2991,7 @@ package android.accessibilityservice { method public int getNonInteractiveUiTimeoutMillis(); method public android.content.pm.ResolveInfo getResolveInfo(); method public String getSettingsActivityName(); + method @Nullable public android.graphics.drawable.Drawable loadAnimatedImage(@NonNull android.content.pm.PackageManager); method public String loadDescription(android.content.pm.PackageManager); method @Nullable public String loadHtmlDescription(@NonNull android.content.pm.PackageManager); method public CharSequence loadSummary(android.content.pm.PackageManager); diff --git a/core/java/android/accessibilityservice/AccessibilityServiceInfo.java b/core/java/android/accessibilityservice/AccessibilityServiceInfo.java index c1e21959a667..c37328454c7d 100644 --- a/core/java/android/accessibilityservice/AccessibilityServiceInfo.java +++ b/core/java/android/accessibilityservice/AccessibilityServiceInfo.java @@ -27,6 +27,7 @@ import android.compat.annotation.EnabledAfter; import android.compat.annotation.UnsupportedAppUsage; import android.content.ComponentName; import android.content.Context; +import android.content.pm.ApplicationInfo; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.pm.ResolveInfo; @@ -34,6 +35,7 @@ import android.content.pm.ServiceInfo; import android.content.res.Resources; import android.content.res.TypedArray; import android.content.res.XmlResourceParser; +import android.graphics.drawable.Drawable; import android.hardware.fingerprint.FingerprintManager; import android.os.Build; import android.os.Parcel; @@ -786,12 +788,33 @@ public class AccessibilityServiceInfo implements Parcelable { * {@link AccessibilityService#SERVICE_META_DATA meta-data}.</strong> * </p> * @return The animated image resource id. + * @hide */ public int getAnimatedImageRes() { return mAnimatedImageRes; } /** + * The animated image drawable. + * <p> + * <strong>Statically set from + * {@link AccessibilityService#SERVICE_META_DATA meta-data}.</strong> + * </p> + * @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. * <p> * <strong>Statically set from 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,12 +195,31 @@ 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. * * @return The localized html description. 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 @@ -90,6 +90,12 @@ public class AccessibilityShortcutInfoTest { } @Test + public void testLoadAnimatedImage() { + assertNotNull("Can't find animated image", + mShortcutInfo.loadAnimatedImage(mPackageManager)); + } + + @Test public void testHtmlDescription() { final String htmlDescription = mTargetContext.getResources() .getString(R.string.accessibility_shortcut_html_description); |