Move SecretsSynchronisationInfo to its file
And do some other cleanup
This commit is contained in:
parent
aa1843774a
commit
de5f182f29
|
@ -17,6 +17,7 @@
|
||||||
package im.vector.matrix.rx
|
package im.vector.matrix.rx
|
||||||
|
|
||||||
import androidx.paging.PagedList
|
import androidx.paging.PagedList
|
||||||
|
import im.vector.matrix.android.api.extensions.orFalse
|
||||||
import im.vector.matrix.android.api.query.QueryStringValue
|
import im.vector.matrix.android.api.query.QueryStringValue
|
||||||
import im.vector.matrix.android.api.session.Session
|
import im.vector.matrix.android.api.session.Session
|
||||||
import im.vector.matrix.android.api.session.crypto.crosssigning.KEYBACKUP_SECRET_SSSS_NAME
|
import im.vector.matrix.android.api.session.crypto.crosssigning.KEYBACKUP_SECRET_SSSS_NAME
|
||||||
|
@ -172,16 +173,6 @@ class RxSession(private val session: Session) {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
data class SecretsSynchronisationInfo(
|
|
||||||
val isBackupSetup: Boolean = false,
|
|
||||||
val isCrossSigningEnabled: Boolean = false,
|
|
||||||
val isCrossSigningTrusted: Boolean = false,
|
|
||||||
val allPrivateKeysKnown: Boolean = false,
|
|
||||||
val megolmBackupAvailable: Boolean = false,
|
|
||||||
val megolmSecretKnown: Boolean = false,
|
|
||||||
val isMegolmKeyIn4S: Boolean = false
|
|
||||||
)
|
|
||||||
|
|
||||||
fun liveSecretSynchronisationInfo(): Observable<SecretsSynchronisationInfo> {
|
fun liveSecretSynchronisationInfo(): Observable<SecretsSynchronisationInfo> {
|
||||||
return Observable.combineLatest<List<UserAccountData>, Optional<MXCrossSigningInfo>, Optional<PrivateKeysInfo>, SecretsSynchronisationInfo>(
|
return Observable.combineLatest<List<UserAccountData>, Optional<MXCrossSigningInfo>, Optional<PrivateKeysInfo>, SecretsSynchronisationInfo>(
|
||||||
liveAccountData(setOf(MASTER_KEY_SSSS_NAME, USER_SIGNING_KEY_SSSS_NAME, SELF_SIGNING_KEY_SSSS_NAME, KEYBACKUP_SECRET_SSSS_NAME)),
|
liveAccountData(setOf(MASTER_KEY_SSSS_NAME, USER_SIGNING_KEY_SSSS_NAME, SELF_SIGNING_KEY_SSSS_NAME, KEYBACKUP_SECRET_SSSS_NAME)),
|
||||||
|
@ -192,9 +183,9 @@ class RxSession(private val session: Session) {
|
||||||
val is4SSetup = session.sharedSecretStorageService.isRecoverySetup()
|
val is4SSetup = session.sharedSecretStorageService.isRecoverySetup()
|
||||||
val isCrossSigningEnabled = crossSigningInfo.getOrNull() != null
|
val isCrossSigningEnabled = crossSigningInfo.getOrNull() != null
|
||||||
val isCrossSigningTrusted = crossSigningInfo.getOrNull()?.isTrusted() == true
|
val isCrossSigningTrusted = crossSigningInfo.getOrNull()?.isTrusted() == true
|
||||||
val allPrivateKeysKnown = pInfo.getOrNull()?.master != null
|
val allPrivateKeysKnown = pInfo.getOrNull()
|
||||||
&& pInfo.getOrNull()?.selfSigned != null
|
?.let { it.master != null && it.selfSigned != null && it.user != null }
|
||||||
&& pInfo.getOrNull()?.user != null
|
.orFalse()
|
||||||
|
|
||||||
val keysBackupService = session.cryptoService().keysBackupService()
|
val keysBackupService = session.cryptoService().keysBackupService()
|
||||||
val currentBackupVersion = keysBackupService.currentBackupVersion
|
val currentBackupVersion = keysBackupService.currentBackupVersion
|
||||||
|
|
|
@ -0,0 +1,27 @@
|
||||||
|
/*
|
||||||
|
* Copyright (c) 2020 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 im.vector.matrix.rx
|
||||||
|
|
||||||
|
data class SecretsSynchronisationInfo(
|
||||||
|
val isBackupSetup: Boolean,
|
||||||
|
val isCrossSigningEnabled: Boolean,
|
||||||
|
val isCrossSigningTrusted: Boolean,
|
||||||
|
val allPrivateKeysKnown: Boolean,
|
||||||
|
val megolmBackupAvailable: Boolean,
|
||||||
|
val megolmSecretKnown: Boolean,
|
||||||
|
val isMegolmKeyIn4S: Boolean
|
||||||
|
)
|
|
@ -33,7 +33,7 @@ import im.vector.matrix.android.internal.crypto.crosssigning.isVerified
|
||||||
import im.vector.matrix.android.internal.crypto.model.ImportRoomKeysResult
|
import im.vector.matrix.android.internal.crypto.model.ImportRoomKeysResult
|
||||||
import im.vector.matrix.android.internal.crypto.model.rest.DeviceInfo
|
import im.vector.matrix.android.internal.crypto.model.rest.DeviceInfo
|
||||||
import im.vector.matrix.android.internal.crypto.model.rest.DevicesListResponse
|
import im.vector.matrix.android.internal.crypto.model.rest.DevicesListResponse
|
||||||
import im.vector.matrix.rx.RxSession
|
import im.vector.matrix.rx.SecretsSynchronisationInfo
|
||||||
import im.vector.matrix.rx.rx
|
import im.vector.matrix.rx.rx
|
||||||
import im.vector.riotx.R
|
import im.vector.riotx.R
|
||||||
import im.vector.riotx.core.di.ActiveSessionHolder
|
import im.vector.riotx.core.di.ActiveSessionHolder
|
||||||
|
@ -128,7 +128,7 @@ class VectorSettingsSecurityPrivacyFragment @Inject constructor(
|
||||||
disposables.clear()
|
disposables.clear()
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun refresh4SSection(state: RxSession.SecretsSynchronisationInfo) {
|
private fun refresh4SSection(state: SecretsSynchronisationInfo) {
|
||||||
secureBackupCategory?.isVisible = false
|
secureBackupCategory?.isVisible = false
|
||||||
|
|
||||||
// it's a lot of if / else if / else
|
// it's a lot of if / else if / else
|
||||||
|
|
Loading…
Reference in New Issue