}
@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;
}
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 {
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;
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));
public int[] getPreviewSize() {
int[] maxSize = new int[2];
+
maxSize[0] = mPresetPreviewSize;
maxSize[1] = mPresetPreviewSize;
return maxSize;
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();
}
}
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);