ModV2.0.4 v1.86526672844804版本的 MD5 值为:ab8437a2d03fc69805a8b4199bd7fecb
以下内容为反编译后的 d.java 源代码,内容仅作参考
package com.joaomgcd.taskerm.net.auth;
import android.content.Context;
import android.content.SharedPreferences;
import android.net.Uri;
import c.a.z;
import c.f.b.k;
import c.f.b.l;
import c.l.n;
import c.q;
import c.s;
import com.joaomgcd.taskerm.net.auth.b;
import com.joaomgcd.taskerm.net.o;
import com.joaomgcd.taskerm.rx.b;
import com.joaomgcd.taskerm.util.al;
import com.joaomgcd.taskerm.util.an;
import com.joaomgcd.taskerm.util.ao;
import java.net.HttpURLConnection;
import java.util.HashMap;
import java.util.List;
import java.util.UUID;
import java.util.concurrent.TimeUnit;
import org.json.JSONObject;
public final class d implements com.joaomgcd.taskerm.net.auth.b {
private final Context f8119a;
private final String f8120b;
private final String f8121c;
private final String f8122d;
private final String f8123e;
private final String[] f8124f;
private final i g;
private final boolean h;
public static final class c extends l implements c.f.a.b<HttpURLConnection, s> {
final boolean f8130b;
c(boolean z) {
super(1);
this.f8130b = z;
}
@Override
public s invoke(HttpURLConnection httpURLConnection) {
a(httpURLConnection);
return s.f2131a;
}
public final void a(HttpURLConnection httpURLConnection) {
k.b(httpURLConnection, "it");
if (this.f8130b) {
String a2 = d.this.a(d.this.f8120b, d.this.f8121c);
k.a((Object) a2, "base64EncodeUserPass(clientId, clientSecret)");
an.a(httpURLConnection, a2);
}
an.b(httpURLConnection, d.this.g.a());
}
}
public d(Context context, String str, String str2, String str3, String str4, String[] strArr, i iVar, boolean z) {
k.b(context, "context");
k.b(str, "clientId");
k.b(str2, "clientSecret");
k.b(str3, "endpointCode");
k.b(str4, "endpointRefresh");
k.b(strArr, "scopes");
k.b(iVar, "tokenDataType");
this.f8119a = context;
this.f8120b = str;
this.f8121c = str2;
this.f8122d = str3;
this.f8123e = str4;
this.f8124f = strArr;
this.g = iVar;
this.h = z;
}
public String a(String str, String str2) {
k.b(str, "user");
k.b(str2, "pass");
return b.a.a(this, str, str2);
}
public String a(JSONObject jSONObject) {
k.b(jSONObject, "receiver$0");
return b.a.a(this, jSONObject);
}
public Long b(JSONObject jSONObject) {
k.b(jSONObject, "receiver$0");
return b.a.b(this, jSONObject);
}
public String c(JSONObject jSONObject) {
k.b(jSONObject, "receiver$0");
return b.a.c(this, jSONObject);
}
public d(Context context, String str, String str2, String str3, String str4, String[] strArr, i iVar, boolean z, int i, c.f.b.g gVar) {
this(context, str, str2, str3, str4, strArr, (i & 64) != 0 ? i.form : iVar, (i & 128) != 0 ? false : z);
}
private final String a() {
return c.a.d.a(this.f8124f, " ", (CharSequence) null, (CharSequence) null, 0, (CharSequence) null, (c.f.a.b) null, 62, (Object) null);
}
private final String a(boolean z) {
HashMap b2;
List<c.k> d2;
Uri.Builder appendQueryParameter = Uri.parse(this.f8122d).buildUpon().appendQueryParameter("client_id", this.f8120b).appendQueryParameter("response_type", "code");
String uuid = UUID.randomUUID().toString();
k.a((Object) uuid, "UUID.randomUUID().toString()");
Uri.Builder appendQueryParameter2 = appendQueryParameter.appendQueryParameter("state", n.a(uuid, "-", "", false, 4, (Object) null));
if (z) {
appendQueryParameter2.appendQueryParameter("redirect_uri", "https://tasker.joaoapps.com/auth.html");
}
if (!(this.f8124f.length == 0)) {
appendQueryParameter2.appendQueryParameter("scope", a());
}
b2 = f.b();
HashMap hashMap = (HashMap) b2.get(this.f8122d);
if (hashMap != null && (d2 = z.d(hashMap)) != null) {
for (c.k kVar : d2) {
appendQueryParameter2.appendQueryParameter((String) kVar.a(), (String) kVar.b());
}
}
if (this.h) {
appendQueryParameter2.appendQueryParameter("show_dialog", "true");
}
String uri = appendQueryParameter2.build().toString();
k.a((Object) uri, "Uri.parse(endpointCode).… .build().toString()");
return uri;
}
private final String b(String str, String str2) {
JSONObject jSONObject = new JSONObject();
jSONObject.put("grant_type", "authorization_code");
jSONObject.put("code", str);
if (str2 == null) {
str2 = "https://tasker.joaoapps.com/auth.html";
}
jSONObject.put("redirect_uri", str2);
jSONObject.put("client_id", this.f8120b);
jSONObject.put("client_secret", this.f8121c);
switch (this.g) {
case json:
String jSONObject2 = jSONObject.toString();
k.a((Object) jSONObject2, "fields.toString()");
return jSONObject2;
case form:
return an.a(jSONObject);
default:
throw new c.i();
}
}
private final String a(String str) {
JSONObject jSONObject = new JSONObject();
jSONObject.put("grant_type", "refresh_token");
jSONObject.put("refresh_token", str);
switch (this.g) {
case json:
String jSONObject2 = jSONObject.toString();
k.a((Object) jSONObject2, "fields.toString()");
return jSONObject2;
case form:
return an.a(jSONObject);
default:
throw new c.i();
}
}
private final String a(String str, boolean z) {
com.joaomgcd.taskerm.net.d dVar = new com.joaomgcd.taskerm.net.d(str, this.f8123e, null, null, 12, null);
dVar.a(new c(z));
return (String) com.joaomgcd.taskerm.net.l.a(new o(dVar), null, 1, null);
}
public static final class b<T> implements b.a.d.i<Object> {
public static final b f8128a = new b();
@Override
public final boolean a(Object obj) {
k.b(obj, "it");
return obj instanceof com.joaomgcd.taskerm.net.auth.a;
}
}
@Override
public b.a.l<h> a(long j) {
return com.joaomgcd.taskerm.rx.h.b(new a(j));
}
static final class a extends l implements c.f.a.a<C0209a> {
final long f8126b;
a(long j) {
super(0);
this.f8126b = j;
}
@Override
public final C0209a invoke() {
AuthInfo c2 = d.this.h ? null : d.this.c();
if (c2 == null) {
c2 = d.this.b(this.f8126b);
} else if (c2.isExpired()) {
c2 = d.this.a(c2, this.f8126b);
}
d.this.a(c2);
return new C0209a(c2);
}
public static final class C0209a extends h {
final AuthInfo f8127a;
C0209a(AuthInfo authInfo) {
this.f8127a = authInfo;
}
@Override
public void a(HashMap<String, String> hashMap) {
k.b(hashMap, "headers");
hashMap.put(this.f8127a.getAuthHeaderKey(), this.f8127a.getAuthHeaderValue());
}
}
}
public final AuthInfo a(AuthInfo authInfo, long j) {
try {
String refreshToken = authInfo.getRefreshToken();
if (refreshToken != null) {
JSONObject jSONObject = new JSONObject(a(a(refreshToken), true));
String c2 = c(jSONObject);
if (c2 == null) {
c2 = refreshToken;
}
String a2 = a(jSONObject);
if (a2 == null) {
throw new RuntimeException("Could not get access token");
}
return new AuthInfo(c2, a2, b(jSONObject));
}
return authInfo;
} catch (com.joaomgcd.taskerm.net.i unused) {
a((AuthInfo) null);
return b(j);
}
}
public final AuthInfo b(long j) {
String queryParameter;
String str = an.a(ao.C(this.f8122d)).get("redirect_uri");
String str2 = str;
al.a(this.f8119a, a(str2 == null || str2.length() == 0), true, false, true);
String str3 = null;
try {
c.f.a.b bVar = null;
b.a.h<Object> a2 = com.joaomgcd.taskerm.rx.b.f8673b.a().a((b.a.d.i<? super Object>) b.f8128a);
if (a2 != null) {
b.a.l<Object> a3 = a2.d().a();
if (a3 == null) {
throw new q("null cannot be cast to non-null type io.reactivex.Single<T>");
}
b.a.l<Object> b2 = a3.b(j, TimeUnit.MILLISECONDS);
k.a((Object) b2, "result.timeout(it, TimeUnit.MILLISECONDS)");
b2.a(b.c.f8684a, b.d.f8685a);
Uri a4 = ((com.joaomgcd.taskerm.net.auth.a) b2.b()).a();
if (a4 != null && (queryParameter = a4.getQueryParameter("error")) != null) {
throw new RuntimeException("Error getting code: " + queryParameter);
}
if (str3 == null) {
throw new RuntimeException("Could not get code");
}
JSONObject jSONObject = new JSONObject(a(b(str3, str), false));
String c2 = c(jSONObject);
String a5 = a(jSONObject);
if (a5 == null) {
throw new RuntimeException("Could not get access token");
}
return new AuthInfo(c2, a5, b(jSONObject));
}
throw new q("null cannot be cast to non-null type io.reactivex.Observable<T>");
} catch (RuntimeException e2) {
throw e2;
} catch (Exception unused) {
throw new RuntimeException("Timed out while getting code");
}
}
private final String b() {
return this.f8120b + ':' + this.f8121c + ':' + this.f8122d + ':' + this.f8123e + ':' + a();
}
public final AuthInfo c() {
Context context = this.f8119a;
String b2 = b();
SharedPreferences a2 = com.joaomgcd.taskerm.net.auth.c.a(this.f8119a);
k.a((Object) a2, "context.preferencesHttpAuth");
String string = a2.getString(b2, null);
return (AuthInfo) (string != null ? com.joaomgcd.taskerm.n.b.a().a(string, (Class<Object>) AuthInfo.class) : null);
}
public final void a(AuthInfo authInfo) {
Context context = this.f8119a;
String b2 = b();
SharedPreferences a2 = com.joaomgcd.taskerm.net.auth.c.a(this.f8119a);
k.a((Object) a2, "context.preferencesHttpAuth");
com.joaomgcd.taskerm.q.b.a(context, b2, authInfo, a2);
}
}