discord-jadx/app/src/main/java/androidx/work/impl/workers/DiagnosticsWorker.java

83 lines
4.2 KiB
Java

package androidx.work.impl.workers;
import android.content.Context;
import android.os.Build;
import android.text.TextUtils;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.annotation.RestrictTo;
import androidx.work.ListenableWorker;
import androidx.work.Logger;
import androidx.work.Worker;
import androidx.work.WorkerParameters;
import androidx.work.impl.WorkDatabase;
import androidx.work.impl.WorkManagerImpl;
import androidx.work.impl.model.SystemIdInfo;
import androidx.work.impl.model.SystemIdInfoDao;
import androidx.work.impl.model.WorkNameDao;
import androidx.work.impl.model.WorkSpec;
import androidx.work.impl.model.WorkSpecDao;
import androidx.work.impl.model.WorkTagDao;
import java.util.List;
import java.util.concurrent.TimeUnit;
@RestrictTo({RestrictTo.Scope.LIBRARY_GROUP})
public class DiagnosticsWorker extends Worker {
private static final String TAG = Logger.tagWithPrefix("DiagnosticsWrkr");
public DiagnosticsWorker(@NonNull Context context, @NonNull WorkerParameters workerParameters) {
super(context, workerParameters);
}
@NonNull
private static String workSpecRow(@NonNull WorkSpec workSpec, @Nullable String str, @Nullable Integer num, @NonNull String str2) {
return String.format("\n%s\t %s\t %s\t %s\t %s\t %s\t", workSpec.f29id, workSpec.workerClassName, num, workSpec.state.name(), str, str2);
}
@NonNull
private static String workSpecRows(@NonNull WorkNameDao workNameDao, @NonNull WorkTagDao workTagDao, @NonNull SystemIdInfoDao systemIdInfoDao, @NonNull List<WorkSpec> list) {
StringBuilder sb = new StringBuilder();
sb.append(String.format("\n Id \t Class Name\t %s\t State\t Unique Name\t Tags\t", Build.VERSION.SDK_INT >= 23 ? "Job Id" : "Alarm Id"));
for (WorkSpec workSpec : list) {
Integer num = null;
SystemIdInfo systemIdInfo = systemIdInfoDao.getSystemIdInfo(workSpec.f29id);
if (systemIdInfo != null) {
num = Integer.valueOf(systemIdInfo.systemId);
}
sb.append(workSpecRow(workSpec, TextUtils.join(",", workNameDao.getNamesForWorkSpecId(workSpec.f29id)), num, TextUtils.join(",", workTagDao.getTagsForWorkSpecId(workSpec.f29id))));
}
return sb.toString();
}
@Override // androidx.work.Worker
@NonNull
public ListenableWorker.Result doWork() {
WorkDatabase workDatabase = WorkManagerImpl.getInstance(getApplicationContext()).getWorkDatabase();
WorkSpecDao workSpecDao = workDatabase.workSpecDao();
WorkNameDao workNameDao = workDatabase.workNameDao();
WorkTagDao workTagDao = workDatabase.workTagDao();
SystemIdInfoDao systemIdInfoDao = workDatabase.systemIdInfoDao();
List<WorkSpec> recentlyCompletedWork = workSpecDao.getRecentlyCompletedWork(System.currentTimeMillis() - TimeUnit.DAYS.toMillis(1));
List<WorkSpec> runningWork = workSpecDao.getRunningWork();
List<WorkSpec> allEligibleWorkSpecsForScheduling = workSpecDao.getAllEligibleWorkSpecsForScheduling();
if (recentlyCompletedWork != null && !recentlyCompletedWork.isEmpty()) {
Logger logger = Logger.get();
String str = TAG;
logger.info(str, "Recently completed work:\n\n", new Throwable[0]);
Logger.get().info(str, workSpecRows(workNameDao, workTagDao, systemIdInfoDao, recentlyCompletedWork), new Throwable[0]);
}
if (runningWork != null && !runningWork.isEmpty()) {
Logger logger2 = Logger.get();
String str2 = TAG;
logger2.info(str2, "Running work:\n\n", new Throwable[0]);
Logger.get().info(str2, workSpecRows(workNameDao, workTagDao, systemIdInfoDao, runningWork), new Throwable[0]);
}
if (allEligibleWorkSpecsForScheduling != null && !allEligibleWorkSpecsForScheduling.isEmpty()) {
Logger logger3 = Logger.get();
String str3 = TAG;
logger3.info(str3, "Enqueued work:\n\n", new Throwable[0]);
Logger.get().info(str3, workSpecRows(workNameDao, workTagDao, systemIdInfoDao, allEligibleWorkSpecsForScheduling), new Throwable[0]);
}
return ListenableWorker.Result.success();
}
}