package com.thomasdh.roosterpgplus.Helpers;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
import java.util.Hashtable;
public class InternetConnectionManager {
private static Hashtable<String, InternetConnectionChangeListener> listeners;
public static void registerListener(String name, InternetConnectionChangeListener listener) {
if(listeners == null) {
listeners = new Hashtable<>();
}
if(!listeners.containsKey(name)) {
listeners.put(name, listener);
} else {
listeners.remove(name);
listeners.put(name, listener);
}
}
public static void unregisterListener(String name) {
if(listeners == null) return;
if(listeners.containsKey(name)) listeners.remove(name);
}
private static void notifyChange(boolean hasInternetConnection) {
if(listeners == null) return;
for(InternetConnectionChangeListener listener : listeners.values()) {
listener.internetConnectionChanged(hasInternetConnection);
}
}
public static class InternetConnectionReceiver extends BroadcastReceiver {
@Override
public void onReceive(Context context, Intent intent) {
boolean hasInternetConnection = HelperFunctions.hasInternetConnection(context);
notifyChange(hasInternetConnection);
}
}
public interface InternetConnectionChangeListener {
void internetConnectionChanged(boolean hasInternetConnection);
}
}