package org.tm.archive.logsubmit; import android.content.Context; import androidx.annotation.NonNull; import com.annimon.stream.Stream; import org.tm.archive.dependencies.ApplicationDependencies; import org.tm.archive.jobmanager.Constraint; import org.tm.archive.jobs.JobManagerFactories; import org.tm.archive.util.Util; import java.util.Map; final class LogSectionConstraints implements LogSection { @Override public @NonNull String getTitle() { return "CONSTRAINTS"; } @Override public @NonNull CharSequence getContent(@NonNull Context context) { StringBuilder output = new StringBuilder(); Map factories = JobManagerFactories.getConstraintFactories(ApplicationDependencies.getApplication()); int keyLength = Stream.of(factories.keySet()).map(String::length).max(Integer::compareTo).orElse(0); for (Map.Entry entry : factories.entrySet()) { output.append(Util.rightPad(entry.getKey(), keyLength)).append(": ").append(entry.getValue().create().isMet()).append("\n"); } return output; } }