package com.radicaldynamic.gcmobile.android.dialogs; import java.util.Iterator; import com.radicaldynamic.groupinform.R; import com.radicaldynamic.groupinform.application.Collect; import com.radicaldynamic.groupinform.documents.FormDefinition; import com.radicaldynamic.groupinform.documents.FormInstance; import com.radicaldynamic.groupinform.logic.AccountDevice; import com.radicaldynamic.groupinform.utilities.StringUtils; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; public class InstanceInfoDialog extends AlertDialog { Context context; FormDefinition formDefinition; FormInstance formInstance; public InstanceInfoDialog(final Context context, final FormDefinition fd, final FormInstance fi) { super(context); this.context = context; formDefinition = fd; formInstance = fi; setTitleAndMessage(); setButton(context.getString(R.string.ok), new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); if (!Collect.getInstance().getInformOnlineState().getDeviceRole().equals(AccountDevice.ROLE_DATA_ENTRY)) { setButton2(context.getString(R.string.tf_assign_form), new OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { new InstanceAssignDialog(context, fi).show(); } }); } } private void setTitleAndMessage() { String assignedTo = "N/A"; String createdBy = "N/A"; String updatedBy = "N/A"; // Try to use the instance name and fallback to definition name if (formInstance.getName() == null || formInstance.getName().length() == 0) setTitle(formDefinition.getName()); else setTitle(formInstance.getName()); // Get human readable list of people assigned to this instance, if applicable if (formInstance.getAssignedTo() != null && !formInstance.getAssignedTo().isEmpty()) { Iterator<String> i = formInstance.getAssignedTo().iterator(); assignedTo = ""; while (i.hasNext()) { String deviceId = i.next(); if (Collect.getInstance().getInformOnlineState().getAccountDevices().containsKey(deviceId)) { AccountDevice device = Collect.getInstance().getInformOnlineState().getAccountDevices().get(deviceId); assignedTo = assignedTo + "\n- " + device.getDisplayName(); } } } if (formInstance.getDateCreated() != null) { createdBy = formInstance.getCreatedByAlias() + "\n" + formInstance.getDateCreated().replace(" +0000", ""); } if (formInstance.getDateUpdated() != null) { updatedBy = formInstance.getUpdatedByAlias() + "\n" + formInstance.getDateUpdated().replace(" +0000", ""); } // Display status, created by/date, updated by/date, assigned to setMessage( "Status: " + StringUtils.ucfirst(formInstance.getStatus().toString()) + "\n\n" + "Created By: " + createdBy + "\n\n" + "Updated By: " + updatedBy + "\n\n" + "Assigned To: " + assignedTo); } }