流利说-英语 v8.47.26版本的 MD5 值为:0079dce5ff96e6cdbc95c261b3f51387

以下内容为反编译后的 SimpleQiniuUploadHelper.java 源代码,内容仅作参考


package com.liulishuo.lingodarwin.center.helper;

import android.content.Context;
import android.net.Uri;
import com.liulishuo.lingodarwin.center.helper.SimpleQiniuUploadHelper;
import com.liulishuo.lingodarwin.center.network.DWRetrofitable;
import com.liulishuo.lingodarwin.center.qiniu.QiniuRequest;
import com.qiniu.auth.Authorizer;
import com.qiniu.io.IO;
import com.qiniu.rs.CallBack;
import com.qiniu.rs.CallRet;
import com.qiniu.rs.PutExtra;
import com.qiniu.rs.UploadCallRet;
import io.reactivex.q;
import java.util.HashMap;
import kotlin.Pair;
import kotlin.i;
import kotlin.jvm.a.m;
import kotlin.jvm.internal.Ref;
import kotlin.jvm.internal.t;
import kotlin.k;
import kotlin.u;
import okhttp3.MediaType;
import okhttp3.RequestBody;
import org.json.JSONObject;
import retrofit2.http.Body;
import retrofit2.http.POST;
import rx.Observable;
import rx.Subscriber;
import rx.functions.Func1;

@i
public final class SimpleQiniuUploadHelper {
    public static final SimpleQiniuUploadHelper deL = new SimpleQiniuUploadHelper();

    @i
    public interface a {
        @POST("qiniu/upload")
        Observable<QiniuToken> a(@Body QiniuRequest qiniuRequest);

        @POST("qiniu/upload")
        QiniuToken c(@Body RequestBody requestBody);

        @POST("qiniu/upload")
        q<QiniuToken> d(@Body RequestBody requestBody);
    }

    private SimpleQiniuUploadHelper() {
    }

    public static Observable a(SimpleQiniuUploadHelper simpleQiniuUploadHelper, Context context, Uri uri, String str, String str2, int i, Object obj) {
        if ((i & 4) != 0) {
            str = (String) null;
        }
        if ((i & 8) != 0) {
            str2 = (String) null;
        }
        return simpleQiniuUploadHelper.a(context, uri, str, str2);
    }

    public final Observable<String> a(Context context, Uri fileUri, String str, String str2) {
        String str3;
        t.g(context, "context");
        t.g(fileUri, "fileUri");
        String str4 = str;
        if (str4 == null || str4.length() == 0) {
            str3 = "";
        } else {
            str3 = '.' + str;
        }
        String str5 = str2;
        if (str5 == null || str5.length() == 0) {
            str2 = com.liulishuo.lingodarwin.center.helper.a.getDeviceId(context) + '_' + System.currentTimeMillis() + str3;
        }
        Observable flatMap = hC(str2).flatMap(new c(context, fileUri, str2));
        t.e(flatMap, "requestUploadToken(key).…)\n            }\n        }");
        return flatMap;
    }

    @i
    public static final class c<T, R> implements Func1<QiniuToken, Observable<? extends String>> {
        final Context $context;
        final String $key;
        final Uri deO;

        c(Context context, Uri uri, String str) {
            this.$context = context;
            this.deO = uri;
            this.$key = str;
        }

        @i
        public static final class AnonymousClass1<T> implements Observable.OnSubscribe<String> {
            final QiniuToken deQ;

            AnonymousClass1(QiniuToken qiniuToken) {
                this.deQ = qiniuToken;
            }

            @Override
            public final void call(final Subscriber<? super String> subscriber) {
                subscriber.onStart();
                SimpleQiniuUploadHelper.deL.a(c.this.$context, c.this.deO, this.deQ.getUploadToken(), c.this.$key, new m<Long, Long, u>() {
                    public final void invoke(long j, long j2) {
                    }

                    @Override
                    public u invoke(Long l, Long l2) {
                        invoke(l.longValue(), l2.longValue());
                        return u.jXu;
                    }
                }, new kotlin.jvm.a.a<u>() {
                    {
                        super(0);
                    }

                    @Override
                    public u invoke() {
                        invoke2();
                        return u.jXu;
                    }

                    public final void invoke2() {
                        subscriber.onNext("https://cdn.llscdn.com/" + SimpleQiniuUploadHelper.c.this.$key);
                        subscriber.onCompleted();
                    }
                }, new kotlin.jvm.a.b<Throwable, u>() {
                    {
                        super(1);
                    }

                    @Override
                    public u invoke(Throwable th) {
                        invoke2(th);
                        return u.jXu;
                    }

                    public final void invoke2(Throwable it) {
                        t.g(it, "it");
                        Subscriber.this.onError(it);
                    }
                });
            }
        }

        @Override
        public final Observable<? extends String> call(QiniuToken qiniuToken) {
            return Observable.unsafeCreate(new AnonymousClass1(qiniuToken));
        }
    }

    public final Pair<Boolean, String> b(Context context, Uri uri, String key) {
        t.g(context, "context");
        t.g(uri, "uri");
        t.g(key, "key");
        Ref.BooleanRef booleanRef = new Ref.BooleanRef();
        booleanRef.element = true;
        JSONObject jSONObject = new JSONObject();
        jSONObject.put("bucket", "llss");
        jSONObject.put("key", key);
        RequestBody body = RequestBody.create(MediaType.parse("application/json; charset=utf-8"), jSONObject.toString());
        a aVar = (a) com.liulishuo.lingodarwin.center.network.d.Z(a.class);
        t.e(body, "body");
        QiniuToken c2 = aVar.c(body);
        if (c2 != null) {
            Throwable dxY = io.reactivex.a.a(new b(context, uri, c2.getUploadToken(), key, booleanRef)).fP(2L).dxY();
            if (dxY != null) {
                booleanRef.element = false;
                com.liulishuo.lingodarwin.center.c.a("SimpleQiniuUploadHelper", dxY, "fail to upload file to qiniu", new Object[0]);
            }
        } else {
            booleanRef.element = false;
        }
        return k.E(Boolean.valueOf(booleanRef.element), "https://cdn.llscdn.com/" + key);
    }

