summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--res/values/dimens.xml1
-rw-r--r--src/com/android/launcher3/WidgetPreviewLoader.java2
-rw-r--r--src/com/android/launcher3/compat/AppWidgetManagerCompat.java3
-rw-r--r--src/com/android/launcher3/compat/AppWidgetManagerCompatV16.java2
-rw-r--r--src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java5
-rw-r--r--src/com/android/launcher3/widget/WidgetCell.java32
-rw-r--r--src/com/android/launcher3/widget/WidgetImageView.java7
-rw-r--r--src/com/android/launcher3/widget/WidgetsListAdapter.java2
8 files changed, 21 insertions, 33 deletions
diff --git a/res/values/dimens.xml b/res/values/dimens.xml
index b5acfbdc6..5e1f3de5c 100644
--- a/res/values/dimens.xml
+++ b/res/values/dimens.xml
@@ -118,4 +118,5 @@
<!-- Sizes for managed profile badges -->
<dimen name="profile_badge_size">24dp</dimen>
<dimen name="profile_badge_margin">4dp</dimen>
+ <dimen name="profile_badge_minimum_top">2dp</dimen>
</resources>
diff --git a/src/com/android/launcher3/WidgetPreviewLoader.java b/src/com/android/launcher3/WidgetPreviewLoader.java
index 93bfeaffd..fe09fb6aa 100644
--- a/src/com/android/launcher3/WidgetPreviewLoader.java
+++ b/src/com/android/launcher3/WidgetPreviewLoader.java
@@ -444,7 +444,7 @@ public class WidgetPreviewLoader {
} catch (Resources.NotFoundException e) { }
c.setBitmap(null);
}
- return mManager.getBadgeBitmap(info, preview);
+ return mManager.getBadgeBitmap(info, preview, Math.min(preview.getHeight(), previewHeight));
}
private Bitmap generateShortcutPreview(
diff --git a/src/com/android/launcher3/compat/AppWidgetManagerCompat.java b/src/com/android/launcher3/compat/AppWidgetManagerCompat.java
index e41a66fb4..7aa36d447 100644
--- a/src/com/android/launcher3/compat/AppWidgetManagerCompat.java
+++ b/src/com/android/launcher3/compat/AppWidgetManagerCompat.java
@@ -78,6 +78,7 @@ public abstract class AppWidgetManagerCompat {
public abstract Drawable loadIcon(LauncherAppWidgetProviderInfo info, IconCache cache);
- public abstract Bitmap getBadgeBitmap(LauncherAppWidgetProviderInfo info, Bitmap bitmap);
+ public abstract Bitmap getBadgeBitmap(LauncherAppWidgetProviderInfo info, Bitmap bitmap,
+ int imageHeight);
}
diff --git a/src/com/android/launcher3/compat/AppWidgetManagerCompatV16.java b/src/com/android/launcher3/compat/AppWidgetManagerCompatV16.java
index 8cecb9602..a64c70535 100644
--- a/src/com/android/launcher3/compat/AppWidgetManagerCompatV16.java
+++ b/src/com/android/launcher3/compat/AppWidgetManagerCompatV16.java
@@ -87,7 +87,7 @@ class AppWidgetManagerCompatV16 extends AppWidgetManagerCompat {
}
@Override
- public Bitmap getBadgeBitmap(LauncherAppWidgetProviderInfo info, Bitmap bitmap) {
+ public Bitmap getBadgeBitmap(LauncherAppWidgetProviderInfo info, Bitmap bitmap, int imageHeight) {
return bitmap;
}
}
diff --git a/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java b/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java
index 6c3e092e8..96ace8477 100644
--- a/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java
+++ b/src/com/android/launcher3/compat/AppWidgetManagerCompatVL.java
@@ -108,7 +108,7 @@ class AppWidgetManagerCompatVL extends AppWidgetManagerCompat {
}
@Override
- public Bitmap getBadgeBitmap(LauncherAppWidgetProviderInfo info, Bitmap bitmap) {
+ public Bitmap getBadgeBitmap(LauncherAppWidgetProviderInfo info, Bitmap bitmap, int imageHeight) {
if (info.isCustomWidget || info.getProfile().equals(android.os.Process.myUserHandle())) {
return bitmap;
}
@@ -117,9 +117,10 @@ class AppWidgetManagerCompatVL extends AppWidgetManagerCompat {
final Resources res = mContext.getResources();
final int badgeSize = res.getDimensionPixelSize(R.dimen.profile_badge_size);
final int badgeMargin = res.getDimensionPixelSize(R.dimen.profile_badge_margin);
+ final int badgeMinTop = res.getDimensionPixelSize(R.dimen.profile_badge_minimum_top);
final Rect badgeLocation = new Rect(0, 0, badgeSize, badgeSize);
- final int top = bitmap.getHeight() - badgeSize - badgeMargin;
+ final int top = Math.max(imageHeight - badgeSize - badgeMargin, badgeMinTop);
if (res.getConfiguration().getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
badgeLocation.offset(badgeMargin, top);
} else {
diff --git a/src/com/android/launcher3/widget/WidgetCell.java b/src/com/android/launcher3/widget/WidgetCell.java
index 7ca4df979..aade85fb2 100644
--- a/src/com/android/launcher3/widget/WidgetCell.java
+++ b/src/com/android/launcher3/widget/WidgetCell.java
@@ -62,7 +62,7 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
private ImageView mWidgetImage;
private TextView mWidgetName;
private TextView mWidgetDims;
- private final Rect mOriginalImagePadding = new Rect();
+ private final Rect mOrigImgPadding = new Rect();
private String mDimensionsFormatString;
private boolean mIsAppWidget;
@@ -102,10 +102,10 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
super.onFinishInflate();
mWidgetImage = (ImageView) findViewById(R.id.widget_preview);
- mOriginalImagePadding.left = mWidgetImage.getPaddingLeft();
- mOriginalImagePadding.top = mWidgetImage.getPaddingTop();
- mOriginalImagePadding.right = mWidgetImage.getPaddingRight();
- mOriginalImagePadding.bottom = mWidgetImage.getPaddingBottom();
+ mOrigImgPadding.left = mWidgetImage.getPaddingLeft();
+ mOrigImgPadding.top = mWidgetImage.getPaddingTop();
+ mOrigImgPadding.right = mWidgetImage.getPaddingRight();
+ mOrigImgPadding.bottom = mWidgetImage.getPaddingBottom();
mWidgetName = ((TextView) findViewById(R.id.widget_name));
mWidgetDims = ((TextView) findViewById(R.id.widget_dims));
@@ -164,6 +164,7 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
public int[] getPreviewSize() {
int[] maxSize = new int[2];
+
maxSize[0] = mPresetPreviewSize;
maxSize[1] = mPresetPreviewSize;
return maxSize;
@@ -171,25 +172,21 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
public void applyPreview(Bitmap bitmap) {
FastBitmapDrawable preview = new FastBitmapDrawable(bitmap);
- if (DEBUG) {
- Log.d(TAG, String.format("[tag=%s] applyPreview preview: %s",
- getTagToString(), preview));
- }
+
if (preview != null) {
mWidgetImage.setImageDrawable(preview);
+
if (mIsAppWidget) {
// center horizontally
int[] imageSize = getPreviewSize();
int centerAmount = (imageSize[0] - preview.getIntrinsicWidth()) / 2;
- mWidgetImage.setPadding(mOriginalImagePadding.left + centerAmount,
- mOriginalImagePadding.top,
- mOriginalImagePadding.right,
- mOriginalImagePadding.bottom);
+ mWidgetImage.setPadding(mOrigImgPadding.left + centerAmount,
+ mOrigImgPadding.top,
+ mOrigImgPadding.right,
+ mOrigImgPadding.bottom);
}
mWidgetImage.setAlpha(0f);
mWidgetImage.animate().alpha(1.0f).setDuration(FADE_IN_DURATION_MS);
- // TODO(hyunyoungs): figure out why this has to be called explicitly.
- mWidgetImage.requestLayout();
}
}
@@ -202,11 +199,6 @@ public class WidgetCell extends LinearLayout implements OnLayoutChangeListener {
Log.d(TAG, String.format("[tag=%s] ensurePreview (%d, %d):",
getTagToString(), size[0], size[1]));
}
-
- if (size[0] <= 0 || size[1] <= 0) {
- addOnLayoutChangeListener(this);
- return;
- }
Bitmap[] immediateResult = new Bitmap[1];
mActiveRequest = mWidgetPreviewLoader.getPreview(mInfo, size[0], size[1], this,
immediateResult);
diff --git a/src/com/android/launcher3/widget/WidgetImageView.java b/src/com/android/launcher3/widget/WidgetImageView.java
index 75167bc7d..f1eaf6488 100644
--- a/src/com/android/launcher3/widget/WidgetImageView.java
+++ b/src/com/android/launcher3/widget/WidgetImageView.java
@@ -22,18 +22,11 @@ import android.util.AttributeSet;
import android.widget.ImageView;
public class WidgetImageView extends ImageView {
- public boolean mAllowRequestLayout = true;
public WidgetImageView(Context context, AttributeSet attrs) {
super(context, attrs);
}
- public void requestLayout() {
- if (mAllowRequestLayout) {
- super.requestLayout();
- }
- }
-
@Override
protected void onDraw(Canvas canvas) {
canvas.save();
diff --git a/src/com/android/launcher3/widget/WidgetsListAdapter.java b/src/com/android/launcher3/widget/WidgetsListAdapter.java
index 84884c4fa..2dbe7a532 100644
--- a/src/com/android/launcher3/widget/WidgetsListAdapter.java
+++ b/src/com/android/launcher3/widget/WidgetsListAdapter.java
@@ -151,8 +151,8 @@ public class WidgetsListAdapter extends Adapter<WidgetsRowViewHolder> {
widget.setTag(pasi);
widget.applyFromResolveInfo(mLauncher.getPackageManager(), info, mWidgetPreviewLoader);
}
- widget.setVisibility(View.VISIBLE);
widget.ensurePreview();
+ widget.setVisibility(View.VISIBLE);
}
}