导航菜单

页面标题

页面副标题

CallApp v2.226 - TwilioTrustedCommLoader.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);
    }
}