Add a login switch to disable SSL verification
This commit is contained in:
@ -4,12 +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.ktor.client.*
|
||||
import io.ktor.client.request.*
|
||||
import io.ktor.client.statement.*
|
||||
import io.ktor.http.*
|
||||
import io.ktor.client.HttpClient
|
||||
import io.ktor.client.plugins.auth.providers.BasicAuthCredentials
|
||||
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.Parameters
|
||||
import io.ktor.util.encodeBase64
|
||||
import io.ktor.utils.io.charsets.Charsets
|
||||
import io.ktor.utils.io.core.toByteArray
|
||||
|
||||
expect fun createHttpClient(appSettingsService: AppSettingsService, api: SelfossApi): HttpClient
|
||||
expect fun createHttpClient(
|
||||
appSettingsService: AppSettingsService,
|
||||
api: SelfossApi
|
||||
): HttpClient
|
||||
|
||||
class SelfossApi(private val appSettingsService: AppSettingsService) {
|
||||
|
||||
|
@ -8,6 +8,7 @@ class AppSettingsService(acraSenderServiceProcess: Boolean = false) {
|
||||
// Api related
|
||||
private var _apiVersion: Int = -1
|
||||
private var _publicAccess: Boolean? = null
|
||||
private var _selfSigned: Boolean? = null
|
||||
private var _baseUrl: String = ""
|
||||
private var _userName: String = ""
|
||||
private var _basicUserName: String = ""
|
||||
@ -77,6 +78,22 @@ class AppSettingsService(acraSenderServiceProcess: Boolean = false) {
|
||||
_publicAccess = settings.getBoolean(API_PUBLIC_ACCESS, false)
|
||||
}
|
||||
|
||||
fun getSelfSigned(): Boolean {
|
||||
if (_selfSigned == null) {
|
||||
refreshSelfSigned()
|
||||
}
|
||||
return _selfSigned!!
|
||||
}
|
||||
|
||||
fun updateSelfSigned(selfSigned: Boolean) {
|
||||
settings.putBoolean(API_SELF_SIGNED, selfSigned)
|
||||
refreshSelfSigned()
|
||||
}
|
||||
|
||||
private fun refreshSelfSigned() {
|
||||
_selfSigned = settings.getBoolean(API_SELF_SIGNED, false)
|
||||
}
|
||||
|
||||
fun getBaseUrl(): String {
|
||||
if (_baseUrl.isEmpty()) {
|
||||
refreshBaseUrl()
|
||||
@ -383,6 +400,7 @@ class AppSettingsService(acraSenderServiceProcess: Boolean = false) {
|
||||
refreshBaseUrl()
|
||||
refreshApiVersion()
|
||||
refreshPublicAccess()
|
||||
refreshSelfSigned()
|
||||
}
|
||||
|
||||
fun refreshUserSettings() {
|
||||
@ -468,6 +486,8 @@ class AppSettingsService(acraSenderServiceProcess: Boolean = false) {
|
||||
|
||||
const val API_PUBLIC_ACCESS = "apiPublicAccess"
|
||||
|
||||
const val API_SELF_SIGNED = "apiSelfSigned"
|
||||
|
||||
const val API_ITEMS_NUMBER = "prefer_api_items_number"
|
||||
|
||||
const val API_TIMEOUT = "api_timeout"
|
||||
|
Reference in New Issue
Block a user