53 lines
1.5 KiB
Kotlin
53 lines
1.5 KiB
Kotlin
|
package org.thoughtcrime.securesms.groups.compose
|
||
|
|
||
|
import androidx.compose.foundation.layout.Column
|
||
|
import androidx.compose.foundation.lazy.LazyColumn
|
||
|
import androidx.compose.runtime.Composable
|
||
|
import androidx.compose.runtime.getValue
|
||
|
import androidx.compose.runtime.mutableStateOf
|
||
|
import androidx.compose.runtime.remember
|
||
|
import androidx.compose.runtime.setValue
|
||
|
import androidx.compose.ui.res.stringResource
|
||
|
import network.loki.messenger.R
|
||
|
import org.session.libsession.messaging.contacts.Contact
|
||
|
import org.thoughtcrime.securesms.home.search.getSearchName
|
||
|
import org.thoughtcrime.securesms.ui.NavigationBar
|
||
|
import org.thoughtcrime.securesms.ui.SearchBar
|
||
|
|
||
|
@Composable
|
||
|
fun SelectContacts(
|
||
|
contactListState: List<Contact>,
|
||
|
onBack: ()->Unit,
|
||
|
onClose: ()->Unit,
|
||
|
) {
|
||
|
|
||
|
var queryFilter by remember { mutableStateOf("") }
|
||
|
|
||
|
// May introduce more advanced filters
|
||
|
val filtered = if (queryFilter.isEmpty()) contactListState
|
||
|
else {
|
||
|
contactListState
|
||
|
.filter { contact ->
|
||
|
contact.getSearchName()
|
||
|
.contains(queryFilter)
|
||
|
}
|
||
|
}
|
||
|
|
||
|
Column {
|
||
|
NavigationBar(
|
||
|
title = stringResource(id = R.string.activity_create_closed_group_select_contacts),
|
||
|
onBack = onBack,
|
||
|
onClose = onClose
|
||
|
)
|
||
|
|
||
|
LazyColumn {
|
||
|
item {
|
||
|
// Search Bar
|
||
|
SearchBar(queryFilter, onValueChanged = { value -> queryFilter = value })
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
}
|
||
|
|