mirror of
https://github.com/SimpleMobileTools/Simple-SMS-Messenger.git
synced 2025-06-05 21:49:22 +02:00
creating a helper function for fetching the thread id
This commit is contained in:
@ -50,8 +50,8 @@ class ThreadActivity : SimpleActivity() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private fun setupAdapter() {
|
private fun setupAdapter() {
|
||||||
val threadID = intent.getIntExtra(THREAD_ID, 0)
|
val threadId = intent.getIntExtra(THREAD_ID, 0)
|
||||||
val items = getThreadItems(threadID)
|
val items = getThreadItems(threadId)
|
||||||
|
|
||||||
runOnUiThread {
|
runOnUiThread {
|
||||||
val adapter = ThreadAdapter(this, items, thread_messages_list, thread_messages_fastscroller) {}
|
val adapter = ThreadAdapter(this, items, thread_messages_list, thread_messages_fastscroller) {}
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
package com.simplemobiletools.smsmessenger.extensions
|
package com.simplemobiletools.smsmessenger.extensions
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import android.content.ContentValues
|
import android.content.ContentValues
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.database.Cursor
|
import android.database.Cursor
|
||||||
@ -9,6 +10,7 @@ import android.provider.Telephony
|
|||||||
import android.text.TextUtils
|
import android.text.TextUtils
|
||||||
import com.simplemobiletools.commons.extensions.*
|
import com.simplemobiletools.commons.extensions.*
|
||||||
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
|
import com.simplemobiletools.commons.helpers.PERMISSION_READ_CONTACTS
|
||||||
|
import com.simplemobiletools.commons.helpers.isMarshmallowPlus
|
||||||
import com.simplemobiletools.smsmessenger.helpers.Config
|
import com.simplemobiletools.smsmessenger.helpers.Config
|
||||||
import com.simplemobiletools.smsmessenger.models.Message
|
import com.simplemobiletools.smsmessenger.models.Message
|
||||||
|
|
||||||
@ -160,7 +162,7 @@ fun Context.getNameFromPhoneNumber(number: String): Int? {
|
|||||||
return null
|
return null
|
||||||
}
|
}
|
||||||
|
|
||||||
fun Context.insertNewSMS(address: String, subject: String, body: String, date: Long, threadID: Long) {
|
fun Context.insertNewSMS(address: String, subject: String, body: String, date: Long, threadId: Long) {
|
||||||
val uri = Telephony.Sms.CONTENT_URI
|
val uri = Telephony.Sms.CONTENT_URI
|
||||||
val contentValues = ContentValues().apply {
|
val contentValues = ContentValues().apply {
|
||||||
put(Telephony.Sms.ADDRESS, address)
|
put(Telephony.Sms.ADDRESS, address)
|
||||||
@ -168,7 +170,7 @@ fun Context.insertNewSMS(address: String, subject: String, body: String, date: L
|
|||||||
put(Telephony.Sms.BODY, body)
|
put(Telephony.Sms.BODY, body)
|
||||||
put(Telephony.Sms.DATE, date)
|
put(Telephony.Sms.DATE, date)
|
||||||
put(Telephony.Sms.READ, 0)
|
put(Telephony.Sms.READ, 0)
|
||||||
put(Telephony.Sms.THREAD_ID, threadID)
|
put(Telephony.Sms.THREAD_ID, threadId)
|
||||||
put(Telephony.Sms.TYPE, Telephony.Sms.MESSAGE_TYPE_INBOX)
|
put(Telephony.Sms.TYPE, Telephony.Sms.MESSAGE_TYPE_INBOX)
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -198,3 +200,12 @@ fun Context.markSMSRead(id: Int) {
|
|||||||
val selectionArgs = arrayOf(id.toString(), "0")
|
val selectionArgs = arrayOf(id.toString(), "0")
|
||||||
contentResolver.update(uri, contentValues, selection, selectionArgs)
|
contentResolver.update(uri, contentValues, selection, selectionArgs)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@SuppressLint("NewApi")
|
||||||
|
fun Context.getThreadId(address: String): Long {
|
||||||
|
return if (isMarshmallowPlus()) {
|
||||||
|
Telephony.Threads.getOrCreateThreadId(this, address)
|
||||||
|
} else {
|
||||||
|
0
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ -19,10 +19,10 @@ import android.widget.TextView
|
|||||||
import androidx.core.app.NotificationCompat
|
import androidx.core.app.NotificationCompat
|
||||||
import com.simplemobiletools.commons.extensions.getAdjustedPrimaryColor
|
import com.simplemobiletools.commons.extensions.getAdjustedPrimaryColor
|
||||||
import com.simplemobiletools.commons.extensions.getContrastColor
|
import com.simplemobiletools.commons.extensions.getContrastColor
|
||||||
import com.simplemobiletools.commons.helpers.isMarshmallowPlus
|
|
||||||
import com.simplemobiletools.commons.helpers.isOreoPlus
|
import com.simplemobiletools.commons.helpers.isOreoPlus
|
||||||
import com.simplemobiletools.smsmessenger.R
|
import com.simplemobiletools.smsmessenger.R
|
||||||
import com.simplemobiletools.smsmessenger.activities.ThreadActivity
|
import com.simplemobiletools.smsmessenger.activities.ThreadActivity
|
||||||
|
import com.simplemobiletools.smsmessenger.extensions.getThreadId
|
||||||
import com.simplemobiletools.smsmessenger.extensions.insertNewSMS
|
import com.simplemobiletools.smsmessenger.extensions.insertNewSMS
|
||||||
import com.simplemobiletools.smsmessenger.helpers.THREAD_ID
|
import com.simplemobiletools.smsmessenger.helpers.THREAD_ID
|
||||||
import com.simplemobiletools.smsmessenger.helpers.THREAD_NAME
|
import com.simplemobiletools.smsmessenger.helpers.THREAD_NAME
|
||||||
@ -30,7 +30,6 @@ import com.simplemobiletools.smsmessenger.helpers.THREAD_NUMBER
|
|||||||
import com.simplemobiletools.smsmessenger.helpers.refreshMessages
|
import com.simplemobiletools.smsmessenger.helpers.refreshMessages
|
||||||
|
|
||||||
class SmsReceiver : BroadcastReceiver() {
|
class SmsReceiver : BroadcastReceiver() {
|
||||||
@SuppressLint("NewApi")
|
|
||||||
override fun onReceive(context: Context, intent: Intent) {
|
override fun onReceive(context: Context, intent: Intent) {
|
||||||
val messages = Telephony.Sms.Intents.getMessagesFromIntent(intent)
|
val messages = Telephony.Sms.Intents.getMessagesFromIntent(intent)
|
||||||
messages.forEach {
|
messages.forEach {
|
||||||
@ -38,14 +37,9 @@ class SmsReceiver : BroadcastReceiver() {
|
|||||||
val subject = it.pseudoSubject
|
val subject = it.pseudoSubject
|
||||||
val body = it.messageBody
|
val body = it.messageBody
|
||||||
val date = it.timestampMillis
|
val date = it.timestampMillis
|
||||||
val threadID = if (isMarshmallowPlus()) {
|
val threadId = context.getThreadId(address)
|
||||||
Telephony.Threads.getOrCreateThreadId(context, address)
|
context.insertNewSMS(address, subject, body, date, threadId)
|
||||||
} else {
|
showNotification(context, address, body, threadId.toInt())
|
||||||
0
|
|
||||||
}
|
|
||||||
|
|
||||||
context.insertNewSMS(address, subject, body, date, threadID)
|
|
||||||
showNotification(context, address, body, threadID.toInt())
|
|
||||||
}
|
}
|
||||||
|
|
||||||
refreshMessages()
|
refreshMessages()
|
||||||
|
Reference in New Issue
Block a user