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;
        }
    }
}