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
Я скину пару версий для теста через некоторое время.