mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-21 09:20:19 +01:00
Respect incognito keyboard setting in Compose UIs.
This commit is contained in:
committed by
Cody Henthorne
parent
d5150d44e3
commit
9f0f8b7cbc
@@ -41,11 +41,11 @@ import org.signal.core.ui.compose.AllDevicePreviews
|
||||
import org.signal.core.ui.compose.Dialogs
|
||||
import org.signal.core.ui.compose.DropdownMenus
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.BlockUnblockDialog
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActivity
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.conversation.NewConversationUiState.UserMessage
|
||||
import org.thoughtcrime.securesms.groups.ui.creategroup.CreateGroupActivity
|
||||
import org.thoughtcrime.securesms.recipients.Recipient
|
||||
|
||||
@@ -49,9 +49,9 @@ import androidx.compose.ui.unit.sp
|
||||
import org.signal.core.ui.compose.Buttons
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.compose.RoundCheckbox
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.polls.PollOption
|
||||
import org.thoughtcrime.securesms.polls.PollRecord
|
||||
@@ -206,6 +206,7 @@ private fun PollOption(
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
VoteState.PENDING_REMOVE -> {
|
||||
CircularProgressIndicator(
|
||||
modifier = Modifier.padding(top = 4.dp, end = 8.dp).size(24.dp),
|
||||
@@ -213,6 +214,7 @@ private fun PollOption(
|
||||
color = pollColors.checkbox
|
||||
)
|
||||
}
|
||||
|
||||
VoteState.ADDED,
|
||||
VoteState.REMOVED,
|
||||
VoteState.NONE -> {
|
||||
|
||||
@@ -22,11 +22,9 @@ import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.vector.ImageVector
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.res.vectorResource
|
||||
import androidx.compose.ui.text.input.ImeAction
|
||||
@@ -34,17 +32,15 @@ import androidx.compose.ui.text.input.KeyboardType
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.IconButtons.IconButton
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.compose.ProvideIncognitoKeyboard
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences
|
||||
|
||||
/**
|
||||
* A search input field for finding recipients.
|
||||
*
|
||||
* Replaces [org.thoughtcrime.securesms.components.ContactFilterView].
|
||||
*/
|
||||
@OptIn(ExperimentalMaterial3Api::class, ExperimentalComposeUiApi::class, ExperimentalComposeUiApi::class)
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
fun RecipientSearchBar(
|
||||
hint: String = stringResource(R.string.RecipientSearchBar__search_name_or_number),
|
||||
@@ -63,50 +59,46 @@ fun RecipientSearchBar(
|
||||
)
|
||||
}
|
||||
|
||||
ProvideIncognitoKeyboard(
|
||||
enabled = TextSecurePreferences.isIncognitoKeyboardEnabled(LocalContext.current)
|
||||
) {
|
||||
SearchBar(
|
||||
state = state,
|
||||
inputField = {
|
||||
TextField(
|
||||
value = query,
|
||||
onValueChange = onQueryChange,
|
||||
placeholder = { Text(hint) },
|
||||
singleLine = true,
|
||||
shape = SearchBarDefaults.inputFieldShape,
|
||||
colors = TextFieldDefaults.colors(
|
||||
unfocusedContainerColor = MaterialTheme.colorScheme.surfaceVariant,
|
||||
focusedContainerColor = MaterialTheme.colorScheme.surfaceVariant,
|
||||
disabledContainerColor = MaterialTheme.colorScheme.surfaceVariant,
|
||||
focusedIndicatorColor = Color.Transparent,
|
||||
disabledIndicatorColor = Color.Transparent,
|
||||
unfocusedIndicatorColor = Color.Transparent
|
||||
),
|
||||
keyboardOptions = keyboardOptions,
|
||||
keyboardActions = KeyboardActions(
|
||||
onSearch = { onSearch(query) }
|
||||
),
|
||||
trailingIcon = {
|
||||
val modifier = Modifier.padding(end = 4.dp)
|
||||
if (query.isNotEmpty()) {
|
||||
ClearQueryButton(
|
||||
onClearQuery = { onQueryChange("") },
|
||||
modifier = modifier
|
||||
)
|
||||
} else {
|
||||
KeyboardToggleButton(
|
||||
keyboardType = keyboardOptions.keyboardType,
|
||||
onKeyboardTypeChange = { keyboardOptions = keyboardOptions.copy(keyboardType = it) },
|
||||
modifier = modifier
|
||||
)
|
||||
}
|
||||
SearchBar(
|
||||
state = state,
|
||||
inputField = {
|
||||
TextField(
|
||||
value = query,
|
||||
onValueChange = onQueryChange,
|
||||
placeholder = { Text(hint) },
|
||||
singleLine = true,
|
||||
shape = SearchBarDefaults.inputFieldShape,
|
||||
colors = TextFieldDefaults.colors(
|
||||
unfocusedContainerColor = MaterialTheme.colorScheme.surfaceVariant,
|
||||
focusedContainerColor = MaterialTheme.colorScheme.surfaceVariant,
|
||||
disabledContainerColor = MaterialTheme.colorScheme.surfaceVariant,
|
||||
focusedIndicatorColor = Color.Transparent,
|
||||
disabledIndicatorColor = Color.Transparent,
|
||||
unfocusedIndicatorColor = Color.Transparent
|
||||
),
|
||||
keyboardOptions = keyboardOptions,
|
||||
keyboardActions = KeyboardActions(
|
||||
onSearch = { onSearch(query) }
|
||||
),
|
||||
trailingIcon = {
|
||||
val modifier = Modifier.padding(end = 4.dp)
|
||||
if (query.isNotEmpty()) {
|
||||
ClearQueryButton(
|
||||
onClearQuery = { onQueryChange("") },
|
||||
modifier = modifier
|
||||
)
|
||||
} else {
|
||||
KeyboardToggleButton(
|
||||
keyboardType = keyboardOptions.keyboardType,
|
||||
onKeyboardTypeChange = { keyboardOptions = keyboardOptions.copy(keyboardType = it) },
|
||||
modifier = modifier
|
||||
)
|
||||
}
|
||||
)
|
||||
},
|
||||
modifier = modifier
|
||||
)
|
||||
}
|
||||
}
|
||||
)
|
||||
},
|
||||
modifier = modifier
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
@@ -161,7 +153,7 @@ private fun ClearQueryButton(
|
||||
|
||||
@Composable
|
||||
@DayNightPreviews
|
||||
private fun RecipientSearchBarPreview() = SignalTheme {
|
||||
private fun RecipientSearchBarPreview() = Previews.Preview {
|
||||
RecipientSearchBar(
|
||||
query = "",
|
||||
onQueryChange = {},
|
||||
|
||||
@@ -48,6 +48,7 @@ import kotlinx.coroutines.launch
|
||||
import org.signal.core.ui.compose.BottomSheets
|
||||
import org.signal.core.ui.compose.Buttons
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.compose.ComposeBottomSheetDialogFragment
|
||||
@@ -99,7 +100,7 @@ private val tips = listOf(
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun SafetyTipsContentPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
SafetyTipsContent()
|
||||
}
|
||||
@@ -224,7 +225,7 @@ private fun SafetyTipsContent(forGroup: Boolean = false, modifier: Modifier = Mo
|
||||
@Preview(name = "Dark Theme", group = "screen", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun SafetyTipPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
SafetyTip(tips[0])
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user