Fix recipient search bar configuration for add to groups screen.

This commit is contained in:
jeffrey-signal
2025-11-25 15:32:02 -05:00
parent d2c3861ac7
commit 1a5163fc47
4 changed files with 40 additions and 19 deletions

View File

@@ -28,6 +28,7 @@ import androidx.compose.ui.focus.focusRequester
import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.platform.LocalDensity
import androidx.compose.ui.platform.LocalFocusManager
import androidx.compose.ui.res.stringResource
import androidx.compose.ui.unit.Dp
import androidx.compose.ui.unit.dp
import androidx.fragment.compose.rememberFragmentState
@@ -55,9 +56,12 @@ import org.thoughtcrime.securesms.recipients.PhoneNumber
import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.recipients.RecipientId
import org.thoughtcrime.securesms.recipients.ui.RecipientPicker.DisplayMode.Companion.flag
import org.thoughtcrime.securesms.recipients.ui.RecipientPicker.KeyboardType
import java.util.Optional
import java.util.function.Consumer
private typealias AndroidKeyboardType = androidx.compose.ui.text.input.KeyboardType
/**
* Provides a recipient search and selection UI.
*/
@@ -65,7 +69,9 @@ import java.util.function.Consumer
@OptIn(ExperimentalLayoutApi::class)
@Composable
fun RecipientPicker(
searchBarHint: String = stringResource(R.string.RecipientSearchBar__search_name_or_number),
searchQuery: String,
enabledKeyboardTypes: List<KeyboardType> = listOf(KeyboardType.Text, KeyboardType.Phone),
displayModes: Set<RecipientPicker.DisplayMode> = setOf(RecipientPicker.DisplayMode.ALL),
selectionLimits: SelectionLimits? = ContactSelectionArguments.Defaults.SELECTION_LIMITS,
includeRecents: Boolean = ContactSelectionArguments.Defaults.INCLUDE_RECENTS,
@@ -97,9 +103,11 @@ fun RecipientPicker(
}
RecipientSearchBar(
hint = searchBarHint,
query = searchQuery,
onQueryChange = { filter -> callbacks.listActions.onSearchQueryChanged(query = filter) },
onSearch = {},
enabledKeyboardTypes = enabledKeyboardTypes,
modifier = Modifier
.focusRequester(focusRequester)
.fillMaxWidth()
@@ -469,4 +477,11 @@ object RecipientPicker {
get() = fold(initial = 0) { acc, displayMode -> acc or displayMode.flag }
}
}
enum class KeyboardType(
val wrappedType: AndroidKeyboardType
) {
Text(wrappedType = AndroidKeyboardType.Text),
Phone(wrappedType = AndroidKeyboardType.Phone)
}
}