class WorkConstraintsTracker implements ConstraintController.OnConstraintUpdatedCallback {

    @Override
    public void onConstraintMet(@NonNull List<String> workSpecIds) {
        List<String> unconstrainedWorkSpecIds = new ArrayList<>();
        for (String workSpecId : workSpecIds) {
            if (areAllConstraintsMet(workSpecId)) {
                Log.d(TAG, String.format("Constraints met for %s", workSpecId));
                unconstrainedWorkSpecIds.add(workSpecId);
            }
        }
        if (mCallback != null) {
            mCallback.onAllConstraintsMet(unconstrainedWorkSpecIds);
        }
    }

    public  WorkConstraintsTracker(Context context, @Nullable WorkConstraintsCallback callback);
    @VisibleForTesting  WorkConstraintsTracker(
            @Nullable WorkConstraintsCallback callback,
            ConstraintController[] controllers);

}