From a054fae758f47a6a9444a51fbbb95b1aa3bd02e8 Mon Sep 17 00:00:00 2001 From: Andrew Date: Wed, 8 May 2024 21:09:06 +0930 Subject: [PATCH] Add strings and make qr scan call callback --- .../securesms/dms/NewMessageFragment.kt | 4 +-- .../onboarding/LinkDeviceActivity.kt | 29 ++++++++++++------- .../RecoveryPasswordActivity.kt | 4 --- .../securesms/preferences/QRCodeActivity.kt | 10 +++---- .../securesms/preferences/SettingsActivity.kt | 1 - .../securesms/ui/components/QR.kt | 2 +- .../securesms/ui/components/Text.kt | 2 ++ app/src/main/res/values/strings.xml | 3 ++ 8 files changed, 31 insertions(+), 24 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/dms/NewMessageFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/dms/NewMessageFragment.kt index 0e29f0feb2..f16147bf19 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/dms/NewMessageFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/dms/NewMessageFragment.kt @@ -122,12 +122,12 @@ private fun NewMessage( val pagerState = rememberPagerState { TITLES.size } Column(modifier = Modifier.background(MaterialTheme.colors.primarySurface)) { - AppBar(stringResource(R.string.messageNew), onClose = { onClose() }, onBack = { onBack() }) + AppBar(stringResource(R.string.messageNew), onClose = onClose, onBack = onBack) SessionTabRow(pagerState, TITLES) HorizontalPager(pagerState) { when (TITLES[it]) { R.string.enter_account_id -> EnterAccountId(state, callbacks, onHelp) - R.string.qrScan -> MaybeScanQrCode() + R.string.qrScan -> MaybeScanQrCode(onScan = callbacks::onScan) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/onboarding/LinkDeviceActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/onboarding/LinkDeviceActivity.kt index 78939adb4d..1e6b9456d7 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/onboarding/LinkDeviceActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/onboarding/LinkDeviceActivity.kt @@ -10,6 +10,7 @@ import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.layout.Column import androidx.compose.foundation.layout.Row import androidx.compose.foundation.layout.Spacer +import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.width @@ -78,7 +79,7 @@ class LinkDeviceActivity : BaseActionBarActivity() { setContent { val state by viewModel.stateFlow.collectAsState() AppTheme { - LoadAccountScreen(state, viewModel::onChange, viewModel::onContinue) + LoadAccountScreen(state, viewModel::onChange, viewModel::onContinue, viewModel::scan) } } }.let(::setContentView) @@ -86,7 +87,12 @@ class LinkDeviceActivity : BaseActionBarActivity() { @OptIn(ExperimentalFoundationApi::class) @Composable - fun LoadAccountScreen(state: LinkDeviceState, onChange: (String) -> Unit = {}, onContinue: () -> Unit = {}) { + fun LoadAccountScreen( + state: LinkDeviceState, + onChange: (String) -> Unit = {}, + onContinue: () -> Unit = {}, + onScan: (String) -> Unit = {} + ) { val pagerState = rememberPagerState { TITLES.size } Column { @@ -99,7 +105,7 @@ class LinkDeviceActivity : BaseActionBarActivity() { when (title) { R.string.sessionRecoveryPassword -> RecoveryPassword(state, onChange, onContinue) - R.string.qrScan -> MaybeScanQrCode(viewModel.qrErrorsFlow) + R.string.qrScan -> MaybeScanQrCode(viewModel.qrErrorsFlow, onScan = onScan) } } } @@ -128,14 +134,15 @@ fun RecoveryPassword(state: LinkDeviceState, onChange: (String) -> Unit = {}, on Text(stringResource(R.string.activity_link_enter_your_recovery_password_to_load_your_account_if_you_haven_t_saved_it_you_can_find_it_in_your_app_settings)) Spacer(Modifier.size(24.dp)) SessionOutlinedTextField( - text = state.recoveryPhrase, - modifier = Modifier - .contentDescription(R.string.AccessibilityId_recovery_phrase_input) - .padding(horizontal = 64.dp), - placeholder = stringResource(R.string.recoveryPasswordEnter), - onChange = onChange, - onContinue = onContinue, - error = state.error + text = state.recoveryPhrase, + modifier = Modifier + .fillMaxWidth() + .contentDescription(R.string.AccessibilityId_recovery_phrase_input) + .padding(horizontal = 64.dp), + placeholder = stringResource(R.string.recoveryPasswordEnter), + onChange = onChange, + onContinue = onContinue, + error = state.error ) Spacer(Modifier.size(12.dp)) state.error?.let { diff --git a/app/src/main/java/org/thoughtcrime/securesms/onboarding/recoverypassword/RecoveryPasswordActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/onboarding/recoverypassword/RecoveryPasswordActivity.kt index ccd6a60fbb..691f27c98e 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/onboarding/recoverypassword/RecoveryPasswordActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/onboarding/recoverypassword/RecoveryPasswordActivity.kt @@ -17,8 +17,6 @@ import androidx.compose.foundation.verticalScroll import androidx.compose.material.MaterialTheme import androidx.compose.material.Text import androidx.compose.runtime.Composable -import androidx.compose.runtime.CompositionLocalProvider -import androidx.compose.runtime.MutableState import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf import androidx.compose.runtime.remember @@ -36,12 +34,10 @@ import org.thoughtcrime.securesms.BaseActionBarActivity import org.thoughtcrime.securesms.showSessionDialog import org.thoughtcrime.securesms.ui.AppTheme import org.thoughtcrime.securesms.ui.CellWithPaddingAndMargin -import org.thoughtcrime.securesms.ui.LocalButtonColor import org.thoughtcrime.securesms.ui.PreviewTheme import org.thoughtcrime.securesms.ui.SessionShieldIcon import org.thoughtcrime.securesms.ui.ThemeResPreviewParameterProvider import org.thoughtcrime.securesms.ui.classicDarkColors -import org.thoughtcrime.securesms.ui.colorDestructive import org.thoughtcrime.securesms.ui.components.DestructiveButtons import org.thoughtcrime.securesms.ui.components.OutlineButton import org.thoughtcrime.securesms.ui.components.QrImage diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/QRCodeActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/preferences/QRCodeActivity.kt index 72745a820d..34da6c8665 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/QRCodeActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/QRCodeActivity.kt @@ -32,18 +32,18 @@ import org.thoughtcrime.securesms.util.start private val TITLES = listOf(R.string.view, R.string.scan) -class QRCodeActivity : PassphraseRequiredActionBarActivity(), ScanQRCodeWrapperFragmentDelegate { +class QRCodeActivity : PassphraseRequiredActionBarActivity() { override fun onCreate(savedInstanceState: Bundle?, isReady: Boolean) { super.onCreate(savedInstanceState, isReady) supportActionBar!!.title = resources.getString(R.string.activity_qr_code_title) setComposeContent { - Tabs(TextSecurePreferences.getLocalNumber(this)!!) + Tabs(TextSecurePreferences.getLocalNumber(this)!!, onScan = ::handleQRCodeScanned) } } - override fun handleQRCodeScanned(string: String) { + fun handleQRCodeScanned(string: String) { if (!PublicKeyValidation.isValid(string)) { return Toast.makeText(this, R.string.invalid_session_id, Toast.LENGTH_SHORT).show() } @@ -60,7 +60,7 @@ class QRCodeActivity : PassphraseRequiredActionBarActivity(), ScanQRCodeWrapperF @OptIn(ExperimentalFoundationApi::class) @Composable -fun Tabs(sessionId: String) { +fun Tabs(sessionId: String, onScan: (String) -> Unit) { val pagerState = rememberPagerState { TITLES.size } Column { @@ -71,7 +71,7 @@ fun Tabs(sessionId: String) { ) { page -> when (TITLES[page]) { R.string.view -> QrPage(sessionId) - R.string.scan -> MaybeScanQrCode() + R.string.scan -> MaybeScanQrCode(onScan = onScan) } } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/preferences/SettingsActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/preferences/SettingsActivity.kt index 7a1b27d227..4013fbd735 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/preferences/SettingsActivity.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/preferences/SettingsActivity.kt @@ -64,7 +64,6 @@ import org.session.libsession.utilities.TextSecurePreferences import org.session.libsession.utilities.recipients.Recipient import org.session.libsession.utilities.truncateIdForDisplay import org.session.libsignal.utilities.Log -import org.session.libsignal.utilities.getProperty import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity import org.thoughtcrime.securesms.avatar.AvatarSelection import org.thoughtcrime.securesms.components.ProfilePictureView diff --git a/app/src/main/java/org/thoughtcrime/securesms/ui/components/QR.kt b/app/src/main/java/org/thoughtcrime/securesms/ui/components/QR.kt index 29aaeb4b9a..db248aee8d 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ui/components/QR.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/ui/components/QR.kt @@ -67,7 +67,7 @@ fun MaybeScanQrCode( data = Uri.fromParts("package", packageName, null) }.let(::startActivity) } }, - onScan: (String) -> Unit = {} + onScan: (String) -> Unit ) { Box(modifier = Modifier.fillMaxSize()) { LocalSoftwareKeyboardController.current?.hide() diff --git a/app/src/main/java/org/thoughtcrime/securesms/ui/components/Text.kt b/app/src/main/java/org/thoughtcrime/securesms/ui/components/Text.kt index 0a2fe09eea..d52f8c0dbf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/ui/components/Text.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/ui/components/Text.kt @@ -1,6 +1,7 @@ package org.thoughtcrime.securesms.ui.components import androidx.compose.foundation.layout.Column +import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.padding import androidx.compose.foundation.shape.RoundedCornerShape import androidx.compose.foundation.text.KeyboardActions @@ -26,6 +27,7 @@ fun SessionOutlinedTextField( Column(modifier = modifier) { OutlinedTextField( value = text, + modifier = Modifier.fillMaxWidth(), onValueChange = { onChange(it) }, placeholder = { Text(placeholder) }, colors = outlinedTextFieldColors(error != null), diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index dfe29aec40..d8006cddcd 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -1122,4 +1122,7 @@ Enter account ID or ONS Start a new conversation by entering your friend\'s Account ID, ONS or scanning their QR code. New Message + Unknown + Contacts + Conversations