package com.integreight.onesheeld.popup;
import android.app.Dialog;
import android.os.Bundle;
import android.util.TypedValue;
import android.view.Gravity;
import android.view.View;
import android.widget.LinearLayout;
import com.integreight.onesheeld.MainActivity;
import com.integreight.onesheeld.R;
import com.integreight.onesheeld.utils.customviews.OneSheeldButton;
import com.integreight.onesheeld.utils.customviews.OneSheeldTextView;
import java.util.ArrayList;
import java.util.Arrays;
public class ValidationPopup extends Dialog {
private ArrayList<ValidationAction> actions;
private String title, msg;
private MainActivity activity;
public ValidationPopup(MainActivity activity, String title, String msg,
ValidationAction... actions) {
super(activity, android.R.style.Theme_Translucent_NoTitleBar);
this.msg = msg;
this.actions = new ArrayList<ValidationAction>(Arrays.asList(actions));
this.title = title;
this.activity = activity;
}
public void addValidationAction(ValidationAction action) {
if (this.actions == null) actions = new ArrayList<ValidationPopup.ValidationAction>();
if (!actions.contains(action)) actions.add(action);
}
@Override
protected void onCreate(Bundle savedInstanceState) {
setContentView(R.layout.validation_popup);
setCancelable(false);
((OneSheeldTextView) findViewById(R.id.title)).setText(title);
((OneSheeldTextView) findViewById(R.id.msg)).setText(msg);
LinearLayout actionsCont = (LinearLayout) findViewById(R.id.actionsContainer);
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.MATCH_PARENT, (int) (40 * activity
.getResources().getDisplayMetrics().density + .5f));
params.weight = 1;
for (final ValidationAction action : actions) {
final OneSheeldButton btn = new OneSheeldButton(activity);
btn.setLayoutParams(params);
btn.setGravity(Gravity.CENTER);
btn.setSingleLine(true);
btn.setTextSize(TypedValue.COMPLEX_UNIT_DIP, 13);
btn.setText(action.actionTitle);
btn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View arg0) {
action.onClick.onClick(btn);
if (action.cancelAfterAction)
cancel();
}
});
actionsCont.addView(btn);
}
super.onCreate(savedInstanceState);
}
public static class ValidationAction {
public String actionTitle;
public View.OnClickListener onClick;
public boolean cancelAfterAction = false;
public ValidationAction() {
}
public ValidationAction(String actionTitle,
android.view.View.OnClickListener onClick,
boolean cancelAfterAction) {
super();
this.actionTitle = actionTitle;
this.onClick = onClick;
this.cancelAfterAction = cancelAfterAction;
}
}
}