Bug 1132747 - Set the padding for share in the context menu on Lollipop. r=mhaigh
This commit is contained in:
@@ -141,9 +141,11 @@ public class GeckoMenuItem implements MenuItem {
|
|||||||
public View getActionView() {
|
public View getActionView() {
|
||||||
if (mActionProvider != null) {
|
if (mActionProvider != null) {
|
||||||
if (getActionEnum() == MenuItem.SHOW_AS_ACTION_IF_ROOM) {
|
if (getActionEnum() == MenuItem.SHOW_AS_ACTION_IF_ROOM) {
|
||||||
return mActionProvider.onCreateActionView(SECONDARY_ACTION_BAR_HISTORY_SIZE, false);
|
return mActionProvider.onCreateActionView(SECONDARY_ACTION_BAR_HISTORY_SIZE,
|
||||||
|
GeckoActionProvider.ActionViewType.DEFAULT);
|
||||||
} else {
|
} else {
|
||||||
return mActionProvider.onCreateActionView(QUICK_SHARE_ACTION_BAR_HISTORY_SIZE, true);
|
return mActionProvider.onCreateActionView(QUICK_SHARE_ACTION_BAR_HISTORY_SIZE,
|
||||||
|
GeckoActionProvider.ActionViewType.QUICK_SHARE_ICON);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -38,7 +38,7 @@ public class MenuItemActionView extends LinearLayout
|
|||||||
|
|
||||||
@TargetApi(14)
|
@TargetApi(14)
|
||||||
public MenuItemActionView(Context context, AttributeSet attrs, int defStyle) {
|
public MenuItemActionView(Context context, AttributeSet attrs, int defStyle) {
|
||||||
super(context, attrs);
|
super(context, attrs, defStyle);
|
||||||
|
|
||||||
LayoutInflater.from(context).inflate(R.layout.menu_item_action_view, this);
|
LayoutInflater.from(context).inflate(R.layout.menu_item_action_view, this);
|
||||||
mMenuItem = (MenuItemDefault) findViewById(R.id.menu_item);
|
mMenuItem = (MenuItemDefault) findViewById(R.id.menu_item);
|
||||||
@@ -165,4 +165,18 @@ public class MenuItemActionView extends LinearLayout
|
|||||||
listener.onClick(view);
|
listener.onClick(view);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Update the styles if this view is being used in the context menus.
|
||||||
|
*
|
||||||
|
* Ideally, we just use different layout files and styles to set this, but
|
||||||
|
* MenuItemActionView is too integrated into GeckoActionProvider to provide
|
||||||
|
* an easy separation so instead I provide this hack. I'm sorry.
|
||||||
|
*/
|
||||||
|
public void initContextMenuStyles() {
|
||||||
|
final int defaultContextMenuPadding = getContext().getResources().getDimensionPixelOffset(
|
||||||
|
R.dimen.context_menu_item_horizontal_padding);
|
||||||
|
mMenuItem.setPadding(defaultContextMenuPadding, getPaddingTop(),
|
||||||
|
defaultContextMenuPadding, getPaddingBottom());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -179,7 +179,8 @@ public class PromptListAdapter extends ArrayAdapter<PromptListItem> {
|
|||||||
final GeckoActionProvider provider = GeckoActionProvider.getForType(item.getIntent().getType(), getContext());
|
final GeckoActionProvider provider = GeckoActionProvider.getForType(item.getIntent().getType(), getContext());
|
||||||
provider.setIntent(item.getIntent());
|
provider.setIntent(item.getIntent());
|
||||||
|
|
||||||
final MenuItemActionView view = (MenuItemActionView) provider.onCreateActionView();
|
final MenuItemActionView view = (MenuItemActionView) provider.onCreateActionView(
|
||||||
|
GeckoActionProvider.ActionViewType.CONTEXT_MENU);
|
||||||
// If a quickshare button is clicked, we need to close the dialog.
|
// If a quickshare button is clicked, we need to close the dialog.
|
||||||
view.addActionButtonClickListener(new View.OnClickListener() {
|
view.addActionButtonClickListener(new View.OnClickListener() {
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
8
mobile/android/base/resources/values-v21/dimens.xml
Normal file
8
mobile/android/base/resources/values-v21/dimens.xml
Normal file
@@ -0,0 +1,8 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<!-- This Source Code Form is subject to the terms of the Mozilla Public
|
||||||
|
- License, v. 2.0. If a copy of the MPL was not distributed with this
|
||||||
|
- file, You can obtain one at http://mozilla.org/MPL/2.0/. -->
|
||||||
|
|
||||||
|
<resources>
|
||||||
|
<dimen name="context_menu_item_horizontal_padding">17dp</dimen>
|
||||||
|
</resources>
|
||||||
@@ -105,6 +105,8 @@
|
|||||||
<dimen name="doorhanger_section_padding_large">30dp</dimen>
|
<dimen name="doorhanger_section_padding_large">30dp</dimen>
|
||||||
<dimen name="doorhanger_icon_size">60dp</dimen>
|
<dimen name="doorhanger_icon_size">60dp</dimen>
|
||||||
|
|
||||||
|
<dimen name="context_menu_item_horizontal_padding">10dp</dimen>
|
||||||
|
|
||||||
<dimen name="flow_layout_spacing">6dp</dimen>
|
<dimen name="flow_layout_spacing">6dp</dimen>
|
||||||
<dimen name="menu_item_icon">21dp</dimen>
|
<dimen name="menu_item_icon">21dp</dimen>
|
||||||
<dimen name="menu_item_textsize">16sp</dimen>
|
<dimen name="menu_item_textsize">16sp</dimen>
|
||||||
|
|||||||
@@ -90,18 +90,31 @@ public class GeckoActionProvider {
|
|||||||
/**
|
/**
|
||||||
* Creates the action view using the default history size.
|
* Creates the action view using the default history size.
|
||||||
*/
|
*/
|
||||||
public View onCreateActionView() {
|
public View onCreateActionView(final ActionViewType viewType) {
|
||||||
return onCreateActionView(MAX_HISTORY_SIZE_DEFAULT, false);
|
return onCreateActionView(MAX_HISTORY_SIZE_DEFAULT, viewType);
|
||||||
}
|
}
|
||||||
|
|
||||||
public View onCreateActionView(final int maxHistorySize, final boolean isForQuickShareBar) {
|
public View onCreateActionView(final int maxHistorySize, final ActionViewType viewType) {
|
||||||
// Create the view and set its data model.
|
// Create the view and set its data model.
|
||||||
ActivityChooserModel dataModel = ActivityChooserModel.get(mContext, mHistoryFileName);
|
ActivityChooserModel dataModel = ActivityChooserModel.get(mContext, mHistoryFileName);
|
||||||
final MenuItemActionView view;
|
final MenuItemActionView view;
|
||||||
if (isForQuickShareBar) {
|
switch (viewType) {
|
||||||
view = new QuickShareBarActionView(mContext, null);
|
case DEFAULT:
|
||||||
} else {
|
view = new MenuItemActionView(mContext, null);
|
||||||
view = new MenuItemActionView(mContext, null);
|
break;
|
||||||
|
|
||||||
|
case QUICK_SHARE_ICON:
|
||||||
|
view = new QuickShareBarActionView(mContext, null);
|
||||||
|
break;
|
||||||
|
|
||||||
|
case CONTEXT_MENU:
|
||||||
|
view = new MenuItemActionView(mContext, null);
|
||||||
|
view.initContextMenuStyles();
|
||||||
|
break;
|
||||||
|
|
||||||
|
default:
|
||||||
|
throw new IllegalArgumentException(
|
||||||
|
"Unknown " + ActionViewType.class.getSimpleName() + ": " + viewType);
|
||||||
}
|
}
|
||||||
view.addActionButtonClickListener(mCallbacks);
|
view.addActionButtonClickListener(mCallbacks);
|
||||||
|
|
||||||
@@ -251,4 +264,10 @@ public class GeckoActionProvider {
|
|||||||
Telemetry.sendUIEvent(TelemetryContract.Event.SHARE, TelemetryContract.Method.BUTTON);
|
Telemetry.sendUIEvent(TelemetryContract.Event.SHARE, TelemetryContract.Method.BUTTON);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public enum ActionViewType {
|
||||||
|
DEFAULT,
|
||||||
|
QUICK_SHARE_ICON,
|
||||||
|
CONTEXT_MENU,
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user