package com.solderbyte.openfit.ui;
import android.app.AlertDialog;
import android.app.Dialog;
import android.app.DialogFragment;
import android.content.DialogInterface;
import android.content.Intent;
import android.os.Bundle;
import android.support.v4.content.LocalBroadcastManager;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.EditText;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import com.solderbyte.openfit.R;
import java.util.ArrayList;
public class DialogRejectMessages extends DialogFragment {
private static final String LOG_TAG = "OpenFit:DialogRejectMessages";
private static final String INTENT_UI_REJECTMESSAGES = "com.solderbyte.openfit.ui.rejectmessages";
private ArrayList<String> savedMessages;
public DialogRejectMessages() {}
public DialogRejectMessages(ArrayList<String> sm) {
savedMessages = sm;
}
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
LayoutInflater factory = LayoutInflater.from(getActivity());
final View textEntryView = factory.inflate(R.layout.reject_messages, null);
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
builder.setTitle(R.string.dialog_edit_rejectcall_messages);
builder.setView(textEntryView);
final ArrayList<EditText> editList = new ArrayList<EditText>();
ViewGroup parentView = (ViewGroup) textEntryView;
for(int i = 0; i < parentView.getChildCount(); ++i) {
if(parentView.getChildAt(i) instanceof ScrollView) {
ViewGroup parentViewScroll = (ViewGroup) parentView.getChildAt(i);
for(int j = 0; j < parentViewScroll.getChildCount(); ++j) {
ViewGroup parentViewLayout = (ViewGroup) parentViewScroll.getChildAt(j);
for(int k = 0; k < parentViewLayout.getChildCount(); ++k) {
if(parentViewLayout.getChildAt(k) instanceof EditText) {
editList.add((EditText) parentViewLayout.getChildAt(k));
}
}
}
}
}
for(int i = 0; i < this.savedMessages.size(); ++i) {
editList.get(i).setText(this.savedMessages.get(i));
}
builder.setPositiveButton(R.string.dialog_save_rejectcall_messages, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int index) {
ArrayList<String> messages = new ArrayList<String>();
for(int i = 0; i < editList.size(); ++i) {
String strField = editList.get(i).getText().toString().trim();
if(strField.equals("")) {
continue;
}
messages.add(strField);
}
Intent msg = new Intent(INTENT_UI_REJECTMESSAGES);
msg.putExtra("rejectMessages", messages);
LocalBroadcastManager.getInstance(getActivity()).sendBroadcast(msg);
}
});
builder.setNegativeButton(R.string.dialog_close_rejectcall_messages, new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int index) {
}
});
return builder.create();
}
}