53 lines
2.2 KiB
Kotlin
53 lines
2.2 KiB
Kotlin
package com.simplemobiletools.smsmessenger.activities
|
|
|
|
import android.os.Bundle
|
|
import com.simplemobiletools.commons.extensions.applyColorFilter
|
|
import com.simplemobiletools.commons.extensions.value
|
|
import com.simplemobiletools.smsmessenger.R
|
|
import com.simplemobiletools.smsmessenger.adapters.ThreadAdapter
|
|
import com.simplemobiletools.smsmessenger.extensions.config
|
|
import com.simplemobiletools.smsmessenger.extensions.getMessages
|
|
import com.simplemobiletools.smsmessenger.helpers.THREAD_ID
|
|
import com.simplemobiletools.smsmessenger.helpers.THREAD_NAME
|
|
import com.simplemobiletools.smsmessenger.helpers.THREAD_NUMBER
|
|
import com.simplemobiletools.smsmessenger.models.ThreadDateTime
|
|
import com.simplemobiletools.smsmessenger.models.ThreadItem
|
|
import kotlinx.android.synthetic.main.activity_thread.*
|
|
|
|
class ThreadActivity : SimpleActivity() {
|
|
private val MIN_DATE_TIME_DIFF_SECS = 3600
|
|
|
|
override fun onCreate(savedInstanceState: Bundle?) {
|
|
super.onCreate(savedInstanceState)
|
|
setContentView(R.layout.activity_thread)
|
|
title = intent.getStringExtra(THREAD_NAME) ?: getString(R.string.app_launcher_name)
|
|
|
|
val threadID = intent.getIntExtra(THREAD_ID, 0)
|
|
val targetNumber = intent.getStringExtra(THREAD_NUMBER)
|
|
val messages = getMessages(threadID)
|
|
messages.sortBy { it.id }
|
|
|
|
val items = ArrayList<ThreadItem>()
|
|
var prevDateTime = 0
|
|
messages.forEach {
|
|
// do not show the date/time above every message, only if the difference between the 2 messages is at least MIN_DATE_TIME_DIFF_SECS
|
|
if (it.date - prevDateTime > MIN_DATE_TIME_DIFF_SECS) {
|
|
items.add(ThreadDateTime(it.date))
|
|
prevDateTime = it.date
|
|
}
|
|
items.add(it)
|
|
}
|
|
|
|
ThreadAdapter(this, items, thread_messages_list, thread_messages_fastscroller) {
|
|
|
|
}.apply {
|
|
thread_messages_list.adapter = this
|
|
}
|
|
|
|
thread_type_message.setColors(config.textColor, config.primaryColor, config.backgroundColor)
|
|
thread_send_message.applyColorFilter(config.textColor)
|
|
thread_send_message.setOnClickListener {
|
|
val msg = thread_type_message.value
|
|
}
|
|
}
|
|
}
|