Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit af6ef8f6 authored by Kenny Guy's avatar Kenny Guy
Browse files

Set accessibility string for suspended widgets.

Update the content description to mention the
widget is suspended.
Mark the remote views as not significant for
accessibility.

Bug: 28909714
Change-Id: I8804d41e520e2b4af7ade0fa8820ee7b2488bde5
parent d86ac811
Loading
Loading
Loading
Loading
+19 −1
Original line number Original line Diff line number Diff line
@@ -19,6 +19,7 @@ package android.appwidget;
import android.content.ComponentName;
import android.content.ComponentName;
import android.content.Context;
import android.content.Context;
import android.content.pm.ApplicationInfo;
import android.content.pm.ApplicationInfo;
import android.content.pm.LauncherApps;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.content.res.Resources;
@@ -150,7 +151,7 @@ public class AppWidgetHostView extends FrameLayout {
            // We add padding to the AppWidgetHostView if necessary
            // We add padding to the AppWidgetHostView if necessary
            Rect padding = getDefaultPaddingForWidget(mContext, info.provider, null);
            Rect padding = getDefaultPaddingForWidget(mContext, info.provider, null);
            setPadding(padding.left, padding.top, padding.right, padding.bottom);
            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);
        applyContent(content, recycled, exception);
        updateContentDescription(mInfo);
    }
    }


    private void applyContent(View content, boolean recycled, Exception exception) {
    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) {
    private void inflateAsync(RemoteViews remoteViews) {
        // Prepare a local reference to the remote Context so we're ready to
        // Prepare a local reference to the remote Context so we're ready to
        // inflate any requested LayoutParams.
        // inflate any requested LayoutParams.
+2 −1
Original line number Original line Diff line number Diff line
@@ -19,6 +19,7 @@ Copyright (C) 2015 The Android Open Source Project
    android:layout_width="match_parent"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_height="match_parent"
    android:background="#F3374248"
    android:background="#F3374248"
    android:importantForAccessibility="noHideDescendants"
    android:clickable="true">
    android:clickable="true">


    <ImageView android:id="@+id/work_widget_app_icon"
    <ImageView android:id="@+id/work_widget_app_icon"
+3 −0
Original line number Original line Diff line number Diff line
@@ -4317,4 +4317,7 @@
    <!-- Description of notification shown when device has been forced to safe mode after a security compromise. -->
    <!-- Description of notification shown when device has been forced to safe mode after a security compromise. -->
    <string name="audit_safemode_notification_details">Touch to learn more.</string>
    <string name="audit_safemode_notification_details">Touch to learn more.</string>


    <!-- Accessibilty string added to a widget that has been suspended [CHAR LIMIT=20] -->
    <string name="suspended_widget_accessibility">Suspended <xliff:g id="label" example="Calendar">%1$s</xliff:g></string>

</resources>
</resources>
+1 −0
Original line number Original line Diff line number Diff line
@@ -2594,4 +2594,5 @@
  <!-- Pinner Service -->
  <!-- Pinner Service -->
  <java-symbol type="array" name="config_defaultPinnerServiceFiles" />
  <java-symbol type="array" name="config_defaultPinnerServiceFiles" />


  <java-symbol type="string" name="suspended_widget_accessibility" />
</resources>
</resources>