blob: 77d1c506848222c3a3c435da3574d5a0c3d45606 [file] [log] [blame]
package com.bumptech.glide.manager;
import android.content.Context;
import android.content.pm.PackageManager;
/**
* A factory class that produces a functional {@link com.bumptech.glide.manager.ConnectivityMonitor} if the application
* has the {@code android.permission.ACCESS_NETWORK_STATE} permission and a no-op non functional
* {@link com.bumptech.glide.manager.ConnectivityMonitor} if the app does not have the required permission.
*/
public class ConnectivityMonitorFactory {
public ConnectivityMonitor build(Context context, ConnectivityMonitor.ConnectivityListener listener) {
final int res = context.checkCallingOrSelfPermission("android.permission.ACCESS_NETWORK_STATE");
final boolean hasPermission = res == PackageManager.PERMISSION_GRANTED;
if (hasPermission) {
return new DefaultConnectivityMonitor(context, listener);
} else {
return new NullConnectivityMonitor();
}
}
}