package in.sahildave.gazetti.homescreen.newcontent; import android.app.Activity; import android.os.Bundle; import android.support.v4.app.DialogFragment; import android.view.LayoutInflater; import android.view.View; import android.view.View.OnClickListener; import android.view.ViewGroup; import android.widget.Button; import android.widget.ExpandableListView; import android.widget.ExpandableListView.OnGroupClickListener; import android.widget.LinearLayout; import in.sahildave.gazetti.R; import in.sahildave.gazetti.util.NewsCatFileUtil; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; /** * Created by sahil on 29/11/14. */ public class DialogNewContent extends DialogFragment { private View dialogView; private ExpandableListView expListView; private List<String> listDataHeader; private HashMap<String, List<String>> listDataChild; private DialogNewContentExpListAdaper expListAdapter; private Button doneButton; private LinearLayout topLayer; private Button closeButton; private NewContentCallback activityCallback; public interface NewContentCallback { void newContentDoneButton(); } @Override public void onAttach(Activity activity) { super.onAttach(activity); try { activityCallback = (NewContentCallback) activity; } catch (ClassCastException e) { throw new ClassCastException(activity.toString() + " must implement NewContentCallback"); } } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setStyle(DialogFragment.STYLE_NO_TITLE, R.style.dialogNewContent); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { dialogView = inflater.inflate(R.layout.dialog_new_content, null); expListView = (ExpandableListView) dialogView.findViewById(R.id.new_content_expandable_list); topLayer = (LinearLayout) dialogView.findViewById(R.id.new_content_top_layer); doneButton = (Button) dialogView.findViewById(R.id.new_content_done_button); closeButton = (Button) dialogView.findViewById(R.id.new_content_close_button); prepareListData(); expListAdapter = new DialogNewContentExpListAdaper(getActivity(), listDataHeader, listDataChild); expListAdapter.setExpList(expListView); expListView.setAdapter(expListAdapter); expListView.setOnGroupClickListener(new OnGroupClickListener() { @Override public boolean onGroupClick(ExpandableListView parent, View v, int groupPosition, long id) { if (topLayer.getVisibility()==View.VISIBLE) { topLayer.setVisibility(View.GONE); } return false; } }); doneButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Map<String, Object> selectedStates = expListAdapter.getClickedStates(); NewsCatFileUtil.getInstance(getActivity()).updateSelectionWithNewAssets(selectedStates); dismiss(); activityCallback.newContentDoneButton(); } }); closeButton.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { dismiss(); } }); return dialogView; } private void prepareListData() { listDataHeader = new ArrayList<String>(); listDataChild = new HashMap<String, List<String>>(); // Adding child data listDataHeader.add(0, "The Hindu"); listDataHeader.add(1, "The Times of India"); listDataHeader.add(2, "First Post"); listDataHeader.add(3, "The Indian Express"); // Adding child data List<String> th = new ArrayList<String>(); th.add("Blogs and Editorials"); List<String> toi = new ArrayList<String>(); toi.add("Blogs and Editorials"); List<String> fp = new ArrayList<String>(); fp.add("Blogs and Editorials"); List<String> tie = new ArrayList<String>(); tie.add("Blogs and Editorials"); // Header, Child data listDataChild.put(listDataHeader.get(0), th); listDataChild.put(listDataHeader.get(1), toi); listDataChild.put(listDataHeader.get(2), fp); listDataChild.put(listDataHeader.get(3), tie); } }