diff --git a/core/java/android/appwidget/AppWidgetHostView.java b/core/java/android/appwidget/AppWidgetHostView.java index cd8f1260b5904..bb5f7a1d606ee 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. diff --git a/core/res/res/layout/work_widget_mask_view.xml b/core/res/res/layout/work_widget_mask_view.xml index 3c4770552383a..39e1bbb467b42 100644 --- a/core/res/res/layout/work_widget_mask_view.xml +++ b/core/res/res/layout/work_widget_mask_view.xml @@ -19,7 +19,8 @@ Copyright (C) 2015 The Android Open Source Project android:layout_width="match_parent" android:layout_height="match_parent" android:background="#F3374248" - android:clickable="true" > + android:importantForAccessibility="noHideDescendants" + android:clickable="true"> Touch to learn more. + + Suspended %1$s + diff --git a/core/res/res/values/symbols.xml b/core/res/res/values/symbols.xml index 3cb187631357f..e99d57f0fa76f 100644 --- a/core/res/res/values/symbols.xml +++ b/core/res/res/values/symbols.xml @@ -2595,4 +2595,5 @@ +