Merge "Adjust AppWidgetProviderInfo#getDescription to return CharSequence." into sc-dev

This commit is contained in:
Alina Zaidi
2021-02-24 20:01:39 +00:00
committed by Android (Google) Code Review
3 changed files with 20 additions and 11 deletions

View File

@@ -8452,7 +8452,7 @@ package android.appwidget {
method public int describeContents(); method public int describeContents();
method public final android.os.UserHandle getProfile(); method public final android.os.UserHandle getProfile();
method @NonNull public android.content.pm.ActivityInfo getProviderInfo(); method @NonNull public android.content.pm.ActivityInfo getProviderInfo();
method @Nullable public final String loadDescription(@NonNull android.content.Context); method @Nullable public final CharSequence loadDescription(@NonNull android.content.Context);
method public final android.graphics.drawable.Drawable loadIcon(@NonNull android.content.Context, int); method public final android.graphics.drawable.Drawable loadIcon(@NonNull android.content.Context, int);
method public final String loadLabel(android.content.pm.PackageManager); method public final String loadLabel(android.content.pm.PackageManager);
method public final android.graphics.drawable.Drawable loadPreviewImage(@NonNull android.content.Context, int); method public final android.graphics.drawable.Drawable loadPreviewImage(@NonNull android.content.Context, int);
@@ -8470,7 +8470,7 @@ package android.appwidget {
field public static final int WIDGET_FEATURE_RECONFIGURABLE = 1; // 0x1 field public static final int WIDGET_FEATURE_RECONFIGURABLE = 1; // 0x1
field public int autoAdvanceViewId; field public int autoAdvanceViewId;
field public android.content.ComponentName configure; field public android.content.ComponentName configure;
field @IdRes public int descriptionResource; field @IdRes public int descriptionRes;
field public int icon; field public int icon;
field public int initialKeyguardLayout; field public int initialKeyguardLayout;
field public int initialLayout; field public int initialLayout;

View File

@@ -332,12 +332,13 @@ public class AppWidgetProviderInfo implements Parcelable {
/** /**
* Resource id for the description of the AppWidget. * Resource id for the description of the AppWidget.
*
* <p>This field corresponds to the <code>android:description</code> attribute in the AppWidget * <p>This field corresponds to the <code>android:description</code> attribute in the AppWidget
* meta-data file. * meta-data file.
*/ */
@SuppressLint("MutableBareField") @SuppressLint("MutableBareField")
@IdRes @IdRes
public int descriptionResource; public int descriptionRes;
/** /**
* Flags indicating various features supported by the widget. These are hints to the widget * Flags indicating various features supported by the widget. These are hints to the widget
@@ -385,7 +386,7 @@ public class AppWidgetProviderInfo implements Parcelable {
this.widgetCategory = in.readInt(); this.widgetCategory = in.readInt();
this.providerInfo = in.readTypedObject(ActivityInfo.CREATOR); this.providerInfo = in.readTypedObject(ActivityInfo.CREATOR);
this.widgetFeatures = in.readInt(); this.widgetFeatures = in.readInt();
this.descriptionResource = in.readInt(); this.descriptionRes = in.readInt();
} }
/** /**
@@ -442,14 +443,22 @@ public class AppWidgetProviderInfo implements Parcelable {
return loadDrawable(context, density, previewImage, false); return loadDrawable(context, density, previewImage, false);
} }
/** Loads localized description for the app widget. */ /**
* Loads localized description for the app widget.
*
* <p>Description is intended to be displayed in the UI of the widget picker.
*
* @param context Context for accessing resources.
*
* @return CharSequence for app widget description for the current locale.
*/
@Nullable @Nullable
public final String loadDescription(@NonNull Context context) { public final CharSequence loadDescription(@NonNull Context context) {
if (ResourceId.isValid(descriptionResource)) { if (ResourceId.isValid(descriptionRes)) {
return context.getPackageManager() return context.getPackageManager()
.getText( .getText(
providerInfo.packageName, providerInfo.packageName,
descriptionResource, descriptionRes,
providerInfo.applicationInfo) providerInfo.applicationInfo)
.toString() .toString()
.trim(); .trim();
@@ -499,7 +508,7 @@ public class AppWidgetProviderInfo implements Parcelable {
out.writeInt(this.widgetCategory); out.writeInt(this.widgetCategory);
out.writeTypedObject(this.providerInfo, flags); out.writeTypedObject(this.providerInfo, flags);
out.writeInt(this.widgetFeatures); out.writeInt(this.widgetFeatures);
out.writeInt(this.descriptionResource); out.writeInt(this.descriptionRes);
} }
@Override @Override
@@ -528,7 +537,7 @@ public class AppWidgetProviderInfo implements Parcelable {
that.widgetCategory = this.widgetCategory; that.widgetCategory = this.widgetCategory;
that.providerInfo = this.providerInfo; that.providerInfo = this.providerInfo;
that.widgetFeatures = this.widgetFeatures; that.widgetFeatures = this.widgetFeatures;
that.descriptionResource = this.descriptionResource; that.descriptionRes = this.descriptionRes;
return that; return that;
} }

View File

@@ -2673,7 +2673,7 @@ class AppWidgetServiceImpl extends IAppWidgetService.Stub implements WidgetBacku
AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN); AppWidgetProviderInfo.WIDGET_CATEGORY_HOME_SCREEN);
info.widgetFeatures = sa.getInt( info.widgetFeatures = sa.getInt(
com.android.internal.R.styleable.AppWidgetProviderInfo_widgetFeatures, 0); com.android.internal.R.styleable.AppWidgetProviderInfo_widgetFeatures, 0);
info.descriptionResource = sa.getResourceId( info.descriptionRes = sa.getResourceId(
com.android.internal.R.styleable.AppWidgetProviderInfo_description, com.android.internal.R.styleable.AppWidgetProviderInfo_description,
Resources.ID_NULL); Resources.ID_NULL);
sa.recycle(); sa.recycle();