Skip to content

Commit c94b885

Browse files
committed
Avoid resetting conversation name in tmp threads
1 parent 83cdf0f commit c94b885

File tree

3 files changed

+21
-8
lines changed

3 files changed

+21
-8
lines changed

app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/MainActivity.kt

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -298,6 +298,7 @@ class MainActivity : SimpleActivity() {
298298
.forEach { message ->
299299
messagesDB.insertOrUpdate(message.copy(threadId = newConversation.threadId))
300300
}
301+
insertOrUpdateConversation(newConversation, cachedConversation)
301302
}
302303
}
303304

app/src/main/kotlin/com/simplemobiletools/smsmessenger/activities/ThreadActivity.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -494,7 +494,7 @@ class ThreadActivity : SimpleActivity() {
494494
if (messages.isNotEmpty() && messages.all { it.isScheduled }) {
495495
val scheduledMessage = messages.last()
496496
val fakeThreadId = generateRandomId()
497-
createTemporaryThread(scheduledMessage, fakeThreadId)
497+
createTemporaryThread(scheduledMessage, fakeThreadId, conversation)
498498
updateScheduledMessagesThreadId(messages, fakeThreadId)
499499
threadId = fakeThreadId
500500
}
@@ -1198,7 +1198,7 @@ class ThreadActivity : SimpleActivity() {
11981198
if (messages.isEmpty()) {
11991199
// create a temporary thread until a real message is sent
12001200
threadId = message.threadId
1201-
createTemporaryThread(message, message.threadId)
1201+
createTemporaryThread(message, message.threadId, conversation)
12021202
}
12031203
val conversation = conversationsDB.getConversationWithThreadId(threadId)
12041204
if (conversation != null) {

app/src/main/kotlin/com/simplemobiletools/smsmessenger/extensions/Context.kt

Lines changed: 18 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -878,11 +878,17 @@ fun Context.subscriptionManagerCompat(): SubscriptionManager {
878878
return getSystemService(SubscriptionManager::class.java)
879879
}
880880

881-
fun Context.insertOrUpdateConversation(conversation: Conversation) {
882-
val cachedConv = conversationsDB.getConversationWithThreadId(conversation.threadId)
881+
fun Context.insertOrUpdateConversation(
882+
conversation: Conversation,
883+
cachedConv: Conversation? = conversationsDB.getConversationWithThreadId(conversation.threadId)
884+
) {
883885
val updatedConv = if (cachedConv != null) {
884886
val usesCustomTitle = cachedConv.usesCustomTitle
885-
val title = if (usesCustomTitle) cachedConv.title else conversation.title
887+
val title = if (usesCustomTitle) {
888+
cachedConv.title
889+
} else {
890+
conversation.title
891+
}
886892
conversation.copy(title = title, usesCustomTitle = usesCustomTitle)
887893
} else {
888894
conversation
@@ -900,21 +906,27 @@ fun Context.renameConversation(conversation: Conversation, newTitle: String): Co
900906
return updatedConv
901907
}
902908

903-
fun Context.createTemporaryThread(message: Message, threadId: Long = generateRandomId()) {
909+
fun Context.createTemporaryThread(message: Message, threadId: Long = generateRandomId(), cachedConv: Conversation?) {
904910
val simpleContactHelper = SimpleContactsHelper(this)
905911
val addresses = message.participants.getAddresses()
906912
val photoUri = if (addresses.size == 1) simpleContactHelper.getPhotoUriFromPhoneNumber(addresses.first()) else ""
913+
val title = if (cachedConv != null && cachedConv.usesCustomTitle) {
914+
cachedConv.title
915+
} else {
916+
message.participants.getThreadTitle()
917+
}
907918

908919
val conversation = Conversation(
909920
threadId = threadId,
910921
snippet = message.body,
911922
date = message.date,
912923
read = true,
913-
title = message.participants.getThreadTitle(),
924+
title = title,
914925
photoUri = photoUri,
915926
isGroupConversation = addresses.size > 1,
916927
phoneNumber = addresses.first(),
917-
isScheduled = true
928+
isScheduled = true,
929+
usesCustomTitle = cachedConv?.usesCustomTitle == true
918930
)
919931
try {
920932
conversationsDB.insertOrUpdate(conversation)

0 commit comments

Comments
 (0)