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(); } } }