    @i
    public static final class b implements io.reactivex.d {
        final Context $context;
        final String $key;
        final String $token;
        final Uri deM;
        final Ref.BooleanRef deN;

        b(Context context, Uri uri, String str, String str2, Ref.BooleanRef booleanRef) {
            this.$context = context;
            this.deM = uri;
            this.$token = str;
            this.$key = str2;
            this.deN = booleanRef;
        }

        @Override
        public final void subscribe(final io.reactivex.b emitter) {
            t.g(emitter, "emitter");
            SimpleQiniuUploadHelper.deL.a(this.$context, this.deM, this.$token, this.$key, new m<Long, Long, u>() {
                public final void invoke(long j, long j2) {
                }

                @Override
                public u invoke(Long l, Long l2) {
                    invoke(l.longValue(), l2.longValue());
                    return u.jXu;
                }
            }, new kotlin.jvm.a.a<u>() {
                {
                    super(0);
                }

                @Override
                public u invoke() {
                    invoke2();
                    return u.jXu;
                }

                public final void invoke2() {
                    SimpleQiniuUploadHelper.b.this.deN.element = true;
                    emitter.onComplete();
                }
            }, new kotlin.jvm.a.b<Throwable, u>() {
                {
                    super(1);
                }

                @Override
                public u invoke(Throwable th) {
                    invoke2(th);
                    return u.jXu;
                }

                public final void invoke2(Throwable it) {
                    t.g(it, "it");
                    SimpleQiniuUploadHelper.b.this.deN.element = false;
                    com.liulishuo.lingodarwin.center.c.a("SimpleQiniuUploadHelper", it, "fail to upload file to qiniu", new Object[0]);
                    emitter.onError(it);
                }
            });
        }
    }

    private final Observable<QiniuToken> hC(String str) {
        return ((a) com.liulishuo.lingodarwin.center.network.d.Z(a.class)).a(new QiniuRequest("llss", str));
    }

    public final void a(Context context, Uri uri, String token, String key, m<? super Long, ? super Long, u> onProcess, kotlin.jvm.a.a<u> onSuccess, kotlin.jvm.a.b<? super Throwable, u> onFailure) {
        t.g(context, "context");
        t.g(uri, "uri");
        t.g(token, "token");
        t.g(key, "key");
        t.g(onProcess, "onProcess");
        t.g(onSuccess, "onSuccess");
        t.g(onFailure, "onFailure");
        Authorizer authorizer = new Authorizer();
        authorizer.setUploadToken(token);
        u uVar = u.jXu;
        PutExtra putExtra = new PutExtra();
        putExtra.checkCrc = 1;
        HashMap<String, String> params = putExtra.params;
        t.e(params, "params");
        params.put("x:arg", "value");
        u uVar2 = u.jXu;
        IO.putFile(context, authorizer, key, uri, putExtra, new d(onProcess, onSuccess, onFailure));
    }

    @i
    public static final class d extends CallBack {
        final kotlin.jvm.a.b $onFailure;
        final m deR;
        final kotlin.jvm.a.a deS;

        d(m mVar, kotlin.jvm.a.a aVar, kotlin.jvm.a.b bVar) {
            this.deR = mVar;
            this.deS = aVar;
            this.$onFailure = bVar;
        }

        @Override
        public void onProcess(long j, long j2) {
            this.deR.invoke(Long.valueOf(j), Long.valueOf(j2));
        }

        @Override
        public void onSuccess(UploadCallRet ret) {
            t.g(ret, "ret");
            this.deS.invoke();
        }

        @Override
        public void onFailure(CallRet ret) {
            t.g(ret, "ret");
            kotlin.jvm.a.b bVar = this.$onFailure;
            IllegalStateException exception = ret.getException();
            if (exception == null) {
                exception = new IllegalStateException(ret.getResponse());
            }
            bVar.invoke(exception);
        }
    }

    @i
    public static final class QiniuToken implements DWRetrofitable {
        private final String uploadToken;

        public static QiniuToken copy$default(QiniuToken qiniuToken, String str, int i, Object obj) {
            if ((i & 1) != 0) {
                str = qiniuToken.uploadToken;
            }
            return qiniuToken.copy(str);
        }

        public final String component1() {
            return this.uploadToken;
        }

        public final QiniuToken copy(String uploadToken) {
            t.g(uploadToken, "uploadToken");
            return new QiniuToken(uploadToken);
        }

        public boolean equals(Object obj) {
            if (this != obj) {
                return (obj instanceof QiniuToken) && t.h(this.uploadToken, ((QiniuToken) obj).uploadToken);
            }
            return true;
        }

        public int hashCode() {
            String str = this.uploadToken;
            if (str != null) {
                return str.hashCode();
            }
            return 0;
        }

        public String toString() {
            return "QiniuToken(uploadToken=" + this.uploadToken + ")";
        }

        public QiniuToken(String uploadToken) {
            t.g(uploadToken, "uploadToken");
            this.uploadToken = uploadToken;
        }

        public final String getUploadToken() {
            return this.uploadToken;
        }
    }
}