/*
ItemSelectDialogFragment.java
Copyright (c) 2015 NTT DOCOMO,INC.
Released under the MIT license
http://opensource.org/licenses/mit-license.php
*/
package org.deviceconnect.android.deviceplugin.webrtc.setting.fragment;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.os.Bundle;
import android.support.v4.app.DialogFragment;
import org.deviceconnect.android.deviceplugin.webrtc.R;
import java.util.List;
public class ItemSelectDialogFragment extends DialogFragment {
private String mTitle;
private String[] mItems;
private int mSelected;
private OnSelectItemListener mOnSelectItemListener;
public static ItemSelectDialogFragment create(final String title, final String[] items, final int selected) {
if (title == null) {
throw new NullPointerException("title is null.");
}
if (items == null) {
throw new NullPointerException("items is null.");
}
if (selected < 0 || selected >= items.length) {
throw new IllegalArgumentException("selected is invalid.");
}
ItemSelectDialogFragment dialog = new ItemSelectDialogFragment();
dialog.setTitle(title);
dialog.setItems(items);
dialog.setSelected(selected);
return dialog;
}
public static ItemSelectDialogFragment create(final String title, final List<String> items) {
return create(title, items, 0);
}
public static ItemSelectDialogFragment create(final String title, final List<String> items, final int selected) {
if (title == null) {
throw new NullPointerException("title is null.");
}
if (items == null) {
throw new NullPointerException("items is null.");
}
String[] str = new String[items.size()];
items.toArray(str);
return create(title, str, selected);
}
private void setTitle(final String title) {
mTitle = title;
}
private void setItems(final String[] items) {
mItems = items;
}
private void setSelected(final int selected) {
mSelected = selected;
}
public void setOnSelectItemListener(OnSelectItemListener listener) {
mOnSelectItemListener = listener;
}
@Override
public Dialog onCreateDialog(final Bundle savedInstanceState) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(mTitle);
builder.setSingleChoiceItems(mItems, mSelected, new DialogInterface.OnClickListener() {
public void onClick(final DialogInterface dialog, final int which) {
if (mOnSelectItemListener != null) {
mOnSelectItemListener.onSelected(mItems[which], which);
}
dialog.dismiss();
}
});
builder.setNegativeButton(R.string.settings_dialog_cancel, new DialogInterface.OnClickListener() {
@Override
public void onClick(final DialogInterface dialog, final int which) {
if (mOnSelectItemListener != null) {
mOnSelectItemListener.onCanceled();
}
dialog.dismiss();
}
});
return builder.create();
}
public interface OnSelectItemListener {
void onSelected(String text, int which);
void onCanceled();
}
}