Merge remote-tracking branch 'origin/master'

This commit is contained in:
Weblate 2015-05-08 23:53:20 +02:00
commit 93ac93fab7
62 changed files with 469 additions and 213 deletions

View file

@ -14,7 +14,7 @@
limitations under the License. limitations under the License.
--> -->
<android.support.v7.internal.view.renamemenu.ActionMenuItemView <androidv7.rmenu.ActionMenuItemView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_height="wrap_content"

View file

@ -14,7 +14,7 @@
limitations under the License. limitations under the License.
--> -->
<android.support.v7.internal.view.renamemenu.ExpandedMenuView <androidv7.rmenu.ExpandedMenuView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/expanded_menu" android:id="@+id/expanded_menu"
android:layout_width="?attr/panelMenuListWidth" android:layout_width="?attr/panelMenuListWidth"

View file

@ -14,7 +14,7 @@
limitations under the License. limitations under the License.
--> -->
<android.support.v7.internal.view.renamemenu.ListMenuItemView <androidv7.rmenu.ListMenuItemView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/listPreferredItemHeightSmall"> android:layout_height="?attr/listPreferredItemHeightSmall">
@ -57,4 +57,4 @@
<!-- Checkbox, and/or radio button will be inserted here. --> <!-- Checkbox, and/or radio button will be inserted here. -->
</android.support.v7.internal.view.renamemenu.ListMenuItemView> </androidv7.rmenu.ListMenuItemView>

View file

@ -14,7 +14,7 @@
limitations under the License. limitations under the License.
--> -->
<android.support.v7.internal.view.renamemenu.ListMenuItemView <androidv7.rmenu.ListMenuItemView
xmlns:android="http://schemas.android.com/apk/res/android" xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="?attr/dropdownListPreferredItemHeight" android:layout_height="?attr/dropdownListPreferredItemHeight"
@ -58,4 +58,4 @@
<!-- Checkbox, and/or radio button will be inserted here. --> <!-- Checkbox, and/or radio button will be inserted here. -->
</android.support.v7.internal.view.renamemenu.ListMenuItemView> </androidv7.rmenu.ListMenuItemView>

View file

