diff --git a/app/src/main/java/a/w.java b/app/src/main/java/a/w.java index f1307a025..f852a8968 100644 --- a/app/src/main/java/a/w.java +++ b/app/src/main/java/a/w.java @@ -6,7 +6,6 @@ import androidx.annotation.NonNull; import androidx.work.Worker; import androidx.work.WorkerParameters; -import com.topjohnwu.magisk.HacksKt; import com.topjohnwu.magisk.base.DelegateWorker; import java.lang.reflect.ParameterizedType; @@ -19,7 +18,7 @@ public abstract class w extends Worker { @SuppressWarnings("unchecked") w(@NonNull Context context, @NonNull WorkerParameters workerParams) { - super(HacksKt.wrap(context, false), workerParams); + super(context, workerParams); try { base = ((Class) ((ParameterizedType) getClass().getGenericSuperclass()) .getActualTypeArguments()[0]).newInstance(); diff --git a/app/src/main/java/com/topjohnwu/magisk/Hacks.kt b/app/src/main/java/com/topjohnwu/magisk/Hacks.kt index 52926eb77..f0b2380ab 100644 --- a/app/src/main/java/com/topjohnwu/magisk/Hacks.kt +++ b/app/src/main/java/com/topjohnwu/magisk/Hacks.kt @@ -165,35 +165,36 @@ private class JobSchedulerWrapper(private val base: JobScheduler) : JobScheduler return base.getPendingJob(jobId) } - fun JobInfo.patch(): JobInfo { + private fun JobInfo.patch(): JobInfo { // We need to patch the component of JobInfo to access WorkManager SystemJobService val name = service.className - val component = ComponentName(service.packageName, Info.stub?.componentMap?.get(name) - ?: name) + val component = ComponentName( + service.packageName, + Info.stub!!.componentMap[name] ?: name) // Clone the JobInfo except component val builder = JobInfo.Builder(id, component) - .setExtras(extras) - .setTransientExtras(transientExtras) - .setClipData(clipData, clipGrantFlags) - .setRequiredNetwork(requiredNetwork) - .setEstimatedNetworkBytes(estimatedNetworkDownloadBytes, estimatedNetworkUploadBytes) - .setRequiresCharging(isRequireCharging) - .setRequiresDeviceIdle(isRequireDeviceIdle) - .setRequiresBatteryNotLow(isRequireBatteryNotLow) - .setRequiresStorageNotLow(isRequireStorageNotLow) - .also { - triggerContentUris?.let { uris -> - for (uri in uris) - it.addTriggerContentUri(uri) - } + .setExtras(extras) + .setTransientExtras(transientExtras) + .setClipData(clipData, clipGrantFlags) + .setRequiredNetwork(requiredNetwork) + .setEstimatedNetworkBytes(estimatedNetworkDownloadBytes, estimatedNetworkUploadBytes) + .setRequiresCharging(isRequireCharging) + .setRequiresDeviceIdle(isRequireDeviceIdle) + .setRequiresBatteryNotLow(isRequireBatteryNotLow) + .setRequiresStorageNotLow(isRequireStorageNotLow) + .also { + triggerContentUris?.let { uris -> + for (uri in uris) + it.addTriggerContentUri(uri) } - .setTriggerContentUpdateDelay(triggerContentUpdateDelay) - .setTriggerContentMaxDelay(triggerContentMaxDelay) - .setImportantWhileForeground(isImportantWhileForeground) - .setPrefetch(isPrefetch) - .setPersisted(isPersisted) + } + .setTriggerContentUpdateDelay(triggerContentUpdateDelay) + .setTriggerContentMaxDelay(triggerContentMaxDelay) + .setImportantWhileForeground(isImportantWhileForeground) + .setPrefetch(isPrefetch) + .setPersisted(isPersisted) if (isPeriodic) { builder.setPeriodic(intervalMillis, flexMillis)