diff options
author | Hyunyoung Song <hyunyoungs@google.com> | 2015-05-15 00:09:49 +0000 |
---|---|---|
committer | Android (Google) Code Review <android-gerrit@google.com> | 2015-05-15 00:09:49 +0000 |
commit | e3a1df20e6aa68175109c0bceb8cbf4b7fe80978 (patch) | |
tree | dfe77458c8a43f93e3c1cf0bc7d7f00b2a1df468 | |
parent | f7e85f85d373103e45c9a54df0827efe94417031 (diff) | |
parent | 6babf2e27e6260f02751413b8f7a55e46659af27 (diff) | |
download | android_packages_apps_Trebuchet-e3a1df20e6aa68175109c0bceb8cbf4b7fe80978.tar.gz android_packages_apps_Trebuchet-e3a1df20e6aa68175109c0bceb8cbf4b7fe80978.tar.bz2 android_packages_apps_Trebuchet-e3a1df20e6aa68175109c0bceb8cbf4b7fe80978.zip |
Merge "Place the work profile badge in the correct bottom right (left for RTL) location" into ub-launcher3-burnaby
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); } } |