package com.kickstarter.ui.views;
import android.content.Context;
import android.graphics.drawable.ColorDrawable;
import android.os.Bundle;
import android.support.annotation.NonNull;
import android.support.annotation.Nullable;
import android.support.v7.app.AppCompatDialog;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.TextView;
import com.kickstarter.R;
import butterknife.Bind;
import butterknife.BindString;
import butterknife.ButterKnife;
import butterknife.OnClick;
public class ConfirmDialog extends AppCompatDialog {
private final @Nullable String title;
private final @NonNull String message;
private final @Nullable String buttonText;
protected @Bind(R.id.title_text_view) TextView titleTextView;
protected @Bind(R.id.message_text_view) TextView messageTextView;
protected @Bind(R.id.ok_button) Button okButton;
protected @BindString(R.string.general_alert_buttons_ok) String okString;
public ConfirmDialog(final @NonNull Context context, final @Nullable String title, final @NonNull String message) {
super(context);
this.title = title;
this.message = message;
this.buttonText = null;
}
public ConfirmDialog(final @NonNull Context context, final @Nullable String title, final @NonNull String message,
final @Nullable String buttonText) {
super(context);
this.title = title;
this.message = message;
this.buttonText = buttonText;
}
@Override
protected void onCreate(final @Nullable Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getWindow().setBackgroundDrawable(new ColorDrawable(android.graphics.Color.TRANSPARENT));
setContentView(R.layout.generic_dialog_alert);
ButterKnife.bind(this);
if (title != null) {
setTitleText(title);
} else {
titleTextView.setVisibility(View.GONE);
}
if (buttonText != null) {
setButtonText(buttonText);
} else {
setButtonText(okString);
}
setMessage(message);
}
public void setButtonText(final @NonNull String buttonText) {
okButton.setText(buttonText);
}
/**
* Set the title on the TextView with id title_text_view.
* Note, default visibility is GONE since we may not always want a title.
*/
public void setTitleText(final @NonNull String title) {
titleTextView.setText(title);
titleTextView.setVisibility(TextView.VISIBLE);
final LinearLayout.LayoutParams params = (LinearLayout.LayoutParams) messageTextView.getLayoutParams();
params.topMargin = (int) getContext().getResources().getDimension(R.dimen.grid_1);
messageTextView.setLayoutParams(params);
}
/**
* Set the message on the TextView with id message_text_view.
*/
public void setMessage(final @NonNull String message) {
messageTextView.setText(message);
}
/**
* Dismiss the dialog on click ok_button".
*/
@OnClick(R.id.ok_button)
protected void okButtonClick() {
dismiss();
}
}