Compare commits
No commits in common. "85d966f54b60d1d5792f1655dbb54f1d0dcca39c" and "5eb5a5658f94c720ff142edee777f9faf499e5c9" have entirely different histories.
85d966f54b
...
5eb5a5658f
@ -144,7 +144,6 @@ class LoginActivity : AppCompatActivity(), DIAware {
|
||||
repository.refreshLoginInformation(url, login, password)
|
||||
|
||||
CoroutineScope(Dispatchers.Main).launch {
|
||||
repository.updateApiInformation()
|
||||
val result = repository.login()
|
||||
if (result) {
|
||||
val (errorFetching, displaySelfossOnly) = repository.shouldBeSelfossInstance()
|
||||
|
@ -82,7 +82,7 @@ class FilterSheetFragment : BottomSheetDialogFragment(), DIAware {
|
||||
) {
|
||||
val sourceGroup = binding.sourcesGroup
|
||||
|
||||
repository.getSourcesDetailsOrStats().forEach { source ->
|
||||
repository.getSourcesDetailsOrStats().forEachIndexed { _, source ->
|
||||
val c = Chip(context)
|
||||
c.ellipsize = TextUtils.TruncateAt.END
|
||||
|
||||
|
@ -55,7 +55,7 @@
|
||||
android:id="@+id/selfSigned"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:text="@string/disable_ssl"
|
||||
android:text="@string/disableSSL"
|
||||
android:textAlignment="viewStart" />
|
||||
|
||||
<com.google.android.material.switchmaterial.SwitchMaterial
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Lector per a Selfoss"</string>
|
||||
<string name="title_activity_login">"Inicia la sessió"</string>
|
||||
<string name="prompt_password">"Contrasenya"</string>
|
||||
@ -130,5 +130,5 @@
|
||||
<string name="update_source">Update source</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disable SSL</string>
|
||||
</resources>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Reader für selfoss"</string>
|
||||
<string name="title_activity_login">"Anmelden"</string>
|
||||
<string name="prompt_password">"Passwort"</string>
|
||||
@ -130,5 +130,5 @@
|
||||
<string name="update_source">Update source</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disable SSL</string>
|
||||
</resources>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Lector para Selfoss"</string>
|
||||
<string name="title_activity_login">"Iniciar sesión"</string>
|
||||
<string name="prompt_password">"Contraseña"</string>
|
||||
@ -130,5 +130,5 @@
|
||||
<string name="update_source">Update source</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disable SSL</string>
|
||||
</resources>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Reader for Selfoss"</string>
|
||||
<string name="title_activity_login">"Log in"</string>
|
||||
<string name="prompt_password">"Password"</string>
|
||||
@ -130,5 +130,5 @@
|
||||
<string name="update_source">Update source</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disable SSL</string>
|
||||
</resources>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Reader for Selfoss"</string>
|
||||
<string name="title_activity_login">"Login"</string>
|
||||
<string name="prompt_password">"Mot de passe"</string>
|
||||
@ -130,5 +130,5 @@
|
||||
<string name="update_source">Update source</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disable SSL</string>
|
||||
</resources>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Lector para selfoss"</string>
|
||||
<string name="title_activity_login">"Conectar"</string>
|
||||
<string name="prompt_password">"Contrasinal"</string>
|
||||
@ -130,5 +130,5 @@
|
||||
<string name="update_source">Update source</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disable SSL</string>
|
||||
</resources>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Reader for Selfoss"</string>
|
||||
<string name="title_activity_login">"Masuk"</string>
|
||||
<string name="prompt_password">"Kata sandi"</string>
|
||||
@ -130,5 +130,5 @@
|
||||
<string name="update_source">Update source</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disable SSL</string>
|
||||
</resources>
|
||||
|
@ -130,5 +130,5 @@
|
||||
<string name="update_source">Update source</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disabilita SSL</string>
|
||||
</resources>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Reader for Selfoss"</string>
|
||||
<string name="title_activity_login">"로그인"</string>
|
||||
<string name="prompt_password">"비밀번호"</string>
|
||||
@ -130,5 +130,5 @@
|
||||
<string name="update_source">Update source</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disable SSL</string>
|
||||
</resources>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="gdpr_dialog_title">The app does not share any personal data about you.</string>
|
||||
<string name="gdpr_dialog_message"><![CDATA[Crash reports sending is now enabled. It can be disabled from the settings page. Keep in mind that crash reports are essential for the app development.]]></string>
|
||||
<string name="crash_toast_text">A crash occured. Sending the details to the developper.</string>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Selfoss Reader"</string>
|
||||
<string name="title_activity_login">"Inloggen"</string>
|
||||
<string name="prompt_password">"Wachtwoord"</string>
|
||||
@ -130,5 +130,5 @@
|
||||
<string name="update_source">Update source</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disable SSL</string>
|
||||
</resources>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Reader for Selfoss"</string>
|
||||
<string name="title_activity_login">"Entrar"</string>
|
||||
<string name="prompt_password">"Senha"</string>
|
||||
@ -130,5 +130,5 @@
|
||||
<string name="update_source">Update source</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disable SSL</string>
|
||||
</resources>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Leitor para Selfoss"</string>
|
||||
<string name="title_activity_login">"Iniciar sessão"</string>
|
||||
<string name="prompt_password">"Palavra passe"</string>
|
||||
@ -130,5 +130,5 @@
|
||||
<string name="update_source">Update source</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disable SSL</string>
|
||||
</resources>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Reader for Selfoss"</string>
|
||||
<string name="title_activity_login">"පිවිසෙන්න"</string>
|
||||
<string name="prompt_password">"මුර පදය"</string>
|
||||
@ -130,5 +130,5 @@
|
||||
<string name="update_source">Update source</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disable SSL</string>
|
||||
</resources>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Selfoss için okuyucu"</string>
|
||||
<string name="title_activity_login">"Giriş"</string>
|
||||
<string name="prompt_password">"Şifre"</string>
|
||||
@ -130,5 +130,5 @@
|
||||
<string name="update_source">Update source</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disable SSL</string>
|
||||
</resources>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Selfoss 阅读器"</string>
|
||||
<string name="title_activity_login">"登录"</string>
|
||||
<string name="prompt_password">"密码"</string>
|
||||
@ -130,5 +130,5 @@
|
||||
<string name="update_source">更新源</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disable SSL</string>
|
||||
</resources>
|
||||
|
@ -1,5 +1,5 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Selfoss 阅读器"</string>
|
||||
<string name="title_activity_login">"登录"</string>
|
||||
<string name="prompt_password">"密码"</string>
|
||||
@ -130,5 +130,5 @@
|
||||
<string name="update_source">Update source</string>
|
||||
<string name="confirm_disconnect_title">Disconnect ?</string>
|
||||
<string name="confirm_disconnect_description">You will be disconnected from your selfoss instance.</string>
|
||||
<string name="disable_ssl">Disable SSL</string>
|
||||
<string name="disableSSL">Disable SSL</string>
|
||||
</resources>
|
||||
|
@ -1,4 +1,4 @@
|
||||
<resources xmlns:tools="http://schemas.android.com/tools">
|
||||
<resources>
|
||||
<string name="app_name">"Reader for Selfoss"</string>
|
||||
<string name="title_activity_login">"Log in"</string>
|
||||
<string name="prompt_password">"Password"</string>
|
||||
@ -6,7 +6,7 @@
|
||||
<string name="error_invalid_password">"Password not long enough"</string>
|
||||
<string name="error_field_required">"Field required"</string>
|
||||
<string name="prompt_url">"Url"</string>
|
||||
<string name="disable_ssl">"Disable SSL"</string>
|
||||
<string name="disableSSL">"Disable SSL"</string>
|
||||
<string name="withLoginSwitch">"Login required ?"</string>
|
||||
<string name="login_url_problem">"Oops. You may need to add a \"/\" at the end of the url."</string>
|
||||
<string name="prompt_login">"Username"</string>
|
||||
|
@ -36,7 +36,6 @@ kotlin {
|
||||
implementation("io.ktor:ktor-serialization-kotlinx-json:$ktorVersion")
|
||||
implementation("io.ktor:ktor-client-logging:$ktorVersion")
|
||||
implementation("io.ktor:ktor-client-auth:$ktorVersion")
|
||||
implementation("io.ktor:ktor-client-cio:$ktorVersion")
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-coroutines-core:1.6.0")
|
||||
|
||||
implementation("org.jsoup:jsoup:1.15.4")
|
||||
@ -63,6 +62,7 @@ kotlin {
|
||||
val androidMain by getting {
|
||||
dependencies {
|
||||
implementation("com.squareup.okhttp3:okhttp:4.11.0")
|
||||
implementation("io.ktor:ktor-client-okhttp:2.2.4")
|
||||
implementation("org.jetbrains.kotlinx:kotlinx-datetime:0.4.0")
|
||||
|
||||
// Sql
|
||||
|
@ -1,17 +0,0 @@
|
||||
package bou.amine.apps.readerforselfossv2.rest
|
||||
|
||||
import io.ktor.client.engine.cio.CIOEngineConfig
|
||||
import java.security.cert.X509Certificate
|
||||
import javax.net.ssl.X509TrustManager
|
||||
|
||||
class NaiveTrustManager : X509TrustManager {
|
||||
override fun checkClientTrusted(chain: Array<out X509Certificate>?, authType: String?) {}
|
||||
|
||||
override fun checkServerTrusted(chain: Array<out X509Certificate>?, authType: String?) {}
|
||||
|
||||
override fun getAcceptedIssuers(): Array<out X509Certificate> = arrayOf()
|
||||
}
|
||||
|
||||
actual fun setupInsecureHTTPEngine(config: CIOEngineConfig) {
|
||||
config.https.trustManager = NaiveTrustManager()
|
||||
}
|
@ -0,0 +1,90 @@
|
||||
package bou.amine.apps.readerforselfossv2.rest
|
||||
|
||||
import bou.amine.apps.readerforselfossv2.service.AppSettingsService
|
||||
import io.github.aakira.napier.Napier
|
||||
import io.ktor.client.HttpClient
|
||||
import io.ktor.client.engine.okhttp.OkHttp
|
||||
import io.ktor.client.plugins.HttpRequestRetry
|
||||
import io.ktor.client.plugins.HttpTimeout
|
||||
import io.ktor.client.plugins.cache.HttpCache
|
||||
import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
|
||||
import io.ktor.client.plugins.cookies.HttpCookies
|
||||
import io.ktor.client.plugins.logging.LogLevel
|
||||
import io.ktor.client.plugins.logging.Logger
|
||||
import io.ktor.client.plugins.logging.Logging
|
||||
import io.ktor.http.HttpStatusCode
|
||||
import io.ktor.serialization.kotlinx.json.json
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.serialization.json.Json
|
||||
import okhttp3.OkHttpClient
|
||||
import org.apache.http.conn.ssl.AllowAllHostnameVerifier
|
||||
import java.security.cert.X509Certificate
|
||||
import javax.net.ssl.SSLContext
|
||||
import javax.net.ssl.X509TrustManager
|
||||
|
||||
class NaiveTrustManager : X509TrustManager {
|
||||
override fun checkClientTrusted(chain: Array<out X509Certificate>?, authType: String?) {}
|
||||
|
||||
override fun checkServerTrusted(chain: Array<out X509Certificate>?, authType: String?) {}
|
||||
|
||||
override fun getAcceptedIssuers(): Array<out X509Certificate> = arrayOf()
|
||||
}
|
||||
|
||||
actual fun createHttpClient(
|
||||
appSettingsService: AppSettingsService,
|
||||
api: SelfossApi
|
||||
) =
|
||||
HttpClient(OkHttp) {
|
||||
if (appSettingsService.getSelfSigned()) {
|
||||
engine {
|
||||
val trustManager = NaiveTrustManager()
|
||||
val sslContext = SSLContext.getInstance("TLS").apply {
|
||||
init(null, arrayOf(trustManager), null)
|
||||
}
|
||||
preconfigured = OkHttpClient().newBuilder()
|
||||
.sslSocketFactory(
|
||||
sslSocketFactory = sslContext.socketFactory,
|
||||
trustManager = trustManager
|
||||
)
|
||||
.hostnameVerifier(AllowAllHostnameVerifier())
|
||||
.build()
|
||||
}
|
||||
}
|
||||
install(ContentNegotiation) {
|
||||
install(HttpCache)
|
||||
json(Json {
|
||||
prettyPrint = true
|
||||
isLenient = true
|
||||
ignoreUnknownKeys = true
|
||||
})
|
||||
}
|
||||
install(Logging) {
|
||||
logger = object : Logger {
|
||||
override fun log(message: String) {
|
||||
Napier.d(message, tag = "LogApiCalls")
|
||||
}
|
||||
}
|
||||
level = LogLevel.INFO
|
||||
}
|
||||
install(HttpTimeout) {
|
||||
requestTimeoutMillis = appSettingsService.getApiTimeout()
|
||||
}
|
||||
install(HttpCookies)
|
||||
install(HttpRequestRetry) {
|
||||
maxRetries = 2
|
||||
retryIf { _, response ->
|
||||
response.status == HttpStatusCode.Forbidden && api.shouldHavePostLogin() && api.hasLoginInfo()
|
||||
}
|
||||
modifyRequest {
|
||||
Napier.i("Will modify", tag = "HttpSend")
|
||||
CoroutineScope(Dispatchers.Main).launch {
|
||||
Napier.i("Will login", tag = "HttpSend")
|
||||
api.login()
|
||||
Napier.i("Did login", tag = "HttpSend")
|
||||
}
|
||||
}
|
||||
}
|
||||
expectSuccess = false
|
||||
}
|
@ -4,83 +4,22 @@ import bou.amine.apps.readerforselfossv2.model.SelfossModel
|
||||
import bou.amine.apps.readerforselfossv2.model.StatusAndData
|
||||
import bou.amine.apps.readerforselfossv2.model.SuccessResponse
|
||||
import bou.amine.apps.readerforselfossv2.service.AppSettingsService
|
||||
import io.github.aakira.napier.Napier
|
||||
import io.ktor.client.HttpClient
|
||||
import io.ktor.client.engine.cio.CIO
|
||||
import io.ktor.client.engine.cio.CIOEngineConfig
|
||||
import io.ktor.client.plugins.HttpRequestRetry
|
||||
import io.ktor.client.plugins.HttpTimeout
|
||||
import io.ktor.client.plugins.auth.providers.BasicAuthCredentials
|
||||
import io.ktor.client.plugins.cache.HttpCache
|
||||
import io.ktor.client.plugins.contentnegotiation.ContentNegotiation
|
||||
import io.ktor.client.plugins.cookies.HttpCookies
|
||||
import io.ktor.client.plugins.logging.LogLevel
|
||||
import io.ktor.client.plugins.logging.Logger
|
||||
import io.ktor.client.plugins.logging.Logging
|
||||
import io.ktor.client.request.get
|
||||
import io.ktor.client.request.headers
|
||||
import io.ktor.client.request.parameter
|
||||
import io.ktor.client.statement.HttpResponse
|
||||
import io.ktor.http.HttpHeaders
|
||||
import io.ktor.http.HttpStatusCode
|
||||
import io.ktor.http.Parameters
|
||||
import io.ktor.serialization.kotlinx.json.json
|
||||
import io.ktor.util.encodeBase64
|
||||
import io.ktor.utils.io.charsets.Charsets
|
||||
import io.ktor.utils.io.core.toByteArray
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.serialization.json.Json
|
||||
|
||||
expect fun setupInsecureHTTPEngine(config: CIOEngineConfig)
|
||||
|
||||
fun createHttpClient(
|
||||
expect fun createHttpClient(
|
||||
appSettingsService: AppSettingsService,
|
||||
api: SelfossApi
|
||||
) =
|
||||
HttpClient(CIO) {
|
||||
if (appSettingsService.getSelfSigned()) {
|
||||
engine {
|
||||
setupInsecureHTTPEngine(this)
|
||||
}
|
||||
}
|
||||
install(ContentNegotiation) {
|
||||
install(HttpCache)
|
||||
json(Json {
|
||||
prettyPrint = true
|
||||
isLenient = true
|
||||
ignoreUnknownKeys = true
|
||||
})
|
||||
}
|
||||
install(Logging) {
|
||||
logger = object : Logger {
|
||||
override fun log(message: String) {
|
||||
Napier.d(message, tag = "LogApiCalls")
|
||||
}
|
||||
}
|
||||
level = LogLevel.INFO
|
||||
}
|
||||
install(HttpTimeout) {
|
||||
requestTimeoutMillis = appSettingsService.getApiTimeout()
|
||||
}
|
||||
install(HttpCookies)
|
||||
install(HttpRequestRetry) {
|
||||
maxRetries = 2
|
||||
retryIf { _, response ->
|
||||
response.status == HttpStatusCode.Forbidden && api.shouldHavePostLogin() && api.hasLoginInfo()
|
||||
}
|
||||
modifyRequest {
|
||||
Napier.i("Will modify", tag = "HttpSend")
|
||||
CoroutineScope(Dispatchers.Main).launch {
|
||||
Napier.i("Will login", tag = "HttpSend")
|
||||
api.login()
|
||||
Napier.i("Did login", tag = "HttpSend")
|
||||
}
|
||||
}
|
||||
}
|
||||
expectSuccess = false
|
||||
}
|
||||
): HttpClient
|
||||
|
||||
class SelfossApi(private val appSettingsService: AppSettingsService) {
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user