72 lines
2.5 KiB
Java
72 lines
2.5 KiB
Java
package util;
|
|
|
|
import android.content.BroadcastReceiver;
|
|
import android.content.Context;
|
|
import android.content.Intent;
|
|
import android.content.SharedPreferences;
|
|
import android.net.ConnectivityManager;
|
|
import android.net.NetworkInfo;
|
|
import android.preference.PreferenceManager;
|
|
|
|
import beyondsoft.bewomitarbeiterapp.BeWoChatApplication;
|
|
|
|
/**
|
|
* Created by JettenM on 26.08.2016.
|
|
*/
|
|
public class ConnectivityReceiver extends BroadcastReceiver {
|
|
public static ConnectivityReceiverListener connectivityReceiverListener;
|
|
|
|
private static final String LOGTAG = "CONNECTIVITY";
|
|
|
|
private static final Long SYNCTIME = 800L;
|
|
private static final String LASTTIMESYNC = "DATE";
|
|
SharedPreferences sharedPreferences;
|
|
|
|
public ConnectivityReceiver() {
|
|
super();
|
|
}
|
|
|
|
@Override
|
|
public void onReceive(Context context, Intent intent) {
|
|
BeWoLog.writeToLogFile("ConnectivityReceiver hat Netzwerkstatusänderung bekommen");
|
|
|
|
ConnectivityManager cm = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE);
|
|
|
|
NetworkInfo networkInfo = cm.getActiveNetworkInfo();
|
|
|
|
BeWoLog.writeToLogFile("Bin " + (networkInfo != null && networkInfo.isConnected() ? "online" : "offline"));
|
|
|
|
sharedPreferences = PreferenceManager.getDefaultSharedPreferences(context);
|
|
|
|
if(networkInfo != null && networkInfo.isConnected()) {
|
|
if(System.currentTimeMillis() - sharedPreferences.getLong(LASTTIMESYNC, 0) >= SYNCTIME) {
|
|
sharedPreferences.edit().putLong(LASTTIMESYNC, System.currentTimeMillis()).commit();
|
|
|
|
boolean isConnected = networkInfo.isConnected();
|
|
|
|
if(connectivityReceiverListener != null) {
|
|
connectivityReceiverListener.onNetworkConnectionChanged(isConnected);
|
|
}
|
|
}
|
|
} else {
|
|
boolean isConnected = networkInfo != null && networkInfo.isConnected();
|
|
|
|
if(connectivityReceiverListener != null) {
|
|
connectivityReceiverListener.onNetworkConnectionChanged(isConnected);
|
|
}
|
|
}
|
|
}
|
|
|
|
public static boolean isConnected() {
|
|
ConnectivityManager cm = (ConnectivityManager) BeWoChatApplication.getInstance().getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
|
|
|
|
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
|
|
|
|
return activeNetwork != null && activeNetwork.isConnectedOrConnecting();
|
|
}
|
|
|
|
public interface ConnectivityReceiverListener {
|
|
void onNetworkConnectionChanged(boolean isConnected);
|
|
}
|
|
}
|