package com.odoo.util.dialog; import odoo.controls.OControlHelper; import android.app.AlertDialog; import android.content.Context; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.WindowManager; import android.widget.Button; import android.widget.FrameLayout; import android.widget.ScrollView; import android.widget.TextView; import com.odoo.R; public class MaterialDialog extends AlertDialog { private Context mContext; private TextView mTitle; private TextView mContent; private Button mPositive; private Button mNegative; private FrameLayout mCustomContainer; private ScrollView mScrollText; private String title; private String contentText; private View customView; private Integer customResId; private Button.OnClickListener mPositiveClickListener; private Button.OnClickListener mNegativeClickListener; private String positiveText; private String negativeText; private boolean canDismiss = true; public MaterialDialog(Context context) { super(context); this.mContext = context; } @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); this.setContentView(R.layout.base_dialog_layout); mTitle = (TextView) findViewById(android.R.id.text1); mContent = (TextView) findViewById(android.R.id.text2); mCustomContainer = (FrameLayout) findViewById(R.id.content); mPositive = (Button) findViewById(android.R.id.button2); mNegative = (Button) findViewById(android.R.id.button1); mScrollText = (ScrollView) findViewById(R.id.scrolltext); mTitle.setTypeface(OControlHelper.boldFont()); mContent.setTypeface(OControlHelper.lightFont()); } @Override public void onStart() { super.onStart(); if (title != null) { mTitle.setText(title); } else { mTitle.setVisibility(View.GONE); } if (contentText != null) { mContent.setText(contentText); } else { mScrollText.setVisibility(View.GONE); } if (customView != null && customResId == null) { mCustomContainer.addView(customView); } else if (customView == null && customResId != null) { LayoutInflater inflater = (LayoutInflater) mContext .getSystemService(Context.LAYOUT_INFLATER_SERVICE); customView = inflater.inflate(customResId, null, false); mCustomContainer.addView(customView); } else if (customView == null && customResId == null) { mContent.setVisibility(View.GONE); } if (positiveText != null && mPositiveClickListener != null) { mPositive.setText(positiveText); mPositive.setOnClickListener(mPositiveClickListener); } else { mPositive.setVisibility(View.GONE); } if (negativeText != null && mNegativeClickListener != null) { mNegative.setText(negativeText); mNegative.setOnClickListener(mNegativeClickListener); } else { mNegative.setVisibility(View.GONE); } this.setCanceledOnTouchOutside(canDismiss); this.getWindow().clearFlags( WindowManager.LayoutParams.FLAG_NOT_FOCUSABLE | WindowManager.LayoutParams.FLAG_ALT_FOCUSABLE_IM); } public void setTitle(int res_id) { this.title = mContext.getResources().getString(res_id); } public MaterialDialog setTitle(String t) { this.title = t; return this; } @Override public void setMessage(CharSequence message) { super.setMessage(message); this.contentText = message.toString(); } public MaterialDialog setMessage(int res_id) { this.contentText = mContext.getResources().getString(res_id); return this; } public MaterialDialog setMessage(String m) { this.contentText = m; return this; } public MaterialDialog setupPositiveButton(int res_id, Button.OnClickListener listener) { return setupPositiveButton(mContext.getResources().getString(res_id), listener); } public MaterialDialog setupPositiveButton(String text, Button.OnClickListener listener) { this.positiveText = text; this.mPositiveClickListener = listener; return this; } public MaterialDialog setupNegativeButton(int res_id, Button.OnClickListener listener) { return setupNegativeButton(mContext.getResources().getString(res_id), listener); } public MaterialDialog setupNegativeButton(String text, Button.OnClickListener listener) { this.negativeText = text; this.mNegativeClickListener = listener; return this; } public MaterialDialog setCustomView(View v) { this.customView = v; return this; } public MaterialDialog setCustomViewResource(int ResId) { this.customResId = ResId; return this; } public MaterialDialog dismissOnTouchOutside(boolean dismiss) { this.canDismiss = dismiss; return this; } public View getCustomView() { return this.customView; } }