Add option to recover from backup + hide if not applicable
This commit is contained in:
parent
9e63a3219c
commit
5e0235e48d
@ -124,6 +124,7 @@ import im.vector.riotx.features.attachments.preview.AttachmentsPreviewActivity
|
||||
import im.vector.riotx.features.attachments.preview.AttachmentsPreviewArgs
|
||||
import im.vector.riotx.features.attachments.toGroupedContentAttachmentData
|
||||
import im.vector.riotx.features.command.Command
|
||||
import im.vector.riotx.features.crypto.keysbackup.restore.KeysBackupRestoreActivity
|
||||
import im.vector.riotx.features.crypto.util.toImageRes
|
||||
import im.vector.riotx.features.crypto.verification.VerificationBottomSheet
|
||||
import im.vector.riotx.features.home.AvatarRenderer
|
||||
@ -1239,6 +1240,11 @@ class RoomDetailFragment @Inject constructor(
|
||||
is EventSharedAction.ReRequestKey -> {
|
||||
roomDetailViewModel.handle(RoomDetailAction.ReRequestKeys(action.eventId))
|
||||
}
|
||||
is EventSharedAction.UseKeyBackup -> {
|
||||
context?.let {
|
||||
startActivity(KeysBackupRestoreActivity.intent(it))
|
||||
}
|
||||
}
|
||||
else -> {
|
||||
Toast.makeText(context, "Action $action is not implemented yet", Toast.LENGTH_LONG).show()
|
||||
}
|
||||
|
@ -105,4 +105,8 @@ sealed class EventSharedAction(@StringRes val titleRes: Int,
|
||||
|
||||
data class ReRequestKey(val eventId: String) :
|
||||
EventSharedAction(R.string.e2e_re_request_encryption_key, R.drawable.key_small)
|
||||
|
||||
object UseKeyBackup :
|
||||
EventSharedAction(R.string.e2e_use_keybackup, R.drawable.shield)
|
||||
|
||||
}
|
||||
|
@ -25,6 +25,7 @@ import com.squareup.inject.assisted.Assisted
|
||||
import com.squareup.inject.assisted.AssistedInject
|
||||
import dagger.Lazy
|
||||
import im.vector.matrix.android.api.session.Session
|
||||
import im.vector.matrix.android.api.session.crypto.keysbackup.KeysBackupState
|
||||
import im.vector.matrix.android.api.session.events.model.EventType
|
||||
import im.vector.matrix.android.api.session.events.model.isTextMessage
|
||||
import im.vector.matrix.android.api.session.events.model.toModel
|
||||
@ -209,6 +210,31 @@ class MessageActionsViewModel @AssistedInject constructor(@Assisted
|
||||
} ?: ""
|
||||
}
|
||||
|
||||
private fun getRedactionReason(timelineEvent: TimelineEvent): String {
|
||||
return (timelineEvent
|
||||
.root
|
||||
.unsignedData
|
||||
?.redactedEvent
|
||||
?.content
|
||||
?.get("reason") as? String)
|
||||
?.takeIf { it.isNotBlank() }
|
||||
.let { reason ->
|
||||
if (reason == null) {
|
||||
if (timelineEvent.root.isRedactedBySameUser()) {
|
||||
stringProvider.getString(R.string.event_redacted_by_user_reason)
|
||||
} else {
|
||||
stringProvider.getString(R.string.event_redacted_by_admin_reason)
|
||||
}
|
||||
} else {
|
||||
if (timelineEvent.root.isRedactedBySameUser()) {
|
||||
stringProvider.getString(R.string.event_redacted_by_user_reason_with_reason, reason)
|
||||
} else {
|
||||
stringProvider.getString(R.string.event_redacted_by_admin_reason_with_reason, reason)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private fun actionsForEvent(timelineEvent: TimelineEvent): List<EventSharedAction> {
|
||||
val messageContent: MessageContent? = timelineEvent.annotations?.editSummary?.aggregatedContent.toModel()
|
||||
?: timelineEvent.root.getClearContent().toModel()
|
||||
@ -272,7 +298,16 @@ class MessageActionsViewModel @AssistedInject constructor(@Assisted
|
||||
}
|
||||
|
||||
if (timelineEvent.isEncrypted() && timelineEvent.root.mCryptoError != null) {
|
||||
add(EventSharedAction.ReRequestKey(timelineEvent.eventId))
|
||||
val keysBackupService = session.cryptoService().keysBackupService()
|
||||
if (keysBackupService.state == KeysBackupState.NotTrusted
|
||||
|| (keysBackupService.state == KeysBackupState.ReadyToBackUp
|
||||
&& keysBackupService.canRestoreKeys())
|
||||
) {
|
||||
add(EventSharedAction.UseKeyBackup)
|
||||
}
|
||||
if (session.cryptoService().getCryptoDeviceInfo(session.myUserId).size > 1) {
|
||||
add(EventSharedAction.ReRequestKey(timelineEvent.eventId))
|
||||
}
|
||||
}
|
||||
|
||||
if (vectorPreferences.developerMode()) {
|
||||
|
@ -9,6 +9,9 @@
|
||||
|
||||
|
||||
<string name="settings_key_requests">Key Requests</string>
|
||||
|
||||
<string name="e2e_use_keybackup">Unlock encrypted messages history</string>
|
||||
|
||||
<!-- END Strings added by Valere -->
|
||||
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user