April 1, 2019

Детальный разбор TaxOid [2/2]

Первая часть: https://teletype.in/@volfschannel/BJAdDU0d4

Запросы к Geo API

com/pk/taxoid/network/retrofit/ApiService.smali

public interface ApiService {
    @GET("/reverse.php")
    Call<a> getAddress(@Query("format") String str, @Query("lat") String str2, @Query("lon") String str3, @Query("zoom") String str4, @Query("addressdetails") String str5, @Query("accept-language") String str6);

    @GET("/maps/api/directions/json")
    Call<b> getRoutes(@Query("origin") String str, @Query("waypoints") String str2, @Query("destination") String str3, @Query("sensor") boolean z, @Query("key") String str4);

    @GET("/data-api/4.0/core/distance.json")
    Call<c> getVisicomRoute(@Query("origin") String str, @Query("destination") String str2, @Query("waypoints") String str3, @Query("geometry") String str4, @Query("key") String str5);
}

Этот интерфейс отвечает за запросы деталей заказа (точка A/B, количество промежуточных пунктов/общее расстояние и т.д.)

Интересное место

com/pk/taxoid/network/b/a/a.smali

    private final int e = 10;
    private final long f = 30000;
    private final long g = 5000;
    private String h = BuildConfig.FLAVOR;

    private a() {
        a.b.b.b.a aVar = new a.b.b.b.a();
        aVar.a = true;
        aVar.c = true;
        aVar.d = 10;
        aVar.e = 5000;
        aVar.j = 30000;
        try {
            this.c = a.b.b.b.a(com.pk.taxoid.app.a.b, aVar);
            this.c.a("connect", f()).a("connect_error", g()).a("connect_timeout", h()).a("reconnect", j()).a("reconnect_failed", l()).a("reconnecting", i()).a("reconnect_attempt", k()).a("session_response", m()).a("orders_response", n()).a("disconnect", e());
        } catch (Throwable e) {
            com.crashlytics.android.a.a(e);
        }
    }

Судя по ключевым словам — что-то про соединение (connect_error/connect_timeout), на вызов этого класса я наткнулся в

com/pk/taxoid/a/b.smali

invoke-virtual {v0, p0}, Lcom/pk/taxoid/network/b/a/a;->deleteObserver(Ljava/util/Observer;)V

Я скину пару версий для теста через некоторое время.