Adds LoginType to SessionParams and its entity
This commit is contained in:
parent
12dc8a8112
commit
209a442d5b
|
@ -16,6 +16,8 @@
|
||||||
|
|
||||||
package org.matrix.android.sdk.api.auth.data
|
package org.matrix.android.sdk.api.auth.data
|
||||||
|
|
||||||
|
import org.matrix.android.sdk.internal.auth.login.LoginType
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* This data class holds necessary data to open a session.
|
* This data class holds necessary data to open a session.
|
||||||
* You don't have to manually instantiate it.
|
* You don't have to manually instantiate it.
|
||||||
|
@ -34,7 +36,12 @@ data class SessionParams(
|
||||||
/**
|
/**
|
||||||
* Set to false if the current token is not valid anymore. Application should not have to use this info.
|
* Set to false if the current token is not valid anymore. Application should not have to use this info.
|
||||||
*/
|
*/
|
||||||
val isTokenValid: Boolean
|
val isTokenValid: Boolean,
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Which authentication method was used to create the session
|
||||||
|
*/
|
||||||
|
val loginType: LoginType,
|
||||||
) {
|
) {
|
||||||
/*
|
/*
|
||||||
* Shortcuts. Usually the application should only need to use these shortcuts
|
* Shortcuts. Usually the application should only need to use these shortcuts
|
||||||
|
|
|
@ -26,5 +26,6 @@ internal open class SessionParamsEntity(
|
||||||
var homeServerConnectionConfigJson: String = "",
|
var homeServerConnectionConfigJson: String = "",
|
||||||
// Set to false when the token is invalid and the user has been soft logged out
|
// Set to false when the token is invalid and the user has been soft logged out
|
||||||
// In case of hard logout, this object is deleted from DB
|
// In case of hard logout, this object is deleted from DB
|
||||||
var isTokenValid: Boolean = true
|
var isTokenValid: Boolean = true,
|
||||||
|
var loginType: String,
|
||||||
) : RealmObject()
|
) : RealmObject()
|
||||||
|
|
|
@ -21,6 +21,7 @@ import org.matrix.android.sdk.api.auth.data.Credentials
|
||||||
import org.matrix.android.sdk.api.auth.data.HomeServerConnectionConfig
|
import org.matrix.android.sdk.api.auth.data.HomeServerConnectionConfig
|
||||||
import org.matrix.android.sdk.api.auth.data.SessionParams
|
import org.matrix.android.sdk.api.auth.data.SessionParams
|
||||||
import org.matrix.android.sdk.api.auth.data.sessionId
|
import org.matrix.android.sdk.api.auth.data.sessionId
|
||||||
|
import org.matrix.android.sdk.internal.auth.login.LoginType
|
||||||
import javax.inject.Inject
|
import javax.inject.Inject
|
||||||
|
|
||||||
internal class SessionParamsMapper @Inject constructor(moshi: Moshi) {
|
internal class SessionParamsMapper @Inject constructor(moshi: Moshi) {
|
||||||
|
@ -37,7 +38,7 @@ internal class SessionParamsMapper @Inject constructor(moshi: Moshi) {
|
||||||
if (credentials == null || homeServerConnectionConfig == null) {
|
if (credentials == null || homeServerConnectionConfig == null) {
|
||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
return SessionParams(credentials, homeServerConnectionConfig, entity.isTokenValid)
|
return SessionParams(credentials, homeServerConnectionConfig, entity.isTokenValid, LoginType.fromValue(entity.loginType))
|
||||||
}
|
}
|
||||||
|
|
||||||
fun map(sessionParams: SessionParams?): SessionParamsEntity? {
|
fun map(sessionParams: SessionParams?): SessionParamsEntity? {
|
||||||
|
@ -54,6 +55,8 @@ internal class SessionParamsMapper @Inject constructor(moshi: Moshi) {
|
||||||
sessionParams.userId,
|
sessionParams.userId,
|
||||||
credentialsJson,
|
credentialsJson,
|
||||||
homeServerConnectionConfigJson,
|
homeServerConnectionConfigJson,
|
||||||
sessionParams.isTokenValid)
|
sessionParams.isTokenValid,
|
||||||
|
sessionParams.loginType.value,
|
||||||
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,32 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2022 New Vector Ltd
|
||||||
|
*
|
||||||
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
||||||
|
* you may not use this file except in compliance with the License.
|
||||||
|
* You may obtain a copy of the License at
|
||||||
|
*
|
||||||
|
* http://www.apache.org/licenses/LICENSE-2.0
|
||||||
|
*
|
||||||
|
* Unless required by applicable law or agreed to in writing, software
|
||||||
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
||||||
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
||||||
|
* See the License for the specific language governing permissions and
|
||||||
|
* limitations under the License.
|
||||||
|
*/
|
||||||
|
|
||||||
|
package org.matrix.android.sdk.internal.auth.login
|
||||||
|
|
||||||
|
enum class LoginType(val value: String) {
|
||||||
|
PASSWORD("password"),
|
||||||
|
SSO("sso"),
|
||||||
|
UNKNOWN("unknown");
|
||||||
|
|
||||||
|
companion object {
|
||||||
|
|
||||||
|
fun fromValue(value: String) = when (value) {
|
||||||
|
PASSWORD.value -> PASSWORD
|
||||||
|
SSO.value -> SSO
|
||||||
|
else -> UNKNOWN
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue