From 33ac48e77159f6a6fe2b7f16669b2e2d307ed0b0 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Thu, 30 Sep 2021 17:03:51 -0400 Subject: [PATCH] Show recipient threadId in internal settings. --- .../InternalConversationSettingsFragment.kt | 24 ++++++++++++++++--- 1 file changed, 21 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt index f2fb01aca..e1d799cde 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/components/settings/conversation/InternalConversationSettingsFragment.kt @@ -7,6 +7,7 @@ import androidx.fragment.app.viewModels import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModelProvider import com.google.android.material.dialog.MaterialAlertDialogBuilder +import org.signal.core.util.concurrent.SignalExecutors import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.settings.DSLConfiguration import org.thoughtcrime.securesms.components.settings.DSLSettingsAdapter @@ -14,6 +15,7 @@ import org.thoughtcrime.securesms.components.settings.DSLSettingsFragment import org.thoughtcrime.securesms.components.settings.DSLSettingsText import org.thoughtcrime.securesms.components.settings.configure import org.thoughtcrime.securesms.database.DatabaseFactory +import org.thoughtcrime.securesms.dependencies.ApplicationDependencies import org.thoughtcrime.securesms.recipients.Recipient import org.thoughtcrime.securesms.recipients.RecipientForeverObserver import org.thoughtcrime.securesms.recipients.RecipientId @@ -62,6 +64,13 @@ class InternalConversationSettingsFragment : DSLSettingsFragment( onLongClick = { copyToClipboard(uuid) } ) + val threadId: String = if (state.threadId != null) state.threadId.toString() else "N/A" + longClickPref( + title = DSLSettingsText.from("ThreadId"), + summary = DSLSettingsText.from(threadId), + onLongClick = { copyToClipboard(threadId) } + ) + textPref( title = DSLSettingsText.from("Profile Name"), summary = DSLSettingsText.from("[${recipient.profileName.givenName}] [${state.recipient.profileName.familyName}]") @@ -162,17 +171,25 @@ class InternalConversationSettingsFragment : DSLSettingsFragment( val recipientId: RecipientId ) : ViewModel(), RecipientForeverObserver { - private val store = Store(InternalState(Recipient.resolved(recipientId))) + private val store = Store(InternalState(Recipient.resolved(recipientId), null)) val state = store.stateLiveData val liveRecipient = Recipient.live(recipientId) init { liveRecipient.observeForever(this) + + SignalExecutors.BOUNDED.execute { + val threadId: Long? = DatabaseFactory.getThreadDatabase(ApplicationDependencies.getApplication()).getThreadIdFor(recipientId) + store.update { state -> state.copy(threadId = threadId) } + } } override fun onRecipientChanged(recipient: Recipient) { - store.update { InternalState(recipient) } + SignalExecutors.BOUNDED.execute { + val threadId: Long? = DatabaseFactory.getThreadDatabase(ApplicationDependencies.getApplication()).getThreadIdFor(recipient.id) + store.update { InternalState(recipient, threadId) } + } } override fun onCleared() { @@ -187,6 +204,7 @@ class InternalConversationSettingsFragment : DSLSettingsFragment( } data class InternalState( - val recipient: Recipient + val recipient: Recipient, + val threadId: Long? ) }