mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 17:29:32 +01:00
@@ -136,15 +136,13 @@ class FindByActivity : PassphraseRequiredActivity() {
|
||||
onNavigationClick = { finishAfterTransition() },
|
||||
navigationIcon = ImageVector.vectorResource(id = R.drawable.symbol_arrow_start_24)
|
||||
) {
|
||||
val context = LocalContext.current
|
||||
|
||||
Content(
|
||||
paddingValues = it,
|
||||
state = state,
|
||||
onUserEntryChanged = viewModel::onUserEntryChanged,
|
||||
onNextClick = {
|
||||
lifecycleScope.launch {
|
||||
when (val result = viewModel.onNextClicked(context)) {
|
||||
when (val result = viewModel.onNextClicked()) {
|
||||
is FindByResult.Success -> {
|
||||
setResult(RESULT_OK, Intent().putExtra(RECIPIENT_ID, result.recipientId))
|
||||
finishAfterTransition()
|
||||
@@ -193,10 +191,6 @@ class FindByActivity : PassphraseRequiredActivity() {
|
||||
val body = if (state.mode == FindByMode.USERNAME) {
|
||||
stringResource(id = R.string.FindByActivity__s_is_not_a_valid_username, state.userEntry)
|
||||
} else {
|
||||
val formattedNumber = remember(state.userEntry) {
|
||||
val cleansed = state.userEntry.removePrefix(state.selectedCountry.countryCode.toString())
|
||||
E164Util.formatAsE164WithCountryCodeForDisplay(state.selectedCountry.countryCode.toString(), cleansed)
|
||||
}
|
||||
stringResource(id = R.string.FindByActivity__s_is_not_a_valid_phone_number, state.userEntry)
|
||||
}
|
||||
|
||||
|
||||
@@ -5,7 +5,6 @@
|
||||
|
||||
package org.thoughtcrime.securesms.recipients.ui.findby
|
||||
|
||||
import android.content.Context
|
||||
import androidx.annotation.WorkerThread
|
||||
import androidx.compose.runtime.State
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
@@ -43,13 +42,13 @@ class FindByViewModel(
|
||||
internalState.value = state.value.copy(selectedCountry = country)
|
||||
}
|
||||
|
||||
suspend fun onNextClicked(context: Context): FindByResult {
|
||||
suspend fun onNextClicked(): FindByResult {
|
||||
internalState.value = state.value.copy(isLookupInProgress = true)
|
||||
val findByResult = viewModelScope.async(context = Dispatchers.IO) {
|
||||
if (state.value.mode == FindByMode.USERNAME) {
|
||||
performUsernameLookup()
|
||||
} else {
|
||||
performPhoneLookup(context)
|
||||
performPhoneLookup()
|
||||
}
|
||||
}.await()
|
||||
|
||||
@@ -66,14 +65,14 @@ class FindByViewModel(
|
||||
}
|
||||
|
||||
return when (val result = UsernameRepository.fetchAciForUsername(usernameString = username.removePrefix("@"))) {
|
||||
UsernameRepository.UsernameAciFetchResult.NetworkError -> FindByResult.NotFound()
|
||||
UsernameRepository.UsernameAciFetchResult.NetworkError -> FindByResult.NetworkError
|
||||
UsernameRepository.UsernameAciFetchResult.NotFound -> FindByResult.NotFound()
|
||||
is UsernameRepository.UsernameAciFetchResult.Success -> FindByResult.Success(Recipient.externalUsername(result.aci, username).id)
|
||||
}
|
||||
}
|
||||
|
||||
@WorkerThread
|
||||
private fun performPhoneLookup(context: Context): FindByResult {
|
||||
private fun performPhoneLookup(): FindByResult {
|
||||
val stateSnapshot = state.value
|
||||
val countryCode = stateSnapshot.selectedCountry.countryCode
|
||||
val nationalNumber = stateSnapshot.userEntry.removePrefix(countryCode.toString())
|
||||
|
||||
Reference in New Issue
Block a user