package com.radicaldynamic.gcmobile.android.dialogs; import java.util.ArrayList; import java.util.List; import android.app.AlertDialog.Builder; import android.content.Context; import android.content.DialogInterface; import android.content.DialogInterface.OnClickListener; import android.content.DialogInterface.OnMultiChoiceClickListener; import android.widget.Toast; import com.radicaldynamic.groupinform.R; import com.radicaldynamic.groupinform.application.Collect; import com.radicaldynamic.groupinform.documents.FormInstance; import com.radicaldynamic.groupinform.logic.AccountDevice; public class InstanceAssignDialog extends Builder { private List<AccountDevice> deviceList = new ArrayList<AccountDevice>(); private CharSequence [] items; boolean [] checkedItems; public InstanceAssignDialog(final Context context, final FormInstance fi) { super(context); deviceList = new ArrayList<AccountDevice>(Collect.getInstance().getInformOnlineState().getAccountDevices().values()); items = new CharSequence[deviceList.size()]; checkedItems = new boolean[deviceList.size()]; int i = 0; for (AccountDevice d : deviceList) { if (fi.getAssignedTo() != null) { if (fi.getAssignedTo().contains(d.getId())) checkedItems[i] = true; else checkedItems[i] = false; } items[i++] = d.getDisplayName(); } setTitle(context.getString(R.string.tf_select_devices)); setMultiChoiceItems(items, checkedItems, new OnMultiChoiceClickListener() { @Override public void onClick(DialogInterface dialog, int which, boolean isChecked) { checkedItems[which] = isChecked; } }); setNegativeButton(context.getString(R.string.cancel), new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.dismiss(); } }); setPositiveButton(context.getString(R.string.tf_save), new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { fi.setAssignedTo(new ArrayList<String>()); int i = 0; for (AccountDevice d : deviceList) { if (checkedItems[i++] == true) fi.getAssignedTo().add(d.getId()); } Toast.makeText(context, "Assignment updated", Toast.LENGTH_LONG).show(); dialog.dismiss(); } }); } }