package com.bootstrap.dialog; import android.app.DialogFragment; import android.graphics.Color; import android.os.Bundle; import android.support.v7.widget.CardView; import android.util.DisplayMetrics; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.FrameLayout; import android.widget.TextView; import com.bootstrap.BaseApplication; import com.bootstrap.R; import com.bootstrap.event.AlertConfirmedEvent; import com.bootstrap.view.TouchStealListener; import org.greenrobot.eventbus.EventBus; import javax.inject.Inject; public final class MaterialAlertDialog extends DialogFragment { private final static String EXTRA_TITLE = "Title"; private final static String EXTRA_MESSAGE = "Message"; @Inject DisplayMetrics displayMetrics; @Inject EventBus eventBus; private String title; private String message; @Override public void onCreate(final Bundle savedInstanceState) { super.onCreate(savedInstanceState); BaseApplication.from(getActivity()).getComponent().inject(this); setStyle(DialogFragment.STYLE_NO_FRAME, 0); final Bundle extras = getArguments(); title = extras.getString(EXTRA_TITLE); message = extras.getString(EXTRA_MESSAGE); } @Override public View onCreateView(final LayoutInflater inflater, final ViewGroup container, final Bundle savedInstanceState) { final View root = inflater.inflate(R.layout.dialog_alert, container, false); final FrameLayout layoutBg = (FrameLayout) root.findViewById(R.id.fl_alert_bg); final CardView cardView = (CardView) root.findViewById(R.id.cv_alert); final TextView txtTitle = (TextView) root.findViewById(R.id.tv_alert_title); final TextView txtMessage = (TextView) root.findViewById(R.id.tv_alert_message); final Button btnOk = (Button) root.findViewById(R.id.b_alert_ok); final ViewGroup.LayoutParams lpBg = layoutBg.getLayoutParams(); lpBg.width = displayMetrics.widthPixels; lpBg.height = displayMetrics.heightPixels; final ViewGroup.LayoutParams lpCard = cardView.getLayoutParams(); lpCard.width = (int) (displayMetrics.widthPixels * 0.8f); txtTitle.setTextColor(Color.BLACK); txtTitle.setText(title); txtMessage.setTextColor(Color.BLACK); txtMessage.setText(message); cardView.setOnTouchListener(TouchStealListener.INSTANCE); btnOk.setOnClickListener(new View.OnClickListener() { @Override public void onClick(final View view) { dismissAllowingStateLoss(); eventBus.post(new AlertConfirmedEvent()); } }); return root; } public static MaterialAlertDialog from(final String title, final String message) { final MaterialAlertDialog dialog = new MaterialAlertDialog(); final Bundle extras = new Bundle(); extras.putString(EXTRA_TITLE, title); extras.putString(EXTRA_MESSAGE, message); dialog.setArguments(extras); return dialog; } }