Hook in QR Scans in new media send flow.

This commit is contained in:
Alex Hart
2026-07-01 15:10:23 -04:00
committed by Michelle Tang
parent e5ed84f08c
commit 5372814468
7 changed files with 220 additions and 35 deletions
@@ -13,14 +13,22 @@ import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.ui.Modifier
import androidx.compose.ui.viewinterop.AndroidView
import androidx.fragment.compose.AndroidFragment
import androidx.lifecycle.lifecycleScope
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import org.signal.mediasend.HudCommand
import org.signal.mediasend.MediaSendActivityContract
import org.signal.mediasend.MediaSendScreen
import org.signal.mediasend.edit.LocalAddAMessageRowTextField
import org.thoughtcrime.securesms.PassphraseRequiredActivity
import org.thoughtcrime.securesms.components.emoji.EmojiTextView
import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity
import org.thoughtcrime.securesms.mediasend.v2.review.AddMessageDialogFragment
import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.recipients.RecipientId
import org.thoughtcrime.securesms.registration.olddevice.QuickTransferOldDeviceActivity
import org.thoughtcrime.securesms.util.CommunicationActions
/**
* Encapsulates the media send flow for v3.
@@ -64,8 +72,28 @@ class MediaSendV3Activity : PassphraseRequiredActivity() {
)
}
// TODO - QR HudCommands (GoToConversation, GoToLinkedDevices, GoToQuickTransfer) not yet wired up.
else -> Unit
is HudCommand.GoToConversation -> {
lifecycleScope.launch(Dispatchers.Default) {
val recipient = Recipient.resolved(RecipientId.from(it.recipientId.id))
withContext(Dispatchers.Main) {
CommunicationActions.startConversation(
this@MediaSendV3Activity,
recipient,
null
)
}
}
}
HudCommand.GoToLinkedDevices -> {
startActivity(AppSettingsActivity.linkedDevices(this))
finish()
}
is HudCommand.GoToQuickTransfer -> {
startActivity(QuickTransferOldDeviceActivity.intent(this, it.qrData))
finish()
}
}
}
)