正在查看: CallApp v2.226 应用的 TwilioTrustedCommLoader.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
正在查看: CallApp v2.226 应用的 TwilioTrustedCommLoader.java JAVA 源代码文件
本页面展示 JAVA 反编译生成的源代码文件,支持语法高亮显示。 仅供安全研究与技术分析使用,严禁用于任何非法用途。请遵守相关法律法规。
package com.callapp.contacts.loader;
import a1.d0;
import android.graphics.Color;
import com.callapp.common.util.UrlUtils;
import com.callapp.contacts.framework.util.MultiTaskRunner;
import com.callapp.contacts.loader.api.LoadContext;
import com.callapp.contacts.loader.api.NetworkDataLoader;
import com.callapp.contacts.manager.CallAppRemoteConfigManager;
import com.callapp.contacts.manager.cache.CacheManager;
import com.callapp.contacts.manager.preferences.Prefs;
import com.callapp.contacts.manager.task.Task;
import com.callapp.contacts.model.contact.ContactData;
import com.callapp.contacts.model.contact.ContactField;
import com.callapp.contacts.model.contact.TwilioTrustedCommData;
import com.callapp.contacts.model.contact.social.ContactFieldEnumSets;
import com.callapp.contacts.util.CLog;
import com.callapp.contacts.util.date.DateUtils;
import com.callapp.contacts.util.http.HttpRequestParams;
import com.callapp.contacts.util.http.HttpUtils;
import com.callapp.contacts.util.serializer.string.ClassParserHttpResponseHandler;
import com.callapp.framework.phone.Phone;
import com.callapp.framework.util.CollectionUtils;
import com.callapp.framework.util.StringUtils;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.fasterxml.jackson.databind.JsonNode;
import java.io.Serializable;
import java.util.Date;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.Objects;
import java.util.Set;
import java.util.concurrent.TimeUnit;
public class TwilioTrustedCommLoader extends SimpleContactLoader implements NetworkDataLoader {
public static class JWTTokens implements Serializable {
@JsonProperty("call_info_token")
private String callInfoToken;
@JsonProperty("directory_token")
private String directoryToken;
@JsonProperty("exp")
private Date exp;
private JWTTokens() {
}
public final boolean equals(Object obj) {
if (this == obj) {
return true;
}
if (obj == null || getClass() != obj.getClass()) {
return false;
}
JWTTokens jWTTokens = (JWTTokens) obj;
if (Objects.equals(this.exp, jWTTokens.exp) && Objects.equals(this.directoryToken, jWTTokens.directoryToken)) {
return Objects.equals(this.callInfoToken, jWTTokens.callInfoToken);
}
return false;
}
public String getCallInfoToken() {
return this.callInfoToken;
}
public String getDirectoryToken() {
return this.directoryToken;
}
public Date getExp() {
return this.exp;
}
public final int hashCode() {
Date date = this.exp;
int hashCode = (date != null ? date.hashCode() : 0) * 31;
String str = this.directoryToken;
int hashCode2 = (hashCode + (str != null ? str.hashCode() : 0)) * 31;
String str2 = this.callInfoToken;
return hashCode2 + (str2 != null ? str2.hashCode() : 0);
}
}
private JWTTokens getJWTToken() {
JWTTokens jWTTokens = (JWTTokens) CacheManager.get().c("TWCpsTokens", JWTTokens.class, false, false);
if (jWTTokens != null) {
return jWTTokens;
}
String str = Prefs.a1.get();
if (StringUtils.x(str)) {
ClassParserHttpResponseHandler classParserHttpResponseHandler = new ClassParserHttpResponseHandler(JWTTokens.class);
HttpRequestParams.HttpRequestParamsBuilder httpRequestParamsBuilder = new HttpRequestParams.HttpRequestParamsBuilder(d0.o(HttpUtils.getCallappServerPrefix(), "twcpsjwttoken?") + "myp=" + UrlUtils.a(str) + "&tk=" + Prefs.e1.get());
httpRequestParamsBuilder.d = classParserHttpResponseHandler;
HttpUtils.g(httpRequestParamsBuilder.a());
JWTTokens jWTTokens2 = (JWTTokens) classParserHttpResponseHandler.getResult();
if (jWTTokens2 == null || !StringUtils.x(jWTTokens2.getCallInfoToken()) || !StringUtils.x(jWTTokens2.getDirectoryToken())) {
Objects.toString(jWTTokens2);
StringUtils.I(TwilioTrustedCommLoader.class);
CLog.a();
} else if (jWTTokens2.getExp() != null) {
long d = DateUtils.d(new Date(), jWTTokens2.getExp(), TimeUnit.MINUTES);
if (d >= 1) {
long j = (long) (d * 0.85d);
try {
CacheManager cacheManager = CacheManager.get();
cacheManager.getClass();
cacheManager.i(JWTTokens.class, "TWCpsTokens", jWTTokens2, DateUtils.m((int) j, 12).getTime());
return jWTTokens2;
} catch (Exception e) {
CLog.b(TwilioTrustedCommLoader.class, e);
return jWTTokens2;
}
}
}
}
return jWTTokens;
}
@Override
public final void b(LoadContext loadContext) {
TwilioTrustedCommData twilioTrustedCommData = (TwilioTrustedCommData) CacheManager.get().c(loadContext.a.getCacheKey(TwilioTrustedCommData.class), TwilioTrustedCommData.class, false, false);
if (twilioTrustedCommData != null) {
e(loadContext, twilioTrustedCommData);
}
}
@Override
public final void c(LoadContext loadContext) {
if (Prefs.c1.get().booleanValue() && CallAppRemoteConfigManager.get().b("twilioTrustedCommCPSEnabled") && loadContext.c != null && CollectionUtils.b(loadContext.b, ContactField.call)) {
final ContactData contactData = loadContext.a;
synchronized (contactData.getLock(TwilioTrustedCommLoader.class)) {
try {
Phone phone = contactData.getPhone();
if (phone.isEmpty()) {
return;
}
String c = phone.c();
JWTTokens jWTToken = getJWTToken();
if (jWTToken != null && jWTToken.getDirectoryToken() != null && jWTToken.getCallInfoToken() != null) {
ClassParserHttpResponseHandler classParserHttpResponseHandler = new ClassParserHttpResponseHandler(JsonNode.class);
HashMap hashMap = new HashMap();
hashMap.put("Accept", "application/json");
hashMap.put("Authorization", "Bearer " + jWTToken.getDirectoryToken());
hashMap.put("X-XCNAM-Sensitive-Phone-Number", c);
HttpRequestParams.HttpRequestParamsBuilder httpRequestParamsBuilder = new HttpRequestParams.HttpRequestParamsBuilder("https://preview.twilio.com/TrustedComms/CPS");
httpRequestParamsBuilder.b = hashMap;
httpRequestParamsBuilder.d = classParserHttpResponseHandler;
HttpUtils.g(httpRequestParamsBuilder.a());
JsonNode jsonNode = (JsonNode) classParserHttpResponseHandler.getResult();
classParserHttpResponseHandler.getResponseCode();
Objects.toString(classParserHttpResponseHandler.getResult());
StringUtils.I(TwilioTrustedCommData.class);
CLog.a();
if (jsonNode != null) {
JsonNode jsonNode2 = jsonNode.get("cps_url");
if (jsonNode2 != null && !jsonNode2.isNull()) {
String asText = jsonNode2.asText();
if (StringUtils.t(asText)) {
return;
}
classParserHttpResponseHandler.c = null;
hashMap.remove("X-XCNAM-Sensitive-Phone-Number");
hashMap.put("Accept", "application/json");
hashMap.put("Authorization", "Bearer " + jWTToken.getCallInfoToken());
hashMap.put("X-XCNAM-Sensitive-Phone-Number-From", c);
hashMap.put("X-XCNAM-Sensitive-Phone-Number-To", Prefs.a1.get());
HttpRequestParams.HttpRequestParamsBuilder httpRequestParamsBuilder2 = new HttpRequestParams.HttpRequestParamsBuilder(asText);
httpRequestParamsBuilder2.b = hashMap;
httpRequestParamsBuilder2.d = classParserHttpResponseHandler;
HttpUtils.g(httpRequestParamsBuilder2.a());
JsonNode jsonNode3 = (JsonNode) classParserHttpResponseHandler.getResult();
classParserHttpResponseHandler.getResponseCode();
Objects.toString(classParserHttpResponseHandler.getResult());
StringUtils.I(TwilioTrustedCommData.class);
CLog.a();
if (jsonNode3 != null) {
JsonNode jsonNode4 = jsonNode3.get("caller");
if (jsonNode4 != null && !jsonNode4.isNull()) {
String asText2 = jsonNode4.asText();
if (StringUtils.t(asText2)) {
return;
}
TwilioTrustedCommData twilioTrustedCommData = new TwilioTrustedCommData(asText2);
JsonNode jsonNode5 = jsonNode3.get("logo");
if (jsonNode5 != null && !jsonNode5.isNull()) {
String asText3 = jsonNode5.asText();
if (StringUtils.x(asText3)) {
twilioTrustedCommData.setLogoUrl(asText3);
}
}
JsonNode jsonNode6 = jsonNode3.get("bg_color");
if (jsonNode6 != null && !jsonNode6.isNull()) {
String asText4 = jsonNode6.asText();
if (StringUtils.x(asText4)) {
try {
twilioTrustedCommData.setLogoBgColor(Integer.valueOf(Color.parseColor(asText4)));
} catch (RuntimeException e) {
CLog.e(TwilioTrustedCommLoader.class, e);
}
}
}
e(loadContext, twilioTrustedCommData);
JsonNode jsonNode7 = jsonNode3.get("reason");
if (jsonNode7 != null && !jsonNode7.isNull()) {
String asText5 = jsonNode7.asText();
if (StringUtils.x(asText5)) {
twilioTrustedCommData.setCallReason(asText5);
new Task(this) {
@Override
public final void doTask() {
contactData.updateCallReason();
}
}.execute();
}
}
CacheManager.get().g(TwilioTrustedCommData.class, contactData.getCacheKey(TwilioTrustedCommData.class), twilioTrustedCommData);
}
}
}
}
}
} finally {
}
}
}
}
public final void e(LoadContext loadContext, TwilioTrustedCommData twilioTrustedCommData) {
final ContactData contactData = loadContext.a;
contactData.setTwilioTrustedCommData(twilioTrustedCommData);
MultiTaskRunner b = loadContext.b();
EnumSet<ContactField> enumSet = ContactFieldEnumSets.NAME_FIELDS;
Set set = loadContext.b;
if (CollectionUtils.c(set, enumSet)) {
b.a(new Task(this) {
@Override
public final void doTask() {
contactData.updateFullName();
}
});
}
if (CollectionUtils.c(set, ContactFieldEnumSets.PHOTO_FIELDS)) {
b.a(new Task(this) {
@Override
public final void doTask() {
ContactData contactData2 = contactData;
contactData2.resetPhotoWithoutFiringAndUpdating();
contactData2.updatePhoto();
}
});
}
b.b();
}
@Override
public Set<ContactField> getListenFields() {
return EnumSet.of(ContactField.call);
}
}