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