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 3382c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd private void register() { 349412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd if (isRegistered) { 359412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd return; 369412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd } 379412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd 389412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd isConnected = isConnected(context); 399412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd context.registerReceiver(connectivityReceiver, new IntentFilter(ConnectivityManager.CONNECTIVITY_ACTION)); 409412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd isRegistered = true; 419412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd } 429412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd 4382c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd private void unregister() { 449412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd if (!isRegistered) { 459412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd return; 469412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd } 479412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd 489412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd context.unregisterReceiver(connectivityReceiver); 499412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd isRegistered = false; 509412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd } 519412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd 529412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd private boolean isConnected(Context context) { 53fe090f50f3040f4d478143a3e0ffa8cdf813fefcSam Judd ConnectivityManager connectivityManager = 54fe090f50f3040f4d478143a3e0ffa8cdf813fefcSam Judd (ConnectivityManager) context.getSystemService(Context.CONNECTIVITY_SERVICE); 559412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd NetworkInfo networkInfo = connectivityManager.getActiveNetworkInfo(); 569412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd return networkInfo != null && networkInfo.isConnected(); 579412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd } 5882c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd 5982c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd @Override 6082c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd public void onStart() { 6182c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd register(); 6282c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd } 6382c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd 6482c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd @Override 6582c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd public void onStop() { 6682c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd unregister(); 6782c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd } 6882c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd 6982c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd @Override 7082c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd public void onDestroy() { 7182c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd // Do nothing. 7282c18a181dc6f7867c76b1b8c469c6be88b85177Sam Judd } 739412ff8e84d057afc4f44af62f618eefb744b7c1Sam Judd} 74