package starter.kit.util;
import android.content.Context;
public class Hud {
private static Hud SINGLETON = null;
private HudInterface mHudInterface;
private Hud(HudInterface hudInterface) {
mHudInterface = hudInterface;
}
public static Hud initialize(HudInterface hudInterface) {
SINGLETON = new Hud(hudInterface);
return SINGLETON;
}
public static Hud getInstance() {
if (SINGLETON == null) {
SINGLETON = new Hud(new AbstractHud() {});
}
return SINGLETON;
}
public void showMessage(Context context, String msg) {
if (mHudInterface != null) {
mHudInterface.showMessage(context, msg);
}
}
public void dismissHud() {
if (mHudInterface != null) {
mHudInterface.dismissHud();
}
}
public void showHud(Context context) {
showHud(context, null);
}
public void showHud(Context context, String message) {
showHud(context, message, false, null);
}
public void showHud(Context context, String msg, HudCallback callback) {
if (mHudInterface != null) {
mHudInterface.showHud(context, msg, true, callback);
}
}
public void showHud(Context context, String msg, boolean cancelable, HudCallback callback) {
if (mHudInterface != null) {
mHudInterface.showHud(context, msg, cancelable, callback);
}
}
public interface HudInterface {
void showMessage(Context context, String msg);
void showHud(Context context, String msg, boolean cancelable, HudCallback callback);
void dismissHud();
}
public static abstract class AbstractHud implements HudInterface{
@Override
public void showMessage(Context context, String msg) {
}
@Override
public void showHud(Context context, String msg, boolean cancelable, HudCallback callback) {
}
@Override
public void dismissHud() {
}
}
public interface HudCallback {
void onDismissed();
}
}