2018-12-27 14:07:47 +00:00
|
|
|
package a;
|
|
|
|
|
|
|
|
import android.content.Context;
|
|
|
|
|
|
|
|
import androidx.annotation.NonNull;
|
|
|
|
import androidx.work.Worker;
|
|
|
|
import androidx.work.WorkerParameters;
|
|
|
|
|
2019-09-28 07:37:24 +00:00
|
|
|
import com.topjohnwu.magisk.base.DelegateWorker;
|
2019-08-08 07:59:23 +00:00
|
|
|
|
|
|
|
import java.lang.reflect.ParameterizedType;
|
|
|
|
|
2019-01-28 21:12:59 +00:00
|
|
|
public abstract class w<T extends DelegateWorker> extends Worker {
|
2018-12-27 14:07:47 +00:00
|
|
|
|
|
|
|
/* Wrapper class to workaround Proguard -keep class * extends Worker */
|
|
|
|
|
|
|
|
private T base;
|
|
|
|
|
|
|
|
@SuppressWarnings("unchecked")
|
|
|
|
w(@NonNull Context context, @NonNull WorkerParameters workerParams) {
|
2019-10-26 19:37:12 +00:00
|
|
|
super(context, workerParams);
|
2018-12-27 14:07:47 +00:00
|
|
|
try {
|
|
|
|
base = ((Class<T>) ((ParameterizedType) getClass().getGenericSuperclass())
|
|
|
|
.getActualTypeArguments()[0]).newInstance();
|
2019-08-08 07:59:23 +00:00
|
|
|
base.attachWorker(this);
|
2018-12-27 21:15:59 +00:00
|
|
|
} catch (Exception ignored) {}
|
2018-12-27 14:07:47 +00:00
|
|
|
}
|
|
|
|
|
|
|
|
@NonNull
|
|
|
|
@Override
|
|
|
|
public Result doWork() {
|
|
|
|
if (base == null)
|
|
|
|
return Result.failure();
|
|
|
|
return base.doWork();
|
|
|
|
}
|
2019-01-28 21:12:59 +00:00
|
|
|
|
|
|
|
@Override
|
|
|
|
public void onStopped() {
|
|
|
|
if (base != null)
|
|
|
|
base.onStopped();
|
|
|
|
}
|
2018-12-27 14:07:47 +00:00
|
|
|
}
|