package mil.nga.giat.asam;
import mil.nga.giat.asam.util.AsamConstants;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import android.view.View;
import android.widget.ArrayAdapter;
import android.widget.RadioButton;
import android.widget.Spinner;
public class SortAsamListDialogFragment extends DialogFragment {
public interface OnSortAsamListListener {
public void onSortAsamList(int sortDirection, int sortPopupSpinnerSelection);
}
public static SortAsamListDialogFragment newInstance(int sortDirection, int sortPopupSpinnerSelection) {
SortAsamListDialogFragment dialogFragment = new SortAsamListDialogFragment();
Bundle arguments = new Bundle();
arguments.putInt(AsamConstants.SORT_DIRECTION_KEY, sortDirection);
arguments.putInt(AsamConstants.SPINNER_SELECTION_KEY, sortPopupSpinnerSelection);
dialogFragment.setArguments(arguments);
return dialogFragment;
}
private Spinner mSortSpinnerUI;
private RadioButton mSortAscendingRadioButtonUI;
private RadioButton mSortDescendingRadioButtonUI;
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(getString(R.string.sort_asam_list_dialog_fragment_title_text));
View popupView = getActivity().getLayoutInflater().inflate(R.layout.sort_asam_list_dialog_fragment, null);
mSortSpinnerUI = (Spinner)popupView.findViewById(R.id.sort_asam_list_dialog_fragment_sort_spinner_ui);
mSortAscendingRadioButtonUI = (RadioButton)popupView.findViewById(R.id.sort_asam_list_dialog_fragment_sort_ascending_radio_button_ui);
mSortDescendingRadioButtonUI = (RadioButton)popupView.findViewById(R.id.sort_asam_list_dialog_fragment_sort_descending_radio_button_ui);
builder.setView(popupView);
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(getActivity(), R.array.sort_types, R.layout.sort_asam_list_dialog_fragment_spinner_item);
adapter.setDropDownViewResource(R.layout.sort_asam_list_dialog_fragment_spinner_dropdown_item);
mSortSpinnerUI.setAdapter(adapter);
mSortSpinnerUI.setSelection(getArguments().getInt(AsamConstants.SPINNER_SELECTION_KEY));
mSortAscendingRadioButtonUI.setChecked(getArguments().getInt(AsamConstants.SORT_DIRECTION_KEY) == AsamConstants.SORT_ASCENDING);
mSortDescendingRadioButtonUI.setChecked(getArguments().getInt(AsamConstants.SORT_DIRECTION_KEY) == AsamConstants.SORT_DESCENDING);
builder.setPositiveButton(getString(R.string.sort_asam_list_dialog_fragment_sort_button_text), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
int sortPopupSpinnerSelection = mSortSpinnerUI.getSelectedItemPosition();
int sortDirection = mSortAscendingRadioButtonUI.isChecked() ? AsamConstants.SORT_ASCENDING : AsamConstants.SORT_DESCENDING;
((OnSortAsamListListener)getActivity()).onSortAsamList(sortDirection, sortPopupSpinnerSelection);
dialog.dismiss();
}
});
builder.setNegativeButton(getString(R.string.sort_asam_list_dialog_fragment_cancel_button_text), new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
Dialog dialog = builder.create();
dialog.setCanceledOnTouchOutside(true);
return dialog;
}
}