chore(network): Allow adding OKHttp interceptors through dependency injection
This commit is contained in:
parent
0d7b5f9d8f
commit
23c10af742
|
@ -70,14 +70,15 @@ public final class me/proton/core/network/dagger/CoreNetworkCryptoModule_Provide
|
|||
|
||||
public final class me/proton/core/network/dagger/CoreNetworkModule {
|
||||
public fun <init> ()V
|
||||
public final fun provideNothing ()Ljava/util/Set;
|
||||
}
|
||||
|
||||
public final class me/proton/core/network/dagger/CoreNetworkModule_ProvideApiFactory$network_dagger_releaseFactory : dagger/internal/Factory {
|
||||
public fun <init> (Lme/proton/core/network/dagger/CoreNetworkModule;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;)V
|
||||
public static fun create (Lme/proton/core/network/dagger/CoreNetworkModule;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;)Lme/proton/core/network/dagger/CoreNetworkModule_ProvideApiFactory$network_dagger_releaseFactory;
|
||||
public fun <init> (Lme/proton/core/network/dagger/CoreNetworkModule;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;)V
|
||||
public static fun create (Lme/proton/core/network/dagger/CoreNetworkModule;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;Ljavax/inject/Provider;)Lme/proton/core/network/dagger/CoreNetworkModule_ProvideApiFactory$network_dagger_releaseFactory;
|
||||
public synthetic fun get ()Ljava/lang/Object;
|
||||
public fun get ()Lme/proton/core/network/data/ApiManagerFactory;
|
||||
public static fun provideApiFactory$network_dagger_release (Lme/proton/core/network/dagger/CoreNetworkModule;Landroid/content/Context;Lme/proton/core/network/domain/ApiClient;Lme/proton/core/network/domain/client/ClientIdProvider;Lme/proton/core/network/domain/server/ServerTimeListener;Lme/proton/core/network/domain/NetworkManager;Lme/proton/core/network/domain/NetworkPrefs;Lme/proton/core/network/data/ProtonCookieStore;Lme/proton/core/network/domain/session/SessionProvider;Lme/proton/core/network/domain/session/SessionListener;Lme/proton/core/network/domain/humanverification/HumanVerificationProvider;Lme/proton/core/network/domain/humanverification/HumanVerificationListener;Lme/proton/core/network/domain/deviceverification/DeviceVerificationProvider;Lme/proton/core/network/domain/deviceverification/DeviceVerificationListener;Lme/proton/core/network/domain/scopes/MissingScopeListener;Lme/proton/core/network/domain/client/ExtraHeaderProvider;Lme/proton/core/network/domain/client/ClientVersionValidator;Lme/proton/core/network/domain/serverconnection/DohAlternativesListener;Lokhttp3/HttpUrl;[Ljava/lang/String;[Ljava/lang/String;Ljava/util/List;Lokhttp3/OkHttpClient;)Lme/proton/core/network/data/ApiManagerFactory;
|
||||
public static fun provideApiFactory$network_dagger_release (Lme/proton/core/network/dagger/CoreNetworkModule;Landroid/content/Context;Lme/proton/core/network/domain/ApiClient;Lme/proton/core/network/domain/client/ClientIdProvider;Lme/proton/core/network/domain/server/ServerTimeListener;Lme/proton/core/network/domain/NetworkManager;Lme/proton/core/network/domain/NetworkPrefs;Lme/proton/core/network/data/ProtonCookieStore;Lme/proton/core/network/domain/session/SessionProvider;Lme/proton/core/network/domain/session/SessionListener;Lme/proton/core/network/domain/humanverification/HumanVerificationProvider;Lme/proton/core/network/domain/humanverification/HumanVerificationListener;Lme/proton/core/network/domain/deviceverification/DeviceVerificationProvider;Lme/proton/core/network/domain/deviceverification/DeviceVerificationListener;Lme/proton/core/network/domain/scopes/MissingScopeListener;Lme/proton/core/network/domain/client/ExtraHeaderProvider;Lme/proton/core/network/domain/client/ClientVersionValidator;Lme/proton/core/network/domain/serverconnection/DohAlternativesListener;Lokhttp3/HttpUrl;[Ljava/lang/String;[Ljava/lang/String;Ljava/util/List;Lokhttp3/OkHttpClient;Ljava/util/Set;)Lme/proton/core/network/data/ApiManagerFactory;
|
||||
}
|
||||
|
||||
public final class me/proton/core/network/dagger/CoreNetworkModule_ProvideCookieJar$network_dagger_releaseFactory : dagger/internal/Factory {
|
||||
|
@ -96,3 +97,11 @@ public final class me/proton/core/network/dagger/CoreNetworkModule_ProvideNetwor
|
|||
public static fun provideNetworkPrefs$network_dagger_release (Lme/proton/core/network/dagger/CoreNetworkModule;Landroid/content/Context;)Lme/proton/core/network/domain/NetworkPrefs;
|
||||
}
|
||||
|
||||
public final class me/proton/core/network/dagger/CoreNetworkModule_ProvideNothingFactory : dagger/internal/Factory {
|
||||
public fun <init> (Lme/proton/core/network/dagger/CoreNetworkModule;)V
|
||||
public static fun create (Lme/proton/core/network/dagger/CoreNetworkModule;)Lme/proton/core/network/dagger/CoreNetworkModule_ProvideNothingFactory;
|
||||
public synthetic fun get ()Ljava/lang/Object;
|
||||
public fun get ()Ljava/util/Set;
|
||||
public static fun provideNothing (Lme/proton/core/network/dagger/CoreNetworkModule;)Ljava/util/Set;
|
||||
}
|
||||
|
||||
|
|
|
@ -25,6 +25,7 @@ import dagger.Provides
|
|||
import dagger.hilt.InstallIn
|
||||
import dagger.hilt.android.qualifiers.ApplicationContext
|
||||
import dagger.hilt.components.SingletonComponent
|
||||
import dagger.multibindings.ElementsIntoSet
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.Job
|
||||
|
@ -52,6 +53,7 @@ import me.proton.core.network.domain.deviceverification.DeviceVerificationListen
|
|||
import me.proton.core.network.domain.deviceverification.DeviceVerificationProvider
|
||||
import me.proton.core.network.domain.humanverification.HumanVerificationListener
|
||||
import me.proton.core.network.domain.humanverification.HumanVerificationProvider
|
||||
import me.proton.core.network.domain.interceptor.InterceptorInfo
|
||||
import me.proton.core.network.domain.scopes.MissingScopeListener
|
||||
import me.proton.core.network.domain.server.ServerClock
|
||||
import me.proton.core.network.domain.server.ServerTimeListener
|
||||
|
@ -62,6 +64,7 @@ import me.proton.core.network.domain.session.SessionProvider
|
|||
import me.proton.core.util.kotlin.CoroutineScopeProvider
|
||||
import okhttp3.Cache
|
||||
import okhttp3.HttpUrl
|
||||
import okhttp3.Interceptor
|
||||
import okhttp3.OkHttpClient
|
||||
import java.io.File
|
||||
import javax.inject.Singleton
|
||||
|
@ -71,6 +74,12 @@ private const val OKHTTP_CACHE_SIZE = 10L * 1024L * 1024L // 10 MiB
|
|||
@Module
|
||||
@InstallIn(SingletonComponent::class)
|
||||
public class CoreNetworkModule {
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
@ElementsIntoSet
|
||||
public fun provideNothing(): Set<Pair<InterceptorInfo, Interceptor>> = emptySet()
|
||||
|
||||
@Provides
|
||||
@Singleton
|
||||
@Suppress("LongParameterList")
|
||||
|
@ -96,7 +105,8 @@ public class CoreNetworkModule {
|
|||
@DohProviderUrls dohProviderUrls: Array<String>,
|
||||
@CertificatePins certificatePins: Array<String>,
|
||||
@AlternativeApiPins alternativeApiPins: List<String>,
|
||||
@SharedOkHttpClient okHttpClient: OkHttpClient
|
||||
@SharedOkHttpClient okHttpClient: OkHttpClient,
|
||||
interceptors: @JvmSuppressWildcards Set<Pair<InterceptorInfo, Interceptor>>,
|
||||
): ApiManagerFactory {
|
||||
return ApiManagerFactory(
|
||||
apiUrl,
|
||||
|
@ -126,7 +136,8 @@ public class CoreNetworkModule {
|
|||
clientVersionValidator = clientVersionValidator,
|
||||
dohAlternativesListener = dohAlternativesListener,
|
||||
dohProviderUrls = dohProviderUrls,
|
||||
okHttpClient = okHttpClient
|
||||
okHttpClient = okHttpClient,
|
||||
interceptors = interceptors,
|
||||
)
|
||||
}
|
||||
|
||||
|
|
|
@ -1,6 +1,6 @@
|
|||
public final class me/proton/core/network/data/ApiManagerFactory {
|
||||
public fun <init> (Lokhttp3/HttpUrl;Lme/proton/core/network/domain/ApiClient;Lme/proton/core/network/domain/client/ClientIdProvider;Lme/proton/core/network/domain/server/ServerTimeListener;Lme/proton/core/network/domain/NetworkManager;Lme/proton/core/network/domain/NetworkPrefs;Lme/proton/core/network/domain/session/SessionProvider;Lme/proton/core/network/domain/session/SessionListener;Lme/proton/core/network/domain/humanverification/HumanVerificationProvider;Lme/proton/core/network/domain/humanverification/HumanVerificationListener;Lme/proton/core/network/domain/deviceverification/DeviceVerificationProvider;Lme/proton/core/network/domain/deviceverification/DeviceVerificationListener;Lme/proton/core/network/domain/scopes/MissingScopeListener;Lme/proton/core/network/data/ProtonCookieStore;Lkotlinx/coroutines/CoroutineScope;[Ljava/lang/String;Ljava/util/List;Lkotlin/jvm/functions/Function0;Lme/proton/core/network/domain/client/ExtraHeaderProvider;Lme/proton/core/network/domain/client/ClientVersionValidator;Lme/proton/core/network/domain/serverconnection/DohAlternativesListener;[Ljava/lang/String;Lokhttp3/OkHttpClient;)V
|
||||
public synthetic fun <init> (Lokhttp3/HttpUrl;Lme/proton/core/network/domain/ApiClient;Lme/proton/core/network/domain/client/ClientIdProvider;Lme/proton/core/network/domain/server/ServerTimeListener;Lme/proton/core/network/domain/NetworkManager;Lme/proton/core/network/domain/NetworkPrefs;Lme/proton/core/network/domain/session/SessionProvider;Lme/proton/core/network/domain/session/SessionListener;Lme/proton/core/network/domain/humanverification/HumanVerificationProvider;Lme/proton/core/network/domain/humanverification/HumanVerificationListener;Lme/proton/core/network/domain/deviceverification/DeviceVerificationProvider;Lme/proton/core/network/domain/deviceverification/DeviceVerificationListener;Lme/proton/core/network/domain/scopes/MissingScopeListener;Lme/proton/core/network/data/ProtonCookieStore;Lkotlinx/coroutines/CoroutineScope;[Ljava/lang/String;Ljava/util/List;Lkotlin/jvm/functions/Function0;Lme/proton/core/network/domain/client/ExtraHeaderProvider;Lme/proton/core/network/domain/client/ClientVersionValidator;Lme/proton/core/network/domain/serverconnection/DohAlternativesListener;[Ljava/lang/String;Lokhttp3/OkHttpClient;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public fun <init> (Lokhttp3/HttpUrl;Lme/proton/core/network/domain/ApiClient;Lme/proton/core/network/domain/client/ClientIdProvider;Lme/proton/core/network/domain/server/ServerTimeListener;Lme/proton/core/network/domain/NetworkManager;Lme/proton/core/network/domain/NetworkPrefs;Lme/proton/core/network/domain/session/SessionProvider;Lme/proton/core/network/domain/session/SessionListener;Lme/proton/core/network/domain/humanverification/HumanVerificationProvider;Lme/proton/core/network/domain/humanverification/HumanVerificationListener;Lme/proton/core/network/domain/deviceverification/DeviceVerificationProvider;Lme/proton/core/network/domain/deviceverification/DeviceVerificationListener;Lme/proton/core/network/domain/scopes/MissingScopeListener;Lme/proton/core/network/data/ProtonCookieStore;Lkotlinx/coroutines/CoroutineScope;[Ljava/lang/String;Ljava/util/List;Lkotlin/jvm/functions/Function0;Lme/proton/core/network/domain/client/ExtraHeaderProvider;Lme/proton/core/network/domain/client/ClientVersionValidator;Lme/proton/core/network/domain/serverconnection/DohAlternativesListener;[Ljava/lang/String;Lokhttp3/OkHttpClient;Ljava/util/Set;)V
|
||||
public synthetic fun <init> (Lokhttp3/HttpUrl;Lme/proton/core/network/domain/ApiClient;Lme/proton/core/network/domain/client/ClientIdProvider;Lme/proton/core/network/domain/server/ServerTimeListener;Lme/proton/core/network/domain/NetworkManager;Lme/proton/core/network/domain/NetworkPrefs;Lme/proton/core/network/domain/session/SessionProvider;Lme/proton/core/network/domain/session/SessionListener;Lme/proton/core/network/domain/humanverification/HumanVerificationProvider;Lme/proton/core/network/domain/humanverification/HumanVerificationListener;Lme/proton/core/network/domain/deviceverification/DeviceVerificationProvider;Lme/proton/core/network/domain/deviceverification/DeviceVerificationListener;Lme/proton/core/network/domain/scopes/MissingScopeListener;Lme/proton/core/network/data/ProtonCookieStore;Lkotlinx/coroutines/CoroutineScope;[Ljava/lang/String;Ljava/util/List;Lkotlin/jvm/functions/Function0;Lme/proton/core/network/domain/client/ExtraHeaderProvider;Lme/proton/core/network/domain/client/ClientVersionValidator;Lme/proton/core/network/domain/serverconnection/DohAlternativesListener;[Ljava/lang/String;Lokhttp3/OkHttpClient;Ljava/util/Set;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun create (Lme/proton/core/network/domain/session/SessionId;Lkotlin/reflect/KClass;Ljava/util/List;[Ljava/lang/String;Ljava/util/List;)Lme/proton/core/network/domain/ApiManager;
|
||||
public static synthetic fun create$default (Lme/proton/core/network/data/ApiManagerFactory;Lme/proton/core/network/domain/session/SessionId;Lkotlin/reflect/KClass;Ljava/util/List;[Ljava/lang/String;Ljava/util/List;ILjava/lang/Object;)Lme/proton/core/network/domain/ApiManager;
|
||||
public final fun getBaseOkHttpClient ()Lokhttp3/OkHttpClient;
|
||||
|
|
|
@ -49,6 +49,7 @@ import me.proton.core.network.domain.handlers.ProtonForceUpdateHandler
|
|||
import me.proton.core.network.domain.handlers.TokenErrorHandler
|
||||
import me.proton.core.network.domain.humanverification.HumanVerificationListener
|
||||
import me.proton.core.network.domain.humanverification.HumanVerificationProvider
|
||||
import me.proton.core.network.domain.interceptor.InterceptorInfo
|
||||
import me.proton.core.network.domain.scopes.MissingScopeListener
|
||||
import me.proton.core.network.domain.server.ServerTimeListener
|
||||
import me.proton.core.network.domain.serverconnection.DohAlternativesListener
|
||||
|
@ -58,6 +59,7 @@ import me.proton.core.network.domain.session.SessionProvider
|
|||
import me.proton.core.util.kotlin.ProtonCoreConfig
|
||||
import okhttp3.Cache
|
||||
import okhttp3.HttpUrl
|
||||
import okhttp3.Interceptor
|
||||
import okhttp3.MediaType.Companion.toMediaType
|
||||
import okhttp3.OkHttpClient
|
||||
import java.util.concurrent.TimeUnit
|
||||
|
@ -94,7 +96,8 @@ class ApiManagerFactory(
|
|||
private val clientVersionValidator: ClientVersionValidator,
|
||||
private val dohAlternativesListener: DohAlternativesListener?,
|
||||
private val dohProviderUrls: Array<String> = Constants.DOH_PROVIDERS_URLS,
|
||||
private val okHttpClient: OkHttpClient
|
||||
private val okHttpClient: OkHttpClient,
|
||||
private val interceptors: Set<Pair<InterceptorInfo, Interceptor>>,
|
||||
) {
|
||||
|
||||
@OptIn(DelicateCoroutinesApi::class)
|
||||
|
@ -199,6 +202,7 @@ class ApiManagerFactory(
|
|||
prefs,
|
||||
cookieStore,
|
||||
extraHeaderProvider,
|
||||
interceptors,
|
||||
)
|
||||
|
||||
val alternativePinningStrategy = { builder: OkHttpClient.Builder ->
|
||||
|
@ -242,6 +246,7 @@ class ApiManagerFactory(
|
|||
prefs,
|
||||
cookieStore,
|
||||
extraHeaderProvider,
|
||||
interceptors,
|
||||
)
|
||||
}
|
||||
val errorHandlers = createBaseErrorHandlers(sessionId, ::javaMonoClockMs, dohApiHandler) + clientErrorHandlers
|
||||
|
|
|
@ -27,6 +27,7 @@ import me.proton.core.network.domain.ApiBackend
|
|||
import me.proton.core.network.domain.ApiClient
|
||||
import me.proton.core.network.domain.ApiManager
|
||||
import me.proton.core.network.domain.ApiResult
|
||||
import me.proton.core.network.domain.LogTag
|
||||
import me.proton.core.network.domain.NetworkManager
|
||||
import me.proton.core.network.domain.NetworkPrefs
|
||||
import me.proton.core.network.domain.TimeoutOverride
|
||||
|
@ -34,6 +35,7 @@ import me.proton.core.network.domain.client.ClientIdProvider
|
|||
import me.proton.core.network.domain.client.ExtraHeaderProvider
|
||||
import me.proton.core.network.domain.deviceverification.DeviceVerificationProvider
|
||||
import me.proton.core.network.domain.humanverification.HumanVerificationProvider
|
||||
import me.proton.core.network.domain.interceptor.InterceptorInfo
|
||||
import me.proton.core.network.domain.server.ServerTimeListener
|
||||
import me.proton.core.network.domain.session.SessionId
|
||||
import me.proton.core.network.domain.session.SessionProvider
|
||||
|
@ -80,6 +82,7 @@ internal class ProtonApiBackend<Api : BaseRetrofitApi>(
|
|||
private val networkPrefs: NetworkPrefs,
|
||||
private val cookieStore: ProtonCookieStore?,
|
||||
private val extraHeaderProvider: ExtraHeaderProvider? = null,
|
||||
private val interceptors: Set<Pair<InterceptorInfo, Interceptor>>,
|
||||
) : ApiBackend<Api> {
|
||||
|
||||
private val api: Api
|
||||
|
@ -96,6 +99,24 @@ internal class ProtonApiBackend<Api : BaseRetrofitApi>(
|
|||
.apply { cookieStore?.let { addInterceptor(DoHCookieInterceptor(networkPrefs, it)) } }
|
||||
.initLogging(client)
|
||||
.apply(securityStrategy)
|
||||
.apply {
|
||||
interceptors
|
||||
.sortedBy { (info, _) -> info.priority }
|
||||
.apply {
|
||||
if (size != distinctBy { (info, _) -> info.priority.value }.size) {
|
||||
CoreLogger.w(
|
||||
tag = LogTag.DEFAULT,
|
||||
message = "Multiple interceptors with same priority detected.",
|
||||
)
|
||||
}
|
||||
}
|
||||
.forEach { (info, interceptor) ->
|
||||
when (info.type) {
|
||||
InterceptorInfo.Type.APP -> addInterceptor(interceptor)
|
||||
InterceptorInfo.Type.NETWORK -> addNetworkInterceptor(interceptor)
|
||||
}
|
||||
}
|
||||
}
|
||||
.build()
|
||||
|
||||
init {
|
||||
|
|
|
@ -168,7 +168,8 @@ internal class ApiManagerTests {
|
|||
cache = { null },
|
||||
clientVersionValidator = clientVersionValidator,
|
||||
dohAlternativesListener = null,
|
||||
okHttpClient = mockk(relaxed = true)
|
||||
okHttpClient = mockk(relaxed = true),
|
||||
interceptors = emptySet(),
|
||||
)
|
||||
|
||||
coEvery { dohService.getAlternativeBaseUrls(any(), any()) } returns listOf(proxy1url)
|
||||
|
|
|
@ -183,7 +183,8 @@ internal class HumanVerificationTests {
|
|||
cache = { null },
|
||||
clientVersionValidator = clientVersionValidator,
|
||||
dohAlternativesListener = null,
|
||||
okHttpClient = OkHttpClient()
|
||||
okHttpClient = OkHttpClient(),
|
||||
interceptors = emptySet(),
|
||||
)
|
||||
every { networkManager.isConnectedToNetwork() } returns isNetworkAvailable
|
||||
|
||||
|
@ -215,6 +216,7 @@ internal class HumanVerificationTests {
|
|||
pinningInit,
|
||||
prefs,
|
||||
cookieJar,
|
||||
interceptors = emptySet(),
|
||||
)
|
||||
|
||||
@After
|
||||
|
|
|
@ -147,7 +147,8 @@ internal class ProtonApiBackendTests {
|
|||
cache = { null },
|
||||
clientVersionValidator = clientVersionValidator,
|
||||
dohAlternativesListener = null,
|
||||
okHttpClient = OkHttpClient()
|
||||
okHttpClient = OkHttpClient(),
|
||||
interceptors = emptySet(),
|
||||
)
|
||||
|
||||
every { networkManager.isConnectedToNetwork() } returns isNetworkAvailable
|
||||
|
@ -195,6 +196,7 @@ internal class ProtonApiBackendTests {
|
|||
prefs,
|
||||
cookieJar,
|
||||
extraHeaderProvider,
|
||||
emptySet(),
|
||||
)
|
||||
|
||||
@AfterTest
|
||||
|
|
|
@ -586,6 +586,52 @@ public final class me/proton/core/network/domain/humanverification/VerificationM
|
|||
public static final field PHONE Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class me/proton/core/network/domain/interceptor/InterceptorInfo {
|
||||
public synthetic fun <init> (Lme/proton/core/network/domain/interceptor/InterceptorInfo$Type;IILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public synthetic fun <init> (Lme/proton/core/network/domain/interceptor/InterceptorInfo$Type;ILkotlin/jvm/internal/DefaultConstructorMarker;)V
|
||||
public final fun component1 ()Lme/proton/core/network/domain/interceptor/InterceptorInfo$Type;
|
||||
public final fun component2-NVsBYFU ()I
|
||||
public final fun copy-_9aMDtU (Lme/proton/core/network/domain/interceptor/InterceptorInfo$Type;I)Lme/proton/core/network/domain/interceptor/InterceptorInfo;
|
||||
public static synthetic fun copy-_9aMDtU$default (Lme/proton/core/network/domain/interceptor/InterceptorInfo;Lme/proton/core/network/domain/interceptor/InterceptorInfo$Type;IILjava/lang/Object;)Lme/proton/core/network/domain/interceptor/InterceptorInfo;
|
||||
public fun equals (Ljava/lang/Object;)Z
|
||||
public final fun getPriority-NVsBYFU ()I
|
||||
public final fun getType ()Lme/proton/core/network/domain/interceptor/InterceptorInfo$Type;
|
||||
public fun hashCode ()I
|
||||
public fun toString ()Ljava/lang/String;
|
||||
}
|
||||
|
||||
public final class me/proton/core/network/domain/interceptor/InterceptorInfo$Priority : java/lang/Comparable {
|
||||
public static final field Companion Lme/proton/core/network/domain/interceptor/InterceptorInfo$Priority$Companion;
|
||||
public static final synthetic fun box-impl (I)Lme/proton/core/network/domain/interceptor/InterceptorInfo$Priority;
|
||||
public synthetic fun compareTo (Ljava/lang/Object;)I
|
||||
public fun compareTo-Sl0Tga8 (I)I
|
||||
public static fun compareTo-Sl0Tga8 (II)I
|
||||
public fun equals (Ljava/lang/Object;)Z
|
||||
public static fun equals-impl (ILjava/lang/Object;)Z
|
||||
public static final fun equals-impl0 (II)Z
|
||||
public final fun getValue ()I
|
||||
public fun hashCode ()I
|
||||
public static fun hashCode-impl (I)I
|
||||
public fun toString ()Ljava/lang/String;
|
||||
public static fun toString-impl (I)Ljava/lang/String;
|
||||
public final synthetic fun unbox-impl ()I
|
||||
}
|
||||
|
||||
public final class me/proton/core/network/domain/interceptor/InterceptorInfo$Priority$Companion {
|
||||
public final fun getLEAST-NVsBYFU ()I
|
||||
public final fun getMEDIUM-NVsBYFU ()I
|
||||
public final fun getTOP-NVsBYFU ()I
|
||||
public final fun invoke-3nIOzgg (I)I
|
||||
}
|
||||
|
||||
public final class me/proton/core/network/domain/interceptor/InterceptorInfo$Type : java/lang/Enum {
|
||||
public static final field APP Lme/proton/core/network/domain/interceptor/InterceptorInfo$Type;
|
||||
public static final field NETWORK Lme/proton/core/network/domain/interceptor/InterceptorInfo$Type;
|
||||
public static fun getEntries ()Lkotlin/enums/EnumEntries;
|
||||
public static fun valueOf (Ljava/lang/String;)Lme/proton/core/network/domain/interceptor/InterceptorInfo$Type;
|
||||
public static fun values ()[Lme/proton/core/network/domain/interceptor/InterceptorInfo$Type;
|
||||
}
|
||||
|
||||
public abstract interface class me/proton/core/network/domain/scopes/MissingScopeListener {
|
||||
public abstract fun getState ()Lkotlinx/coroutines/flow/SharedFlow;
|
||||
public abstract fun onMissingScope (Lme/proton/core/domain/entity/UserId;Ljava/util/List;Lkotlin/coroutines/Continuation;)Ljava/lang/Object;
|
||||
|
|
|
@ -0,0 +1,42 @@
|
|||
/*
|
||||
* Copyright (c) 2024 Proton Technologies AG
|
||||
* This file is part of Proton AG and ProtonCore.
|
||||
*
|
||||
* ProtonCore is free software: you can redistribute it and/or modify
|
||||
* it under the terms of the GNU General Public License as published by
|
||||
* the Free Software Foundation, either version 3 of the License, or
|
||||
* (at your option) any later version.
|
||||
*
|
||||
* ProtonCore is distributed in the hope that it will be useful,
|
||||
* but WITHOUT ANY WARRANTY; without even the implied warranty of
|
||||
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
|
||||
* GNU General Public License for more details.
|
||||
*
|
||||
* You should have received a copy of the GNU General Public License
|
||||
* along with ProtonCore. If not, see <https://www.gnu.org/licenses/>.
|
||||
*/
|
||||
|
||||
package me.proton.core.network.domain.interceptor
|
||||
|
||||
data class InterceptorInfo(
|
||||
val type: Type = Type.APP,
|
||||
val priority: Priority = Priority.MEDIUM,
|
||||
) {
|
||||
enum class Type {
|
||||
APP, NETWORK,
|
||||
}
|
||||
|
||||
@JvmInline
|
||||
value class Priority private constructor(val value: Int) : Comparable<Priority> {
|
||||
|
||||
override fun compareTo(other: Priority): Int = value.compareTo(other.value)
|
||||
|
||||
companion object {
|
||||
operator fun invoke(value: Int) = Priority(value.coerceIn(TOP.value, LEAST.value))
|
||||
|
||||
val TOP = Priority(0)
|
||||
val MEDIUM = Priority(100_000_000)
|
||||
val LEAST = Priority(Int.MAX_VALUE)
|
||||
}
|
||||
}
|
||||
}
|
Loading…
Reference in New Issue