Add additional logging around message request interactions.

This commit is contained in:
Cody Henthorne
2026-06-04 13:59:47 -04:00
parent a6311c87c1
commit 757b521744
2 changed files with 43 additions and 15 deletions
@@ -2882,10 +2882,11 @@ class ConversationFragment :
requireContext(),
recipient,
{
val disabledInput = binding.conversationDisabledInput
messageRequestViewModel
.onReportSpam()
.doOnSubscribe { binding.conversationDisabledInput.showBusy() }
.doOnTerminate { binding.conversationDisabledInput.hideBusy() }
.doOnSubscribe { disabledInput.showBusy() }
.doOnTerminate { disabledInput.hideBusy() }
.subscribeBy {
Log.d(TAG, "report spam complete")
toast(R.string.ConversationFragment_reported_as_spam)
@@ -2895,10 +2896,11 @@ class ConversationFragment :
null
} else {
Runnable {
val disabledInput = binding.conversationDisabledInput
messageRequestViewModel
.onBlockAndReportSpam()
.doOnSubscribe { binding.conversationDisabledInput.showBusy() }
.doOnTerminate { binding.conversationDisabledInput.hideBusy() }
.doOnSubscribe { disabledInput.showBusy() }
.doOnTerminate { disabledInput.hideBusy() }
.subscribeBy { result ->
when (result) {
is Result.Success -> {
@@ -2957,7 +2959,6 @@ class ConversationFragment :
messageRequestViewModel
.onAccept()
.subscribeWithShowProgress("accept message request")
.addTo(disposables)
}
private fun onDeleteConversation() {
@@ -2976,8 +2977,9 @@ class ConversationFragment :
}
private fun Single<Result<Unit, GroupChangeFailureReason>>.subscribeWithShowProgress(logMessage: String): Disposable {
return doOnSubscribe { binding.conversationDisabledInput.showBusy() }
.doOnTerminate { binding.conversationDisabledInput.hideBusy() }
val disabledInput = binding.conversationDisabledInput
return doOnSubscribe { disabledInput.showBusy() }
.doOnTerminate { disabledInput.hideBusy() }
.subscribeBy { result ->
when (result) {
is Result.Success -> Log.d(TAG, "$logMessage complete")
@@ -16,6 +16,7 @@ import android.widget.TextView
import androidx.core.content.ContextCompat
import com.google.android.material.button.MaterialButton
import com.google.android.material.dialog.MaterialAlertDialogBuilder
import org.signal.core.util.logging.Log
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.messagerequests.MessageRequestState
import org.thoughtcrime.securesms.messagerequests.MessageRequestsBottomView
@@ -39,6 +40,10 @@ class DisabledInputView @JvmOverloads constructor(
defStyleAttr: Int = 0
) : FrameLayout(context, attrs, defStyleAttr) {
companion object {
private val TAG = Log.tag(DisabledInputView::class.java)
}
private val inflater: LayoutInflater by lazy { LayoutInflater.from(context) }
private var expiredOrUnauthorized: View? = null
@@ -93,30 +98,51 @@ class DisabledInputView @JvmOverloads constructor(
setWallpaperEnabled(recipient.hasWallpaper)
setAcceptOnClickListener {
Log.i(TAG, "[message-request] Accept tapped. isIndividual: ${messageRequestState.isIndividual}, isGroupV2Add: ${messageRequestState.isGroupV2Add}, listener present: ${listener != null}")
if (messageRequestState.isIndividual) {
val signalWillNever = context.getString(R.string.MessageRequestBottomView_signal_will_never)
val body = context.getString(R.string.MessageRequestBottomView_accept_request_body, signalWillNever)
MaterialAlertDialogBuilder(context)
.setTitle(R.string.MessageRequestBottomView_accept_request)
.setMessage(SpanUtil.boldSubstring(body, signalWillNever))
.setPositiveButton(R.string.MessageRequestBottomView_accept) { _, _ -> listener?.onAcceptMessageRequestClicked() }
.setNegativeButton(android.R.string.cancel, null)
.setCancelable(false)
.setPositiveButton(R.string.MessageRequestBottomView_accept) { _, _ ->
Log.i(TAG, "[message-request] Individual request confirmed. listener present: ${listener != null}")
listener?.onAcceptMessageRequestClicked()
}
.setNegativeButton(android.R.string.cancel) { _, _ -> Log.i(TAG, "[message-request] Individual request canceled.") }
.show()
} else if (messageRequestState.isGroupV2Add) {
MaterialAlertDialogBuilder(context)
.setTitle(R.string.MessageRequestBottomView_join_group)
.setMessage(R.string.MessageRequestBottomView_review_requests_carefully_groups)
.setPositiveButton(R.string.MessageRequestBottomView_join) { _, _ -> listener?.onAcceptMessageRequestClicked() }
.setNegativeButton(android.R.string.cancel, null)
.setCancelable(false)
.setPositiveButton(R.string.MessageRequestBottomView_join) { _, _ ->
Log.i(TAG, "[message-request] Group join confirmed. listener present: ${listener != null}")
listener?.onAcceptMessageRequestClicked()
}
.setNegativeButton(android.R.string.cancel) { _, _ -> Log.i(TAG, "[message-request] Group join canceled.") }
.show()
} else {
listener?.onAcceptMessageRequestClicked()
}
}
setDeleteOnClickListener { listener?.onDeleteClicked() }
setBlockOnClickListener { listener?.onBlockClicked() }
setUnblockOnClickListener { listener?.onUnblockClicked() }
setReportOnClickListener { listener?.onReportSpamClicked() }
setDeleteOnClickListener {
Log.i(TAG, "[message-request] Delete tapped. listener present: ${listener != null}")
listener?.onDeleteClicked()
}
setBlockOnClickListener {
Log.i(TAG, "[message-request] Block tapped. listener present: ${listener != null}")
listener?.onBlockClicked()
}
setUnblockOnClickListener {
Log.i(TAG, "[message-request] Unblock tapped. listener present: ${listener != null}")
listener?.onUnblockClicked()
}
setReportOnClickListener {
Log.i(TAG, "[message-request] Report tapped. listener present: ${listener != null}")
listener?.onReportSpamClicked()
}
}
)
}