package com.codecarpet.fbconnect;
import android.app.Activity;
import android.app.ProgressDialog;
import android.content.Context;
import android.content.DialogInterface;
import android.os.Handler;
import android.util.Log;
public class FBProgressDialog {
private static ProgressDialog instance = null;
private static synchronized void showProgressDialog(Activity activity) {
if (activity != null) {
activity.runOnUiThread(new Runnable() {
@Override
public void run() {
if (instance != null) {
if (instance != null) {
try {
instance.show();
} catch (Exception ex) {
Log.e("FBProgressDialog", "Error while showing progress dialog", ex);
}
}
}
}
});
} else {
Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
if (instance != null) {
if (instance != null) {
try {
instance.show();
} catch (Exception ex) {
Log.e("FBProgressDialog", "Error while showing progress dialog", ex);
}
}
}
}
});
}
}
private static synchronized void hideProgressDialog() {
Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
if (instance != null) {
synchronized (instance) {
if (instance != null) {
try {
instance.hide();
} catch (Exception ex) {
Log.e("FBProgressDialog", "Error while hiding progress dialog", ex);
}
}
}
}
}
});
}
private static synchronized void cancelProgressDialog() {
Handler handler = new Handler();
handler.post(new Runnable() {
@Override
public void run() {
if (instance != null && instance.isShowing()) {
if (instance != null) {
try {
instance.cancel();
} catch (Exception ex) {
Log.e("FBProgressDialog", "Error while canceling progress dialog", ex);
}
}
}
instance = null;
}
});
}
public static void show(final Context context, final Activity activity) {
if (instance != null && !instance.isShowing()) {
showProgressDialog(activity);
} else if (instance == null) {
if (instance != null && !context.equals(instance.getContext())) {
cancelProgressDialog();
}
instance = ProgressDialog.show(context, "", "Loading...", true, true);
instance.setOnCancelListener(new DialogInterface.OnCancelListener() {
@Override
public void onCancel(DialogInterface dialog) {
if (instance != null) {
synchronized (instance) {
instance = null;
}
}
}
});
instance.setOnDismissListener(new DialogInterface.OnDismissListener() {
@Override
public void onDismiss(DialogInterface dialog) {
if (instance != null) {
synchronized (instance) {
instance = null;
}
}
}
});
showProgressDialog(activity);
} else {
cancelProgressDialog();
}
}
public static void hide(Context context) {
hideProgressDialog();
}
}