Files
Daniel Elliott c080f0d97f Add Discord community version (64-bit only)
- Added realracing3-community.apk (71.57 MB)
- Removed 32-bit support (armeabi-v7a)
- Only includes arm64-v8a libraries
- Decompiled source code included
- Added README-community.md with analysis
2026-02-18 15:48:36 -08:00

92 lines
4.9 KiB
Java

package androidx.work.impl.background.systemjob;
import android.app.job.JobInfo;
import android.app.job.JobScheduler;
import android.content.Context;
import android.os.Build;
import androidx.annotation.RequiresApi;
import androidx.work.Configuration;
import androidx.work.Logger;
import androidx.work.impl.WorkDatabase;
import com.ironsource.mediationsdk.utils.IronSourceConstants;
import java.util.List;
import kotlin.collections.CollectionsKt__CollectionsKt;
import kotlin.collections.CollectionsKt___CollectionsKt;
import kotlin.jvm.internal.Intrinsics;
import kotlin.jvm.internal.SourceDebugExtension;
@SourceDebugExtension({"SMAP\nJobSchedulerExt.kt\nKotlin\n*S Kotlin\n*F\n+ 1 JobSchedulerExt.kt\nandroidx/work/impl/background/systemjob/JobSchedulerExtKt\n+ 2 LoggerExt.kt\nandroidx/work/LoggerExtKt\n*L\n1#1,127:1\n32#2:128\n*S KotlinDebug\n*F\n+ 1 JobSchedulerExt.kt\nandroidx/work/impl/background/systemjob/JobSchedulerExtKt\n*L\n70#1:128\n*E\n"})
/* loaded from: classes.dex */
public final class JobSchedulerExtKt {
private static final String TAG;
public static final String WORKMANAGER_NAMESPACE = "androidx.work.systemjobscheduler";
static {
String tagWithPrefix = Logger.tagWithPrefix("SystemJobScheduler");
Intrinsics.checkNotNullExpressionValue(tagWithPrefix, "tagWithPrefix(\"SystemJobScheduler\")");
TAG = tagWithPrefix;
}
@RequiresApi(21)
public static final JobScheduler getWmJobScheduler(Context context) {
Intrinsics.checkNotNullParameter(context, "<this>");
Object systemService = context.getSystemService("jobscheduler");
Intrinsics.checkNotNull(systemService, "null cannot be cast to non-null type android.app.job.JobScheduler");
JobScheduler jobScheduler = (JobScheduler) systemService;
return Build.VERSION.SDK_INT >= 34 ? JobScheduler34.INSTANCE.forNamespace(jobScheduler) : jobScheduler;
}
@RequiresApi(21)
public static final List<JobInfo> getSafePendingJobs(JobScheduler jobScheduler) {
Intrinsics.checkNotNullParameter(jobScheduler, "<this>");
try {
return JobScheduler21.INSTANCE.getAllPendingJobs(jobScheduler);
} catch (Throwable th) {
Logger.get().error(TAG, "getAllPendingJobs() is not reliable on this device.", th);
return null;
}
}
@RequiresApi(23)
public static final String createErrorMessage(Context context, WorkDatabase workDatabase, Configuration configuration) {
String str;
List listOfNotNull;
Intrinsics.checkNotNullParameter(context, "context");
Intrinsics.checkNotNullParameter(workDatabase, "workDatabase");
Intrinsics.checkNotNullParameter(configuration, "configuration");
int i = Build.VERSION.SDK_INT;
int i2 = i >= 31 ? IronSourceConstants.REWARDED_VIDEO_DAILY_CAPPED : 100;
int size = workDatabase.workSpecDao().getScheduledWork().size();
String str2 = "<faulty JobScheduler failed to getPendingJobs>";
if (i >= 34) {
JobScheduler wmJobScheduler = getWmJobScheduler(context);
List<JobInfo> safePendingJobs = getSafePendingJobs(wmJobScheduler);
if (safePendingJobs != null) {
List<JobInfo> pendingJobs = SystemJobScheduler.getPendingJobs(context, wmJobScheduler);
int size2 = pendingJobs != null ? safePendingJobs.size() - pendingJobs.size() : 0;
String str3 = null;
if (size2 == 0) {
str = null;
} else {
str = size2 + " of which are not owned by WorkManager";
}
Object systemService = context.getSystemService("jobscheduler");
Intrinsics.checkNotNull(systemService, "null cannot be cast to non-null type android.app.job.JobScheduler");
List<JobInfo> pendingJobs2 = SystemJobScheduler.getPendingJobs(context, (JobScheduler) systemService);
int size3 = pendingJobs2 != null ? pendingJobs2.size() : 0;
if (size3 != 0) {
str3 = size3 + " from WorkManager in the default namespace";
}
listOfNotNull = CollectionsKt__CollectionsKt.listOfNotNull(safePendingJobs.size() + " jobs in \"androidx.work.systemjobscheduler\" namespace", str, str3);
str2 = CollectionsKt___CollectionsKt.joinToString$default(listOfNotNull, ",\n", null, null, 0, null, null, 62, null);
}
} else {
List<JobInfo> pendingJobs3 = SystemJobScheduler.getPendingJobs(context, getWmJobScheduler(context));
if (pendingJobs3 != null) {
str2 = pendingJobs3.size() + " jobs from WorkManager";
}
}
return "JobScheduler " + i2 + " job limit exceeded.\nIn JobScheduler there are " + str2 + ".\nThere are " + size + " jobs tracked by WorkManager's database;\nthe Configuration limit is " + configuration.getMaxSchedulerLimit() + '.';
}
}