Chromium Code Reviews
chromiumcodereview-hr@appspot.gserviceaccount.com (chromiumcodereview-hr) | Please choose your nickname with Settings | Help | Chromium Project | Gerrit Changes | Sign out
(873)

Unified Diff: chrome/android/java/src/org/chromium/chrome/browser/appmenu/AppMenuAdapter.java

Issue 419673002: Update Android menu to overlap anchor (Closed) Base URL: svn://svn.chromium.org/chrome/trunk/src
Patch Set: Addressed comments Created 6 years, 5 months ago
Use n/p to move between diff chunks; N/P to move between comments. Draft comments are only viewable by you.
Jump to:
View side-by-side diff with in-line comments
Download patch
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();

Powered by Google App Engine
This is Rietveld 408576698