流利说-英语 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;
}
}
}