From 0d0af6906ee6216e4e4684bc6264cb174e9fcc21 Mon Sep 17 00:00:00 2001 From: Valere Date: Thu, 30 Apr 2020 10:10:56 +0200 Subject: [PATCH] Code review --- CHANGES.md | 1 + .../src/main/java/im/vector/matrix/rx/RxSession.kt | 4 ++-- .../matrix/android/api/session/crypto/CryptoService.kt | 4 ++-- .../android/internal/crypto/DefaultCryptoService.kt | 10 +++++----- .../android/internal/crypto/model/CryptoDeviceInfo.kt | 2 +- .../android/internal/crypto/store/IMXCryptoStore.kt | 6 +++--- .../internal/crypto/store/db/RealmCryptoStore.kt | 6 +++--- .../internal/crypto/store/db/model/CryptoMapper.kt | 2 +- .../features/crypto/keysrequest/KeyRequestHandler.kt | 2 +- .../home/UnknwonDeviceDetectorSharedViewModel.kt | 4 ++-- .../riotx/features/settings/devices/DeviceItem.kt | 4 ++-- .../features/settings/devices/DevicesController.kt | 4 ++-- vector/src/main/res/values/strings_riotX.xml | 2 +- 13 files changed, 26 insertions(+), 25 deletions(-) diff --git a/CHANGES.md b/CHANGES.md index 08eafff2d3..78118adc07 100644 --- a/CHANGES.md +++ b/CHANGES.md @@ -29,6 +29,7 @@ Improvements ๐Ÿ™Œ: - Cross-Signing | Hide Use recovery key when 4S is not setup (#1007) - Cross-Signing | Trust account xSigning keys by entering Recovery Key (select file or copy) #1199 - Manage Session Settings / Cross Signing update (#1295) + - Cross-Signing | Review sessions toast update old vs new (#1293, #1306) Bugfix ๐Ÿ›: - Fix summary notification staying after "mark as read" diff --git a/matrix-sdk-android-rx/src/main/java/im/vector/matrix/rx/RxSession.kt b/matrix-sdk-android-rx/src/main/java/im/vector/matrix/rx/RxSession.kt index c40306044a..c2c8978500 100644 --- a/matrix-sdk-android-rx/src/main/java/im/vector/matrix/rx/RxSession.kt +++ b/matrix-sdk-android-rx/src/main/java/im/vector/matrix/rx/RxSession.kt @@ -61,9 +61,9 @@ class RxSession(private val session: Session) { } fun liveMyDeviceInfo(): Observable> { - return session.cryptoService().getLiveMyDeviceInfo().asObservable() + return session.cryptoService().getLiveMyDevicesInfo().asObservable() .startWithCallable { - session.cryptoService().getMyDeviceInfo() + session.cryptoService().getMyDevicesInfo() } } diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/crypto/CryptoService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/crypto/CryptoService.kt index 25aca24966..2c96465313 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/crypto/CryptoService.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/api/session/crypto/CryptoService.kt @@ -99,8 +99,8 @@ interface CryptoService { fun removeRoomKeysRequestListener(listener: GossipingRequestListener) fun fetchDevicesList(callback: MatrixCallback) - fun getMyDeviceInfo() : List - fun getLiveMyDeviceInfo() : LiveData> + fun getMyDevicesInfo() : List + fun getLiveMyDevicesInfo() : LiveData> fun getDeviceInfo(deviceId: String, callback: MatrixCallback) diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/DefaultCryptoService.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/DefaultCryptoService.kt index a92ec14e2b..1d3c0f4dcd 100755 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/DefaultCryptoService.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/DefaultCryptoService.kt @@ -262,7 +262,7 @@ internal class DefaultCryptoService @Inject constructor( override fun onSuccess(data: DevicesListResponse) { // Save in local DB - cryptoStore.saveMyDeviceInfos(data.devices ?: emptyList()) + cryptoStore.saveMyDevicesInfo(data.devices ?: emptyList()) callback.onSuccess(data) } } @@ -270,12 +270,12 @@ internal class DefaultCryptoService @Inject constructor( .executeBy(taskExecutor) } - override fun getLiveMyDeviceInfo(): LiveData> { - return cryptoStore.getLiveMyDeviceInfo() + override fun getLiveMyDevicesInfo(): LiveData> { + return cryptoStore.getLiveMyDevicesInfo() } - override fun getMyDeviceInfo(): List { - return cryptoStore.getMyDeviceInfo() + override fun getMyDevicesInfo(): List { + return cryptoStore.getMyDevicesInfo() } override fun getDeviceInfo(deviceId: String, callback: MatrixCallback) { diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/model/CryptoDeviceInfo.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/model/CryptoDeviceInfo.kt index 52cd35b031..fc6e2cc436 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/model/CryptoDeviceInfo.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/model/CryptoDeviceInfo.kt @@ -30,7 +30,7 @@ data class CryptoDeviceInfo( val unsigned: JsonDict? = null, var trustLevel: DeviceTrustLevel? = null, var isBlocked: Boolean = false, - val firsTimeSeenLocalTs: Long? = null + val firstTimeSeenLocalTs: Long? = null ) : CryptoInfo { val isVerified: Boolean diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/IMXCryptoStore.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/IMXCryptoStore.kt index b6037075b0..18c85f78fb 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/IMXCryptoStore.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/IMXCryptoStore.kt @@ -219,9 +219,9 @@ internal interface IMXCryptoStore { // TODO temp fun getLiveDeviceList(): LiveData> - fun getMyDeviceInfo() : List - fun getLiveMyDeviceInfo() : LiveData> - fun saveMyDeviceInfos(info: List) + fun getMyDevicesInfo() : List + fun getLiveMyDevicesInfo() : LiveData> + fun saveMyDevicesInfo(info: List) /** * Store the crypto algorithm for a room. * diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/RealmCryptoStore.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/RealmCryptoStore.kt index 809bb080fa..c57dff046b 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/RealmCryptoStore.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/RealmCryptoStore.kt @@ -509,7 +509,7 @@ internal class RealmCryptoStore @Inject constructor( } } - override fun getMyDeviceInfo(): List { + override fun getMyDevicesInfo(): List { return monarchy.fetchAllCopiedSync { it.where() }.map { @@ -522,7 +522,7 @@ internal class RealmCryptoStore @Inject constructor( } } - override fun getLiveMyDeviceInfo(): LiveData> { + override fun getLiveMyDevicesInfo(): LiveData> { return monarchy.findAllMappedWithChanges( { realm: Realm -> realm.where() @@ -538,7 +538,7 @@ internal class RealmCryptoStore @Inject constructor( ) } - override fun saveMyDeviceInfos(info: List) { + override fun saveMyDevicesInfo(info: List) { val entities = info.map { MyDeviceLastSeenInfoEntity( lastSeenTs = it.lastSeenTs, diff --git a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/model/CryptoMapper.kt b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/model/CryptoMapper.kt index 87a8f530ee..d222fe0eed 100644 --- a/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/model/CryptoMapper.kt +++ b/matrix-sdk-android/src/main/java/im/vector/matrix/android/internal/crypto/store/db/model/CryptoMapper.kt @@ -105,7 +105,7 @@ object CryptoMapper { null } }, - firsTimeSeenLocalTs = deviceInfoEntity.firstTimeSeenLocalTs + firstTimeSeenLocalTs = deviceInfoEntity.firstTimeSeenLocalTs ) } } diff --git a/vector/src/main/java/im/vector/riotx/features/crypto/keysrequest/KeyRequestHandler.kt b/vector/src/main/java/im/vector/riotx/features/crypto/keysrequest/KeyRequestHandler.kt index 8b14aa024b..0159dc7c3a 100644 --- a/vector/src/main/java/im/vector/riotx/features/crypto/keysrequest/KeyRequestHandler.kt +++ b/vector/src/main/java/im/vector/riotx/features/crypto/keysrequest/KeyRequestHandler.kt @@ -123,7 +123,7 @@ class KeyRequestHandler @Inject constructor(private val context: Context, privat deviceInfo.trustLevel = DeviceTrustLevel(crossSigningVerified = false, locallyVerified = false) // can we get more info on this device? - session?.cryptoService()?.getMyDeviceInfo()?.firstOrNull { it.deviceId == deviceId }?.let { + session?.cryptoService()?.getMyDevicesInfo()?.firstOrNull { it.deviceId == deviceId }?.let { postAlert(context, userId, deviceId, true, deviceInfo, it) } ?: kotlin.run { postAlert(context, userId, deviceId, true, deviceInfo) diff --git a/vector/src/main/java/im/vector/riotx/features/home/UnknwonDeviceDetectorSharedViewModel.kt b/vector/src/main/java/im/vector/riotx/features/home/UnknwonDeviceDetectorSharedViewModel.kt index 7a358c1926..a05e9ee985 100644 --- a/vector/src/main/java/im/vector/riotx/features/home/UnknwonDeviceDetectorSharedViewModel.kt +++ b/vector/src/main/java/im/vector/riotx/features/home/UnknwonDeviceDetectorSharedViewModel.kt @@ -69,7 +69,7 @@ class UnknownDeviceDetectorSharedViewModel( val currentSessionTs = session.cryptoService().getCryptoDeviceInfo(session.myUserId).firstOrNull { it.deviceId == session.sessionParams.credentials.deviceId - }?.firsTimeSeenLocalTs ?: System.currentTimeMillis() + }?.firstTimeSeenLocalTs ?: System.currentTimeMillis() Timber.v("## Detector - Current Session first time seen $currentSessionTs") ignoredDeviceList.addAll( @@ -94,7 +94,7 @@ class UnknownDeviceDetectorSharedViewModel( .filter { !ignoredDeviceList.contains(it.deviceId) } .sortedByDescending { it.lastSeenTs } .map { deviceInfo -> - val deviceKnownSince = cryptoList.firstOrNull { it.deviceId == deviceInfo.deviceId }?.firsTimeSeenLocalTs ?: 0 + val deviceKnownSince = cryptoList.firstOrNull { it.deviceId == deviceInfo.deviceId }?.firstTimeSeenLocalTs ?: 0 DeviceDetectionInfo( deviceInfo, deviceKnownSince > currentSessionTs + 60_000, // short window to avoid false positive, diff --git a/vector/src/main/java/im/vector/riotx/features/settings/devices/DeviceItem.kt b/vector/src/main/java/im/vector/riotx/features/settings/devices/DeviceItem.kt index 0bc3a76bc1..5802bebf39 100644 --- a/vector/src/main/java/im/vector/riotx/features/settings/devices/DeviceItem.kt +++ b/vector/src/main/java/im/vector/riotx/features/settings/devices/DeviceItem.kt @@ -58,7 +58,7 @@ abstract class DeviceItem : VectorEpoxyModel() { var trusted: DeviceTrustLevel? = null @EpoxyAttribute - var e2Ecapable: Boolean = true + var e2eCapable: Boolean = true @EpoxyAttribute var legacyMode: Boolean = false @@ -82,7 +82,7 @@ abstract class DeviceItem : VectorEpoxyModel() { trusted ) - if (e2Ecapable) { + if (e2eCapable) { holder.trustIcon.setImageResource(shield) } else { holder.trustIcon.setImageDrawable(null) diff --git a/vector/src/main/java/im/vector/riotx/features/settings/devices/DevicesController.kt b/vector/src/main/java/im/vector/riotx/features/settings/devices/DevicesController.kt index 446a510393..1b08f23996 100644 --- a/vector/src/main/java/im/vector/riotx/features/settings/devices/DevicesController.kt +++ b/vector/src/main/java/im/vector/riotx/features/settings/devices/DevicesController.kt @@ -99,7 +99,7 @@ class DevicesController @Inject constructor(private val errorFormatter: ErrorFor detailedMode(vectorPreferences.developerMode()) deviceInfo(deviceInfo) currentDevice(true) - e2Ecapable(true) + e2eCapable(true) itemClickAction { callback?.onDeviceClicked(deviceInfo) } trusted(DeviceTrustLevel(currentSessionCrossTrusted, true)) } @@ -142,7 +142,7 @@ class DevicesController @Inject constructor(private val errorFormatter: ErrorFor deviceInfo(deviceInfo) currentDevice(false) itemClickAction { callback?.onDeviceClicked(deviceInfo) } - e2Ecapable(cryptoInfo != null) + e2eCapable(cryptoInfo != null) trusted(cryptoInfo?.trustLevel) } } diff --git a/vector/src/main/res/values/strings_riotX.xml b/vector/src/main/res/values/strings_riotX.xml index 6b1a244f84..e5d720c081 100644 --- a/vector/src/main/res/values/strings_riotX.xml +++ b/vector/src/main/res/values/strings_riotX.xml @@ -7,7 +7,7 @@ Review where youโ€™re logged in - Verify your other sessions + Verify all your sessions to ensure your account & messages are safe