summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--api/current.txt2
-rw-r--r--api/system-current.txt2
-rw-r--r--api/test-current.txt2
-rw-r--r--core/java/android/appwidget/AppWidgetHost.java11
-rw-r--r--core/java/android/appwidget/AppWidgetManager.java17
-rw-r--r--core/java/android/appwidget/AppWidgetProviderInfo.java13
-rw-r--r--core/java/android/content/pm/LauncherApps.java9
-rw-r--r--services/tests/servicestests/src/com/android/server/pm/ShortcutManagerTest9.java3
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() {