feat: trust dialog and processing attachments for users after trusting them
parent
bc4f660fb0
commit
9dfd051e63
@ -0,0 +1,55 @@
|
|||||||
|
package org.thoughtcrime.securesms.conversation.v2.messages
|
||||||
|
|
||||||
|
import android.content.Context
|
||||||
|
import android.util.AttributeSet
|
||||||
|
import android.view.LayoutInflater
|
||||||
|
import android.widget.LinearLayout
|
||||||
|
import androidx.annotation.ColorInt
|
||||||
|
import androidx.core.content.ContextCompat
|
||||||
|
import kotlinx.android.synthetic.main.view_untrusted_attachment.view.*
|
||||||
|
import network.loki.messenger.R
|
||||||
|
import org.session.libsession.utilities.recipients.Recipient
|
||||||
|
import org.thoughtcrime.securesms.conversation.v2.dialogs.DownloadDialog
|
||||||
|
import org.thoughtcrime.securesms.loki.utilities.ActivityDispatcher
|
||||||
|
import java.util.*
|
||||||
|
|
||||||
|
class UntrustedAttachmentView: LinearLayout {
|
||||||
|
|
||||||
|
enum class AttachmentType {
|
||||||
|
AUDIO,
|
||||||
|
DOCUMENT,
|
||||||
|
MEDIA
|
||||||
|
}
|
||||||
|
|
||||||
|
// region Lifecycle
|
||||||
|
constructor(context: Context) : super(context) { initialize() }
|
||||||
|
constructor(context: Context, attrs: AttributeSet) : super(context, attrs) { initialize() }
|
||||||
|
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int) : super(context, attrs, defStyleAttr) { initialize() }
|
||||||
|
|
||||||
|
private fun initialize() {
|
||||||
|
LayoutInflater.from(context).inflate(R.layout.view_untrusted_attachment, this)
|
||||||
|
}
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
// region Updating
|
||||||
|
fun bind(attachmentType: AttachmentType, @ColorInt textColor: Int) {
|
||||||
|
val (iconRes, stringRes) = when (attachmentType) {
|
||||||
|
AttachmentType.AUDIO -> R.drawable.ic_microphone to R.string.Slide_audio
|
||||||
|
AttachmentType.DOCUMENT -> R.drawable.ic_document_large_light to R.string.document
|
||||||
|
AttachmentType.MEDIA -> R.drawable.ic_image_white_24dp to R.string.media
|
||||||
|
}
|
||||||
|
val iconDrawable = ContextCompat.getDrawable(context,iconRes)!!
|
||||||
|
iconDrawable.mutate().setTint(textColor)
|
||||||
|
val text = context.getString(R.string.UntrustedAttachmentView_download_attachment, context.getString(stringRes).toLowerCase(Locale.ROOT))
|
||||||
|
|
||||||
|
untrustedAttachmentIcon.setImageDrawable(iconDrawable)
|
||||||
|
untrustedAttachmentTitle.text = text
|
||||||
|
}
|
||||||
|
// endregion
|
||||||
|
|
||||||
|
// region Interaction
|
||||||
|
fun showTrustDialog(recipient: Recipient) {
|
||||||
|
ActivityDispatcher.get(context)?.showDialog(DownloadDialog(recipient))
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
@ -0,0 +1,30 @@
|
|||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<LinearLayout
|
||||||
|
xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
|
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||||
|
android:layout_width="match_parent"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
xmlns:tools="http://schemas.android.com/tools"
|
||||||
|
android:orientation="horizontal"
|
||||||
|
android:padding="@dimen/medium_spacing"
|
||||||
|
android:gravity="center">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/untrustedAttachmentIcon"
|
||||||
|
android:layout_width="24dp"
|
||||||
|
android:layout_height="24dp"
|
||||||
|
android:src="@drawable/ic_document_large_light"
|
||||||
|
app:tint="@color/text" />
|
||||||
|
|
||||||
|
<TextView
|
||||||
|
android:id="@+id/untrustedAttachmentTitle"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:layout_marginStart="4dp"
|
||||||
|
android:textSize="@dimen/small_font_size"
|
||||||
|
android:textColor="@color/text"
|
||||||
|
tools:text="I'm a very long document title. Did you know that?"
|
||||||
|
android:maxLines="2"
|
||||||
|
android:ellipsize="end" />
|
||||||
|
|
||||||
|
</LinearLayout>
|
Loading…
Reference in New Issue