forked from GitHub-Mirror/riotX-android
Move KeysBackupStateListener to a dedicated file
This commit is contained in:
parent
02d3fea4a9
commit
c20b256b24
@ -189,8 +189,4 @@ interface KeysBackupService {
|
|||||||
val isStucked: Boolean
|
val isStucked: Boolean
|
||||||
val state: KeysBackupState
|
val state: KeysBackupState
|
||||||
|
|
||||||
interface KeysBackupStateListener {
|
|
||||||
fun onStateChange(newState: KeysBackupState)
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
}
|
@ -0,0 +1,26 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2019 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.android.api.session.crypto.keysbackup
|
||||||
|
|
||||||
|
interface KeysBackupStateListener {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* The keys backup state has changed
|
||||||
|
* @param newState the new state
|
||||||
|
*/
|
||||||
|
fun onStateChange(newState: KeysBackupState)
|
||||||
|
}
|
@ -30,6 +30,7 @@ import im.vector.matrix.android.api.listeners.ProgressListener
|
|||||||
import im.vector.matrix.android.api.listeners.StepProgressListener
|
import im.vector.matrix.android.api.listeners.StepProgressListener
|
||||||
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupService
|
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupService
|
||||||
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupState
|
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupState
|
||||||
|
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupStateListener
|
||||||
import im.vector.matrix.android.internal.crypto.*
|
import im.vector.matrix.android.internal.crypto.*
|
||||||
import im.vector.matrix.android.internal.crypto.actions.MegolmSessionDataImporter
|
import im.vector.matrix.android.internal.crypto.actions.MegolmSessionDataImporter
|
||||||
import im.vector.matrix.android.internal.crypto.keysbackup.model.KeysBackupVersionTrust
|
import im.vector.matrix.android.internal.crypto.keysbackup.model.KeysBackupVersionTrust
|
||||||
@ -104,7 +105,7 @@ internal class KeysBackup(
|
|||||||
|
|
||||||
private var backupAllGroupSessionsCallback: MatrixCallback<Unit>? = null
|
private var backupAllGroupSessionsCallback: MatrixCallback<Unit>? = null
|
||||||
|
|
||||||
private var keysBackupStateListener: KeysBackupService.KeysBackupStateListener? = null
|
private var keysBackupStateListener: KeysBackupStateListener? = null
|
||||||
|
|
||||||
override val isEnabled: Boolean
|
override val isEnabled: Boolean
|
||||||
get() = keysBackupStateManager.isEnabled
|
get() = keysBackupStateManager.isEnabled
|
||||||
@ -118,11 +119,11 @@ internal class KeysBackup(
|
|||||||
override val currentBackupVersion: String?
|
override val currentBackupVersion: String?
|
||||||
get() = keysBackupVersion?.version
|
get() = keysBackupVersion?.version
|
||||||
|
|
||||||
override fun addListener(listener: KeysBackupService.KeysBackupStateListener) {
|
override fun addListener(listener: KeysBackupStateListener) {
|
||||||
keysBackupStateManager.addListener(listener)
|
keysBackupStateManager.addListener(listener)
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun removeListener(listener: KeysBackupService.KeysBackupStateListener) {
|
override fun removeListener(listener: KeysBackupStateListener) {
|
||||||
keysBackupStateManager.removeListener(listener)
|
keysBackupStateManager.removeListener(listener)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -309,7 +310,7 @@ internal class KeysBackup(
|
|||||||
backupAllGroupSessionsCallback = callback
|
backupAllGroupSessionsCallback = callback
|
||||||
|
|
||||||
// Listen to `state` change to determine when to call onBackupProgress and onComplete
|
// Listen to `state` change to determine when to call onBackupProgress and onComplete
|
||||||
keysBackupStateListener = object : KeysBackupService.KeysBackupStateListener {
|
keysBackupStateListener = object : KeysBackupStateListener {
|
||||||
override fun onStateChange(newState: KeysBackupState) {
|
override fun onStateChange(newState: KeysBackupState) {
|
||||||
getBackupProgress(object : ProgressListener {
|
getBackupProgress(object : ProgressListener {
|
||||||
override fun onProgress(progress: Int, total: Int) {
|
override fun onProgress(progress: Int, total: Int) {
|
||||||
|
@ -17,14 +17,14 @@
|
|||||||
package im.vector.matrix.android.internal.crypto.keysbackup
|
package im.vector.matrix.android.internal.crypto.keysbackup
|
||||||
|
|
||||||
import android.os.Handler
|
import android.os.Handler
|
||||||
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupService
|
|
||||||
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupState
|
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupState
|
||||||
|
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupStateListener
|
||||||
import timber.log.Timber
|
import timber.log.Timber
|
||||||
import java.util.*
|
import java.util.*
|
||||||
|
|
||||||
internal class KeysBackupStateManager(private val uiHandler: Handler) {
|
internal class KeysBackupStateManager(private val uiHandler: Handler) {
|
||||||
|
|
||||||
private val listeners = ArrayList<KeysBackupService.KeysBackupStateListener>()
|
private val listeners = ArrayList<KeysBackupStateListener>()
|
||||||
|
|
||||||
// Backup state
|
// Backup state
|
||||||
var state = KeysBackupState.Unknown
|
var state = KeysBackupState.Unknown
|
||||||
@ -56,13 +56,13 @@ internal class KeysBackupStateManager(private val uiHandler: Handler) {
|
|||||||
|| state == KeysBackupState.WrongBackUpVersion
|
|| state == KeysBackupState.WrongBackUpVersion
|
||||||
|| state == KeysBackupState.NotTrusted
|
|| state == KeysBackupState.NotTrusted
|
||||||
|
|
||||||
fun addListener(listener: KeysBackupService.KeysBackupStateListener) {
|
fun addListener(listener: KeysBackupStateListener) {
|
||||||
synchronized(listeners) {
|
synchronized(listeners) {
|
||||||
listeners.add(listener)
|
listeners.add(listener)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun removeListener(listener: KeysBackupService.KeysBackupStateListener) {
|
fun removeListener(listener: KeysBackupStateListener) {
|
||||||
synchronized(listeners) {
|
synchronized(listeners) {
|
||||||
listeners.remove(listener)
|
listeners.remove(listener)
|
||||||
}
|
}
|
||||||
|
@ -20,6 +20,7 @@ import im.vector.matrix.android.api.MatrixCallback
|
|||||||
import im.vector.matrix.android.api.session.Session
|
import im.vector.matrix.android.api.session.Session
|
||||||
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupService
|
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupService
|
||||||
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupState
|
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupState
|
||||||
|
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupStateListener
|
||||||
import im.vector.matrix.android.internal.crypto.keysbackup.model.KeysBackupVersionTrust
|
import im.vector.matrix.android.internal.crypto.keysbackup.model.KeysBackupVersionTrust
|
||||||
import im.vector.riotredesign.core.platform.VectorViewModel
|
import im.vector.riotredesign.core.platform.VectorViewModel
|
||||||
import org.koin.android.ext.android.get
|
import org.koin.android.ext.android.get
|
||||||
@ -27,7 +28,7 @@ import org.koin.android.ext.android.get
|
|||||||
|
|
||||||
class KeysBackupSettingsViewModel(initialState: KeysBackupSettingViewState,
|
class KeysBackupSettingsViewModel(initialState: KeysBackupSettingViewState,
|
||||||
session: Session) : VectorViewModel<KeysBackupSettingViewState>(initialState),
|
session: Session) : VectorViewModel<KeysBackupSettingViewState>(initialState),
|
||||||
KeysBackupService.KeysBackupStateListener {
|
KeysBackupStateListener {
|
||||||
|
|
||||||
companion object : MvRxViewModelFactory<KeysBackupSettingsViewModel, KeysBackupSettingViewState> {
|
companion object : MvRxViewModelFactory<KeysBackupSettingsViewModel, KeysBackupSettingViewState> {
|
||||||
|
|
||||||
|
@ -19,10 +19,10 @@ package im.vector.riotredesign.features.workers.signout
|
|||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import im.vector.matrix.android.api.session.Session
|
import im.vector.matrix.android.api.session.Session
|
||||||
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupService
|
|
||||||
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupState
|
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupState
|
||||||
|
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupStateListener
|
||||||
|
|
||||||
class SignOutViewModel : ViewModel(), KeysBackupService.KeysBackupStateListener {
|
class SignOutViewModel : ViewModel(), KeysBackupStateListener {
|
||||||
// Keys exported manually
|
// Keys exported manually
|
||||||
var keysExportedToFile = MutableLiveData<Boolean>()
|
var keysExportedToFile = MutableLiveData<Boolean>()
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user