OurPlay v5.5.9版本的 MD5 值为:d4e139798f4c2243a1145c8af5e21046
以下内容为反编译后的 AclSyncer.java 源代码,内容仅作参考
package com.github.shadowsocks.acl;
import android.content.Context;
import androidx.work.Constraints;
import androidx.work.CoroutineWorker;
import androidx.work.Data;
import androidx.work.ExistingWorkPolicy;
import androidx.work.ListenableWorker;
import androidx.work.NetworkType;
import androidx.work.OneTimeWorkRequest;
import androidx.work.Operation;
import androidx.work.WorkManager;
import androidx.work.WorkerParameters;
import com.github.shadowsocks.acl.Acl;
import com.umeng.analytics.pro.d;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStreamWriter;
import java.io.PrintWriter;
import java.io.Reader;
import java.io.Writer;
import java.net.URL;
import java.util.concurrent.TimeUnit;
import kotlin.Metadata;
import kotlin.coroutines.Continuation;
import kotlin.io.c;
import kotlin.io.o;
import kotlin.jvm.internal.g;
import kotlin.jvm.internal.k;
import kotlin.text.Charsets;
import kotlin.u;
import kotlinx.coroutines.CoroutineDispatcher;
import kotlinx.coroutines.Dispatchers;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000(\n\u0002\u0018\u0002\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\n\u0002\u0018\u0002\n\u0002\b\u0003\n\u0002\u0018\u0002\n\u0002\b\u0003\u0018\u0000 \u000e2\u00020\u0001:\u0001\u000eB\u0015\u0012\u0006\u0010\u0002\u001a\u00020\u0003\u0012\u0006\u0010\u0004\u001a\u00020\u0005¢\u0006\u0002\u0010\u0006J\u0011\u0010\u000b\u001a\u00020\fH\u0096@ø\u0001\u0000¢\u0006\u0002\u0010\rR\u0014\u0010\u0007\u001a\u00020\b8VX\u0096\u0004¢\u0006\u0006\u001a\u0004\b\t\u0010\n\u0082\u0002\u0004\n\u0002\b\u0019¨\u0006\u000f"}, d2 = {"Lcom/github/shadowsocks/acl/AclSyncer;", "Landroidx/work/CoroutineWorker;", d.R, "Landroid/content/Context;", "workerParams", "Landroidx/work/WorkerParameters;", "(Landroid/content/Context;Landroidx/work/WorkerParameters;)V", "coroutineContext", "Lkotlinx/coroutines/CoroutineDispatcher;", "getCoroutineContext", "()Lkotlinx/coroutines/CoroutineDispatcher;", "doWork", "Landroidx/work/ListenableWorker$Result;", "(Lkotlin/coroutines/Continuation;)Ljava/lang/Object;", "Companion", "core_release"}, k = 1, mv = {1, 1, 13})
public final class AclSyncer extends CoroutineWorker {
public static final a f15748a = new a(null);
@Metadata(bv = {1, 0, 3}, d1 = {"\u0000\u001a\n\u0002\u0018\u0002\n\u0002\u0010\u0000\n\u0002\b\u0002\n\u0002\u0010\u000e\n\u0000\n\u0002\u0018\u0002\n\u0002\b\u0002\b\u0086\u0003\u0018\u00002\u00020\u0001B\u0007\b\u0002¢\u0006\u0002\u0010\u0002J\u000e\u0010\u0005\u001a\u00020\u00062\u0006\u0010\u0007\u001a\u00020\u0004R\u000e\u0010\u0003\u001a\u00020\u0004X\u0082T¢\u0006\u0002\n\u0000¨\u0006\b"}, d2 = {"Lcom/github/shadowsocks/acl/AclSyncer$Companion;", "", "()V", "KEY_ROUTE", "", "schedule", "Landroidx/work/Operation;", "route", "core_release"}, k = 1, mv = {1, 1, 13})
public static final class a {
private a() {
}
public a(g gVar) {
this();
}
@NotNull
public final Operation a(@NotNull String str) {
k.b(str, "route");
WorkManager workManager = WorkManager.getInstance();
ExistingWorkPolicy existingWorkPolicy = ExistingWorkPolicy.REPLACE;
OneTimeWorkRequest.Builder builder = new OneTimeWorkRequest.Builder(AclSyncer.class);
builder.setInputData(new Data.Builder().putString("route", str).build());
builder.setConstraints(new Constraints.Builder().setRequiredNetworkType(NetworkType.UNMETERED).setRequiresCharging(true).build());
builder.setInitialDelay(10L, TimeUnit.SECONDS);
Operation enqueueUniqueWork = workManager.enqueueUniqueWork(str, existingWorkPolicy, builder.build());
k.a((Object) enqueueUniqueWork, "WorkManager.getInstance(…uild()\n })");
return enqueueUniqueWork;
}
}
public AclSyncer(@NotNull Context context, @NotNull WorkerParameters workerParameters) {
super(context, workerParameters);
k.b(context, d.R);
k.b(workerParameters, "workerParams");
}
@Override
@NotNull
public CoroutineDispatcher getCoroutineContext() {
return Dispatchers.getIO();
}
@Override
@Nullable
public Object doWork(@NotNull Continuation<? super ListenableWorker.Result> continuation) {
try {
String string = getInputData().getString("route");
if (string == null) {
k.a();
}
k.a((Object) string, "inputData.getString(KEY_ROUTE)!!");
InputStream openStream = new URL("https://shadowsocks.org/acl/android/v1/" + string + ".acl").openStream();
k.a((Object) openStream, "URL(\"https://shadowsocks…$route.acl\").openStream()");
Reader inputStreamReader = new InputStreamReader(openStream, Charsets.f19034a);
BufferedReader bufferedReader = inputStreamReader instanceof BufferedReader ? (BufferedReader) inputStreamReader : new BufferedReader(inputStreamReader, 8192);
Throwable th = (Throwable) null;
try {
try {
String a2 = o.a((Reader) bufferedReader);
c.a(bufferedReader, th);
Writer outputStreamWriter = new OutputStreamWriter(new FileOutputStream(Acl.b.a(Acl.f15773b, string, null, 2, null)), Charsets.f19034a);
PrintWriter printWriter = new PrintWriter(outputStreamWriter instanceof BufferedWriter ? (BufferedWriter) outputStreamWriter : new BufferedWriter(outputStreamWriter, 8192));
Throwable th2 = (Throwable) null;
try {
printWriter.write(a2);
u uVar = u.f19091a;
c.a(printWriter, th2);
ListenableWorker.Result success = ListenableWorker.Result.success();
k.a((Object) success, "Result.success()");
return success;
} catch (Throwable th3) {
c.a(printWriter, th2);
throw th3;
}
} catch (Throwable th4) {
c.a(bufferedReader, th);
throw th4;
}
} catch (Throwable th5) {
th = th5;
throw th;
}
} catch (IOException e) {
e.printStackTrace();
ListenableWorker.Result retry = ListenableWorker.Result.retry();
k.a((Object) retry, "Result.retry()");
return retry;
}
}
}