summaryrefslogtreecommitdiffstats
path: root/src/com/android/launcher3/WidgetPreviewLoader.java
diff options
context:
space:
mode:
Diffstat (limited to 'src/com/android/launcher3/WidgetPreviewLoader.java')
-rw-r--r--src/com/android/launcher3/WidgetPreviewLoader.java42
1 files changed, 20 insertions, 22 deletions
diff --git a/src/com/android/launcher3/WidgetPreviewLoader.java b/src/com/android/launcher3/WidgetPreviewLoader.java
index 5ee1f2615..1cf3bc469 100644
--- a/src/com/android/launcher3/WidgetPreviewLoader.java
+++ b/src/com/android/launcher3/WidgetPreviewLoader.java
@@ -66,17 +66,19 @@ public class WidgetPreviewLoader {
private final UserManagerCompat mUserManager;
private final AppWidgetManagerCompat mManager;
private final CacheDb mDb;
+ private final InvariantDeviceProfile mDeviceProfile;
private final MainThreadExecutor mMainThreadExecutor = new MainThreadExecutor();
private final Handler mWorkerHandler;
- public WidgetPreviewLoader(Context context, IconCache iconCache) {
+ public WidgetPreviewLoader(Context context, InvariantDeviceProfile inv, IconCache iconCache) {
mContext = context;
mIconCache = iconCache;
mManager = AppWidgetManagerCompat.getInstance(context);
mUserManager = UserManagerCompat.getInstance(context);
mDb = new CacheDb(context);
mWorkerHandler = new Handler(LauncherModel.getWorkerLooper());
+ mDeviceProfile = inv;
}
/**
@@ -86,8 +88,8 @@ public class WidgetPreviewLoader {
* @param o either {@link LauncherAppWidgetProviderInfo} or {@link ResolveInfo}
* @return a request id which can be used to cancel the request.
*/
- public PreviewLoadRequest getPreview(final Object o, int previewWidth, int previewHeight,
- WidgetCell caller) {
+ public PreviewLoadRequest getPreview(final Object o, int previewWidth,
+ int previewHeight, WidgetCell caller) {
String size = previewWidth + "x" + previewHeight;
WidgetCacheKey key = getObjectKey(o, size);
@@ -329,23 +331,18 @@ public class WidgetPreviewLoader {
return null;
}
- private Bitmap generatePreview(Object info, Bitmap recycle, int previewWidth, int previewHeight) {
+ private Bitmap generatePreview(Launcher launcher, Object info, Bitmap recycle,
+ int previewWidth, int previewHeight) {
if (info instanceof LauncherAppWidgetProviderInfo) {
- return generateWidgetPreview((LauncherAppWidgetProviderInfo) info, previewWidth, recycle);
+ return generateWidgetPreview(launcher, (LauncherAppWidgetProviderInfo) info,
+ previewWidth, recycle, null);
} else {
- return generateShortcutPreview(
+ return generateShortcutPreview(launcher,
(ResolveInfo) info, previewWidth, previewHeight, recycle);
}
}
- public Bitmap generateWidgetPreview(LauncherAppWidgetProviderInfo info,
- int previewWidth, Bitmap preview) {
- int maxWidth = Math.min(previewWidth, info.spanX
- * LauncherAppState.getInstance().getDynamicGrid().getDeviceProfile().cellWidthPx);
- return generateWidgetPreview(info, maxWidth, preview, null);
- }
-
- public Bitmap generateWidgetPreview(LauncherAppWidgetProviderInfo info,
+ public Bitmap generateWidgetPreview(Launcher launcher, LauncherAppWidgetProviderInfo info,
int maxPreviewWidth, Bitmap preview, int[] preScaledWidthOut) {
// Load the preview image if possible
if (maxPreviewWidth < 0) maxPreviewWidth = Integer.MAX_VALUE;
@@ -362,8 +359,8 @@ public class WidgetPreviewLoader {
}
final boolean widgetPreviewExists = (drawable != null);
- final int spanX = info.spanX < 1 ? 1 : info.spanX;
- final int spanY = info.spanY < 1 ? 1 : info.spanY;
+ final int spanX = info.getSpanX(launcher) < 1 ? 1 : info.getSpanX(launcher);
+ final int spanY = info.getSpanY(launcher) < 1 ? 1 : info.getSpanY(launcher);
int previewWidth;
int previewHeight;
@@ -413,8 +410,7 @@ public class WidgetPreviewLoader {
} else {
final Paint p = new Paint();
p.setFilterBitmap(true);
- int appIconSize = LauncherAppState.getInstance().getDynamicGrid()
- .getDeviceProfile().iconSizePx;
+ int appIconSize = launcher.getDeviceProfile().iconSizePx;
// draw the spanX x spanY tiles
final Rect src = new Rect(0, 0, tileBitmap.getWidth(), tileBitmap.getHeight());
@@ -455,7 +451,7 @@ public class WidgetPreviewLoader {
}
private Bitmap generateShortcutPreview(
- ResolveInfo info, int maxWidth, int maxHeight, Bitmap preview) {
+ Launcher launcher, ResolveInfo info, int maxWidth, int maxHeight, Bitmap preview) {
final Canvas c = new Canvas();
if (preview == null) {
preview = Bitmap.createBitmap(maxWidth, maxHeight, Config.ARGB_8888);
@@ -488,8 +484,8 @@ public class WidgetPreviewLoader {
// Draw the final icon at top left corner.
// TODO: use top right for RTL
- int appIconSize = LauncherAppState.getInstance().getDynamicGrid()
- .getDeviceProfile().iconSizePx;
+ int appIconSize = launcher.getDeviceProfile().iconSizePx;
+
icon.setAlpha(255);
icon.setColorFilter(null);
icon.setBounds(0, 0, appIconSize, appIconSize);
@@ -626,8 +622,10 @@ public class WidgetPreviewLoader {
// which would gets re-written next time.
mVersions = getPackageVersion(mKey.componentName.getPackageName());
+ Launcher launcher = (Launcher) mCaller.getContext();
+
// it's not in the db... we need to generate it
- preview = generatePreview(mInfo, unusedBitmap, mPreviewWidth, mPreviewHeight);
+ preview = generatePreview(launcher, mInfo, unusedBitmap, mPreviewWidth, mPreviewHeight);
}
return preview;
}