diff options
Diffstat (limited to 'core/java/android/appwidget/AppWidgetHostView.java')
| -rw-r--r-- | core/java/android/appwidget/AppWidgetHostView.java | 20 |
1 files changed, 19 insertions, 1 deletions
diff --git a/core/java/android/appwidget/AppWidgetHostView.java b/core/java/android/appwidget/AppWidgetHostView.java index cd8f1260b590..bb5f7a1d606e 100644 --- a/core/java/android/appwidget/AppWidgetHostView.java +++ b/core/java/android/appwidget/AppWidgetHostView.java @@ -19,6 +19,7 @@ package android.appwidget; import android.content.ComponentName; import android.content.Context; import android.content.pm.ApplicationInfo; +import android.content.pm.LauncherApps; import android.content.pm.PackageManager; import android.content.pm.PackageManager.NameNotFoundException; import android.content.res.Resources; @@ -150,7 +151,7 @@ public class AppWidgetHostView extends FrameLayout { // We add padding to the AppWidgetHostView if necessary Rect padding = getDefaultPaddingForWidget(mContext, info.provider, null); setPadding(padding.left, padding.top, padding.right, padding.bottom); - setContentDescription(info.label); + updateContentDescription(info); } } @@ -459,6 +460,7 @@ public class AppWidgetHostView extends FrameLayout { } applyContent(content, recycled, exception); + updateContentDescription(mInfo); } private void applyContent(View content, boolean recycled, Exception exception) { @@ -493,6 +495,22 @@ public class AppWidgetHostView extends FrameLayout { } } + private void updateContentDescription(AppWidgetProviderInfo info) { + if (info != null) { + LauncherApps launcherApps = getContext().getSystemService(LauncherApps.class); + ApplicationInfo appInfo = launcherApps.getApplicationInfo( + info.provider.getPackageName(), 0, info.getProfile()); + if (appInfo != null && + (appInfo.flags & ApplicationInfo.FLAG_SUSPENDED) != 0) { + setContentDescription( + Resources.getSystem().getString( + com.android.internal.R.string.suspended_widget_accessibility, info.label)); + } else { + setContentDescription(info.label); + } + } + } + private void inflateAsync(RemoteViews remoteViews) { // Prepare a local reference to the remote Context so we're ready to // inflate any requested LayoutParams. |
