discord-jadx/app/src/main/java/androidx/work/impl/constraints/controllers/NetworkMeteredController.java

32 lines
1.4 KiB
Java

package androidx.work.impl.constraints.controllers;
import android.content.Context;
import android.os.Build;
import androidx.annotation.NonNull;
import androidx.work.Logger;
import androidx.work.NetworkType;
import androidx.work.impl.constraints.NetworkState;
import androidx.work.impl.constraints.trackers.Trackers;
import androidx.work.impl.model.WorkSpec;
import androidx.work.impl.utils.taskexecutor.TaskExecutor;
public class NetworkMeteredController extends ConstraintController<NetworkState> {
private static final String TAG = Logger.tagWithPrefix("NetworkMeteredCtrlr");
public NetworkMeteredController(Context context, TaskExecutor taskExecutor) {
super(Trackers.getInstance(context, taskExecutor).getNetworkStateTracker());
}
@Override // androidx.work.impl.constraints.controllers.ConstraintController
public boolean hasConstraint(@NonNull WorkSpec workSpec) {
return workSpec.constraints.getRequiredNetworkType() == NetworkType.METERED;
}
public boolean isConstrained(@NonNull NetworkState networkState) {
if (Build.VERSION.SDK_INT >= 26) {
return !networkState.isConnected() || !networkState.isMetered();
}
Logger.get().debug(TAG, "Metered network constraint is not supported before API 26, only checking for connected state.", new Throwable[0]);
return !networkState.isConnected();
}
}