aboutsummaryrefslogtreecommitdiff
path: root/library/src/main/java/com/bumptech/glide/manager/ConnectivityMonitorFactory.java
blob: 77d1c506848222c3a3c435da3574d5a0c3d45606 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
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();
        }
    }
}