Use MutableSharedFlow in QrCodeActivity

This commit is contained in:
Andrew 2024-06-18 12:21:38 +09:30
parent 51b0510edc
commit 5d07a58085

View File

@ -13,9 +13,9 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import kotlinx.coroutines.channels.Channel
import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.receiveAsFlow import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.asSharedFlow
import network.loki.messenger.R import network.loki.messenger.R
import org.session.libsession.utilities.Address import org.session.libsession.utilities.Address
import org.session.libsession.utilities.TextSecurePreferences import org.session.libsession.utilities.TextSecurePreferences
@ -38,7 +38,7 @@ private val TITLES = listOf(R.string.view, R.string.scan)
class QRCodeActivity : PassphraseRequiredActionBarActivity() { class QRCodeActivity : PassphraseRequiredActionBarActivity() {
private val errors = Channel<String>() private val errors = MutableSharedFlow<String>()
override fun onCreate(savedInstanceState: Bundle?, isReady: Boolean) { override fun onCreate(savedInstanceState: Bundle?, isReady: Boolean) {
super.onCreate(savedInstanceState, isReady) super.onCreate(savedInstanceState, isReady)
@ -47,7 +47,7 @@ class QRCodeActivity : PassphraseRequiredActionBarActivity() {
setComposeContent { setComposeContent {
Tabs( Tabs(
TextSecurePreferences.getLocalNumber(this)!!, TextSecurePreferences.getLocalNumber(this)!!,
errors.receiveAsFlow(), errors.asSharedFlow(),
onScan = ::onScan onScan = ::onScan
) )
} }
@ -55,7 +55,7 @@ class QRCodeActivity : PassphraseRequiredActionBarActivity() {
fun onScan(string: String) { fun onScan(string: String) {
if (!PublicKeyValidation.isValid(string)) { if (!PublicKeyValidation.isValid(string)) {
errors.trySend(getString(R.string.this_qr_code_does_not_contain_an_account_id)) errors.tryEmit(getString(R.string.this_qr_code_does_not_contain_an_account_id))
} else if (!isFinishing) { } else if (!isFinishing) {
val recipient = Recipient.from(this, Address.fromSerialized(string), false) val recipient = Recipient.from(this, Address.fromSerialized(string), false)
start<ConversationActivityV2> { start<ConversationActivityV2> {