Code review

This commit is contained in:
Valere 2020-04-28 18:47:54 +02:00
parent cdabca6def
commit a05c401892
3 changed files with 16 additions and 89 deletions

View File

@ -48,7 +48,7 @@ abstract class GenericButtonItem : VectorEpoxyModel<GenericButtonItem.Holder>()
override fun bind(holder: Holder) { override fun bind(holder: Holder) {
holder.button.text = text holder.button.text = text
val textColor = textColor ?: ThemeUtils.getColor(holder.view.context, R.attr.colorPrimary) val textColor = textColor ?: ThemeUtils.getColor(holder.view.context, R.attr.riotx_text_primary)
holder.button.setTextColor(textColor) holder.button.setTextColor(textColor)
if (iconRes != null) { if (iconRes != null) {
holder.button.setIconResource(iconRes!!) holder.button.setIconResource(iconRes!!)

View File

@ -73,7 +73,7 @@ class DeviceVerificationInfoEpoxyController @Inject constructor(private val stri
} }
// COMMON ACTIONS (Rename / signout) // COMMON ACTIONS (Rename / signout)
addGenericDeviceManageActions(data, cryptoDeviceInfo) addGenericDeviceManageActions(data, cryptoDeviceInfo.deviceId)
} }
private fun handleE2EWithCrossSigning(isMine: Boolean, currentSessionIsTrusted: Boolean, cryptoDeviceInfo: CryptoDeviceInfo, shield: Int) { private fun handleE2EWithCrossSigning(isMine: Boolean, currentSessionIsTrusted: Boolean, cryptoDeviceInfo: CryptoDeviceInfo, shield: Int) {
@ -205,66 +205,6 @@ class DeviceVerificationInfoEpoxyController @Inject constructor(private val stri
} }
} }
} }
// if (cryptoDeviceInfo.isVerified) {
// genericItem {
// id("trust${cryptoDeviceInfo.deviceId}")
// style(GenericItem.STYLE.BIG_TEXT)
// titleIconResourceId(shield)
// title(stringProvider.getString(R.string.encryption_information_verified))
// description(stringProvider.getString(R.string.settings_active_sessions_verified_device_desc))
// }
// } else {
// genericItem {
// id("trust${cryptoDeviceInfo.deviceId}")
// titleIconResourceId(shield)
// style(GenericItem.STYLE.BIG_TEXT)
// title(stringProvider.getString(R.string.encryption_information_not_verified))
// description(stringProvider.getString(R.string.settings_active_sessions_unverified_device_desc))
// }
// }
// genericItem {
// id("info${cryptoDeviceInfo.deviceId}")
// title(cryptoDeviceInfo.displayName() ?: "")
// description("(${cryptoDeviceInfo.deviceId})")
// }
// if (data.isMine && !data.accountCrossSigningIsTrusted) {
// // we should offer to complete security
// dividerItem {
// id("d1")
// }
// bottomSheetVerificationActionItem {
// id("complete")
// title(stringProvider.getString(R.string.complete_security))
// titleColor(colorProvider.getColor(R.color.riotx_accent))
// iconRes(R.drawable.ic_arrow_right)
// iconColor(colorProvider.getColor(R.color.riotx_accent))
// listener {
// callback?.onAction(DevicesAction.CompleteSecurity(cryptoDeviceInfo.deviceId))
// }
// }
// }
//
//
// if (!cryptoDeviceInfo.isVerified) {
// dividerItem {
// id("d1")
// }
// bottomSheetVerificationActionItem {
// id("verify")
// title(stringProvider.getString(R.string.verification_verify_device))
// titleColor(colorProvider.getColor(R.color.riotx_accent))
// iconRes(R.drawable.ic_arrow_right)
// iconColor(colorProvider.getColor(R.color.riotx_accent))
// listener {
// callback?.onAction(DevicesAction.VerifyMyDevice(cryptoDeviceInfo.deviceId))
// }
// }
// }
// addGenericDeviceManageActions(data, cryptoDeviceInfo)
} }
private fun addVerifyActions(cryptoDeviceInfo: CryptoDeviceInfo) { private fun addVerifyActions(cryptoDeviceInfo: CryptoDeviceInfo) {
@ -296,12 +236,12 @@ class DeviceVerificationInfoEpoxyController @Inject constructor(private val stri
} }
} }
private fun addGenericDeviceManageActions(data: DeviceVerificationInfoBottomSheetViewState, cryptoDeviceInfo: CryptoDeviceInfo) { private fun addGenericDeviceManageActions(data: DeviceVerificationInfoBottomSheetViewState, deviceId: String) {
// Offer delete session if not me // Offer delete session if not me
if (!data.isMine) { if (!data.isMine) {
// Add the delete option // Add the delete option
dividerItem { dividerItem {
id("d2") id("manageD1")
} }
bottomSheetVerificationActionItem { bottomSheetVerificationActionItem {
id("delete") id("delete")
@ -310,14 +250,14 @@ class DeviceVerificationInfoEpoxyController @Inject constructor(private val stri
iconRes(R.drawable.ic_arrow_right) iconRes(R.drawable.ic_arrow_right)
iconColor(colorProvider.getColor(R.color.riotx_destructive_accent)) iconColor(colorProvider.getColor(R.color.riotx_destructive_accent))
listener { listener {
callback?.onAction(DevicesAction.Delete(cryptoDeviceInfo.deviceId)) callback?.onAction(DevicesAction.Delete(deviceId))
} }
} }
} }
// Always offer rename // Always offer rename
dividerItem { dividerItem {
id("d3") id("manageD2")
} }
bottomSheetVerificationActionItem { bottomSheetVerificationActionItem {
id("rename") id("rename")
@ -326,40 +266,25 @@ class DeviceVerificationInfoEpoxyController @Inject constructor(private val stri
iconRes(R.drawable.ic_arrow_right) iconRes(R.drawable.ic_arrow_right)
iconColor(colorProvider.getColorFromAttribute(R.attr.riotx_text_primary)) iconColor(colorProvider.getColorFromAttribute(R.attr.riotx_text_primary))
listener { listener {
callback?.onAction(DevicesAction.PromptRename(cryptoDeviceInfo.deviceId)) callback?.onAction(DevicesAction.PromptRename(deviceId))
} }
} }
} }
private fun handleNonE2EDevice(data: DeviceVerificationInfoBottomSheetViewState) { private fun handleNonE2EDevice(data: DeviceVerificationInfoBottomSheetViewState) {
val info = data.deviceInfo.invoke() val info = data.deviceInfo.invoke() ?: return
genericItem { genericItem {
id("info${info?.deviceId}") id("info${info.deviceId}")
title(info?.displayName ?: "") title(info.displayName ?: "")
description("(${info?.deviceId})") description("(${info.deviceId})")
} }
genericFooterItem { genericFooterItem {
id("infoCrypto${info?.deviceId}") id("infoCrypto${info.deviceId}")
text(stringProvider.getString(R.string.settings_failed_to_get_crypto_device_info)) text(stringProvider.getString(R.string.settings_failed_to_get_crypto_device_info))
} }
if (!data.isMine) { info.deviceId?.let { addGenericDeviceManageActions(data, it) }
// Add the delete option
dividerItem {
id("d2")
}
bottomSheetVerificationActionItem {
id("delete")
title(stringProvider.getString(R.string.settings_active_sessions_signout_device))
titleColor(colorProvider.getColor(R.color.riotx_destructive_accent))
iconRes(R.drawable.ic_arrow_right)
iconColor(colorProvider.getColor(R.color.riotx_destructive_accent))
listener {
callback?.onAction(DevicesAction.Delete(info?.deviceId ?: ""))
}
}
}
} }
interface Callback { interface Callback {

View File

@ -16,11 +16,13 @@
package im.vector.riotx.features.settings.devices package im.vector.riotx.features.settings.devices
import androidx.annotation.DrawableRes
import im.vector.matrix.android.internal.crypto.crosssigning.DeviceTrustLevel import im.vector.matrix.android.internal.crypto.crosssigning.DeviceTrustLevel
import im.vector.riotx.R import im.vector.riotx.R
object TrustUtils { object TrustUtils {
@DrawableRes
fun shieldForTrust(currentDevice: Boolean, trustMSK: Boolean, legacyMode: Boolean, deviceTrustLevel: DeviceTrustLevel?): Int { fun shieldForTrust(currentDevice: Boolean, trustMSK: Boolean, legacyMode: Boolean, deviceTrustLevel: DeviceTrustLevel?): Int {
return when { return when {
currentDevice -> { currentDevice -> {
@ -44,7 +46,7 @@ object TrustUtils {
?: R.drawable.ic_shield_warning ?: R.drawable.ic_shield_warning
} else { } else {
// The current session is untrusted, so displays others in black // The current session is untrusted, so displays others in black
// as we can't know there cross-signing state // as we can't know the cross-signing state
R.drawable.ic_shield_black R.drawable.ic_shield_black
} }
} }