diff --git a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt index b53bacba..d9028529 100644 --- a/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt +++ b/app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt @@ -42,6 +42,7 @@ import com.simplemobiletools.smsmessenger.helpers.* import com.simplemobiletools.smsmessenger.models.* import com.simplemobiletools.smsmessenger.receivers.SmsSentReceiver import kotlinx.android.synthetic.main.activity_thread.* +import kotlinx.android.synthetic.main.item_attachment.view.* import kotlinx.android.synthetic.main.item_selected_contact.view.* import org.greenrobot.eventbus.EventBus import org.greenrobot.eventbus.Subscribe @@ -56,7 +57,7 @@ class ThreadActivity : SimpleActivity() { private var bus: EventBus? = null private var participants = ArrayList() private var messages = ArrayList() - private var attachmentUris = ArrayList() + private var attachmentUris = LinkedHashSet() override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) @@ -213,10 +214,6 @@ class ThreadActivity : SimpleActivity() { thread_add_attachment.setOnClickListener { launchPickPhotoVideoIntent() } - - thread_remove_attachment.setOnClickListener { - - } } private fun blockNumber() { @@ -325,7 +322,16 @@ class ThreadActivity : SimpleActivity() { } private fun addAttachment(uri: Uri) { + if (attachmentUris.contains(uri)) { + return + } + attachmentUris.add(uri) + thread_attachments_holder.beVisible() + val attachmentView = layoutInflater.inflate(R.layout.item_attachment, null).apply { + thread_attachments_wrapper.addView(this) + } + val roundedCornersRadius = resources.getDimension(R.dimen.medium_margin).toInt() val options = RequestOptions() .diskCacheStrategy(DiskCacheStrategy.NONE) @@ -337,20 +343,20 @@ class ThreadActivity : SimpleActivity() { .apply(options) .listener(object : RequestListener { override fun onLoadFailed(e: GlideException?, model: Any?, target: Target?, isFirstResource: Boolean): Boolean { - thread_attachment_preview.beGone() - thread_remove_attachment.beGone() + attachmentView.thread_attachment_preview.beGone() + attachmentView.thread_remove_attachment.beGone() showErrorToast(e?.localizedMessage ?: "") return false } override fun onResourceReady(dr: Drawable?, a: Any?, t: Target?, d: DataSource?, i: Boolean): Boolean { - thread_attachment_preview.beVisible() - thread_remove_attachment.beVisible() + attachmentView.thread_attachment_preview.beVisible() + attachmentView.thread_remove_attachment.beVisible() checkSendMessageAvailability() return false } }) - .into(thread_attachment_preview) + .into(attachmentView.thread_attachment_preview) } private fun checkSendMessageAvailability() { diff --git a/app/src/main/res/layout/activity_thread.xml b/app/src/main/res/layout/activity_thread.xml index 1f6a78a7..9aabd74d 100644 --- a/app/src/main/res/layout/activity_thread.xml +++ b/app/src/main/res/layout/activity_thread.xml @@ -95,7 +95,7 @@ android:id="@+id/message_divider" android:layout_width="match_parent" android:layout_height="1px" - android:layout_above="@+id/thread_attachment_preview" + android:layout_above="@+id/thread_attachments_holder" android:background="@color/divider_grey" android:importantForAccessibility="no" /> @@ -112,25 +112,27 @@ android:padding="@dimen/normal_margin" android:src="@drawable/ic_plus_vector" /> - + android:overScrollMode="never" + android:scrollbars="none" + android:visibility="gone"> - + + + + + + + + +