Index: chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuAdapter.java |
diff --git a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuAdapter.java b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuAdapter.java |
index 985669d20428c4e7b5ffdd73ff49713159128e25..06cf58e23f0f9e7d7bba5ffb50a6afcc0150ca96 100644 |
--- a/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuAdapter.java |
+++ b/chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuAdapter.java |
@@ -17,10 +17,13 @@ import android.view.ViewGroup; |
import android.widget.BaseAdapter; |
import android.widget.ImageButton; |
import android.widget.ImageView; |
+import android.widget.ImageView.ScaleType; |
import android.widget.ListView; |
import android.widget.TextView; |
+import org.chromium.base.ApiCompatibilityUtils; |
import org.chromium.chrome.R; |
+import org.chromium.ui.base.LocalizationUtils; |
import org.chromium.ui.interpolators.BakedBezierInterpolator; |
import java.util.List; |
@@ -56,6 +59,10 @@ class AppMenuAdapter extends BaseAdapter { |
private static final float ENTER_STANDARD_ITEM_OFFSET_Y_DP = -10.f; |
private static final float ENTER_STANDARD_ITEM_OFFSET_X_DP = 10.f; |
+ /** Menu Button Layout Constants */ |
+ private static final float MENU_BUTTON_WIDTH_DP = 59.f; |
+ private static final float MENU_BUTTON_START_PADDING_DP = 19.f; |
+ |
private final AppMenu mAppMenu; |
private final LayoutInflater mInflater; |
private final List<MenuItem> mMenuItems; |
@@ -211,9 +218,12 @@ class AppMenuAdapter extends BaseAdapter { |
convertView = mInflater.inflate(R.layout.title_button_menu_item, parent, false); |
holder.title = (TextView) convertView.findViewById(R.id.title); |
holder.button = (ImageButton) convertView.findViewById(R.id.button); |
+ |
+ View animatedView = hasMenuButton ? holder.title : convertView; |
+ |
convertView.setTag(holder); |
convertView.setTag(R.id.menu_item_enter_anim_id, |
- buildStandardItemEnterAnimator(convertView, position)); |
+ buildStandardItemEnterAnimator(animatedView, position)); |
} else { |
holder = (TitleButtonMenuItemViewHolder) convertView.getTag(); |
} |
@@ -275,6 +285,12 @@ class AppMenuAdapter extends BaseAdapter { |
mAppMenu.dismiss(); |
} |
}); |
+ |
+ // Set the button layout to make it properly line up with any underlying menu button |
+ ApiCompatibilityUtils.setPaddingRelative( |
aurimas (slooooooooow)
2014/07/25 18:21:03
Do we need to reset these somewhere since we are r
David Trainor- moved to gerrit
2014/07/25 20:01:17
Ah good point!
|
+ button, (int) (MENU_BUTTON_START_PADDING_DP * mDpToPx), 0, 0, 0); |
+ button.getLayoutParams().width = (int) (MENU_BUTTON_WIDTH_DP * mDpToPx); |
+ button.setScaleType(ScaleType.CENTER); |
} |
/** |
@@ -315,7 +331,8 @@ class AppMenuAdapter extends BaseAdapter { |
* @return The {@link Animator}. |
*/ |
private Animator buildIconItemEnterAnimator(final ImageView[] views, boolean skipLastItem) { |
- final float offsetXPx = ENTER_STANDARD_ITEM_OFFSET_X_DP * mDpToPx; |
+ final boolean rtl = LocalizationUtils.isLayoutRtl(); |
+ final float offsetXPx = ENTER_STANDARD_ITEM_OFFSET_X_DP * mDpToPx * (rtl ? -1.f : 1.f); |
final int maxViewsToAnimate = views.length - (skipLastItem ? 1 : 0); |
AnimatorSet animation = new AnimatorSet(); |