19412ff8e84d057afc4f44af62f618eefb744b7c1Sam Juddpackage com.bumptech.glide.manager; 29412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd 39412ff8e84d057afc4f44af62f618eefb744b7c1Sam Juddimport android.content.BroadcastReceiver; 49412ff8e84d057afc4f44af62f618eefb744b7c1Sam Juddimport android.content.Context; 59412ff8e84d057afc4f44af62f618eefb744b7c1Sam Juddimport android.content.Intent; 69412ff8e84d057afc4f44af62f618eefb744b7c1Sam Juddimport android.content.IntentFilter; 79412ff8e84d057afc4f44af62f618eefb744b7c1Sam Juddimport android.net.ConnectivityManager; 89412ff8e84d057afc4f44af62f618eefb744b7c1Sam Juddimport android.net.NetworkInfo; 99412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd 109412ff8e84d057afc4f44af62f618eefb744b7c1Sam Juddclass DefaultConnectivityMonitor implements ConnectivityMonitor { 119412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd private final Context context; 129412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd private final ConnectivityListener listener; 139412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd 149412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd private boolean isConnected; 159412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd private boolean isRegistered; 169412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd 179412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd private final BroadcastReceiver connectivityReceiver = new BroadcastReceiver() { 189412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd @Override 199412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd public void onReceive(Context context, Intent intent) { 209412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd boolean wasConnected = isConnected; 219412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd isConnected = isConnected(context); 229412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd if (wasConnected != isConnected) { 239412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd listener.onConnectivityChanged(isConnected); 249412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd } 259412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd } 269412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd }; 279412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd 289412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd public DefaultConnectivityMonitor(Context context, ConnectivityListener listener) { 299412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd this.context = context.getApplicationContext(); 309412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd this.listener = listener; 319412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd } 329412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd 339412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd @Override 349412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd public void register() { 359412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd if (isRegistered) { 369412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd return; 379412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd } 389412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd 399412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd isConnected = isConnected(context); 409412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd context.registerReceiver(connectivityReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); 419412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd isRegistered = true; 429412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd } 439412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd 449412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd @Override 459412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd public void unregister() { 469412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd if (!isRegistered) { 479412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd return; 489412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd } 499412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd 509412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd context.unregisterReceiver(connectivityReceiver); 519412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd isRegistered = false; 529412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd } 539412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd 549412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd private boolean isConnected(Context context) { 559412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd ConnectivityManager connectivityManager = (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 569412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 579412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd return networkInfo != null && networkInfo.isConnected(); 589412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd } 599412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd} 60