@ -26,7 +26,6 @@ import android.os.Bundle;
import android.support.v7.appcompat.R; import android.support.v7.appcompat.R;
import android.support.v7.internal.view.SupportMenuInflater; import android.support.v7.internal.view.SupportMenuInflater;
import android.support.v7.internal.view.WindowCallbackWrapper; import android.support.v7.internal.view.WindowCallbackWrapper;
import android.support.v7.internal.view.renamemenu.MenuBuilder;
import android.support.v7.internal.widget.TintTypedArray; import android.support.v7.internal.widget.TintTypedArray;
import android.support.v7.view.ActionMode; import android.support.v7.view.ActionMode;
import android.view.KeyEvent; import android.view.KeyEvent;
@ -34,6 +33,7 @@ import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
import android.view.View; import android.view.View;
import android.view.Window; import android.view.Window;
import androidv7.rmenu.MBuilder;
abstract class AppCompatDelegateImplBase extends AppCompatDelegate { abstract class AppCompatDelegateImplBase extends AppCompatDelegate {
@ -243,7 +243,7 @@ abstract class AppCompatDelegateImplBase extends AppCompatDelegate {
@Override @Override
public boolean onCreatePanelMenu(int featureId, Menu menu) { public boolean onCreatePanelMenu(int featureId, Menu menu) {
if (featureId == Window.FEATURE_OPTIONS_PANEL && !(menu instanceof MenuBuilder)) { if (featureId == Window.FEATURE_OPTIONS_PANEL && !(menu instanceof MBuilder)) {
// If this is an options menu but it's not an AppCompat menu, we eat the event // If this is an options menu but it's not an AppCompat menu, we eat the event
// and return false // and return false
return false; return false;
@ -253,7 +253,7 @@ abstract class AppCompatDelegateImplBase extends AppCompatDelegate {
@Override @Override
public boolean onPreparePanel(int featureId, View view, Menu menu) { public boolean onPreparePanel(int featureId, View view, Menu menu) {
if (featureId == Window.FEATURE_OPTIONS_PANEL && !(menu instanceof MenuBuilder)) { if (featureId == Window.FEATURE_OPTIONS_PANEL && !(menu instanceof MBuilder)) {
// If this is an options menu but it's not an AppCompat menu, we eat the event // If this is an options menu but it's not an AppCompat menu, we eat the event
// and return false // and return false
return false; return false;

View file

@ -43,10 +43,6 @@ import android.support.v7.internal.app.ToolbarActionBar;
import android.support.v7.internal.app.WindowDecorActionBar; import android.support.v7.internal.app.WindowDecorActionBar;
import android.support.v7.internal.view.ContextThemeWrapper; import android.support.v7.internal.view.ContextThemeWrapper;
import android.support.v7.internal.view.StandaloneActionMode; import android.support.v7.internal.view.StandaloneActionMode;
import android.support.v7.internal.view.renamemenu.ListMenuPresenter;
import android.support.v7.internal.view.renamemenu.MenuBuilder;
import android.support.v7.internal.view.renamemenu.MenuPresenter;
import android.support.v7.internal.view.renamemenu.MenuView;
import android.support.v7.internal.widget.ActionBarContextView; import android.support.v7.internal.widget.ActionBarContextView;
import android.support.v7.internal.widget.DecorContentParent; import android.support.v7.internal.widget.DecorContentParent;
import android.support.v7.internal.widget.FitWindowsViewGroup; import android.support.v7.internal.widget.FitWindowsViewGroup;
@ -78,6 +74,10 @@ import android.view.accessibility.AccessibilityEvent;
import android.widget.FrameLayout; import android.widget.FrameLayout;
import android.widget.PopupWindow; import android.widget.PopupWindow;
import android.widget.TextView; import android.widget.TextView;
import androidv7.rmenu.ListMenuPresenter;
import androidv7.rmenu.MBuilder;
import androidv7.rmenu.MenuPresenter;
import androidv7.rmenu.MenuView;
import static android.support.v4.view.WindowCompat.FEATURE_ACTION_BAR; import static android.support.v4.view.WindowCompat.FEATURE_ACTION_BAR;
import static android.support.v4.view.WindowCompat.FEATURE_ACTION_BAR_OVERLAY; import static android.support.v4.view.WindowCompat.FEATURE_ACTION_BAR_OVERLAY;
import static android.support.v4.view.WindowCompat.FEATURE_ACTION_MODE_OVERLAY; import static android.support.v4.view.WindowCompat.FEATURE_ACTION_MODE_OVERLAY;
@ -86,7 +86,7 @@ import static android.view.ViewGroup.LayoutParams.WRAP_CONTENT;
import static android.view.Window.FEATURE_OPTIONS_PANEL; import static android.view.Window.FEATURE_OPTIONS_PANEL;
class AppCompatDelegateImplV7 extends AppCompatDelegateImplBase class AppCompatDelegateImplV7 extends AppCompatDelegateImplBase
implements MenuBuilder.Callback, LayoutInflaterFactory { implements MBuilder.Callback, LayoutInflaterFactory {
private DecorContentParent mDecorContentParent; private DecorContentParent mDecorContentParent;
private ActionMenuPresenterCallback mActionMenuPresenterCallback; private ActionMenuPresenterCallback mActionMenuPresenterCallback;
@ -545,7 +545,7 @@ class AppCompatDelegateImplV7 extends AppCompatDelegateImplBase
} }
@Override @Override
public boolean onMenuItemSelected(MenuBuilder menu, MenuItem item) { public boolean onMenuItemSelected(MBuilder menu, MenuItem item) {
final Window.Callback cb = getWindowCallback(); final Window.Callback cb = getWindowCallback();
if (cb != null && !isDestroyed()) { if (cb != null && !isDestroyed()) {
final PanelFeatureState panel = findMenuPanel(menu.getRootMenu()); final PanelFeatureState panel = findMenuPanel(menu.getRootMenu());
@ -557,7 +557,7 @@ class AppCompatDelegateImplV7 extends AppCompatDelegateImplBase
} }
@Override @Override
public void onMenuModeChange(MenuBuilder menu) { public void onMenuModeChange(MBuilder menu) {
reopenMenu(menu, true); reopenMenu(menu, true);
} }
@ -927,7 +927,7 @@ class AppCompatDelegateImplV7 extends AppCompatDelegateImplBase
return true; return true;
} }
private void reopenMenu(MenuBuilder menu, boolean toggleMenuMode) { private void reopenMenu(MBuilder menu, boolean toggleMenuMode) {
if (mDecorContentParent != null && mDecorContentParent.canShowOverflowMenu() && if (mDecorContentParent != null && mDecorContentParent.canShowOverflowMenu() &&
(!ViewConfigurationCompat.hasPermanentMenuKey(ViewConfiguration.get(mContext)) || (!ViewConfigurationCompat.hasPermanentMenuKey(ViewConfiguration.get(mContext)) ||
mDecorContentParent.isOverflowMenuShowPending())) { mDecorContentParent.isOverflowMenuShowPending())) {
@ -1007,7 +1007,7 @@ class AppCompatDelegateImplV7 extends AppCompatDelegateImplBase
} }
} }
final MenuBuilder menu = new MenuBuilder(context); final MBuilder menu = new MBuilder(context);
menu.setCallback(this); menu.setCallback(this);
st.setMenu(menu); st.setMenu(menu);
@ -1137,7 +1137,7 @@ class AppCompatDelegateImplV7 extends AppCompatDelegateImplBase
return true; return true;
} }
private void checkCloseActionMenu(MenuBuilder menu) { private void checkCloseActionMenu(MBuilder menu) {
if (mClosingActionMenu) { if (mClosingActionMenu) {
return; return;
} }
@ -1506,7 +1506,7 @@ class AppCompatDelegateImplV7 extends AppCompatDelegateImplBase
private final class PanelMenuPresenterCallback implements MenuPresenter.Callback { private final class PanelMenuPresenterCallback implements MenuPresenter.Callback {
@Override @Override
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing) {
final Menu parentMenu = menu.getRootMenu(); final Menu parentMenu = menu.getRootMenu();
final boolean isSubMenu = parentMenu != menu; final boolean isSubMenu = parentMenu != menu;
final PanelFeatureState panel = findMenuPanel(isSubMenu ? parentMenu : menu); final PanelFeatureState panel = findMenuPanel(isSubMenu ? parentMenu : menu);
@ -1523,7 +1523,7 @@ class AppCompatDelegateImplV7 extends AppCompatDelegateImplBase
} }
@Override @Override
public boolean onOpenSubMenu(MenuBuilder subMenu) { public boolean onOpenSubMenu(MBuilder subMenu) {
if (subMenu == null && mHasActionBar) { if (subMenu == null && mHasActionBar) {
Window.Callback cb = getWindowCallback(); Window.Callback cb = getWindowCallback();
if (cb != null && !isDestroyed()) { if (cb != null && !isDestroyed()) {
@ -1536,7 +1536,7 @@ class AppCompatDelegateImplV7 extends AppCompatDelegateImplBase
private final class ActionMenuPresenterCallback implements MenuPresenter.Callback { private final class ActionMenuPresenterCallback implements MenuPresenter.Callback {
@Override @Override
public boolean onOpenSubMenu(MenuBuilder subMenu) { public boolean onOpenSubMenu(MBuilder subMenu) {
Window.Callback cb = getWindowCallback(); Window.Callback cb = getWindowCallback();
if (cb != null) { if (cb != null) {
cb.onMenuOpened(FEATURE_ACTION_BAR, subMenu); cb.onMenuOpened(FEATURE_ACTION_BAR, subMenu);
@ -1545,7 +1545,7 @@ class AppCompatDelegateImplV7 extends AppCompatDelegateImplBase
} }
@Override @Override
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing) {
checkCloseActionMenu(menu); checkCloseActionMenu(menu);
} }
} }
@ -1575,7 +1575,7 @@ class AppCompatDelegateImplV7 extends AppCompatDelegateImplBase
View createdPanelView; View createdPanelView;
/** Use {@link #setMenu} to set this. */ /** Use {@link #setMenu} to set this. */
MenuBuilder menu; MBuilder menu;
ListMenuPresenter listMenuPresenter; ListMenuPresenter listMenuPresenter;
@ -1670,7 +1670,7 @@ class AppCompatDelegateImplV7 extends AppCompatDelegateImplBase
a.recycle(); a.recycle();
} }
void setMenu(MenuBuilder menu) { void setMenu(MBuilder menu) {
if (menu == this.menu) return; if (menu == this.menu) return;
if (this.menu != null) { if (this.menu != null) {

View file

@ -26,9 +26,6 @@ import android.support.v4.view.WindowCompat;
import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBar;
import android.support.v7.internal.view.WindowCallbackWrapper; import android.support.v7.internal.view.WindowCallbackWrapper;
import android.support.v7.appcompat.R; import android.support.v7.appcompat.R;
import android.support.v7.internal.view.renamemenu.ListMenuPresenter;
import android.support.v7.internal.view.renamemenu.MenuBuilder;
import android.support.v7.internal.view.renamemenu.MenuPresenter;
import android.support.v7.internal.widget.DecorToolbar; import android.support.v7.internal.widget.DecorToolbar;
import android.support.v7.internal.widget.ToolbarWidgetWrapper; import android.support.v7.internal.widget.ToolbarWidgetWrapper;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
@ -41,6 +38,9 @@ import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.Window; import android.view.Window;
import android.widget.SpinnerAdapter; import android.widget.SpinnerAdapter;
import androidv7.rmenu.ListMenuPresenter;
import androidv7.rmenu.MBuilder;
import androidv7.rmenu.MenuPresenter;
import java.util.ArrayList; import java.util.ArrayList;
@ -440,7 +440,7 @@ public class ToolbarActionBar extends ActionBar {
void populateOptionsMenu() { void populateOptionsMenu() {
final Menu menu = getMenu(); final Menu menu = getMenu();
final MenuBuilder mb = menu instanceof MenuBuilder ? (MenuBuilder) menu : null; final MBuilder mb = menu instanceof MBuilder ? (MBuilder) menu : null;
if (mb != null) { if (mb != null) {
mb.stopDispatchingItemsChanged(); mb.stopDispatchingItemsChanged();
} }
@ -505,8 +505,8 @@ public class ToolbarActionBar extends ActionBar {
} }
private void ensureListMenuPresenter(Menu menu) { private void ensureListMenuPresenter(Menu menu) {
if (mListMenuPresenter == null && (menu instanceof MenuBuilder)) { if (mListMenuPresenter == null && (menu instanceof MBuilder)) {
MenuBuilder mb = (MenuBuilder) menu; MBuilder mb = (MBuilder) menu;
Context context = mDecorToolbar.getContext(); Context context = mDecorToolbar.getContext();
final TypedValue outValue = new TypedValue(); final TypedValue outValue = new TypedValue();
@ -573,7 +573,7 @@ public class ToolbarActionBar extends ActionBar {
private boolean mClosingActionMenu; private boolean mClosingActionMenu;
@Override @Override
public boolean onOpenSubMenu(MenuBuilder subMenu) { public boolean onOpenSubMenu(MBuilder subMenu) {
if (mWindowCallback != null) { if (mWindowCallback != null) {
mWindowCallback.onMenuOpened(WindowCompat.FEATURE_ACTION_BAR, subMenu); mWindowCallback.onMenuOpened(WindowCompat.FEATURE_ACTION_BAR, subMenu);
return true; return true;
@ -582,7 +582,7 @@ public class ToolbarActionBar extends ActionBar {
} }
@Override @Override
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing) {
if (mClosingActionMenu) { if (mClosingActionMenu) {
return; return;
} }
@ -598,14 +598,14 @@ public class ToolbarActionBar extends ActionBar {
private final class PanelMenuPresenterCallback implements MenuPresenter.Callback { private final class PanelMenuPresenterCallback implements MenuPresenter.Callback {
@Override @Override
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing) {
if (mWindowCallback != null) { if (mWindowCallback != null) {
mWindowCallback.onPanelClosed(Window.FEATURE_OPTIONS_PANEL, menu); mWindowCallback.onPanelClosed(Window.FEATURE_OPTIONS_PANEL, menu);
} }
} }
@Override @Override
public boolean onOpenSubMenu(MenuBuilder subMenu) { public boolean onOpenSubMenu(MBuilder subMenu) {
if (subMenu == null && mWindowCallback != null) { if (subMenu == null && mWindowCallback != null) {
mWindowCallback.onMenuOpened(Window.FEATURE_OPTIONS_PANEL, subMenu); mWindowCallback.onMenuOpened(Window.FEATURE_OPTIONS_PANEL, subMenu);
} }
@ -613,15 +613,15 @@ public class ToolbarActionBar extends ActionBar {
} }
} }
private final class MenuBuilderCallback implements MenuBuilder.Callback { private final class MenuBuilderCallback implements MBuilder.Callback {
@Override @Override
public boolean onMenuItemSelected(MenuBuilder menu, MenuItem item) { public boolean onMenuItemSelected(MBuilder menu, MenuItem item) {
return false; return false;
} }
@Override @Override
public void onMenuModeChange(MenuBuilder menu) { public void onMenuModeChange(MBuilder menu) {
if (mWindowCallback != null) { if (mWindowCallback != null) {
if (mDecorToolbar.isOverflowMenuShowing()) { if (mDecorToolbar.isOverflowMenuShowing()) {
mWindowCallback.onPanelClosed(WindowCompat.FEATURE_ACTION_BAR, menu); mWindowCallback.onPanelClosed(WindowCompat.FEATURE_ACTION_BAR, menu);

View file

@ -36,9 +36,6 @@ import android.support.v7.appcompat.R;
import android.support.v7.internal.view.ActionBarPolicy; import android.support.v7.internal.view.ActionBarPolicy;
import android.support.v7.internal.view.ViewPropertyAnimatorCompatSet; import android.support.v7.internal.view.ViewPropertyAnimatorCompatSet;
import android.support.v7.internal.view.SupportMenuInflater; import android.support.v7.internal.view.SupportMenuInflater;
import android.support.v7.internal.view.renamemenu.MenuBuilder;
import android.support.v7.internal.view.renamemenu.MenuPopupHelper;
import android.support.v7.internal.view.renamemenu.SubMenuBuilder;
import android.support.v7.internal.widget.ActionBarContainer; import android.support.v7.internal.widget.ActionBarContainer;
import android.support.v7.internal.widget.ActionBarContextView; import android.support.v7.internal.widget.ActionBarContextView;
import android.support.v7.internal.widget.ActionBarOverlayLayout; import android.support.v7.internal.widget.ActionBarOverlayLayout;
@ -59,6 +56,9 @@ import android.view.Window;
import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityEvent;
import android.view.animation.AnimationUtils; import android.view.animation.AnimationUtils;
import android.widget.SpinnerAdapter; import android.widget.SpinnerAdapter;
import androidv7.rmenu.MBuilder;
import androidv7.rmenu.MenuPopupHelper;
import androidv7.rmenu.SubMenuBuilder;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
import java.util.ArrayList; import java.util.ArrayList;
@ -949,9 +949,9 @@ public class WindowDecorActionBar extends ActionBar implements
/** /**
* @hide * @hide
*/ */
public class ActionModeImpl extends ActionMode implements MenuBuilder.Callback { public class ActionModeImpl extends ActionMode implements MBuilder.Callback {
private final Context mActionModeContext; private final Context mActionModeContext;
private final MenuBuilder mMenu; private final MBuilder mMenu;
private ActionMode.Callback mCallback; private ActionMode.Callback mCallback;
private WeakReference<View> mCustomView; private WeakReference<View> mCustomView;
@ -959,7 +959,7 @@ public class WindowDecorActionBar extends ActionBar implements
public ActionModeImpl(Context context, ActionMode.Callback callback) { public ActionModeImpl(Context context, ActionMode.Callback callback) {
mActionModeContext = context; mActionModeContext = context;
mCallback = callback; mCallback = callback;
mMenu = new MenuBuilder(context) mMenu = new MBuilder(context)
.setDefaultShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); .setDefaultShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
mMenu.setCallback(this); mMenu.setCallback(this);
} }
@ -1083,7 +1083,7 @@ public class WindowDecorActionBar extends ActionBar implements
return mCustomView != null ? mCustomView.get() : null; return mCustomView != null ? mCustomView.get() : null;
} }
public boolean onMenuItemSelected(MenuBuilder menu, MenuItem item) { public boolean onMenuItemSelected(MBuilder menu, MenuItem item) {
if (mCallback != null) { if (mCallback != null) {
return mCallback.onActionItemClicked(this, item); return mCallback.onActionItemClicked(this, item);
} else { } else {
@ -1091,7 +1091,7 @@ public class WindowDecorActionBar extends ActionBar implements
} }
} }
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing) {
} }
public boolean onSubMenuSelected(SubMenuBuilder subMenu) { public boolean onSubMenuSelected(SubMenuBuilder subMenu) {
@ -1110,7 +1110,7 @@ public class WindowDecorActionBar extends ActionBar implements
public void onCloseSubMenu(SubMenuBuilder menu) { public void onCloseSubMenu(SubMenuBuilder menu) {
} }
public void onMenuModeChange(MenuBuilder menu) { public void onMenuModeChange(MBuilder menu) {
if (mCallback == null) { if (mCallback == null) {
return; return;
} }

View file

@ -18,9 +18,6 @@ package android.support.v7.internal.view;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.content.Context; import android.content.Context;
import android.os.Build; import android.os.Build;
import android.support.v7.internal.view.renamemenu.MenuBuilder;
import android.support.v7.internal.view.renamemenu.MenuPopupHelper;
import android.support.v7.internal.view.renamemenu.SubMenuBuilder;
import android.support.v7.internal.widget.ActionBarContextView; import android.support.v7.internal.widget.ActionBarContextView;
import android.support.v7.view.ActionMode; import android.support.v7.view.ActionMode;
import android.view.Menu; import android.view.Menu;
@ -28,13 +25,16 @@ import android.view.MenuInflater;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityEvent;
import androidv7.rmenu.MBuilder;
import androidv7.rmenu.MenuPopupHelper;
import androidv7.rmenu.SubMenuBuilder;
import java.lang.ref.WeakReference; import java.lang.ref.WeakReference;
/** /**
* @hide * @hide
*/ */
public class StandaloneActionMode extends ActionMode implements MenuBuilder.Callback { public class StandaloneActionMode extends ActionMode implements MBuilder.Callback {
private Context mContext; private Context mContext;
private ActionBarContextView mContextView; private ActionBarContextView mContextView;
private ActionMode.Callback mCallback; private ActionMode.Callback mCallback;
@ -42,7 +42,7 @@ public class StandaloneActionMode extends ActionMode implements MenuBuilder.Call
private boolean mFinished; private boolean mFinished;
private boolean mFocusable; private boolean mFocusable;
private MenuBuilder mMenu; private MBuilder mMenu;
public StandaloneActionMode(Context context, ActionBarContextView view, public StandaloneActionMode(Context context, ActionBarContextView view,
ActionMode.Callback callback, boolean isFocusable) { ActionMode.Callback callback, boolean isFocusable) {
@ -50,7 +50,7 @@ public class StandaloneActionMode extends ActionMode implements MenuBuilder.Call
mContextView = view; mContextView = view;
mCallback = callback; mCallback = callback;
mMenu = new MenuBuilder(context).setDefaultShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM); mMenu = new MBuilder(context).setDefaultShowAsAction(MenuItem.SHOW_AS_ACTION_IF_ROOM);
mMenu.setCallback(this); mMenu.setCallback(this);
mFocusable = isFocusable; mFocusable = isFocusable;
} }
@ -133,11 +133,11 @@ public class StandaloneActionMode extends ActionMode implements MenuBuilder.Call
return new MenuInflater(mContext); return new MenuInflater(mContext);
} }
public boolean onMenuItemSelected(MenuBuilder menu, MenuItem item) { public boolean onMenuItemSelected(MBuilder menu, MenuItem item) {
return mCallback.onActionItemClicked(this, item); return mCallback.onActionItemClicked(this, item);
} }
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing) {
} }
public boolean onSubMenuSelected(SubMenuBuilder subMenu) { public boolean onSubMenuSelected(SubMenuBuilder subMenu) {
@ -152,7 +152,7 @@ public class StandaloneActionMode extends ActionMode implements MenuBuilder.Call
public void onCloseSubMenu(SubMenuBuilder menu) { public void onCloseSubMenu(SubMenuBuilder menu) {
} }
public void onMenuModeChange(MenuBuilder menu) { public void onMenuModeChange(MBuilder menu) {
invalidate(); invalidate();
mContextView.showOverflowMenu(); mContextView.showOverflowMenu();
} }

View file

@ -22,11 +22,11 @@ import android.os.Build;
import android.support.v4.internal.view.SupportMenu; import android.support.v4.internal.view.SupportMenu;
import android.support.v4.internal.view.SupportMenuItem; import android.support.v4.internal.view.SupportMenuItem;
import android.support.v4.util.SimpleArrayMap; import android.support.v4.util.SimpleArrayMap;
import android.support.v7.internal.view.renamemenu.MenuWrapperFactory;
import android.view.ActionMode; import android.view.ActionMode;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
import android.view.View; import android.view.View;
import androidv7.rmenu.MenuWrapperFactory;
/** /**
* Wraps a support {@link android.support.v7.view.ActionMode} as a framework * Wraps a support {@link android.support.v7.view.ActionMode} as a framework

View file

@ -28,8 +28,6 @@ import android.support.v4.internal.view.SupportMenu;
import android.support.v4.view.ActionProvider; import android.support.v4.view.ActionProvider;
import android.support.v4.view.MenuItemCompat; import android.support.v4.view.MenuItemCompat;
import android.support.v7.appcompat.R; import android.support.v7.appcompat.R;
import android.support.v7.internal.view.renamemenu.MenuItemImpl;
import android.support.v7.internal.view.renamemenu.MenuItemWrapperICS;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.Log; import android.util.Log;
import android.util.Xml; import android.util.Xml;
@ -39,6 +37,8 @@ import android.view.MenuInflater;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.SubMenu; import android.view.SubMenu;
import android.view.View; import android.view.View;
import androidv7.rmenu.MenuItemImpl;
import androidv7.rmenu.MenuItemWrapperICS;
import java.io.IOException; import java.io.IOException;
import java.lang.reflect.Constructor; import java.lang.reflect.Constructor;

View file

@ -28,7 +28,6 @@ import android.support.v7.internal.view.ViewPropertyAnimatorCompatSet;
import android.support.v7.view.ActionMode; import android.support.v7.view.ActionMode;
import android.support.v7.widget.ActionMenuPresenter; import android.support.v7.widget.ActionMenuPresenter;
import android.support.v7.widget.ActionMenuView; import android.support.v7.widget.ActionMenuView;
import android.support.v7.internal.view.renamemenu.MenuBuilder;
import android.text.TextUtils; import android.text.TextUtils;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.LayoutInflater; import android.view.LayoutInflater;
@ -38,6 +37,7 @@ import android.view.accessibility.AccessibilityEvent;
import android.view.animation.DecelerateInterpolator; import android.view.animation.DecelerateInterpolator;
import android.widget.LinearLayout; import android.widget.LinearLayout;
import android.widget.TextView; import android.widget.TextView;
import androidv7.rmenu.MBuilder;
/** /**
* @hide * @hide
@ -222,7 +222,7 @@ public class ActionBarContextView extends AbsActionBarView implements ViewProper
} }
}); });
final MenuBuilder menu = (MenuBuilder) mode.getMenu(); final MBuilder menu = (MBuilder) mode.getMenu();
if (mActionMenuPresenter != null) { if (mActionMenuPresenter != null) {
mActionMenuPresenter.dismissPopupMenus(); mActionMenuPresenter.dismissPopupMenus();
} }

View file

@ -31,7 +31,6 @@ import android.support.v4.view.ViewPropertyAnimatorListenerAdapter;
import android.support.v4.widget.ScrollerCompat; import android.support.v4.widget.ScrollerCompat;
import android.support.v7.appcompat.R; import android.support.v7.appcompat.R;
import android.support.v7.internal.VersionUtils; import android.support.v7.internal.VersionUtils;
import android.support.v7.internal.view.renamemenu.MenuPresenter;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.util.SparseArray; import android.util.SparseArray;
@ -39,6 +38,7 @@ import android.view.Menu;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.Window; import android.view.Window;
import androidv7.rmenu.MenuPresenter;
/** /**
* Special layout for the containing of an overlay action bar (and its content) to correctly handle * Special layout for the containing of an overlay action bar (and its content) to correctly handle

View file

@ -19,10 +19,10 @@ package android.support.v7.internal.widget;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Parcelable; import android.os.Parcelable;
import android.support.v7.internal.view.renamemenu.MenuPresenter;
import android.util.SparseArray; import android.util.SparseArray;
import android.view.Menu; import android.view.Menu;
import android.view.Window; import android.view.Window;
import androidv7.rmenu.MenuPresenter;
/** /**
* Implemented by the top-level decor layout for a window. DecorContentParent offers * Implemented by the top-level decor layout for a window. DecorContentParent offers

View file

@ -20,14 +20,14 @@ package android.support.v7.internal.widget;
import android.content.Context; import android.content.Context;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
import android.os.Parcelable; import android.os.Parcelable;
import android.support.v7.internal.view.renamemenu.MenuBuilder;
import android.support.v7.internal.view.renamemenu.MenuPresenter;
import android.util.SparseArray; import android.util.SparseArray;
import android.view.Menu; import android.view.Menu;
import android.view.View; import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.Window; import android.view.Window;
import android.widget.SpinnerAdapter; import android.widget.SpinnerAdapter;
import androidv7.rmenu.MBuilder;
import androidv7.rmenu.MenuPresenter;
/** /**
* Common interface for a toolbar that sits as part of the window decor. * Common interface for a toolbar that sits as part of the window decor.
@ -98,7 +98,7 @@ public interface DecorToolbar {
void setVisibility(int visible); void setVisibility(int visible);
int getVisibility(); int getVisibility();
void setMenuCallbacks(MenuPresenter.Callback presenterCallback, void setMenuCallbacks(MenuPresenter.Callback presenterCallback,
MenuBuilder.Callback menuBuilderCallback); MBuilder.Callback menuBuilderCallback);
Menu getMenu(); Menu getMenu();
int getPopupTheme(); int getPopupTheme();
} }

View file

@ -24,9 +24,6 @@ import android.os.Parcelable;
import android.support.v4.view.ViewCompat; import android.support.v4.view.ViewCompat;
import android.support.v4.view.ViewPropertyAnimatorListenerAdapter; import android.support.v4.view.ViewPropertyAnimatorListenerAdapter;
import android.support.v7.appcompat.R; import android.support.v7.appcompat.R;
import android.support.v7.internal.view.renamemenu.ActionMenuItem;
import android.support.v7.internal.view.renamemenu.MenuBuilder;
import android.support.v7.internal.view.renamemenu.MenuPresenter;
import android.support.v7.widget.ActionMenuPresenter; import android.support.v7.widget.ActionMenuPresenter;
import android.support.v7.widget.Toolbar; import android.support.v7.widget.Toolbar;
import android.text.TextUtils; import android.text.TextUtils;
@ -39,6 +36,9 @@ import android.view.View;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.Window; import android.view.Window;
import android.widget.SpinnerAdapter; import android.widget.SpinnerAdapter;
import androidv7.rmenu.ActionMenuItem;
import androidv7.rmenu.MBuilder;
import androidv7.rmenu.MenuPresenter;
/** /**
* Internal class used to interact with the Toolbar widget without * Internal class used to interact with the Toolbar widget without
@ -411,7 +411,7 @@ public class ToolbarWidgetWrapper implements DecorToolbar {
mActionMenuPresenter.setId(R.id.action_menu_presenter); mActionMenuPresenter.setId(R.id.action_menu_presenter);
} }
mActionMenuPresenter.setCallback(cb); mActionMenuPresenter.setCallback(cb);
mToolbar.setMenu((MenuBuilder) menu, mActionMenuPresenter); mToolbar.setMenu((MBuilder) menu, mActionMenuPresenter);
} }
@Override @Override
@ -699,7 +699,7 @@ public class ToolbarWidgetWrapper implements DecorToolbar {
@Override @Override
public void setMenuCallbacks(MenuPresenter.Callback actionMenuPresenterCallback, public void setMenuCallbacks(MenuPresenter.Callback actionMenuPresenterCallback,
MenuBuilder.Callback menuBuilderCallback) { MBuilder.Callback menuBuilderCallback) {
mToolbar.setMenuCallbacks(actionMenuPresenterCallback, menuBuilderCallback); mToolbar.setMenuCallbacks(actionMenuPresenterCallback, menuBuilderCallback);
} }

View file

@ -28,13 +28,6 @@ import android.support.v4.view.GravityCompat;
import android.support.v7.appcompat.R; import android.support.v7.appcompat.R;
import android.support.v7.internal.transition.ActionBarTransition; import android.support.v7.internal.transition.ActionBarTransition;
import android.support.v7.internal.view.ActionBarPolicy; import android.support.v7.internal.view.ActionBarPolicy;
import android.support.v7.internal.view.renamemenu.ActionMenuItemView;
import android.support.v7.internal.view.renamemenu.BaseMenuPresenter;
import android.support.v7.internal.view.renamemenu.MenuBuilder;
import android.support.v7.internal.view.renamemenu.MenuItemImpl;
import android.support.v7.internal.view.renamemenu.MenuPopupHelper;
import android.support.v7.internal.view.renamemenu.MenuView;
import android.support.v7.internal.view.renamemenu.SubMenuBuilder;
import android.support.v7.internal.widget.TintImageView; import android.support.v7.internal.widget.TintImageView;
import android.util.SparseBooleanArray; import android.util.SparseBooleanArray;
import android.view.MenuItem; import android.view.MenuItem;
@ -42,6 +35,13 @@ import android.view.SoundEffectConstants;
import android.view.View; import android.view.View;
import android.view.View.MeasureSpec; import android.view.View.MeasureSpec;
import android.view.ViewGroup; import android.view.ViewGroup;
import androidv7.rmenu.ActionMenuItemView;
import androidv7.rmenu.BaseMenuPresenter;
import androidv7.rmenu.MBuilder;
import androidv7.rmenu.MenuItemImpl;
import androidv7.rmenu.MenuPopupHelper;
import androidv7.rmenu.MenuView;
import androidv7.rmenu.SubMenuBuilder;
import java.util.ArrayList; import java.util.ArrayList;
@ -87,7 +87,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter
} }
@Override @Override
public void initForMenu(Context context, MenuBuilder menu) { public void initForMenu(Context context, MBuilder menu) {
super.initForMenu(context, menu); super.initForMenu(context, menu);
final Resources res = context.getResources(); final Resources res = context.getResources();
@ -510,7 +510,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter
} }
@Override @Override
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing) {
dismissPopupMenus(); dismissPopupMenus();
super.onCloseMenu(menu, allMenusAreClosing); super.onCloseMenu(menu, allMenusAreClosing);
} }
@ -669,7 +669,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter
private class OverflowPopup extends MenuPopupHelper { private class OverflowPopup extends MenuPopupHelper {
public OverflowPopup(Context context, MenuBuilder menu, View anchorView, public OverflowPopup(Context context, MBuilder menu, View anchorView,
boolean overflowOnly) { boolean overflowOnly) {
super(context, menu, anchorView, overflowOnly, R.attr.actionOverflowMenuStyle); super(context, menu, anchorView, overflowOnly, R.attr.actionOverflowMenuStyle);
setGravity(GravityCompat.END); setGravity(GravityCompat.END);
@ -723,7 +723,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter
private class PopupPresenterCallback implements Callback { private class PopupPresenterCallback implements Callback {
@Override @Override
public boolean onOpenSubMenu(MenuBuilder subMenu) { public boolean onOpenSubMenu(MBuilder subMenu) {
if (subMenu == null) return false; if (subMenu == null) return false;
mOpenSubMenuId = ((SubMenuBuilder) subMenu).getItem().getItemId(); mOpenSubMenuId = ((SubMenuBuilder) subMenu).getItem().getItemId();
@ -732,7 +732,7 @@ public class ActionMenuPresenter extends BaseMenuPresenter
} }
@Override @Override
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing) {
if (menu instanceof SubMenuBuilder) { if (menu instanceof SubMenuBuilder) {
((SubMenuBuilder) menu).getRootMenu().close(false); ((SubMenuBuilder) menu).getRootMenu().close(false);
} }

View file

@ -18,11 +18,6 @@ package android.support.v7.widget;
import android.content.Context; import android.content.Context;
import android.content.res.Configuration; import android.content.res.Configuration;
import android.os.Build; import android.os.Build;
import android.support.v7.internal.view.renamemenu.ActionMenuItemView;
import android.support.v7.internal.view.renamemenu.MenuBuilder;
import android.support.v7.internal.view.renamemenu.MenuItemImpl;
import android.support.v7.internal.view.renamemenu.MenuPresenter;
import android.support.v7.internal.view.renamemenu.MenuView;
import android.support.v7.internal.widget.ViewUtils; import android.support.v7.internal.widget.ViewUtils;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.ContextThemeWrapper; import android.view.ContextThemeWrapper;
@ -33,6 +28,11 @@ import android.view.View;
import android.view.ViewDebug; import android.view.ViewDebug;
import android.view.ViewGroup; import android.view.ViewGroup;
import android.view.accessibility.AccessibilityEvent; import android.view.accessibility.AccessibilityEvent;
import androidv7.rmenu.ActionMenuItemView;
import androidv7.rmenu.MBuilder;
import androidv7.rmenu.MenuItemImpl;
import androidv7.rmenu.MenuPresenter;
import androidv7.rmenu.MenuView;
/** /**
* ActionMenuView is a presentation of a series of menu options as a View. It provides * ActionMenuView is a presentation of a series of menu options as a View. It provides
@ -40,7 +40,7 @@ import android.view.accessibility.AccessibilityEvent;
* items in an overflow menu. This allows applications to present packs of actions inline with * items in an overflow menu. This allows applications to present packs of actions inline with
* specific or repeating content. * specific or repeating content.
*/ */
public class ActionMenuView extends LinearLayoutCompat implements MenuBuilder.ItemInvoker, public class ActionMenuView extends LinearLayoutCompat implements MBuilder.ItemInvoker,
MenuView { MenuView {
private static final String TAG = "ActionMenuView"; private static final String TAG = "ActionMenuView";
@ -48,7 +48,7 @@ public class ActionMenuView extends LinearLayoutCompat implements MenuBuilder.It
static final int MIN_CELL_SIZE = 56; // dips static final int MIN_CELL_SIZE = 56; // dips
static final int GENERATED_ITEM_PADDING = 4; // dips static final int GENERATED_ITEM_PADDING = 4; // dips
private MenuBuilder mMenu; private MBuilder mMenu;
private Context mContext; private Context mContext;
@ -61,7 +61,7 @@ public class ActionMenuView extends LinearLayoutCompat implements MenuBuilder.It
private boolean mReserveOverflow; private boolean mReserveOverflow;
private ActionMenuPresenter mPresenter; private ActionMenuPresenter mPresenter;
private MenuPresenter.Callback mActionMenuPresenterCallback; private MenuPresenter.Callback mActionMenuPresenterCallback;
private MenuBuilder.Callback mMenuBuilderCallback; private MBuilder.Callback mMenuBuilderCallback;
private boolean mFormatItems; private boolean mFormatItems;
private int mFormatItemsWidth; private int mFormatItemsWidth;
private int mMinCellSize; private int mMinCellSize;
@ -604,7 +604,7 @@ public class ActionMenuView extends LinearLayoutCompat implements MenuBuilder.It
} }
/** @hide */ /** @hide */
public void initialize(MenuBuilder menu) { public void initialize(MBuilder menu) {
mMenu = menu; mMenu = menu;
} }
@ -619,7 +619,7 @@ public class ActionMenuView extends LinearLayoutCompat implements MenuBuilder.It
public Menu getMenu() { public Menu getMenu() {
if (mMenu == null) { if (mMenu == null) {
final Context context = getContext(); final Context context = getContext();
mMenu = new MenuBuilder(context); mMenu = new MBuilder(context);
mMenu.setCallback(new MenuBuilderCallback()); mMenu.setCallback(new MenuBuilderCallback());
mPresenter = new ActionMenuPresenter(context); mPresenter = new ActionMenuPresenter(context);
mPresenter.setReserveOverflow(true); mPresenter.setReserveOverflow(true);
@ -636,7 +636,7 @@ public class ActionMenuView extends LinearLayoutCompat implements MenuBuilder.It
* Must be called before the first call to getMenu() * Must be called before the first call to getMenu()
* @hide * @hide
*/ */
public void setMenuCallbacks(MenuPresenter.Callback pcb, MenuBuilder.Callback mcb) { public void setMenuCallbacks(MenuPresenter.Callback pcb, MBuilder.Callback mcb) {
mActionMenuPresenterCallback = pcb; mActionMenuPresenterCallback = pcb;
mMenuBuilderCallback = mcb; mMenuBuilderCallback = mcb;
} }
@ -645,7 +645,7 @@ public class ActionMenuView extends LinearLayoutCompat implements MenuBuilder.It
* Returns the current menu or null if one has not yet been configured. * Returns the current menu or null if one has not yet been configured.
* @hide Internal use only for action bar integration * @hide Internal use only for action bar integration
*/ */
public MenuBuilder peekMenu() { public MBuilder peekMenu() {
return mMenu; return mMenu;
} }
@ -734,15 +734,15 @@ public class ActionMenuView extends LinearLayoutCompat implements MenuBuilder.It
public boolean onMenuItemClick(MenuItem item); public boolean onMenuItemClick(MenuItem item);
} }
private class MenuBuilderCallback implements MenuBuilder.Callback { private class MenuBuilderCallback implements MBuilder.Callback {
@Override @Override
public boolean onMenuItemSelected(MenuBuilder menu, MenuItem item) { public boolean onMenuItemSelected(MBuilder menu, MenuItem item) {
return mOnMenuItemClickListener != null && return mOnMenuItemClickListener != null &&
mOnMenuItemClickListener.onMenuItemClick(item); mOnMenuItemClickListener.onMenuItemClick(item);
} }
@Override @Override
public void onMenuModeChange(MenuBuilder menu) { public void onMenuModeChange(MBuilder menu) {
if (mMenuBuilderCallback != null) { if (mMenuBuilderCallback != null) {
mMenuBuilderCallback.onMenuModeChange(menu); mMenuBuilderCallback.onMenuModeChange(menu);
} }
@ -751,11 +751,11 @@ public class ActionMenuView extends LinearLayoutCompat implements MenuBuilder.It
private class ActionMenuPresenterCallback implements ActionMenuPresenter.Callback { private class ActionMenuPresenterCallback implements ActionMenuPresenter.Callback {
@Override @Override
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing) {
} }
@Override @Override
public boolean onOpenSubMenu(MenuBuilder subMenu) { public boolean onOpenSubMenu(MBuilder subMenu) {
return false; return false;
} }
} }

View file

@ -21,15 +21,15 @@ import android.content.Context;
import android.support.annotation.MenuRes; import android.support.annotation.MenuRes;
import android.support.v7.appcompat.R; import android.support.v7.appcompat.R;
import android.support.v7.internal.view.SupportMenuInflater; import android.support.v7.internal.view.SupportMenuInflater;
import android.support.v7.internal.view.renamemenu.MenuBuilder;
import android.support.v7.internal.view.renamemenu.MenuPopupHelper;
import android.support.v7.internal.view.renamemenu.MenuPresenter;
import android.support.v7.internal.view.renamemenu.SubMenuBuilder;
import android.view.Gravity; import android.view.Gravity;
import android.view.Menu; import android.view.Menu;
import android.view.MenuInflater; import android.view.MenuInflater;
import android.view.MenuItem; import android.view.MenuItem;
import android.view.View; import android.view.View;
import androidv7.rmenu.MBuilder;
import androidv7.rmenu.MenuPopupHelper;
import androidv7.rmenu.MenuPresenter;
import androidv7.rmenu.SubMenuBuilder;
/** /**
* Static library support version of the framework's {@link android.widget.PopupMenu}. * Static library support version of the framework's {@link android.widget.PopupMenu}.
@ -38,9 +38,9 @@ import android.view.View;
* to switch to the framework's implementation. See the framework SDK * to switch to the framework's implementation. See the framework SDK
* documentation for a class overview. * documentation for a class overview.
*/ */
public class PopupMenu implements MenuBuilder.Callback, MenuPresenter.Callback { public class PopupMenu implements MBuilder.Callback, MenuPresenter.Callback {
private Context mContext; private Context mContext;
private MenuBuilder mMenu; private MBuilder mMenu;
private View mAnchor; private View mAnchor;
private MenuPopupHelper mPopup; private MenuPopupHelper mPopup;
private OnMenuItemClickListener mMenuItemClickListener; private OnMenuItemClickListener mMenuItemClickListener;
@ -105,7 +105,7 @@ public class PopupMenu implements MenuBuilder.Callback, MenuPresenter.Callback {
public PopupMenu(Context context, View anchor, int gravity, int popupStyleAttr, public PopupMenu(Context context, View anchor, int gravity, int popupStyleAttr,
int popupStyleRes) { int popupStyleRes) {
mContext = context; mContext = context;
mMenu = new MenuBuilder(context); mMenu = new MBuilder(context);
mMenu.setCallback(this); mMenu.setCallback(this);
mAnchor = anchor; mAnchor = anchor;
mPopup = new MenuPopupHelper(context, mMenu, anchor, false, popupStyleAttr, popupStyleRes); mPopup = new MenuPopupHelper(context, mMenu, anchor, false, popupStyleAttr, popupStyleRes);
@ -222,7 +222,7 @@ public class PopupMenu implements MenuBuilder.Callback, MenuPresenter.Callback {
/** /**
* @hide * @hide
*/ */
public boolean onMenuItemSelected(MenuBuilder menu, MenuItem item) { public boolean onMenuItemSelected(MBuilder menu, MenuItem item) {
if (mMenuItemClickListener != null) { if (mMenuItemClickListener != null) {
return mMenuItemClickListener.onMenuItemClick(item); return mMenuItemClickListener.onMenuItemClick(item);
} }
@ -232,7 +232,7 @@ public class PopupMenu implements MenuBuilder.Callback, MenuPresenter.Callback {
/** /**
* @hide * @hide
*/ */
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing) {
if (mDismissListener != null) { if (mDismissListener != null) {
mDismissListener.onDismiss(this); mDismissListener.onDismiss(this);
} }
@ -241,7 +241,7 @@ public class PopupMenu implements MenuBuilder.Callback, MenuPresenter.Callback {
/** /**
* @hide * @hide
*/ */
public boolean onOpenSubMenu(MenuBuilder subMenu) { public boolean onOpenSubMenu(MBuilder subMenu) {
if (subMenu == null) return false; if (subMenu == null) return false;
if (!subMenu.hasVisibleItems()) { if (!subMenu.hasVisibleItems()) {
@ -262,7 +262,7 @@ public class PopupMenu implements MenuBuilder.Callback, MenuPresenter.Callback {
/** /**
* @hide * @hide
*/ */
public void onMenuModeChange(MenuBuilder menu) { public void onMenuModeChange(MBuilder menu) {
} }
/** /**

View file

@ -31,11 +31,6 @@ import android.support.v4.view.ViewCompat;
import android.support.v7.app.ActionBar; import android.support.v7.app.ActionBar;
import android.support.v7.appcompat.R; import android.support.v7.appcompat.R;
import android.support.v7.internal.view.SupportMenuInflater; import android.support.v7.internal.view.SupportMenuInflater;
import android.support.v7.internal.view.renamemenu.MenuBuilder;
import android.support.v7.internal.view.renamemenu.MenuItemImpl;
import android.support.v7.internal.view.renamemenu.MenuPresenter;
import android.support.v7.internal.view.renamemenu.MenuView;
import android.support.v7.internal.view.renamemenu.SubMenuBuilder;
import android.support.v7.internal.widget.DecorToolbar; import android.support.v7.internal.widget.DecorToolbar;
import android.support.v7.internal.widget.RtlSpacingHelper; import android.support.v7.internal.widget.RtlSpacingHelper;
import android.support.v7.internal.widget.TintManager; import android.support.v7.internal.widget.TintManager;
@ -57,6 +52,11 @@ import android.view.ViewGroup;
import android.widget.ImageButton; import android.widget.ImageButton;
import android.widget.ImageView; import android.widget.ImageView;
import android.widget.TextView; import android.widget.TextView;
import androidv7.rmenu.MBuilder;
import androidv7.rmenu.MenuItemImpl;
import androidv7.rmenu.MenuPresenter;
import androidv7.rmenu.MenuView;
import androidv7.rmenu.SubMenuBuilder;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.List; import java.util.List;
@ -171,7 +171,7 @@ public class Toolbar extends ViewGroup {
private ActionMenuPresenter mOuterActionMenuPresenter; private ActionMenuPresenter mOuterActionMenuPresenter;
private ExpandedActionViewMenuPresenter mExpandedMenuPresenter; private ExpandedActionViewMenuPresenter mExpandedMenuPresenter;
private MenuPresenter.Callback mActionMenuPresenterCallback; private MenuPresenter.Callback mActionMenuPresenterCallback;
private MenuBuilder.Callback mMenuBuilderCallback; private MBuilder.Callback mMenuBuilderCallback;
private boolean mCollapsible; private boolean mCollapsible;
private int mMinHeight; private int mMinHeight;
@ -369,13 +369,13 @@ public class Toolbar extends ViewGroup {
} }
/** @hide */ /** @hide */
public void setMenu(MenuBuilder menu, ActionMenuPresenter outerPresenter) { public void setMenu(MBuilder menu, ActionMenuPresenter outerPresenter) {
if (menu == null && mMenuView == null) { if (menu == null && mMenuView == null) {
return; return;
} }
ensureMenuView(); ensureMenuView();
final MenuBuilder oldMenu = mMenuView.peekMenu(); final MBuilder oldMenu = mMenuView.peekMenu();
if (oldMenu == menu) { if (oldMenu == menu) {
return; return;
} }
@ -825,7 +825,7 @@ public class Toolbar extends ViewGroup {
ensureMenuView(); ensureMenuView();
if (mMenuView.peekMenu() == null) { if (mMenuView.peekMenu() == null) {
// Initialize a new menu for the first time. // Initialize a new menu for the first time.
final MenuBuilder menu = (MenuBuilder) mMenuView.getMenu(); final MBuilder menu = (MBuilder) mMenuView.getMenu();
if (mExpandedMenuPresenter == null) { if (mExpandedMenuPresenter == null) {
mExpandedMenuPresenter = new ExpandedActionViewMenuPresenter(); mExpandedMenuPresenter = new ExpandedActionViewMenuPresenter();
} }
@ -1767,7 +1767,7 @@ public class Toolbar extends ViewGroup {
* Must be called before the menu is accessed * Must be called before the menu is accessed
* @hide * @hide
*/ */
public void setMenuCallbacks(MenuPresenter.Callback pcb, MenuBuilder.Callback mcb) { public void setMenuCallbacks(MenuPresenter.Callback pcb, MBuilder.Callback mcb) {
mActionMenuPresenterCallback = pcb; mActionMenuPresenterCallback = pcb;
mMenuBuilderCallback = mcb; mMenuBuilderCallback = mcb;
} }
@ -1904,11 +1904,11 @@ public class Toolbar extends ViewGroup {
} }
private class ExpandedActionViewMenuPresenter implements MenuPresenter { private class ExpandedActionViewMenuPresenter implements MenuPresenter {
MenuBuilder mMenu; MBuilder mMenu;
MenuItemImpl mCurrentExpandedItem; MenuItemImpl mCurrentExpandedItem;
@Override @Override
public void initForMenu(Context context, MenuBuilder menu) { public void initForMenu(Context context, MBuilder menu) {
// Clear the expanded action view when menus change. // Clear the expanded action view when menus change.
if (mMenu != null && mCurrentExpandedItem != null) { if (mMenu != null && mCurrentExpandedItem != null) {
mMenu.collapseItemActionView(mCurrentExpandedItem); mMenu.collapseItemActionView(mCurrentExpandedItem);
@ -1955,7 +1955,7 @@ public class Toolbar extends ViewGroup {
} }
@Override @Override
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing) {
} }
@Override @Override
@ -1964,7 +1964,7 @@ public class Toolbar extends ViewGroup {
} }
@Override @Override
public boolean expandItemActionView(MenuBuilder menu, MenuItemImpl item) { public boolean expandItemActionView(MBuilder menu, MenuItemImpl item) {
ensureCollapseButtonView(); ensureCollapseButtonView();
if (mCollapseButtonView.getParent() != Toolbar.this) { if (mCollapseButtonView.getParent() != Toolbar.this) {
addView(mCollapseButtonView); addView(mCollapseButtonView);
@ -1991,7 +1991,7 @@ public class Toolbar extends ViewGroup {
} }
@Override @Override
public boolean collapseItemActionView(MenuBuilder menu, MenuItemImpl item) { public boolean collapseItemActionView(MBuilder menu, MenuItemImpl item) {
// Do this before detaching the actionview from the hierarchy, in case // Do this before detaching the actionview from the hierarchy, in case
// it needs to dismiss the soft keyboard, etc. // it needs to dismiss the soft keyboard, etc.
if (mExpandedActionView instanceof CollapsibleActionView) { if (mExpandedActionView instanceof CollapsibleActionView) {

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.content.Context; import android.content.Context;
import android.content.Intent; import android.content.Intent;

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.content.Context; import android.content.Context;
import android.content.res.Configuration; import android.content.res.Configuration;
@ -52,7 +52,7 @@ public class ActionMenuItemView extends CompatTextView
private MenuItemImpl mItemData; private MenuItemImpl mItemData;
private CharSequence mTitle; private CharSequence mTitle;
private Drawable mIcon; private Drawable mIcon;
private MenuBuilder.ItemInvoker mItemInvoker; private MBuilder.ItemInvoker mItemInvoker;
private ListPopupWindow.ForwardingListener mForwardingListener; private ListPopupWindow.ForwardingListener mForwardingListener;
private PopupCallback mPopupCallback; private PopupCallback mPopupCallback;
@ -144,7 +144,7 @@ public class ActionMenuItemView extends CompatTextView
} }
} }
public void setItemInvoker(MenuBuilder.ItemInvoker invoker) { public void setItemInvoker(MBuilder.ItemInvoker invoker) {
mItemInvoker = invoker; mItemInvoker = invoker;
} }

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.content.Context; import android.content.Context;
import android.support.v4.view.ViewCompat; import android.support.v4.view.ViewCompat;
@ -35,7 +35,7 @@ public abstract class BaseMenuPresenter implements MenuPresenter {
protected Context mSystemContext; protected Context mSystemContext;
protected Context mContext; protected Context mContext;
protected MenuBuilder mMenu; protected MBuilder mMenu;
protected LayoutInflater mSystemInflater; protected LayoutInflater mSystemInflater;
protected LayoutInflater mInflater; protected LayoutInflater mInflater;
private Callback mCallback; private Callback mCallback;
@ -62,7 +62,7 @@ public abstract class BaseMenuPresenter implements MenuPresenter {
} }
@Override @Override
public void initForMenu(Context context, MenuBuilder menu) { public void initForMenu(Context context, MBuilder menu) {
mContext = context; mContext = context;
mInflater = LayoutInflater.from(mContext); mInflater = LayoutInflater.from(mContext);
mMenu = menu; mMenu = menu;
@ -202,7 +202,7 @@ public abstract class BaseMenuPresenter implements MenuPresenter {
return true; return true;
} }
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing) {
if (mCallback != null) { if (mCallback != null) {
mCallback.onCloseMenu(menu, allMenusAreClosing); mCallback.onCloseMenu(menu, allMenusAreClosing);
} }
@ -219,11 +219,11 @@ public abstract class BaseMenuPresenter implements MenuPresenter {
return false; return false;
} }
public boolean expandItemActionView(MenuBuilder menu, MenuItemImpl item) { public boolean expandItemActionView(MBuilder menu, MenuItemImpl item) {
return false; return false;
} }
public boolean collapseItemActionView(MenuBuilder menu, MenuItemImpl item) { public boolean collapseItemActionView(MBuilder menu, MenuItemImpl item) {
return false; return false;
} }

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.content.Context; import android.content.Context;
import android.support.v4.internal.view.SupportMenuItem; import android.support.v4.internal.view.SupportMenuItem;

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
class BaseWrapper<T> { class BaseWrapper<T> {

View file

@ -14,18 +14,18 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.content.Context; import android.content.Context;
import android.support.v7.internal.view.renamemenu.MenuBuilder;
import android.support.v7.internal.view.renamemenu.MenuView;
import android.support.v7.internal.view.renamemenu.MenuBuilder.ItemInvoker;
import android.support.v7.internal.widget.TintTypedArray; import android.support.v7.internal.widget.TintTypedArray;
import android.util.AttributeSet; import android.util.AttributeSet;
import android.view.View; import android.view.View;
import android.widget.AdapterView; import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener; import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView; import android.widget.ListView;
import androidv7.rmenu.MBuilder;
import androidv7.rmenu.MenuView;
import androidv7.rmenu.MBuilder.ItemInvoker;
/** /**
* The expanded menu view is a list-like menu with all of the available menu items. It is opened * The expanded menu view is a list-like menu with all of the available menu items. It is opened
@ -41,7 +41,7 @@ public final class ExpandedMenuView extends ListView
android.R.attr.divider android.R.attr.divider
}; };
private MenuBuilder mMenu; private MBuilder mMenu;
/** Default animations for this menu */ /** Default animations for this menu */
private int mAnimations; private int mAnimations;
@ -66,7 +66,7 @@ public final class ExpandedMenuView extends ListView
} }
@Override @Override
public void initialize(MenuBuilder menu) { public void initialize(MBuilder menu) {
mMenu = menu; mMenu = menu;
} }

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.content.Context; import android.content.Context;
import android.content.res.TypedArray; import android.content.res.TypedArray;

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.content.Context; import android.content.Context;
import android.database.DataSetObserver; import android.database.DataSetObserver;
@ -42,7 +42,7 @@ public class ListMenuPresenter implements MenuPresenter, AdapterView.OnItemClick
Context mContext; Context mContext;
LayoutInflater mInflater; LayoutInflater mInflater;
MenuBuilder mMenu; MBuilder mMenu;
ExpandedMenuView mMenuView; ExpandedMenuView mMenuView;
@ -80,7 +80,7 @@ public class ListMenuPresenter implements MenuPresenter, AdapterView.OnItemClick
} }
@Override @Override
public void initForMenu(Context context, MenuBuilder menu) { public void initForMenu(Context context, MBuilder menu) {
if (mThemeRes != 0) { if (mThemeRes != 0) {
mContext = new ContextThemeWrapper(context, mThemeRes); mContext = new ContextThemeWrapper(context, mThemeRes);
mInflater = LayoutInflater.from(mContext); mInflater = LayoutInflater.from(mContext);
@ -147,7 +147,7 @@ public class ListMenuPresenter implements MenuPresenter, AdapterView.OnItemClick
} }
@Override @Override
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing) {
if (mCallback != null) { if (mCallback != null) {
mCallback.onCloseMenu(menu, allMenusAreClosing); mCallback.onCloseMenu(menu, allMenusAreClosing);
} }
@ -174,11 +174,11 @@ public class ListMenuPresenter implements MenuPresenter, AdapterView.OnItemClick
return false; return false;
} }
public boolean expandItemActionView(MenuBuilder menu, MenuItemImpl item) { public boolean expandItemActionView(MBuilder menu, MenuItemImpl item) {
return false; return false;
} }
public boolean collapseItemActionView(MenuBuilder menu, MenuItemImpl item) { public boolean collapseItemActionView(MBuilder menu, MenuItemImpl item) {
return false; return false;
} }

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;
@ -51,7 +51,7 @@ import java.util.concurrent.CopyOnWriteArrayList;
* *
* @hide * @hide
*/ */
public class MenuBuilder implements SupportMenu { public class MBuilder implements SupportMenu {
private static final String TAG = "MenuBuilder"; private static final String TAG = "MenuBuilder";
@ -188,14 +188,14 @@ public class MenuBuilder implements SupportMenu {
* @param item The menu item that is selected * @param item The menu item that is selected
* @return whether the menu item selection was handled * @return whether the menu item selection was handled
*/ */
public boolean onMenuItemSelected(MenuBuilder menu, MenuItem item); public boolean onMenuItemSelected(MBuilder menu, MenuItem item);
/** /**
* Called when the mode of the menu changes (for example, from icon to expanded). * Called when the mode of the menu changes (for example, from icon to expanded).
* *
* @param menu the menu that has changed modes * @param menu the menu that has changed modes
*/ */
public void onMenuModeChange(MenuBuilder menu); public void onMenuModeChange(MBuilder menu);
} }
/** /**
@ -206,7 +206,7 @@ public class MenuBuilder implements SupportMenu {
public boolean invokeItem(MenuItemImpl item); public boolean invokeItem(MenuItemImpl item);
} }
public MenuBuilder(Context context) { public MBuilder(Context context) {
mContext = context; mContext = context;
mResources = context.getResources(); mResources = context.getResources();
@ -222,7 +222,7 @@ public class MenuBuilder implements SupportMenu {
setShortcutsVisibleInner(true); setShortcutsVisibleInner(true);
} }
public MenuBuilder setDefaultShowAsAction(int defaultShowAsAction) { public MBuilder setDefaultShowAsAction(int defaultShowAsAction) {
mDefaultShowAsAction = defaultShowAsAction; mDefaultShowAsAction = defaultShowAsAction;
return this; return this;
} }
@ -798,7 +798,7 @@ public class MenuBuilder implements SupportMenu {
return mContext; return mContext;
} }
boolean dispatchMenuItemSelected(MenuBuilder menu, MenuItem item) { boolean dispatchMenuItemSelected(MBuilder menu, MenuItem item) {
return mCallback != null && mCallback.onMenuItemSelected(menu, item); return mCallback != null && mCallback.onMenuItemSelected(menu, item);
} }
@ -862,7 +862,7 @@ public class MenuBuilder implements SupportMenu {
for (int i = 0; i < N; i++) { for (int i = 0; i < N; i++) {
MenuItemImpl item = mItems.get(i); MenuItemImpl item = mItems.get(i);
if (item.hasSubMenu()) { if (item.hasSubMenu()) {
((MenuBuilder)item.getSubMenu()).findItemsWithShortcutForKey(items, keyCode, event); ((MBuilder)item.getSubMenu()).findItemsWithShortcutForKey(items, keyCode, event);
} }
final char shortcutChar = qwerty ? item.getAlphabeticShortcut() : item.getNumericShortcut(); final char shortcutChar = qwerty ? item.getAlphabeticShortcut() : item.getNumericShortcut();
if (((metaState & (KeyEvent.META_SHIFT_ON | KeyEvent.META_SYM_ON)) == 0) && if (((metaState & (KeyEvent.META_SHIFT_ON | KeyEvent.META_SYM_ON)) == 0) &&
@ -1208,7 +1208,7 @@ public class MenuBuilder implements SupportMenu {
* @param title The new title. * @param title The new title.
* @return This MenuBuilder so additional setters can be called. * @return This MenuBuilder so additional setters can be called.
*/ */
protected MenuBuilder setHeaderTitleInt(CharSequence title) { protected MBuilder setHeaderTitleInt(CharSequence title) {
setHeaderInternal(0, title, 0, null, null); setHeaderInternal(0, title, 0, null, null);
return this; return this;
} }
@ -1220,7 +1220,7 @@ public class MenuBuilder implements SupportMenu {
* @param titleRes The new title (as a resource ID). * @param titleRes The new title (as a resource ID).
* @return This MenuBuilder so additional setters can be called. * @return This MenuBuilder so additional setters can be called.
*/ */
protected MenuBuilder setHeaderTitleInt(int titleRes) { protected MBuilder setHeaderTitleInt(int titleRes) {
setHeaderInternal(titleRes, null, 0, null, null); setHeaderInternal(titleRes, null, 0, null, null);
return this; return this;
} }
@ -1232,7 +1232,7 @@ public class MenuBuilder implements SupportMenu {
* @param icon The new icon. * @param icon The new icon.
* @return This MenuBuilder so additional setters can be called. * @return This MenuBuilder so additional setters can be called.
*/ */
protected MenuBuilder setHeaderIconInt(Drawable icon) { protected MBuilder setHeaderIconInt(Drawable icon) {
setHeaderInternal(0, null, 0, icon, null); setHeaderInternal(0, null, 0, icon, null);
return this; return this;
} }
@ -1244,7 +1244,7 @@ public class MenuBuilder implements SupportMenu {
* @param iconRes The new icon (as a resource ID). * @param iconRes The new icon (as a resource ID).
* @return This MenuBuilder so additional setters can be called. * @return This MenuBuilder so additional setters can be called.
*/ */
protected MenuBuilder setHeaderIconInt(int iconRes) { protected MBuilder setHeaderIconInt(int iconRes) {
setHeaderInternal(0, null, iconRes, null, null); setHeaderInternal(0, null, iconRes, null, null);
return this; return this;
} }
@ -1256,7 +1256,7 @@ public class MenuBuilder implements SupportMenu {
* @param view The new view. * @param view The new view.
* @return This MenuBuilder so additional setters can be called. * @return This MenuBuilder so additional setters can be called.
*/ */
protected MenuBuilder setHeaderViewInt(View view) { protected MBuilder setHeaderViewInt(View view) {
setHeaderInternal(0, null, 0, null, view); setHeaderInternal(0, null, 0, null, view);
return this; return this;
} }
@ -1278,7 +1278,7 @@ public class MenuBuilder implements SupportMenu {
* *
* @return The root menu. * @return The root menu.
*/ */
public MenuBuilder getRootMenu() { public MBuilder getRootMenu() {
return this; return this;
} }

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.app.AlertDialog; import android.app.AlertDialog;
import android.app.Dialog; import android.app.Dialog;
@ -35,12 +35,12 @@ public class MenuDialogHelper implements DialogInterface.OnKeyListener,
DialogInterface.OnClickListener, DialogInterface.OnClickListener,
DialogInterface.OnDismissListener, DialogInterface.OnDismissListener,
MenuPresenter.Callback { MenuPresenter.Callback {
private MenuBuilder mMenu; private MBuilder mMenu;
private AlertDialog mDialog; private AlertDialog mDialog;
ListMenuPresenter mPresenter; ListMenuPresenter mPresenter;
private MenuPresenter.Callback mPresenterCallback; private MenuPresenter.Callback mPresenterCallback;
public MenuDialogHelper(MenuBuilder menu) { public MenuDialogHelper(MBuilder menu) {
mMenu = menu; mMenu = menu;
} }
@ -51,7 +51,7 @@ public class MenuDialogHelper implements DialogInterface.OnKeyListener,
*/ */
public void show(IBinder windowToken) { public void show(IBinder windowToken) {
// Many references to mMenu, create local reference // Many references to mMenu, create local reference
final MenuBuilder menu = mMenu; final MBuilder menu = mMenu;
// Get the builder for the dialog // Get the builder for the dialog
final AlertDialog.Builder builder = new AlertDialog.Builder(menu.getContext()); final AlertDialog.Builder builder = new AlertDialog.Builder(menu.getContext());
@ -149,7 +149,7 @@ public class MenuDialogHelper implements DialogInterface.OnKeyListener,
} }
@Override @Override
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing) {
if (allMenusAreClosing || menu == mMenu) { if (allMenusAreClosing || menu == mMenu) {
dismiss(); dismiss();
} }
@ -159,7 +159,7 @@ public class MenuDialogHelper implements DialogInterface.OnKeyListener,
} }
@Override @Override
public boolean onOpenSubMenu(MenuBuilder subMenu) { public boolean onOpenSubMenu(MBuilder subMenu) {
if (mPresenterCallback != null) { if (mPresenterCallback != null) {
return mPresenterCallback.onOpenSubMenu(subMenu); return mPresenterCallback.onOpenSubMenu(subMenu);
} }

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.content.ActivityNotFoundException; import android.content.ActivityNotFoundException;
import android.content.Context; import android.content.Context;
@ -67,7 +67,7 @@ public final class MenuItemImpl implements SupportMenuItem {
private int mIconResId = NO_ICON; private int mIconResId = NO_ICON;
/** The menu to which this item belongs */ /** The menu to which this item belongs */
private MenuBuilder mMenu; private MBuilder mMenu;
/** If this item should launch a sub menu, this is the sub menu to launch */ /** If this item should launch a sub menu, this is the sub menu to launch */
private SubMenuBuilder mSubMenu; private SubMenuBuilder mSubMenu;
@ -116,7 +116,7 @@ public final class MenuItemImpl implements SupportMenuItem {
* @param categoryOrder The ordering for this item. * @param categoryOrder The ordering for this item.
* @param title The text to display for the item. * @param title The text to display for the item.
*/ */
MenuItemImpl(MenuBuilder menu, int group, int id, int categoryOrder, int ordering, MenuItemImpl(MBuilder menu, int group, int id, int categoryOrder, int ordering,
CharSequence title, int showAsAction) { CharSequence title, int showAsAction) {
/*if (sPrependShortcutLabel == null) { /*if (sPrependShortcutLabel == null) {

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.content.Context; import android.content.Context;

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.annotation.TargetApi; import android.annotation.TargetApi;
import android.content.Context; import android.content.Context;

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.content.Context; import android.content.Context;
import android.content.res.Resources; import android.content.res.Resources;
@ -52,7 +52,7 @@ public class MenuPopupHelper implements AdapterView.OnItemClickListener, View.On
private final Context mContext; private final Context mContext;
private final LayoutInflater mInflater; private final LayoutInflater mInflater;
private final MenuBuilder mMenu; private final MBuilder mMenu;
private final MenuAdapter mAdapter; private final MenuAdapter mAdapter;
private final boolean mOverflowOnly; private final boolean mOverflowOnly;
private final int mPopupMaxWidth; private final int mPopupMaxWidth;
@ -76,20 +76,20 @@ public class MenuPopupHelper implements AdapterView.OnItemClickListener, View.On
private int mDropDownGravity = Gravity.NO_GRAVITY; private int mDropDownGravity = Gravity.NO_GRAVITY;
public MenuPopupHelper(Context context, MenuBuilder menu) { public MenuPopupHelper(Context context, MBuilder menu) {
this(context, menu, null, false, R.attr.popupMenuStyle); this(context, menu, null, false, R.attr.popupMenuStyle);
} }
public MenuPopupHelper(Context context, MenuBuilder menu, View anchorView) { public MenuPopupHelper(Context context, MBuilder menu, View anchorView) {
this(context, menu, anchorView, false, R.attr.popupMenuStyle); this(context, menu, anchorView, false, R.attr.popupMenuStyle);
} }
public MenuPopupHelper(Context context, MenuBuilder menu, View anchorView, public MenuPopupHelper(Context context, MBuilder menu, View anchorView,
boolean overflowOnly, int popupStyleAttr) { boolean overflowOnly, int popupStyleAttr) {
this(context, menu, anchorView, overflowOnly, popupStyleAttr, 0); this(context, menu, anchorView, overflowOnly, popupStyleAttr, 0);
} }
public MenuPopupHelper(Context context, MenuBuilder menu, View anchorView, public MenuPopupHelper(Context context, MBuilder menu, View anchorView,
boolean overflowOnly, int popupStyleAttr, int popupStyleRes) { boolean overflowOnly, int popupStyleAttr, int popupStyleRes) {
mContext = context; mContext = context;
mInflater = LayoutInflater.from(context); mInflater = LayoutInflater.from(context);
@ -244,7 +244,7 @@ public class MenuPopupHelper implements AdapterView.OnItemClickListener, View.On
} }
@Override @Override
public void initForMenu(Context context, MenuBuilder menu) { public void initForMenu(Context context, MBuilder menu) {
// Don't need to do anything; we added as a presenter in the constructor. // Don't need to do anything; we added as a presenter in the constructor.
} }
@ -295,7 +295,7 @@ public class MenuPopupHelper implements AdapterView.OnItemClickListener, View.On
} }
@Override @Override
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing) { public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing) {
// Only care about the (sub)menu we're presenting. // Only care about the (sub)menu we're presenting.
if (menu != mMenu) return; if (menu != mMenu) return;
@ -310,11 +310,11 @@ public class MenuPopupHelper implements AdapterView.OnItemClickListener, View.On
return false; return false;
} }
public boolean expandItemActionView(MenuBuilder menu, MenuItemImpl item) { public boolean expandItemActionView(MBuilder menu, MenuItemImpl item) {
return false; return false;
} }
public boolean collapseItemActionView(MenuBuilder menu, MenuItemImpl item) { public boolean collapseItemActionView(MBuilder menu, MenuItemImpl item) {
return false; return false;
} }
@ -333,10 +333,10 @@ public class MenuPopupHelper implements AdapterView.OnItemClickListener, View.On
} }
private class MenuAdapter extends BaseAdapter { private class MenuAdapter extends BaseAdapter {
private MenuBuilder mAdapterMenu; private MBuilder mAdapterMenu;
private int mExpandedIndex = -1; private int mExpandedIndex = -1;
public MenuAdapter(MenuBuilder menu) { public MenuAdapter(MBuilder menu) {
mAdapterMenu = menu; mAdapterMenu = menu;
findExpandedIndex(); findExpandedIndex();
} }

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.content.Context; import android.content.Context;
import android.os.Parcelable; import android.os.Parcelable;
@ -39,7 +39,7 @@ public interface MenuPresenter {
* @param menu * @param menu
* @param allMenusAreClosing * @param allMenusAreClosing
*/ */
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing); public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing);
/** /**
* Called when a submenu opens. Useful for notifying the application * Called when a submenu opens. Useful for notifying the application
@ -50,22 +50,22 @@ public interface MenuPresenter {
* @return true if the Callback will handle presenting the submenu, false if * @return true if the Callback will handle presenting the submenu, false if
* the presenter should attempt to do so. * the presenter should attempt to do so.
*/ */
public boolean onOpenSubMenu(MenuBuilder subMenu); public boolean onOpenSubMenu(MBuilder subMenu);
} }
/** /**
* Initialize this presenter for the given context and menu. * Initialize this presenter for the given context and menu.
* This method is called by MenuBuilder when a presenter is * This method is called by MenuBuilder when a presenter is
* added. See {@link MenuBuilder#addMenuPresenter(MenuPresenter)} * added. See {@link MBuilder#addMenuPresenter(MenuPresenter)}
* *
* @param context Context for this presenter; used for view creation and resource management * @param context Context for this presenter; used for view creation and resource management
* @param menu Menu to host * @param menu Menu to host
*/ */
public void initForMenu(Context context, MenuBuilder menu); public void initForMenu(Context context, MBuilder menu);
/** /**
* Retrieve a MenuView to display the menu specified in * Retrieve a MenuView to display the menu specified in
* {@link #initForMenu(Context, MenuBuilder)}. * {@link #initForMenu(Context, MBuilder)}.
* *
* @param root Intended parent of the MenuView. * @param root Intended parent of the MenuView.
* @return A freshly created MenuView. * @return A freshly created MenuView.
@ -105,7 +105,7 @@ public interface MenuPresenter {
* @param menu Menu or submenu that is closing. * @param menu Menu or submenu that is closing.
* @param allMenusAreClosing True if all associated menus are closing. * @param allMenusAreClosing True if all associated menus are closing.
*/ */
public void onCloseMenu(MenuBuilder menu, boolean allMenusAreClosing); public void onCloseMenu(MBuilder menu, boolean allMenusAreClosing);
/** /**
* Called by Menu implementations to flag items that will be shown as actions. * Called by Menu implementations to flag items that will be shown as actions.
@ -120,7 +120,7 @@ public interface MenuPresenter {
* @param item Item to be expanded * @param item Item to be expanded
* @return true if this presenter expanded the action view, false otherwise. * @return true if this presenter expanded the action view, false otherwise.
*/ */
public boolean expandItemActionView(MenuBuilder menu, MenuItemImpl item); public boolean expandItemActionView(MBuilder menu, MenuItemImpl item);
/** /**
* Called when a menu item with a collapsable action view should collapse its action view. * Called when a menu item with a collapsable action view should collapse its action view.
@ -129,7 +129,7 @@ public interface MenuPresenter {
* @param item Item to be collapsed * @param item Item to be collapsed
* @return true if this presenter collapsed the action view, false otherwise. * @return true if this presenter collapsed the action view, false otherwise.
*/ */
public boolean collapseItemActionView(MenuBuilder menu, MenuItemImpl item); public boolean collapseItemActionView(MBuilder menu, MenuItemImpl item);
/** /**
* Returns an ID for determining how to save/restore instance state. * Returns an ID for determining how to save/restore instance state.

View file

@ -14,12 +14,12 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
/** /**
* Minimal interface for a menu view. {@link #initialize(MenuBuilder)} must be called for the * Minimal interface for a menu view. {@link #initialize(MBuilder)} must be called for the
* menu to be functional. * menu to be functional.
* *
* @hide * @hide
@ -31,7 +31,7 @@ public interface MenuView {
* *
* @param menu The menu that this MenuView should display. * @param menu The menu that this MenuView should display.
*/ */
public void initialize(MenuBuilder menu); public void initialize(MBuilder menu);
/** /**
* Returns the default animations to be used for this menu when entering/exiting. * Returns the default animations to be used for this menu when entering/exiting.
@ -49,8 +49,8 @@ public interface MenuView {
* inflated. * inflated.
* @param itemData The item that this ItemView should display. * @param itemData The item that this ItemView should display.
* @param menuType The type of this menu, one of * @param menuType The type of this menu, one of
* {@link MenuBuilder#TYPE_ICON}, {@link MenuBuilder#TYPE_EXPANDED}, * {@link MBuilder#TYPE_ICON}, {@link MBuilder#TYPE_EXPANDED},
* {@link MenuBuilder#TYPE_DIALOG}). * {@link MBuilder#TYPE_DIALOG}).
*/ */
public void initialize(MenuItemImpl itemData, int menuType); public void initialize(MenuItemImpl itemData, int menuType);

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.content.Context; import android.content.Context;
import android.os.Build; import android.os.Build;

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.content.ComponentName; import android.content.ComponentName;
import android.content.Context; import android.content.Context;

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.content.Context; import android.content.Context;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;
@ -30,11 +30,11 @@ import android.view.View;
* *
* @hide * @hide
*/ */
public class SubMenuBuilder extends MenuBuilder implements SubMenu { public class SubMenuBuilder extends MBuilder implements SubMenu {
private MenuBuilder mParentMenu; private MBuilder mParentMenu;
private MenuItemImpl mItem; private MenuItemImpl mItem;
public SubMenuBuilder(Context context, MenuBuilder parentMenu, MenuItemImpl item) { public SubMenuBuilder(Context context, MBuilder parentMenu, MenuItemImpl item) {
super(context); super(context);
mParentMenu = parentMenu; mParentMenu = parentMenu;
@ -75,12 +75,12 @@ public class SubMenuBuilder extends MenuBuilder implements SubMenu {
} }
@Override @Override
public MenuBuilder getRootMenu() { public MBuilder getRootMenu() {
return mParentMenu; return mParentMenu;
} }
@Override @Override
boolean dispatchMenuItemSelected(MenuBuilder menu, MenuItem item) { boolean dispatchMenuItemSelected(MBuilder menu, MenuItem item) {
return super.dispatchMenuItemSelected(menu, item) || return super.dispatchMenuItemSelected(menu, item) ||
mParentMenu.dispatchMenuItemSelected(menu, item); mParentMenu.dispatchMenuItemSelected(menu, item);
} }

View file

@ -14,7 +14,7 @@
* limitations under the License. * limitations under the License.
*/ */
package android.support.v7.internal.view.renamemenu; package androidv7.rmenu;
import android.content.Context; import android.content.Context;
import android.graphics.drawable.Drawable; import android.graphics.drawable.Drawable;

View file

@ -12,7 +12,7 @@
android:icon="@drawable/icon" android:icon="@drawable/icon"
android:label="OsmAnd Nautical" > android:label="OsmAnd Nautical" >
<activity <activity
android:name=".NauticalActivity" android:name="net.osmand.nautical.NauticalActivity"
android:label="@string/app_name" > android:label="@string/app_name" >
<!-- <!--
<intent-filter> <intent-filter>

View file

@ -1,4 +1,4 @@
package net.osmand.parkingPlugin; package net.osmand.nautical;
import net.osmand.nauticalPlugin.R; import net.osmand.nauticalPlugin.R;
import android.app.Activity; import android.app.Activity;

View file

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="src" path="gen"/>
<classpathentry kind="con" path="com.android.ide.eclipse.adt.ANDROID_FRAMEWORK"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.LIBRARIES"/>
<classpathentry exported="true" kind="con" path="com.android.ide.eclipse.adt.DEPENDENCIES"/>
<classpathentry kind="output" path="bin/classes"/>
</classpath>

5
plugins/Osmand-Skimaps/.gitignore vendored Normal file
View file

@ -0,0 +1,5 @@
bin
gen
raw
obj
*.iml

View file

@ -0,0 +1,33 @@
<?xml version="1.0" encoding="UTF-8"?>
<projectDescription>
<name>Osmand-SkiMaps</name>
<comment></comment>
<projects>
</projects>
<buildSpec>
<buildCommand>
<name>com.android.ide.eclipse.adt.ResourceManagerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.PreCompilerBuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>org.eclipse.jdt.core.javabuilder</name>
<arguments>
</arguments>
</buildCommand>
<buildCommand>
<name>com.android.ide.eclipse.adt.ApkBuilder</name>
<arguments>
</arguments>
</buildCommand>
</buildSpec>
<natures>
<nature>com.android.ide.eclipse.adt.AndroidNature</nature>
<nature>org.eclipse.jdt.core.javanature</nature>
</natures>
</projectDescription>

View file

@ -0,0 +1,26 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="net.osmand.skimapsPlugin"
android:versionCode="6"
android:versionName="1.0" >
<uses-sdk android:minSdkVersion="9" android:targetSdkVersion="16" />
<uses-feature android:name="android.hardware.touchscreen" android:required="false"/>
<supports-screens android:resizeable="true" android:smallScreens="true" android:normalScreens="true" android:largeScreens="true"
android:xlargeScreens="true" android:anyDensity="true" />
<application
android:icon="@drawable/icon"
android:label="OsmAnd Ski Maps" >
<activity
android:name="net.osmand.skimaps.SkiMapsActivity"
android:label="@string/app_name" >
<!--
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
-->
</activity>
</application>
</manifest>

View file

@ -0,0 +1,67 @@
apply plugin: 'com.android.application'
android {
compileSdkVersion 21
buildToolsVersion "21.1.2"
signingConfigs {
development {
storeFile file("../../keystores/debug.keystore")
storePassword "android"
keyAlias "androiddebugkey"
keyPassword "android"
}
publishing {
storeFile file("../../osmand_key")
storePassword System.getenv("OSMAND_APK_PASSWORD")
keyAlias "androiddebugkey"
keyPassword System.getenv("OSMAND_APK_PASSWORD")
}
}
defaultConfig {
minSdkVersion 9
targetSdkVersion 21
}
lintOptions {
abortOnError false
}
sourceSets {
main {
manifest.srcFile "AndroidManifest.xml"
jni.srcDirs = []
jniLibs.srcDirs = []
aidl.srcDirs = ["src"]
java.srcDirs = ["src"]
resources.srcDirs = ["src"]
renderscript.srcDirs = ["src"]
res.srcDirs = ["res"]
assets.srcDirs = ["assets"]
}
}
buildTypes {
debug {
signingConfig signingConfigs.development
}
release {
signingConfig signingConfigs.publishing
}
}
}
repositories {
ivy {
name = "OsmAndBinariesIvy"
url = "http://builder.osmand.net"
layout "pattern", {
artifact "ivy/[organisation]/[module]/[revision]/[artifact]-[revision].[ext]"
}
}
}
dependencies {
}

View file

@ -0,0 +1,20 @@
# To enable ProGuard in your project, edit project.properties
# to define the proguard.config property as described in that file.
#
# Add project specific ProGuard rules here.
# By default, the flags in this file are appended to flags specified
# in ${sdk.dir}/tools/proguard/proguard-android.txt
# You can edit the include path and order by changing the ProGuard
# include property in project.properties.
#
# For more details, see
# http://developer.android.com/guide/developing/tools/proguard.html
# Add any project specific keep options here:
# If your project uses WebView with JS, uncomment the following
# and specify the fully qualified class name to the JavaScript interface
# class:
#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
# public *;
#}

View file

@ -0,0 +1,14 @@
# This file is automatically generated by Android Tools.
# Do not modify this file -- YOUR CHANGES WILL BE ERASED!
#
# This file must be checked in Version Control Systems.
#
# To customize properties used by the Ant build system edit
# "ant.properties", and override values to adapt the script to your
# project structure.
#
# To enable ProGuard to shrink and obfuscate your code, uncomment this (available properties: sdk.dir, user.home):
#proguard.config=${sdk.dir}/tools/proguard/proguard-android.txt:proguard-project.txt
# Project target.
target=android-19

Binary file not shown.

After

Width:  |  Height:  |  Size: 9.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 8.2 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.7 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 2.6 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 5.1 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 4.9 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 14 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 11 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 21 KiB

Binary file not shown.

After

Width:  |  Height:  |  Size: 41 KiB

View file

@ -0,0 +1,13 @@
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<TextView
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:gravity="center_vertical|center_horizontal"
android:text="@string/parking_plugin_installed"
android:textSize="22sp"/>
</FrameLayout>

View file

@ -0,0 +1,8 @@
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="shared_string_no">No</string>
<string name="shared_string_yes">Yes</string>
<string name="osmand_app_not_found">OsmAnd is not installed</string>
<string name="app_name">OsmAnd Ski Maps</string>
<string name="parking_plugin_installed">OsmAnd Ski Maps Plugin is installed and enabled in OsmAnd settings.</string>
</resources>

View file

@ -0,0 +1,61 @@
package net.osmand.skimaps;
import net.osmand.skimapsPlugin.R;
import android.app.Activity;
import android.app.AlertDialog;
import android.content.ActivityNotFoundException;
import android.content.ComponentName;
import android.content.DialogInterface;
import android.content.Intent;
import android.content.pm.PackageManager;
import android.content.pm.ResolveInfo;
import android.net.Uri;
import android.os.Bundle;
public class SkiMapsActivity extends Activity {
private static final String OSMAND_COMPONENT = "net.osmand"; //$NON-NLS-1$
private static final String OSMAND_COMPONENT_PLUS = "net.osmand.plus"; //$NON-NLS-1$
private static final String OSMAND_ACTIVITY = "net.osmand.plus.activities.MapActivity"; //$NON-NLS-1$
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Intent intentPlus = new Intent();
intentPlus.setComponent(new ComponentName(OSMAND_COMPONENT_PLUS, OSMAND_ACTIVITY));
intentPlus.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
ResolveInfo resolved = getPackageManager().resolveActivity(intentPlus, PackageManager.MATCH_DEFAULT_ONLY);
if(resolved != null) {
stopService(intentPlus);
startActivity(intentPlus);
} else {
Intent intentNormal = new Intent();
intentNormal.setFlags(Intent.FLAG_ACTIVITY_RESET_TASK_IF_NEEDED);
intentNormal.setComponent(new ComponentName(OSMAND_COMPONENT, OSMAND_ACTIVITY));
resolved = getPackageManager().resolveActivity(intentNormal, PackageManager.MATCH_DEFAULT_ONLY);
if (resolved != null) {
stopService(intentNormal);
startActivity(intentNormal);
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(this);
builder.setMessage(getString(R.string.osmand_app_not_found));
builder.setPositiveButton(getString(R.string.shared_string_yes), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse("market://search?q=pname:" + OSMAND_COMPONENT_PLUS));
try {
stopService(intent);
startActivity(intent);
} catch (ActivityNotFoundException e) {
}
}
});
builder.setNegativeButton(getString(R.string.shared_string_no), null);
builder.show();
}
}
}
}