public bool OnPrepareActionMode(ActionMode mode, Android.Views.IMenu menu)
        {
            Logger.Debug("onPrepareActionMode");

            bool selectionContainsRead   = false;
            bool selectionContainsUnread = false;

            foreach (string id in inbox.SelectedMessages)
            {
                RichPushMessage message = richPushInbox.GetMessage(id);
                if (message.IsRead)
                {
                    selectionContainsRead = true;
                }
                else
                {
                    selectionContainsUnread = true;
                }

                if (selectionContainsRead && selectionContainsUnread)
                {
                    break;
                }
            }

            // Show them both
            menu.FindItem(Resource.Id.mark_read).SetVisible(selectionContainsUnread);
            menu.FindItem(Resource.Id.mark_unread).SetVisible(selectionContainsRead);

            // If we have an action selection button update the text
            if (actionSelectionButton != null)
            {
                string selectionText = this.GetString(Resource.String.cab_selection, inbox.SelectedMessages.Count);
                actionSelectionButton.Text = selectionText;
            }

            return(true);
        }
        //SuppressLint("NewApi")
        public bool OnCreateActionMode(ActionMode mode, Android.Views.IMenu menu)
        {
            mode.MenuInflater.Inflate(Resource.Menu.inbox_actions_menu, menu);

            // Add a pop up menu to the action bar to select/deselect all
            // Pop up menu requires api >= 11
            if ((int)Build.VERSION.SdkInt >= (int)BuildVersionCodes.Honeycomb)
            {
                View customView = LayoutInflater.From(this).Inflate(Resource.Layout.cab_selection_dropdown, null);
                actionSelectionButton = (Button)customView.FindViewById(Resource.Id.selection_button);

                PopupMenu popupMenu = new PopupMenu(this, customView);
                popupMenu.MenuInflater.Inflate(Resource.Menu.selection, popupMenu.Menu);
                popupMenu.MenuItemClick += (sender, e) => {
                    var item = e.Item;
                    if (item.ItemId == Resource.Id.menu_deselect_all)
                    {
                        inbox.ClearSelection();
                    }
                    else
                    {
                        inbox.SelectAll();
                    }
                    e.Handled = true;
                };

                actionSelectionButton.Click += (sender, e) => {
                    var _menu = popupMenu.Menu;
                    _menu.FindItem(Resource.Id.menu_deselect_all).SetVisible(true);
                    _menu.FindItem(Resource.Id.menu_select_all).SetVisible(inbox.SelectedMessages.Count != messages.Count);
                    popupMenu.Show();
                };

                mode.CustomView = customView;
            }

            return(true);
        }