kopia lustrzana https://github.com/ryukoposting/Signal-Android
Show recipient threadId in internal settings.
rodzic
c53f1fcecf
commit
33ac48e771
|
@ -7,6 +7,7 @@ import androidx.fragment.app.viewModels
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||||
|
import org.signal.core.util.concurrent.SignalExecutors
|
||||||
import org.thoughtcrime.securesms.R
|
import org.thoughtcrime.securesms.R
|
||||||
import org.thoughtcrime.securesms.components.settings.DSLConfiguration
|
import org.thoughtcrime.securesms.components.settings.DSLConfiguration
|
||||||
import org.thoughtcrime.securesms.components.settings.DSLSettingsAdapter
|
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.DSLSettingsText
|
||||||
import org.thoughtcrime.securesms.components.settings.configure
|
import org.thoughtcrime.securesms.components.settings.configure
|
||||||
import org.thoughtcrime.securesms.database.DatabaseFactory
|
import org.thoughtcrime.securesms.database.DatabaseFactory
|
||||||
|
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
|
||||||
import org.thoughtcrime.securesms.recipients.Recipient
|
import org.thoughtcrime.securesms.recipients.Recipient
|
||||||
import org.thoughtcrime.securesms.recipients.RecipientForeverObserver
|
import org.thoughtcrime.securesms.recipients.RecipientForeverObserver
|
||||||
import org.thoughtcrime.securesms.recipients.RecipientId
|
import org.thoughtcrime.securesms.recipients.RecipientId
|
||||||
|
@ -62,6 +64,13 @@ class InternalConversationSettingsFragment : DSLSettingsFragment(
|
||||||
onLongClick = { copyToClipboard(uuid) }
|
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(
|
textPref(
|
||||||
title = DSLSettingsText.from("Profile Name"),
|
title = DSLSettingsText.from("Profile Name"),
|
||||||
summary = DSLSettingsText.from("[${recipient.profileName.givenName}] [${state.recipient.profileName.familyName}]")
|
summary = DSLSettingsText.from("[${recipient.profileName.givenName}] [${state.recipient.profileName.familyName}]")
|
||||||
|
@ -162,17 +171,25 @@ class InternalConversationSettingsFragment : DSLSettingsFragment(
|
||||||
val recipientId: RecipientId
|
val recipientId: RecipientId
|
||||||
) : ViewModel(), RecipientForeverObserver {
|
) : ViewModel(), RecipientForeverObserver {
|
||||||
|
|
||||||
private val store = Store(InternalState(Recipient.resolved(recipientId)))
|
private val store = Store(InternalState(Recipient.resolved(recipientId), null))
|
||||||
|
|
||||||
val state = store.stateLiveData
|
val state = store.stateLiveData
|
||||||
val liveRecipient = Recipient.live(recipientId)
|
val liveRecipient = Recipient.live(recipientId)
|
||||||
|
|
||||||
init {
|
init {
|
||||||
liveRecipient.observeForever(this)
|
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) {
|
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() {
|
override fun onCleared() {
|
||||||
|
@ -187,6 +204,7 @@ class InternalConversationSettingsFragment : DSLSettingsFragment(
|
||||||
}
|
}
|
||||||
|
|
||||||
data class InternalState(
|
data class InternalState(
|
||||||
val recipient: Recipient
|
val recipient: Recipient,
|
||||||
|
val threadId: Long?
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
Ładowanie…
Reference in New Issue