package com.todoroo.astrid.ui; import android.app.Dialog; import android.view.View; import android.widget.Button; import android.widget.LinearLayout; import android.widget.TextView; import com.timsu.astrid.R; import com.todoroo.astrid.activity.AstridActivity; public class AstridDialog extends Dialog { private final Button[] buttons; private final TextView title; private final TextView message; private final LinearLayout root; public AstridDialog(AstridActivity activity, boolean forcePortrait) { super(activity, R.style.ReminderDialog); setContentView(forcePortrait ? R.layout.astrid_dialog_view_portrait : R.layout.astrid_dialog_view); buttons = new Button[3]; buttons[0] = (Button) findViewById(R.id.button0); buttons[1] = (Button) findViewById(R.id.button1); buttons[2] = (Button) findViewById(R.id.button2); title = (TextView) findViewById(R.id.dialog_title); message = (TextView) findViewById(R.id.reminder_message); root = (LinearLayout) findViewById(R.id.dialog_root); findViewById(R.id.dismiss).setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { dismiss(); } }); setOwnerActivity(activity); } public AstridDialog setButtonText(int resId, int buttonIndex) { buttons[buttonIndex].setText(resId); buttons[buttonIndex].setVisibility(View.VISIBLE); return this; } public AstridDialog setButtonColor(int color, int buttonIndex) { buttons[buttonIndex].setBackgroundColor(color); return this; } public AstridDialog setButtonListener(View.OnClickListener listener, int buttonIndex) { buttons[buttonIndex].setOnClickListener(listener); return this; } public AstridDialog setButtonListeners(View.OnClickListener... listeners) { int index = 0; for (View.OnClickListener l : listeners) { buttons[index].setOnClickListener(l); index++; if (index >= buttons.length) break; } return this; } public AstridDialog setAstridText(int resId) { message.setText(resId); return this; } public AstridDialog setAstridTitle(int resId) { title.setText(resId); return this; } public AstridDialog addView(View v, int index) { root.addView(v, index); return this; } }