package com.netease.nim.uikit.common.ui.dialog;
import android.content.Context;
import android.content.DialogInterface.OnCancelListener;
import android.text.TextUtils;
import com.netease.nim.uikit.common.util.log.LogUtil;
public class DialogMaker {
private static EasyProgressDialog progressDialog;
public static EasyProgressDialog showProgressDialog(Context context, String message) {
return showProgressDialog(context, null, message, true, null);
}
public static EasyProgressDialog showProgressDialog(Context context, String message, boolean cancelable) {
return showProgressDialog(context, null, message, cancelable, null);
}
@Deprecated
public static EasyProgressDialog showProgressDialog(Context context,
String title, String message, boolean canCancelable, OnCancelListener listener) {
if (progressDialog == null) {
progressDialog = new EasyProgressDialog(context, message);
} else if (progressDialog.getContext() != context) {
// maybe existing dialog is running in a destroyed activity cotext
// we should recreate one
LogUtil.e("dialog", "there is a leaked window here,orign context: "
+ progressDialog.getContext() + " now: " + context);
dismissProgressDialog();
progressDialog = new EasyProgressDialog(context, message);
}
progressDialog.setCancelable(canCancelable);
progressDialog.setOnCancelListener(listener);
progressDialog.show();
return progressDialog;
}
public static void dismissProgressDialog() {
if (null == progressDialog) {
return;
}
if (progressDialog.isShowing()) {
try {
progressDialog.dismiss();
progressDialog = null;
} catch (Exception e) {
// maybe we catch IllegalArgumentException here.
}
}
}
public static void setMessage(String message) {
if (null != progressDialog && progressDialog.isShowing()
&& !TextUtils.isEmpty(message)) {
progressDialog.setMessage(message);
}
}
public static void updateLoadingMessage(String message) {
if (null != progressDialog && progressDialog.isShowing()
&& !TextUtils.isEmpty(message)) {
progressDialog.updateLoadingMessage(message);
}
}
public static boolean isShowing() {
return (progressDialog != null && progressDialog.isShowing());
}
}