package com.duckduckgo.mobile.android.views; import android.app.AlertDialog; import android.app.Dialog; import android.content.Context; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuItem; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ListView; import android.widget.TextView; import com.duckduckgo.mobile.android.R; import com.duckduckgo.mobile.android.objects.FeedObject; import java.util.ArrayList; import java.util.List; public class DDGDialogMenu extends DialogFragment { public static final String TAG = "dialog_menu"; private Context context; private LayoutInflater inflater; private ListView menuListView = null; private DDGMenuAdapter menuAdapter; private List<MenuItem> menuItems; private CharSequence[] items;// = {"ciao", "champagne", "bello"}; private View fragmentView = null; private FeedObject feed = null; @Override public Dialog onCreateDialog(Bundle savedInstanceState) { AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); inflater = (LayoutInflater) getActivity().getSystemService(Context.LAYOUT_INFLATER_SERVICE); fragmentView = inflater.inflate(R.layout.overflow_menu, null); menuListView = (ListView) fragmentView.findViewById(R.id.menu_listview); menuListView.setVisibility(View.VISIBLE); menuAdapter = new DDGMenuAdapter(getActivity(), R.layout.item_overflow_menu, menuItems); Log.e("aaa", "menu adapter count: "+menuAdapter.getCount()); menuListView.setAdapter(menuAdapter); builder.setView(fragmentView); //builder.setTitle("test"); //builder.setMessage("ciao test test"); /* builder.setItems(items, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { Log.e("aaa", "clicked: "+items[which]); } });*/ boolean test = items == null; Log.e("aaa", "items==null: "+test); if(!test) { Log.e("aaa", "items length: "+items.length); for(int i=0; i<items.length; i++) { Log.e("aaa", "items["+i+"]: "+items[i]); } } return builder.create(); } //@Override //public void /* @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { fragmentView = inflater.inflate(R.layout.temp_popupwindows, container, false); return fragmentView; } @Override public void onActivityCreated(Bundle savedInstanceState) { super.onActivityCreated(savedInstanceState); menuListView = (ListView) fragmentView.findViewById(R.id.menu_listview); menuAdapter = new DDGMenuAdapter(getActivity(), R.layout.temp_menuitem, menuItems); menuListView.setAdapter(menuAdapter); menuListView.setOnItemClickListener(this); } @Override public void onItemClick(AdapterView<?> parent, View view, int position, long id) { Log.e("aaa", "on item clicked: " + menuItems.get(position)); if(feed==null) { BusProvider.getInstance().post(new WebViewItemMenuClickEvent(menuItems.get(position))); } else { BusProvider.getInstance().post(new WebViewItemMenuClickEvent(menuItems.get(position), feed)); } dismiss(); } */ public void setFeed(FeedObject feed) { this.feed = feed; } public void setMenu(Menu menu) { //menuListView.setVisibility(View.VISIBLE); menuItems = new ArrayList<MenuItem>(); for(int i=0; i<menu.size(); i++) { if(menu.getItem(i).isVisible()) { menuItems.add(menu.getItem(i)); //items[i] = menu.getItem(i).getTitle(); } } items = new String[menuItems.size()]; for(int i=0; i<menuItems.size(); i++) { items[i] = menuItems.get(i).toString(); } //adapter = new ArrayAdapter(context, R.layout.temp_menuitem, R.id.text1, menuItems); //menuListView.setAdapter(adapter); //menuListView.setAdapter(menuAdapter); /* for(int i=0; i<adapter.getCount(); i++) { MenuItem item = (MenuItem) adapter.getItem(i); Log.e("aaa", "item: "+item.getTitle()+" - enabled: "+item.isEnabled()); //menuListView.getChildAt(i).setEnabled(item.isEnabled()); }*/ //menuListView.setOnItemClickListener(this); } public class DDGMenuAdapter extends ArrayAdapter<MenuItem> { private Context context; private int layoutResId; private List<MenuItem> menuItems; public DDGMenuAdapter(Context context, int layoutResId, List<MenuItem> menuItems) { super(context, layoutResId, menuItems); this.context = context; this.layoutResId = layoutResId; this.menuItems = menuItems; } @Override public View getView(int position, View convertView, ViewGroup parent) { View root = convertView; Holder holder = null; if(root==null) { LayoutInflater inflater = (LayoutInflater) context.getSystemService(Context.LAYOUT_INFLATER_SERVICE); root = inflater.inflate(layoutResId, parent, false); holder = new Holder(); holder.text = (TextView) root.findViewById(R.id.text1); root.setTag(holder); } else { holder = (Holder) root.getTag(); } MenuItem item = menuItems.get(position); holder.text.setText(item.getTitle()); holder.text.setEnabled(item.isEnabled()); //Log.e("aaa", "get view position: "+position+" - text: "+item.getTitle()+" - enabled: "+item.isEnabled()); return root; } class Holder { TextView text; } } }