blob: 3279df2dda920407099b22d45a1e233b38ca0707 [file] [log] [blame]
package org.wordpress.android.ui.posts.adapters;
import android.content.Context;
import android.support.annotation.NonNull;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import org.wordpress.android.R;
import org.wordpress.android.models.PostStatus;
import org.wordpress.android.models.PostsListPost;
import org.wordpress.android.widgets.PostListButton;
import java.util.ArrayList;
import java.util.List;
/*
* adapter for the popup menu that appears when clicking "..." in the pages list - each item
* in the menu item array is an integer that matches a specific PostListButton button type
*/
public class PageMenuAdapter extends BaseAdapter {
private final LayoutInflater mInflater;
private final List<Integer> mMenuItems = new ArrayList<>();
public PageMenuAdapter(Context context, @NonNull PostsListPost page) {
super();
mInflater = LayoutInflater.from(context);
boolean showViewItem = !page.isLocalDraft() && page.getStatusEnum() == PostStatus.PUBLISHED;
boolean showStatsItem = !page.isLocalDraft() && page.getStatusEnum() == PostStatus.PUBLISHED;
boolean showTrashItem = !page.isLocalDraft();
boolean showDeleteItem = !showTrashItem;
// edit item always appears
mMenuItems.add(PostListButton.BUTTON_EDIT);
if (showViewItem) {
mMenuItems.add(PostListButton.BUTTON_VIEW);
}
if (showStatsItem) {
mMenuItems.add(PostListButton.BUTTON_STATS);
}
if (showTrashItem) {
mMenuItems.add(PostListButton.BUTTON_TRASH);
}
if (showDeleteItem) {
mMenuItems.add(PostListButton.BUTTON_DELETE);
}
}
@Override
public int getCount() {
return mMenuItems.size();
}
@Override
public Object getItem(int position) {
return mMenuItems.get(position);
}
@Override
public long getItemId(int position) {
return mMenuItems.get(position);
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
PageMenuHolder holder;
if (convertView == null) {
convertView = mInflater.inflate(R.layout.popup_menu_item, parent, false);
holder = new PageMenuHolder(convertView);
convertView.setTag(holder);
} else {
holder = (PageMenuHolder) convertView.getTag();
}
int buttonType = mMenuItems.get(position);
holder.text.setText(PostListButton.getButtonTextResId(buttonType));
holder.icon.setImageResource(PostListButton.getButtonIconResId(buttonType));
return convertView;
}
class PageMenuHolder {
private final TextView text;
private final ImageView icon;
PageMenuHolder(View view) {
text = (TextView) view.findViewById(R.id.text);
icon = (ImageView) view.findViewById(R.id.image);
}
}
}