diff options
| -rw-r--r-- | api/current.txt | 2 | ||||
| -rw-r--r-- | api/system-current.txt | 2 | ||||
| -rw-r--r-- | api/test-current.txt | 2 | ||||
| -rw-r--r-- | core/java/android/appwidget/AppWidgetHost.java | 11 | ||||
| -rw-r--r-- | core/java/android/appwidget/AppWidgetManager.java | 17 | ||||
| -rw-r--r-- | core/java/android/appwidget/AppWidgetProviderInfo.java | 13 | ||||
| -rw-r--r-- | core/java/android/content/pm/LauncherApps.java | 9 | ||||
| -rw-r--r-- | services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest9.java | 3 |
8 files changed, 28 insertions, 31 deletions
diff --git a/api/current.txt b/api/current.txt index 634812cb9909..02dee34d01a9 100644 --- a/api/current.txt +++ b/api/current.txt @@ -9855,7 +9855,7 @@ package android.content.pm { method public boolean accept(android.os.Bundle); method public boolean accept(); method public int describeContents(); - method public android.appwidget.AppWidgetProviderInfo getAppWidgetProviderInfo(); + method public android.appwidget.AppWidgetProviderInfo getAppWidgetProviderInfo(android.content.Context); method public int getRequestType(); method public android.content.pm.ShortcutInfo getShortcutInfo(); method public boolean isValid(); diff --git a/api/system-current.txt b/api/system-current.txt index 3871e3888b9a..a044e2643e38 100644 --- a/api/system-current.txt +++ b/api/system-current.txt @@ -10288,7 +10288,7 @@ package android.content.pm { method public boolean accept(android.os.Bundle); method public boolean accept(); method public int describeContents(); - method public android.appwidget.AppWidgetProviderInfo getAppWidgetProviderInfo(); + method public android.appwidget.AppWidgetProviderInfo getAppWidgetProviderInfo(android.content.Context); method public int getRequestType(); method public android.content.pm.ShortcutInfo getShortcutInfo(); method public boolean isValid(); diff --git a/api/test-current.txt b/api/test-current.txt index 7800b80d4058..72eb00660de3 100644 --- a/api/test-current.txt +++ b/api/test-current.txt @@ -9883,7 +9883,7 @@ package android.content.pm { method public boolean accept(android.os.Bundle); method public boolean accept(); method public int describeContents(); - method public android.appwidget.AppWidgetProviderInfo getAppWidgetProviderInfo(); + method public android.appwidget.AppWidgetProviderInfo getAppWidgetProviderInfo(android.content.Context); method public int getRequestType(); method public android.content.pm.ShortcutInfo getShortcutInfo(); method public boolean isValid(); diff --git a/core/java/android/appwidget/AppWidgetHost.java b/core/java/android/appwidget/AppWidgetHost.java index cd144695a989..6ba52b70d1ab 100644 --- a/core/java/android/appwidget/AppWidgetHost.java +++ b/core/java/android/appwidget/AppWidgetHost.java @@ -36,7 +36,6 @@ import android.os.RemoteException; import android.os.ServiceManager; import android.util.DisplayMetrics; import android.util.SparseArray; -import android.util.TypedValue; import android.widget.RemoteViews; import android.widget.RemoteViews.OnClickHandler; @@ -381,15 +380,7 @@ public class AppWidgetHost { // Convert complex to dp -- we are getting the AppWidgetProviderInfo from the // AppWidgetService, which doesn't have our context, hence we need to do the // conversion here. - appWidget.minWidth = - TypedValue.complexToDimensionPixelSize(appWidget.minWidth, mDisplayMetrics); - appWidget.minHeight = - TypedValue.complexToDimensionPixelSize(appWidget.minHeight, mDisplayMetrics); - appWidget.minResizeWidth = - TypedValue.complexToDimensionPixelSize(appWidget.minResizeWidth, mDisplayMetrics); - appWidget.minResizeHeight = - TypedValue.complexToDimensionPixelSize(appWidget.minResizeHeight, mDisplayMetrics); - + appWidget.updateDimensions(mDisplayMetrics); synchronized (mViews) { v = mViews.get(appWidgetId); } diff --git a/core/java/android/appwidget/AppWidgetManager.java b/core/java/android/appwidget/AppWidgetManager.java index 31e779f0dc4b..9980e9661dd3 100644 --- a/core/java/android/appwidget/AppWidgetManager.java +++ b/core/java/android/appwidget/AppWidgetManager.java @@ -31,7 +31,6 @@ import android.os.Process; import android.os.RemoteException; import android.os.UserHandle; import android.util.DisplayMetrics; -import android.util.TypedValue; import android.widget.RemoteViews; import com.android.internal.appwidget.IAppWidgetService; @@ -760,7 +759,7 @@ public class AppWidgetManager { } for (AppWidgetProviderInfo info : providers.getList()) { // Converting complex to dp. - convertSizesToPixels(info); + info.updateDimensions(mDisplayMetrics); } return providers.getList(); } catch (RemoteException e) { @@ -782,7 +781,7 @@ public class AppWidgetManager { AppWidgetProviderInfo info = mService.getAppWidgetInfo(mPackageName, appWidgetId); if (info != null) { // Converting complex to dp. - convertSizesToPixels(info); + info.updateDimensions(mDisplayMetrics); } return info; } catch (RemoteException e) { @@ -1072,18 +1071,6 @@ public class AppWidgetManager { } } - private void convertSizesToPixels(AppWidgetProviderInfo info) { - // Converting complex to dp. - info.minWidth = TypedValue.complexToDimensionPixelSize(info.minWidth, - mDisplayMetrics); - info.minHeight = TypedValue.complexToDimensionPixelSize(info.minHeight, - mDisplayMetrics); - info.minResizeWidth = TypedValue.complexToDimensionPixelSize(info.minResizeWidth, - mDisplayMetrics); - info.minResizeHeight = TypedValue.complexToDimensionPixelSize(info.minResizeHeight, - mDisplayMetrics); - } - /** * Request to pin an app widget on the current launcher. It's up to the launcher to accept this * request (optionally showing a user confirmation). If the request is accepted, the caller will diff --git a/core/java/android/appwidget/AppWidgetProviderInfo.java b/core/java/android/appwidget/AppWidgetProviderInfo.java index b4d79b484c89..06fdb32fe495 100644 --- a/core/java/android/appwidget/AppWidgetProviderInfo.java +++ b/core/java/android/appwidget/AppWidgetProviderInfo.java @@ -26,6 +26,8 @@ import android.os.Parcel; import android.os.Parcelable; import android.content.ComponentName; import android.os.UserHandle; +import android.util.DisplayMetrics; +import android.util.TypedValue; /** * Describes the meta data for an installed AppWidget provider. The fields in this class @@ -379,6 +381,17 @@ public class AppWidgetProviderInfo implements Parcelable { } /** + * @hide + */ + public void updateDimensions(DisplayMetrics displayMetrics) { + // Converting complex to dp. + minWidth = TypedValue.complexToDimensionPixelSize(minWidth, displayMetrics); + minHeight = TypedValue.complexToDimensionPixelSize(minHeight, displayMetrics); + minResizeWidth = TypedValue.complexToDimensionPixelSize(minResizeWidth, displayMetrics); + minResizeHeight = TypedValue.complexToDimensionPixelSize(minResizeHeight, displayMetrics); + } + + /** * Parcelable.Creator that instantiates AppWidgetProviderInfo objects */ public static final Parcelable.Creator<AppWidgetProviderInfo> CREATOR diff --git a/core/java/android/content/pm/LauncherApps.java b/core/java/android/content/pm/LauncherApps.java index 31eaa0b6a6bb..cfe6eeea38ce 100644 --- a/core/java/android/content/pm/LauncherApps.java +++ b/core/java/android/content/pm/LauncherApps.java @@ -1256,8 +1256,13 @@ public class LauncherApps { * {@link #REQUEST_TYPE_APPWIDGET} request. */ @Nullable - public AppWidgetProviderInfo getAppWidgetProviderInfo() { - return mAppWidgetInfo; + public AppWidgetProviderInfo getAppWidgetProviderInfo(Context context) { + if (mAppWidgetInfo != null) { + AppWidgetProviderInfo info = mAppWidgetInfo.clone(); + info.updateDimensions(context.getResources().getDisplayMetrics()); + return info; + } + return null; } /** diff --git a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest9.java b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest9.java index 84a7c198cede..cfa35c2c50a2 100644 --- a/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest9.java +++ b/services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest9.java @@ -83,7 +83,8 @@ public class ShortcutManagerTest9 extends BaseShortcutManagerTest { private void assertPinItemRequest(PinItemRequest actualRequest, String className) { assertNotNull(actualRequest); assertEquals(PinItemRequest.REQUEST_TYPE_APPWIDGET, actualRequest.getRequestType()); - assertEquals(className, actualRequest.getAppWidgetProviderInfo().provider.getClassName()); + assertEquals(className, actualRequest.getAppWidgetProviderInfo(getTestContext()) + .provider.getClassName()); } public void testNotForeground() { |