Этап 1: единый OkHttpClient (переиспользование пула/кэша) — ч.1
Раньше NetworkFactory создавал новый OkHttpClient на КАЖДЫЙ запрос (~32 места): TLS-handshake + новый пул/диспатчер на запрос + утечка ExecutorService. Теперь: один базовый клиент (общий ConnectionPool/Dispatcher + диск-кэш 20МБ), авторизованные варианты через base.newBuilder() (шарят пул/кэш), кэшируются по кредам+таймаутам. Публичный API НЕ менялся — 32 вызова не тронуты. Init диск-кэша в F7MobileApp.onCreate. +3 unit-теста (переиспользование клиента, общий пул). 401→interceptor НЕ делал (меняет семантику исключений — отдельный шаг). Проверено: 15 тестов зелёные + assembleRelease BUILD SUCCESSFUL, APK 53 МБ.
This commit is contained in:
@@ -16,6 +16,7 @@ import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import ru.forbion.f7cloud.core.auth.AuthStore
|
||||
import ru.forbion.f7cloud.core.designsystem.AppForegroundTracker
|
||||
import ru.forbion.f7cloud.core.network.NetworkFactory
|
||||
import ru.forbion.f7cloud.core.push.F7NotificationChannels
|
||||
import ru.forbion.f7cloud.core.push.F7PushRegistrar
|
||||
import ru.forbion.f7cloud.feature.talknative.TalkVendorBootstrap
|
||||
@@ -37,6 +38,7 @@ class F7MobileApp : F7cloudTalkApplication(), ImageLoaderFactory {
|
||||
}
|
||||
})
|
||||
F7NotificationChannels.ensureAll(this)
|
||||
NetworkFactory.init(this) // общий HTTP-клиент + диск-кэш (переиспользование соединений)
|
||||
TalkVendorBootstrap.onApplicationCreate(this)
|
||||
val auth = AuthStore(this).load() ?: return
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user