mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-19 16:19:33 +01:00
Respect incognito keyboard setting in Compose UIs.
This commit is contained in:
committed by
Cody Henthorne
parent
d5150d44e3
commit
9f0f8b7cbc
@@ -82,7 +82,6 @@ import kotlinx.coroutines.flow.distinctUntilChangedBy
|
||||
import kotlinx.coroutines.flow.filter
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.concurrent.LifecycleDisposable
|
||||
import org.signal.core.util.getSerializableCompat
|
||||
import org.signal.core.util.logging.Log
|
||||
@@ -105,6 +104,7 @@ import org.thoughtcrime.securesms.components.settings.app.subscription.GooglePay
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.GooglePayRepository
|
||||
import org.thoughtcrime.securesms.components.voice.VoiceNoteMediaController
|
||||
import org.thoughtcrime.securesms.components.voice.VoiceNoteMediaControllerOwner
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.conversation.ConversationIntents
|
||||
import org.thoughtcrime.securesms.conversation.NewConversationActivity
|
||||
import org.thoughtcrime.securesms.conversation.v2.MotionEventRelay
|
||||
|
||||
@@ -27,7 +27,6 @@ import androidx.compose.ui.text.withStyle
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.BiometricDeviceAuthentication
|
||||
import org.thoughtcrime.securesms.BiometricDeviceLockContract
|
||||
@@ -35,6 +34,7 @@ import org.thoughtcrime.securesms.DevicePinAuthEducationSheet
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActivity
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.backup.v2.ui.subscription.EnterKeyScreen
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.util.CommunicationActions
|
||||
import kotlin.random.Random
|
||||
|
||||
@@ -33,8 +33,8 @@ import androidx.core.os.bundleOf
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import org.signal.core.ui.compose.BottomSheets
|
||||
import org.signal.core.ui.compose.Buttons
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Texts
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.getParcelableCompat
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.badges.models.Badge
|
||||
@@ -42,6 +42,7 @@ import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.BadgeImage112
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.manage.ManageDonationsFragment
|
||||
import org.thoughtcrime.securesms.compose.ComposeBottomSheetDialogFragment
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.database.InAppPaymentTable
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.util.BottomSheetUtil
|
||||
@@ -107,7 +108,7 @@ class MonthlyDonationCanceledBottomSheetDialogFragment : ComposeBottomSheetDialo
|
||||
@Preview(name = "Dark Theme", group = "ShortName", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
fun MonthlyDonationCanceledPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
MonthlyDonationCanceled(
|
||||
badge = Badge(
|
||||
|
||||
@@ -15,8 +15,8 @@ import androidx.compose.ui.platform.ViewCompositionStrategy
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
|
||||
/**
|
||||
* A class that can be instantiated with a list of [Flow]s that produce [Banner]s, then applied to a [ComposeView], typically within a [Fragment].
|
||||
|
||||
@@ -13,9 +13,9 @@ import androidx.activity.enableEdgeToEdge
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.core.os.bundleOf
|
||||
import androidx.fragment.app.FragmentActivity
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.getParcelableExtraCompat
|
||||
import org.thoughtcrime.securesms.calls.links.EditCallLinkNameDialogFragment
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.main.MainNavigationDetailLocation
|
||||
import org.thoughtcrime.securesms.main.MainNavigationListLocation
|
||||
import org.thoughtcrime.securesms.main.MainNavigationRouter
|
||||
|
||||
@@ -34,10 +34,10 @@ import kotlinx.coroutines.launch
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.Dialogs
|
||||
import org.signal.core.ui.compose.Dividers
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Rows
|
||||
import org.signal.core.ui.compose.Scaffolds
|
||||
import org.signal.core.ui.compose.Snackbars
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.concurrent.LifecycleDisposable
|
||||
import org.signal.ringrtc.CallLinkState.Restrictions
|
||||
import org.thoughtcrime.securesms.R
|
||||
@@ -344,7 +344,7 @@ private fun CallLinkDetailsScreenPreview() {
|
||||
)
|
||||
}
|
||||
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
CallLinkDetailsScreen(
|
||||
CallLinkDetailsState(
|
||||
false,
|
||||
|
||||
@@ -35,12 +35,12 @@ 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.PassphraseRequiredActivity
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.calls.new.NewCallUiState.CallType
|
||||
import org.thoughtcrime.securesms.calls.new.NewCallUiState.UserMessage
|
||||
import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.recipients.ui.RecipientLookupFailureMessage
|
||||
import org.thoughtcrime.securesms.recipients.ui.RecipientPicker
|
||||
import org.thoughtcrime.securesms.recipients.ui.RecipientPickerCallbacks
|
||||
|
||||
@@ -16,7 +16,7 @@ import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.setValue
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.platform.AbstractComposeView
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,46 +0,0 @@
|
||||
/*
|
||||
* Copyright 2025 Signal Messenger, LLC
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
package org.thoughtcrime.securesms.components.compose
|
||||
|
||||
import android.os.Build
|
||||
import android.view.inputmethod.EditorInfo
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.ExperimentalComposeUiApi
|
||||
import androidx.compose.ui.platform.InterceptPlatformTextInput
|
||||
import androidx.compose.ui.platform.PlatformTextInputMethodRequest
|
||||
|
||||
/**
|
||||
* When [enabled]=true, this function sets the [EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING] flag for all text fields within its content to enable the
|
||||
* incognito keyboard.
|
||||
*
|
||||
* This workaround is needed until it's possible to configure granular IME options for a [TextField].
|
||||
* https://issuetracker.google.com/issues/359257538
|
||||
*/
|
||||
@OptIn(ExperimentalComposeUiApi::class)
|
||||
@Composable
|
||||
fun ProvideIncognitoKeyboard(
|
||||
enabled: Boolean,
|
||||
content: @Composable () -> Unit
|
||||
) {
|
||||
if (enabled) {
|
||||
InterceptPlatformTextInput(
|
||||
interceptor = { request, nextHandler ->
|
||||
val modifiedRequest = PlatformTextInputMethodRequest { outAttributes ->
|
||||
request.createInputConnection(outAttributes).also {
|
||||
if (Build.VERSION.SDK_INT >= 26) {
|
||||
outAttributes.imeOptions = outAttributes.imeOptions or EditorInfo.IME_FLAG_NO_PERSONALIZED_LEARNING
|
||||
}
|
||||
}
|
||||
}
|
||||
nextHandler.startInputMethod(modifiedRequest)
|
||||
}
|
||||
) {
|
||||
content()
|
||||
}
|
||||
} else {
|
||||
content()
|
||||
}
|
||||
}
|
||||
@@ -37,7 +37,7 @@ import androidx.compose.ui.semantics.semantics
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.thoughtcrime.securesms.R
|
||||
|
||||
/**
|
||||
@@ -105,12 +105,12 @@ fun RoundCheckbox(
|
||||
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun RoundCheckboxCheckedPreview() = SignalTheme {
|
||||
private fun RoundCheckboxCheckedPreview() = Previews.Preview {
|
||||
RoundCheckbox(checked = true, onCheckedChange = {})
|
||||
}
|
||||
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun RoundCheckboxUncheckedPreview() = SignalTheme {
|
||||
private fun RoundCheckboxUncheckedPreview() = Previews.Preview {
|
||||
RoundCheckbox(checked = false, onCheckedChange = {})
|
||||
}
|
||||
|
||||
@@ -50,8 +50,8 @@ import androidx.navigation.fragment.findNavController
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Scaffolds
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.settings.app.appearance.appicon.util.AppIconPreset
|
||||
@@ -309,7 +309,7 @@ fun CaveatWarning(onClick: () -> Unit, modifier: Modifier = Modifier) {
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun MainScreenPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
IconSelectionScreen(AppIconPreset.DEFAULT, onItemConfirmed = {}, onWarningClick = {})
|
||||
}
|
||||
|
||||
@@ -23,8 +23,8 @@ import io.reactivex.rxjava3.android.schedulers.AndroidSchedulers
|
||||
import io.reactivex.rxjava3.core.Single
|
||||
import io.reactivex.rxjava3.schedulers.Schedulers
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Scaffolds
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.compose.ComposeFragment
|
||||
@@ -75,7 +75,7 @@ fun LicenseScreen(licenseTextLines: List<String>, modifier: Modifier = Modifier)
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
fun LicenseFragmentPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
LicenseScreen(listOf("Lorem ipsum", "Delor"))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -27,9 +27,9 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.fragment.app.viewModels
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import org.signal.core.ui.compose.Buttons
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Rows
|
||||
import org.signal.core.ui.compose.Scaffolds
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.settings.app.internal.donor.DonationErrorValueCodeSelector
|
||||
import org.thoughtcrime.securesms.components.settings.app.internal.donor.DonationErrorValueTypeSelector
|
||||
@@ -80,7 +80,7 @@ class InternalPendingOneTimeDonationConfigurationFragment : ComposeFragment() {
|
||||
@Preview
|
||||
@Composable
|
||||
private fun ContentPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Content(
|
||||
state = PendingOneTimeDonation.Builder().error(DonationErrorValue()).build(),
|
||||
|
||||
@@ -15,9 +15,9 @@ import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Rows
|
||||
import org.signal.core.ui.compose.Scaffolds
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.compose.ComposeFragment
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.stories.dialogs.StoryDialogs
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme
|
||||
|
||||
|
||||
@@ -19,8 +19,8 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.navigation.fragment.findNavController
|
||||
import org.signal.core.ui.compose.Buttons
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Rows
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.components.settings.app.internal.donor.DonationErrorValueCodeSelector
|
||||
import org.thoughtcrime.securesms.components.settings.app.internal.donor.DonationErrorValueTypeSelector
|
||||
import org.thoughtcrime.securesms.compose.ComposeFragment
|
||||
@@ -48,7 +48,7 @@ class InternalTerminalDonationConfigurationFragment : ComposeFragment() {
|
||||
@Preview
|
||||
@Composable
|
||||
private fun InternalTerminalDonationConfigurationContentPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
InternalTerminalDonationConfigurationContent(
|
||||
onAddClick = {}
|
||||
|
||||
@@ -25,12 +25,12 @@ import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Rows
|
||||
import org.signal.core.ui.compose.Scaffolds
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.donations.StripeDeclineCode
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.badges.models.Badge
|
||||
import org.thoughtcrime.securesms.components.settings.app.subscription.errors.UnexpectedSubscriptionCancellation
|
||||
import org.thoughtcrime.securesms.compose.ComposeFragment
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme
|
||||
|
||||
/**
|
||||
|
||||
@@ -30,7 +30,7 @@ import androidx.fragment.app.viewModels
|
||||
import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.thoughtcrime.securesms.compose.ComposeFragment
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId
|
||||
import org.thoughtcrime.securesms.recipients.ui.bottomsheet.RecipientBottomSheetDialogFragment
|
||||
@@ -110,7 +110,7 @@ fun ResultItem(result: InternalSearchResult, modifier: Modifier = Modifier) {
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
fun InternalSearchScreenPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
InternalSearchFragmentScreen(
|
||||
query = "",
|
||||
results = persistentListOf(
|
||||
|
||||
@@ -21,12 +21,12 @@ import androidx.compose.runtime.getValue
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.fragment.app.viewModels
|
||||
import kotlinx.collections.immutable.persistentListOf
|
||||
import org.signal.core.ui.compose.NightPreview
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Rows
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.compose.ComposeFragment
|
||||
|
||||
class InternalSvrPlaygroundFragment : ComposeFragment() {
|
||||
@@ -116,10 +116,10 @@ fun SvrPlaygroundScreen(
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@NightPreview
|
||||
@Composable
|
||||
fun SvrPlaygroundScreenLightTheme() {
|
||||
SignalTheme(isDarkMode = false) {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
SvrPlaygroundScreen(
|
||||
state = InternalSvrPlaygroundState(
|
||||
@@ -130,10 +130,10 @@ fun SvrPlaygroundScreenLightTheme() {
|
||||
}
|
||||
}
|
||||
|
||||
@Preview
|
||||
@NightPreview
|
||||
@Composable
|
||||
fun SvrPlaygroundScreenDarkTheme() {
|
||||
SignalTheme(isDarkMode = true) {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
SvrPlaygroundScreen(
|
||||
state = InternalSvrPlaygroundState(
|
||||
|
||||
@@ -43,7 +43,7 @@ class PrivacySettingsViewModel(
|
||||
}
|
||||
|
||||
fun setIncognitoKeyboard(enabled: Boolean) {
|
||||
sharedPreferences.edit().putBoolean(TextSecurePreferences.INCOGNITO_KEYBORAD_PREF, enabled).apply()
|
||||
sharedPreferences.edit().putBoolean(TextSecurePreferences.INCOGNITO_KEYBOARD_PREF, enabled).apply()
|
||||
refresh()
|
||||
}
|
||||
|
||||
|
||||
@@ -35,9 +35,9 @@ import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Rows
|
||||
import org.signal.core.ui.compose.Scaffolds
|
||||
import org.signal.core.ui.compose.horizontalGutters
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.compose.ComposeFragment
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.groups.ui.GroupChangeFailureReason
|
||||
import org.thoughtcrime.securesms.groups.ui.GroupErrors
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme
|
||||
|
||||
@@ -28,10 +28,10 @@ import androidx.navigation.fragment.findNavController
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import kotlinx.coroutines.launch
|
||||
import org.signal.core.ui.compose.Dividers
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Rows
|
||||
import org.signal.core.ui.compose.Scaffolds
|
||||
import org.signal.core.ui.compose.Texts
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.compose.ComposeFragment
|
||||
import org.thoughtcrime.securesms.compose.StatusBarColorNestedScrollConnection
|
||||
@@ -203,7 +203,7 @@ private fun Screen(
|
||||
@Preview(name = "Dark Theme", group = "Screen", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ScreenPreviewSharingAndDiscoverable() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Screen(
|
||||
state = PhoneNumberPrivacySettingsState(
|
||||
phoneNumberSharing = true,
|
||||
@@ -217,7 +217,7 @@ private fun ScreenPreviewSharingAndDiscoverable() {
|
||||
@Preview(name = "Dark Theme", group = "Screen", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ScreenPreviewNotSharingDiscoverable() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Screen(
|
||||
state = PhoneNumberPrivacySettingsState(
|
||||
phoneNumberSharing = false,
|
||||
@@ -231,7 +231,7 @@ private fun ScreenPreviewNotSharingDiscoverable() {
|
||||
@Preview(name = "Dark Theme", group = "Screen", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ScreenPreviewNotSharingNotDiscoverable() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Screen(
|
||||
state = PhoneNumberPrivacySettingsState(
|
||||
phoneNumberSharing = false,
|
||||
|
||||
@@ -62,12 +62,12 @@ import org.signal.core.ui.compose.Rows
|
||||
import org.signal.core.ui.compose.Rows.TextAndLabel
|
||||
import org.signal.core.ui.compose.Scaffolds
|
||||
import org.signal.core.ui.compose.Texts
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.bytes
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.billing.upgrade.UpgradeToEnableOptimizedStorageSheet
|
||||
import org.thoughtcrime.securesms.billing.upgrade.UpgradeToPaidTierBottomSheet
|
||||
import org.thoughtcrime.securesms.compose.ComposeFragment
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.database.MediaTable
|
||||
import org.thoughtcrime.securesms.keyvalue.KeepMessagesDuration
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
|
||||
@@ -29,8 +29,8 @@ import androidx.navigation.fragment.navArgs
|
||||
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.Texts
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.badges.Badges
|
||||
import org.thoughtcrime.securesms.badges.models.Badge
|
||||
@@ -81,7 +81,7 @@ class DonationPendingBottomSheet : ComposeBottomSheetDialogFragment() {
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
fun DonationPendingBottomSheetContentPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
DonationPendingBottomSheetContent(
|
||||
badge = Badge(
|
||||
|
||||
@@ -37,7 +37,7 @@ import androidx.fragment.app.FragmentManager
|
||||
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.theme.SignalTheme
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.badges.BadgeRepository
|
||||
import org.thoughtcrime.securesms.badges.models.Badge
|
||||
@@ -128,7 +128,7 @@ class TerminalDonationBottomSheet : ComposeBottomSheetDialogFragment() {
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun DonationPaymentFailureBottomSheet() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
DonationPaymentFailureBottomSheet(
|
||||
badge = null,
|
||||
@@ -226,7 +226,7 @@ private fun DonationPaymentFailureBottomSheet(
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun DonationCompletedSheetContentPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
DonationCompletedSheetContent(
|
||||
badge = null,
|
||||
|
||||
@@ -50,9 +50,9 @@ import androidx.navigation.fragment.navArgs
|
||||
import androidx.navigation.navGraphViewModels
|
||||
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.Scaffolds
|
||||
import org.signal.core.ui.compose.Texts
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.getParcelableCompat
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.TemporaryScreenshotSecurity
|
||||
@@ -187,7 +187,7 @@ class BankTransferDetailsFragment : ComposeFragment(), InAppPaymentCheckoutDeleg
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun BankTransferDetailsContentPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
BankTransferDetailsContent(
|
||||
state = BankTransferDetailsState(
|
||||
name = "Miles Morales",
|
||||
|
||||
@@ -55,6 +55,7 @@ import kotlinx.coroutines.launch
|
||||
import org.signal.core.ui.compose.Buttons
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.Dividers
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Texts
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.R
|
||||
@@ -129,7 +130,7 @@ class BankTransferMandateFragment : ComposeFragment() {
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
fun BankTransferScreenPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
BankTransferScreen(
|
||||
bankMandate = "Test ".repeat(500),
|
||||
failedToLoadMandate = false,
|
||||
|
||||
@@ -37,7 +37,7 @@ import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.thoughtcrime.securesms.R
|
||||
|
||||
/**
|
||||
@@ -165,7 +165,7 @@ fun QrCodeBadge(
|
||||
@Preview(name = "Dark Theme", group = "ShortName", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun PreviewWithCodeShort() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Column {
|
||||
QrCodeBadge(
|
||||
@@ -188,7 +188,7 @@ private fun PreviewWithCodeShort() {
|
||||
@Preview(group = "LongName")
|
||||
@Composable
|
||||
private fun PreviewWithCodeLong() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Column {
|
||||
QrCodeBadge(
|
||||
@@ -212,7 +212,7 @@ private fun PreviewWithCodeLong() {
|
||||
@Preview(group = "Colors", heightDp = 1500)
|
||||
@Composable
|
||||
private fun PreviewAllColorsP1() {
|
||||
SignalTheme(isDarkMode = false) {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Column {
|
||||
SampleCode(colorScheme = UsernameQrCodeColorScheme.Blue)
|
||||
@@ -230,7 +230,7 @@ private fun PreviewAllColorsP1() {
|
||||
@Preview(group = "Colors", heightDp = 1500)
|
||||
@Composable
|
||||
private fun PreviewAllColorsP2() {
|
||||
SignalTheme(isDarkMode = false) {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Column {
|
||||
SampleCode(colorScheme = UsernameQrCodeColorScheme.Pink)
|
||||
@@ -258,7 +258,7 @@ private fun SampleCode(colorScheme: UsernameQrCodeColorScheme) {
|
||||
@Preview(name = "Dark Theme", group = "Loading", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun PreviewLoading() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
QrCodeBadge(
|
||||
data = QrCodeState.Loading,
|
||||
@@ -273,7 +273,7 @@ private fun PreviewLoading() {
|
||||
@Preview(name = "Dark Theme", group = "NotSet", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun PreviewNotSet() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
QrCodeBadge(
|
||||
data = QrCodeState.NotSet,
|
||||
|
||||
@@ -44,7 +44,7 @@ import kotlinx.collections.immutable.ImmutableList
|
||||
import kotlinx.collections.immutable.toImmutableList
|
||||
import org.signal.core.ui.compose.Buttons
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
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.settings.app.usernamelinks.QrCodeBadge
|
||||
import org.thoughtcrime.securesms.components.settings.app.usernamelinks.UsernameQrCodeColorScheme
|
||||
@@ -186,7 +186,7 @@ class UsernameLinkQrColorPickerFragment : ComposeFragment() {
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun PreviewColorPickerItem() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Row(verticalAlignment = Alignment.CenterVertically) {
|
||||
ColorPickerItem(color = UsernameQrCodeColorScheme.Blue, selected = false, onClick = {})
|
||||
@@ -199,7 +199,7 @@ class UsernameLinkQrColorPickerFragment : ComposeFragment() {
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun PreviewColorPicker() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
ColorPicker(
|
||||
colors = UsernameQrCodeColorScheme.entries.toImmutableList(),
|
||||
|
||||
@@ -64,6 +64,7 @@ import kotlinx.coroutines.CoroutineScope
|
||||
import org.signal.core.ui.compose.Buttons
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.Dialogs
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Snackbars
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.concurrent.LifecycleDisposable
|
||||
@@ -349,7 +350,7 @@ private fun ResetDialog(onConfirm: () -> Unit, onDismiss: () -> Unit) {
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun AppBarPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Column {
|
||||
TopAppBarContent(activeTab = ActiveTab.Code)
|
||||
@@ -362,7 +363,7 @@ private fun AppBarPreview() {
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun MainScreenPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
MainScreen(
|
||||
state = UsernameLinkSettingsState(
|
||||
activeTab = ActiveTab.Code,
|
||||
@@ -378,7 +379,7 @@ private fun MainScreenPreview() {
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun ResetDialogPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
ResetDialog(onConfirm = {}, onDismiss = {})
|
||||
}
|
||||
|
||||
@@ -31,7 +31,7 @@ import androidx.core.os.bundleOf
|
||||
import androidx.fragment.app.FragmentManager
|
||||
import androidx.fragment.app.setFragmentResult
|
||||
import org.signal.core.ui.compose.BottomSheets
|
||||
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.webrtc.requests.CallLinkIncomingRequestSheet
|
||||
import org.thoughtcrime.securesms.compose.ComposeBottomSheetDialogFragment
|
||||
@@ -148,7 +148,7 @@ private fun ButtonRow(icon: Painter, text: String, modifier: Modifier = Modifier
|
||||
@Preview(name = "Dark Theme", group = "content", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ContentPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Content(
|
||||
usernameLink = "https://signal.me#eufzLWmFFUYAOqnVJ4Zlt0KqXf87r59FC1hZ3r7WipjKvgzMBg7DBlY5DB5hQTjsw0"
|
||||
@@ -161,7 +161,7 @@ private fun ContentPreview() {
|
||||
@Preview(name = "Dark Theme", group = "button row", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ButtonRowPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
ButtonRow(icon = painterResource(R.drawable.symbol_share_android_24), text = "Share")
|
||||
}
|
||||
|
||||
@@ -35,7 +35,7 @@ import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.launch
|
||||
import org.signal.core.ui.compose.Buttons
|
||||
import org.signal.core.ui.compose.Dialogs
|
||||
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.settings.app.usernamelinks.QrCodeBadge
|
||||
import org.thoughtcrime.securesms.components.settings.app.usernamelinks.QrCodeData
|
||||
@@ -67,15 +67,19 @@ fun UsernameLinkShareScreen(
|
||||
UsernameLinkResetResult.NetworkUnavailable -> {
|
||||
ResetLinkResultDialog(stringResource(R.string.UsernameLinkSettings_reset_link_result_network_unavailable), onDismiss = onLinkResultHandled)
|
||||
}
|
||||
|
||||
UsernameLinkResetResult.NetworkError -> {
|
||||
ResetLinkResultDialog(stringResource(R.string.UsernameLinkSettings_reset_link_result_network_error), onDismiss = onLinkResultHandled)
|
||||
}
|
||||
|
||||
UsernameLinkResetResult.UnexpectedError -> {
|
||||
ResetLinkResultDialog(stringResource(R.string.UsernameLinkSettings_reset_link_result_unknown_error), onDismiss = onLinkResultHandled)
|
||||
}
|
||||
|
||||
is UsernameLinkResetResult.Success -> {
|
||||
ResetLinkResultDialog(stringResource(R.string.UsernameLinkSettings_reset_link_result_success), onDismiss = onLinkResultHandled)
|
||||
}
|
||||
|
||||
else -> {}
|
||||
}
|
||||
|
||||
@@ -216,7 +220,7 @@ private fun ResetLinkResultDialog(message: String, onDismiss: () -> Unit) {
|
||||
@Preview(name = "Dark Theme", group = "screen", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ScreenPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
UsernameLinkShareScreen(
|
||||
state = previewState(),
|
||||
@@ -235,7 +239,7 @@ private fun ScreenPreview() {
|
||||
@Preview(name = "Dark Theme", group = "screen", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ScreenPreviewResetSuccess() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
UsernameLinkShareScreen(
|
||||
state = previewState().copy(usernameLinkResetResult = UsernameLinkResetResult.Success(UsernameLinkComponents(Util.getSecretBytes(32), UUID.randomUUID()))),
|
||||
@@ -254,7 +258,7 @@ private fun ScreenPreviewResetSuccess() {
|
||||
@Preview(name = "Dark Theme", group = "screen", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ScreenPreviewResetNetworkError() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
UsernameLinkShareScreen(
|
||||
state = previewState().copy(usernameLinkResetResult = UsernameLinkResetResult.NetworkError),
|
||||
@@ -273,7 +277,7 @@ private fun ScreenPreviewResetNetworkError() {
|
||||
@Preview(name = "Dark Theme", group = "screen", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ScreenPreviewResetNetworkUnavailable() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
UsernameLinkShareScreen(
|
||||
state = previewState().copy(usernameLinkResetResult = UsernameLinkResetResult.NetworkUnavailable),
|
||||
@@ -292,7 +296,7 @@ private fun ScreenPreviewResetNetworkUnavailable() {
|
||||
@Preview(name = "Dark Theme", group = "screen", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ScreenPreviewResetUnexpectedError() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
UsernameLinkShareScreen(
|
||||
state = previewState().copy(usernameLinkResetResult = UsernameLinkResetResult.UnexpectedError),
|
||||
@@ -311,7 +315,7 @@ private fun ScreenPreviewResetUnexpectedError() {
|
||||
@Preview(name = "Dark Theme", group = "LinkRow", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun LinkRowPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Column(modifier = Modifier.padding(8.dp)) {
|
||||
LinkRow(
|
||||
|
||||
@@ -38,11 +38,10 @@ import com.google.accompanist.permissions.rememberMultiplePermissionsState
|
||||
import com.google.accompanist.permissions.rememberPermissionState
|
||||
import io.reactivex.rxjava3.disposables.CompositeDisposable
|
||||
import org.signal.core.ui.compose.Dialogs
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.concurrent.LifecycleDisposable
|
||||
import org.signal.core.util.getParcelableExtraCompat
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.settings.app.usernamelinks.main.UsernameQrScannerActivity.Contract
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.permissions.PermissionCompat
|
||||
import org.thoughtcrime.securesms.permissions.Permissions
|
||||
import org.thoughtcrime.securesms.recipients.Recipient
|
||||
|
||||
@@ -56,13 +56,12 @@ import org.signal.core.ui.compose.Dialogs
|
||||
import org.signal.core.ui.compose.Dividers
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Rows
|
||||
import org.signal.core.ui.compose.theme.LocalExtendedColors
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.avatar.fallback.FallbackAvatar
|
||||
import org.thoughtcrime.securesms.avatar.fallback.FallbackAvatarImage
|
||||
import org.thoughtcrime.securesms.components.AvatarImageView
|
||||
import org.thoughtcrime.securesms.components.webrtc.v2.WebRtcCallViewModel
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.conversation.colors.AvatarColor
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.events.CallParticipant
|
||||
@@ -135,7 +134,7 @@ object CallInfoView {
|
||||
@Preview
|
||||
@Composable
|
||||
private fun CallInfoPreview() {
|
||||
SignalTheme(isDarkMode = true) {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
val remoteParticipants = listOf(CallParticipant(recipient = Recipient.UNKNOWN))
|
||||
CallInfo(
|
||||
@@ -344,7 +343,7 @@ private fun getCallSheetLabel(state: ParticipantsState): String {
|
||||
@Preview
|
||||
@Composable
|
||||
private fun CallParticipantRowPreview() {
|
||||
SignalTheme(isDarkMode = true) {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
CallParticipantRow(
|
||||
CallParticipant(recipient = Recipient.UNKNOWN),
|
||||
@@ -357,7 +356,7 @@ private fun CallParticipantRowPreview() {
|
||||
@Preview
|
||||
@Composable
|
||||
private fun HandRaisedRowPreview() {
|
||||
SignalTheme(isDarkMode = true) {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
HandRaisedRow(Recipient.UNKNOWN, "Peter Parker", canLowerHand = true)
|
||||
}
|
||||
@@ -604,7 +603,7 @@ private fun TwoUnknownAvatars() {
|
||||
modifier = Modifier
|
||||
.size(38.dp)
|
||||
.align(Alignment.CenterEnd)
|
||||
.border(width = 2.dp, color = LocalExtendedColors.current.colorSurface1, shape = CircleShape)
|
||||
.border(width = 2.dp, color = SignalTheme.colors.colorSurface1, shape = CircleShape)
|
||||
)
|
||||
}
|
||||
}
|
||||
|
||||
@@ -45,10 +45,10 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.map
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.ringrtc.GroupCall
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.webrtc.v2.WebRtcCallViewModel
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.events.CallParticipant
|
||||
import org.thoughtcrime.securesms.events.GroupCallRaiseHandEvent
|
||||
|
||||
@@ -26,7 +26,6 @@ import kotlinx.coroutines.flow.collectLatest
|
||||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.coroutines.launch
|
||||
import org.signal.core.ui.compose.rememberIsInPipMode
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.components.webrtc.CallParticipantListUpdate
|
||||
import org.thoughtcrime.securesms.components.webrtc.CallParticipantsState
|
||||
@@ -35,6 +34,7 @@ import org.thoughtcrime.securesms.components.webrtc.WebRtcControls
|
||||
import org.thoughtcrime.securesms.components.webrtc.controls.CallInfoView
|
||||
import org.thoughtcrime.securesms.components.webrtc.controls.ControlsAndInfoViewModel
|
||||
import org.thoughtcrime.securesms.components.webrtc.controls.RaiseHandSnackbar
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.dependencies.AppDependencies
|
||||
import org.thoughtcrime.securesms.events.WebRtcViewModel
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
|
||||
@@ -12,7 +12,6 @@ import androidx.compose.ui.platform.ComposeView
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.ViewCompositionStrategy
|
||||
import androidx.compose.ui.unit.dp
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.components.FixedRoundedCornerBottomSheetDialogFragment
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@ import androidx.compose.ui.platform.ComposeView
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.ViewCompositionStrategy
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme
|
||||
|
||||
/**
|
||||
|
||||
@@ -7,7 +7,6 @@ import android.view.ViewGroup
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.fragment.compose.content
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.LoggingFragment
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme
|
||||
|
||||
|
||||
@@ -9,7 +9,6 @@ import androidx.compose.ui.platform.ComposeView
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.ViewCompositionStrategy
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme
|
||||
import org.thoughtcrime.securesms.util.WindowUtil
|
||||
|
||||
@@ -0,0 +1,39 @@
|
||||
/*
|
||||
* Copyright 2025 Signal Messenger, LLC
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
package org.thoughtcrime.securesms.compose
|
||||
|
||||
import android.content.res.Configuration
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.platform.LocalConfiguration
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import org.signal.core.ui.compose.theme.ExtendedColors
|
||||
import org.thoughtcrime.securesms.util.TextSecurePreferences
|
||||
|
||||
private typealias CoreSignalTheme = org.signal.core.ui.compose.theme.SignalTheme
|
||||
|
||||
@Composable
|
||||
fun SignalTheme(
|
||||
isDarkMode: Boolean = LocalConfiguration.current.uiMode and Configuration.UI_MODE_NIGHT_MASK == Configuration.UI_MODE_NIGHT_YES,
|
||||
content: @Composable () -> Unit
|
||||
) {
|
||||
val context = LocalContext.current
|
||||
val incognitoKeyboardEnabled = remember {
|
||||
TextSecurePreferences.isIncognitoKeyboardEnabled(context)
|
||||
}
|
||||
|
||||
org.signal.core.ui.compose.theme.SignalTheme(
|
||||
isDarkMode = isDarkMode,
|
||||
incognitoKeyboardEnabled = incognitoKeyboardEnabled,
|
||||
content = content
|
||||
)
|
||||
}
|
||||
|
||||
object SignalTheme {
|
||||
val colors: ExtendedColors
|
||||
@Composable
|
||||
get() = CoreSignalTheme.colors
|
||||
}
|
||||
@@ -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])
|
||||
}
|
||||
|
||||
@@ -48,9 +48,9 @@ import org.signal.core.ui.compose.AllDevicePreviews
|
||||
import org.signal.core.ui.compose.Buttons
|
||||
import org.signal.core.ui.compose.Dialogs
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActivity
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.contacts.SelectedContact
|
||||
import org.thoughtcrime.securesms.groups.SelectionLimits
|
||||
import org.thoughtcrime.securesms.groups.ui.creategroup.CreateGroupUiState.NavTarget
|
||||
|
||||
@@ -44,11 +44,11 @@ import androidx.lifecycle.compose.collectAsStateWithLifecycle
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Scaffolds
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.getParcelableExtraCompat
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActivity
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.avatar.AvatarImage
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.compose.StatusBarColorNestedScrollConnection
|
||||
import org.thoughtcrime.securesms.recipients.Recipient
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId
|
||||
|
||||
@@ -28,7 +28,7 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.fragment.app.viewModels
|
||||
import org.signal.core.ui.compose.BottomSheets
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.compose.ComposeBottomSheetDialogFragment
|
||||
import org.thoughtcrime.securesms.mediasend.v2.MediaSelectionViewModel
|
||||
@@ -114,7 +114,7 @@ private fun ButtonLabel(title: String, description: String) {
|
||||
@Preview(showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun PreviewQualitySelectorBottomSheetStandard() {
|
||||
SignalTheme(isDarkMode = true) {
|
||||
Previews.Preview {
|
||||
Content(SentMediaQuality.STANDARD) {}
|
||||
}
|
||||
}
|
||||
@@ -122,7 +122,7 @@ private fun PreviewQualitySelectorBottomSheetStandard() {
|
||||
@Preview(showBackground = true, uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun PreviewQualitySelectorBottomSheetHigh() {
|
||||
SignalTheme(isDarkMode = true) {
|
||||
Previews.Preview {
|
||||
Content(SentMediaQuality.HIGH) {}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -49,9 +49,9 @@ import kotlinx.coroutines.withContext
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.IconButtons
|
||||
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.emoji.Emojifier
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.main.EmptyMegaphoneActionController
|
||||
import org.thoughtcrime.securesms.megaphone.Megaphones.Event
|
||||
import org.thoughtcrime.securesms.util.DynamicTheme
|
||||
|
||||
@@ -52,11 +52,11 @@ import org.signal.core.ui.compose.Dialogs
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Scaffolds
|
||||
import org.signal.core.ui.compose.TextFields
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.getParcelableCompat
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActivity
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.avatar.AvatarImage
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId
|
||||
import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme
|
||||
import org.thoughtcrime.securesms.util.viewModel
|
||||
|
||||
@@ -39,7 +39,7 @@ import androidx.core.os.bundleOf
|
||||
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.theme.SignalTheme
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.settings.app.AppSettingsActivity
|
||||
import org.thoughtcrime.securesms.compose.ComposeBottomSheetDialogFragment
|
||||
@@ -118,7 +118,7 @@ class TurnOnNotificationsBottomSheet private constructor() : ComposeBottomSheetD
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun TurnOnNotificationsSheetContentPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
TurnOnNotificationsSheetContent(
|
||||
titleRes = R.string.TurnOnNotificationsBottomSheet__turn_on_notifications,
|
||||
|
||||
@@ -41,7 +41,7 @@ import androidx.core.os.bundleOf
|
||||
import androidx.core.widget.TextViewCompat
|
||||
import org.signal.core.ui.compose.BottomSheets
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.util.getParcelableCompat
|
||||
import org.signal.core.util.isNotNullOrBlank
|
||||
import org.thoughtcrime.securesms.AvatarPreviewActivity
|
||||
@@ -407,7 +407,7 @@ private fun AboutRow(
|
||||
@Preview(name = "Dark Theme", group = "content", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ContentPreviewDefault() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Content(
|
||||
model = AboutModel(
|
||||
@@ -437,7 +437,7 @@ private fun ContentPreviewDefault() {
|
||||
@Preview(name = "Dark Theme", group = "content", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ContentPreviewWithUserSetDisplayName() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Content(
|
||||
model = AboutModel(
|
||||
@@ -467,7 +467,7 @@ private fun ContentPreviewWithUserSetDisplayName() {
|
||||
@Preview(name = "Dark Theme", group = "content", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ContentPreviewForSelf() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Content(
|
||||
model = AboutModel(
|
||||
@@ -497,7 +497,7 @@ private fun ContentPreviewForSelf() {
|
||||
@Preview(name = "Dark Theme", group = "content", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ContentPreviewInContactsNotProfileSharing() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Content(
|
||||
model = AboutModel(
|
||||
@@ -527,7 +527,7 @@ private fun ContentPreviewInContactsNotProfileSharing() {
|
||||
@Preview(name = "Dark Theme", group = "content", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ContentPreviewGroupsInCommonNoE164() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Content(
|
||||
model = AboutModel(
|
||||
@@ -557,7 +557,7 @@ private fun ContentPreviewGroupsInCommonNoE164() {
|
||||
@Preview(name = "Dark Theme", group = "content", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun ContentPreviewNotAConnection() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Content(
|
||||
model = AboutModel(
|
||||
@@ -586,7 +586,7 @@ private fun ContentPreviewNotAConnection() {
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun ContentPreviewNotAConnectionNoGroups() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
Content(
|
||||
model = AboutModel(
|
||||
@@ -616,7 +616,7 @@ private fun ContentPreviewNotAConnectionNoGroups() {
|
||||
@Preview(name = "Dark Theme", group = "about row", uiMode = Configuration.UI_MODE_NIGHT_YES)
|
||||
@Composable
|
||||
private fun AboutRowPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
Surface {
|
||||
AboutRow(
|
||||
startIcon = ImageVector.vectorResource(R.drawable.symbol_person_24),
|
||||
|
||||
@@ -69,12 +69,12 @@ import org.signal.core.ui.compose.Dividers
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Scaffolds
|
||||
import org.signal.core.ui.compose.TextFields
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.E164Util
|
||||
import org.signal.core.util.getParcelableExtraCompat
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActivity
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.settings.app.usernamelinks.main.UsernameQrScannerActivity
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.invites.InviteActions
|
||||
import org.thoughtcrime.securesms.phonenumbers.PhoneNumberVisualTransformation
|
||||
import org.thoughtcrime.securesms.recipients.RecipientId
|
||||
|
||||
@@ -52,13 +52,13 @@ import org.signal.core.ui.compose.Dialogs
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Texts
|
||||
import org.signal.core.ui.compose.horizontalGutters
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.logging.Log
|
||||
import org.thoughtcrime.securesms.BiometricDeviceAuthentication
|
||||
import org.thoughtcrime.securesms.BiometricDeviceLockContract
|
||||
import org.thoughtcrime.securesms.MainActivity
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActivity
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.devicetransfer.olddevice.OldDeviceTransferActivity
|
||||
import org.thoughtcrime.securesms.fonts.SignalSymbols
|
||||
import org.thoughtcrime.securesms.fonts.SignalSymbols.SignalSymbol
|
||||
|
||||
@@ -61,13 +61,12 @@ import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.Dialogs
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.horizontalGutters
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.settings.app.usernamelinks.QrCode
|
||||
import org.thoughtcrime.securesms.compose.ComposeFragment
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.registration.ui.RegistrationViewModel
|
||||
import org.thoughtcrime.securesms.registration.ui.shared.RegistrationScreen
|
||||
import java.lang.IllegalStateException
|
||||
|
||||
/**
|
||||
* Crude show QR code on link device to allow linking from primary device.
|
||||
|
||||
@@ -64,7 +64,6 @@ import org.signal.core.ui.compose.Buttons
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.Dialogs
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.ThreadUtil
|
||||
import org.signal.core.util.bytes
|
||||
import org.thoughtcrime.securesms.BaseActivity
|
||||
@@ -78,6 +77,7 @@ import org.thoughtcrime.securesms.components.contactsupport.ContactSupportCallba
|
||||
import org.thoughtcrime.securesms.components.contactsupport.ContactSupportDialog
|
||||
import org.thoughtcrime.securesms.components.contactsupport.ContactSupportViewModel
|
||||
import org.thoughtcrime.securesms.components.contactsupport.SendSupportEmailEffect
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.conversation.v2.registerForLifecycle
|
||||
import org.thoughtcrime.securesms.keyvalue.SignalStore
|
||||
import org.thoughtcrime.securesms.registration.ui.shared.RegistrationScreen
|
||||
|
||||
@@ -67,12 +67,12 @@ 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.horizontalGutters
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.registration.proto.RegistrationProvisionMessage
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.settings.app.usernamelinks.QrCode
|
||||
import org.thoughtcrime.securesms.components.settings.app.usernamelinks.QrCodeData
|
||||
import org.thoughtcrime.securesms.compose.ComposeFragment
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.registration.data.network.RegisterAccountResult
|
||||
import org.thoughtcrime.securesms.registration.ui.RegistrationViewModel
|
||||
import org.thoughtcrime.securesms.registration.ui.shared.RegistrationScreen
|
||||
|
||||
@@ -14,7 +14,7 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import org.signal.core.ui.compose.DayNightPreviews
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.ui.compose.Previews
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.registration.ui.shared.RegistrationScreen
|
||||
|
||||
@@ -56,7 +56,7 @@ fun SelectRestoreMethodScreen(
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun SelectRestoreMethodScreenPreview() {
|
||||
SignalTheme {
|
||||
Previews.Preview {
|
||||
SelectRestoreMethodScreen(listOf(RestoreMethod.FROM_SIGNAL_BACKUPS, RestoreMethod.FROM_OLD_DEVICE, RestoreMethod.FROM_LOCAL_BACKUP_V1))
|
||||
}
|
||||
}
|
||||
|
||||
@@ -78,11 +78,11 @@ import org.signal.core.ui.compose.copied.androidx.compose.DragAndDropEvent
|
||||
import org.signal.core.ui.compose.copied.androidx.compose.DraggableItem
|
||||
import org.signal.core.ui.compose.copied.androidx.compose.dragContainer
|
||||
import org.signal.core.ui.compose.copied.androidx.compose.rememberDragDropState
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActivity
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.components.menu.ActionItem
|
||||
import org.thoughtcrime.securesms.components.menu.SignalBottomActionBar
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragment
|
||||
import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragmentArgs
|
||||
import org.thoughtcrime.securesms.database.model.StickerPackId
|
||||
|
||||
@@ -279,7 +279,7 @@ private fun StickerPackInfo(
|
||||
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun StickerPackSectionHeaderPreview() = SignalTheme {
|
||||
private fun StickerPackSectionHeaderPreview() = Previews.Preview {
|
||||
StickerPackSectionHeader(
|
||||
text = "Signal artist series"
|
||||
)
|
||||
@@ -287,7 +287,7 @@ private fun StickerPackSectionHeaderPreview() = SignalTheme {
|
||||
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun AvailableStickerPackRowPreviewBlessed() = SignalTheme {
|
||||
private fun AvailableStickerPackRowPreviewBlessed() = Previews.Preview {
|
||||
AvailableStickerPackRow(
|
||||
pack = StickerPreviewDataFactory.availablePack(
|
||||
title = "Swoon / Faces",
|
||||
@@ -300,7 +300,7 @@ private fun AvailableStickerPackRowPreviewBlessed() = SignalTheme {
|
||||
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun AvailableStickerPackRowPreviewNotBlessed() = SignalTheme {
|
||||
private fun AvailableStickerPackRowPreviewNotBlessed() = Previews.Preview {
|
||||
AvailableStickerPackRow(
|
||||
pack = StickerPreviewDataFactory.availablePack(
|
||||
title = "Day by Day",
|
||||
@@ -314,7 +314,7 @@ private fun AvailableStickerPackRowPreviewNotBlessed() = SignalTheme {
|
||||
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun AvailableStickerPackRowPreviewDownloading() = SignalTheme {
|
||||
private fun AvailableStickerPackRowPreviewDownloading() = Previews.Preview {
|
||||
AvailableStickerPackRow(
|
||||
pack = StickerPreviewDataFactory.availablePack(
|
||||
title = "Bandit the Cat",
|
||||
@@ -328,7 +328,7 @@ private fun AvailableStickerPackRowPreviewDownloading() = SignalTheme {
|
||||
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun AvailableStickerPackRowPreviewDownloaded() = SignalTheme {
|
||||
private fun AvailableStickerPackRowPreviewDownloaded() = Previews.Preview {
|
||||
AvailableStickerPackRow(
|
||||
pack = StickerPreviewDataFactory.availablePack(
|
||||
title = "Bandit the Cat",
|
||||
@@ -342,7 +342,7 @@ private fun AvailableStickerPackRowPreviewDownloaded() = SignalTheme {
|
||||
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun InstalledStickerPackRowPreview() = SignalTheme {
|
||||
private fun InstalledStickerPackRowPreview() = Previews.Preview {
|
||||
InstalledStickerPackRow(
|
||||
multiSelectEnabled = false,
|
||||
menuController = DropdownMenus.MenuController(),
|
||||
@@ -356,7 +356,7 @@ private fun InstalledStickerPackRowPreview() = SignalTheme {
|
||||
|
||||
@DayNightPreviews
|
||||
@Composable
|
||||
private fun InstalledStickerPackRowSelectModePreview() = SignalTheme {
|
||||
private fun InstalledStickerPackRowSelectModePreview() = Previews.Preview {
|
||||
InstalledStickerPackRow(
|
||||
multiSelectEnabled = true,
|
||||
menuController = DropdownMenus.MenuController(),
|
||||
|
||||
@@ -51,12 +51,12 @@ 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.Scaffolds
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.signal.core.util.orNull
|
||||
import org.signal.core.util.toOptional
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActivity
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.compose.GlideImage
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragment
|
||||
import org.thoughtcrime.securesms.conversation.mutiselect.forward.MultiselectForwardFragmentArgs
|
||||
import org.thoughtcrime.securesms.database.model.StickerPackId
|
||||
|
||||
@@ -37,11 +37,11 @@ import org.signal.core.ui.compose.Previews
|
||||
import org.signal.core.ui.compose.Rows
|
||||
import org.signal.core.ui.compose.Scaffolds
|
||||
import org.signal.core.ui.compose.Texts
|
||||
import org.signal.core.ui.compose.theme.SignalTheme
|
||||
import org.thoughtcrime.securesms.R
|
||||
import org.thoughtcrime.securesms.avatar.AvatarImage
|
||||
import org.thoughtcrime.securesms.components.WrapperDialogFragment
|
||||
import org.thoughtcrime.securesms.compose.ComposeFragment
|
||||
import org.thoughtcrime.securesms.compose.SignalTheme
|
||||
import org.thoughtcrime.securesms.database.model.DistributionListId
|
||||
import org.thoughtcrime.securesms.database.model.DistributionListPrivacyMode
|
||||
import org.thoughtcrime.securesms.database.model.DistributionListRecord
|
||||
|
||||
@@ -7,7 +7,6 @@ import android.content.SharedPreferences;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.hardware.Camera.CameraInfo;
|
||||
import android.net.Uri;
|
||||
import android.os.Build;
|
||||
import android.provider.Settings;
|
||||
|
||||
import androidx.annotation.ArrayRes;
|
||||
@@ -92,7 +91,7 @@ public class TextSecurePreferences {
|
||||
public static final String DIRECT_CAPTURE_CAMERA_ID = "pref_direct_capture_camera_id";
|
||||
public static final String ALWAYS_RELAY_CALLS_PREF = "pref_turn_only";
|
||||
public static final String READ_RECEIPTS_PREF = "pref_read_receipts";
|
||||
public static final String INCOGNITO_KEYBORAD_PREF = "pref_incognito_keyboard";
|
||||
public static final String INCOGNITO_KEYBOARD_PREF = "pref_incognito_keyboard";
|
||||
public static final String UNAUTHORIZED_RECEIVED = "pref_unauthorized_received";
|
||||
private static final String SUCCESSFUL_DIRECTORY_PREF = "pref_successful_directory";
|
||||
|
||||
@@ -159,7 +158,7 @@ public class TextSecurePreferences {
|
||||
private static final String HAS_SEEN_VIDEO_RECORDING_TOOLTIP = "camerax.fragment.has.dismissed.video.recording.tooltip";
|
||||
|
||||
private static final String[] booleanPreferencesToBackup = {SCREEN_SECURITY_PREF,
|
||||
INCOGNITO_KEYBORAD_PREF,
|
||||
INCOGNITO_KEYBOARD_PREF,
|
||||
ALWAYS_RELAY_CALLS_PREF,
|
||||
READ_RECEIPTS_PREF,
|
||||
TYPING_INDICATORS,
|
||||
@@ -407,7 +406,7 @@ public class TextSecurePreferences {
|
||||
}
|
||||
|
||||
public static boolean isIncognitoKeyboardEnabled(Context context) {
|
||||
return getBooleanPreference(context, INCOGNITO_KEYBORAD_PREF, false);
|
||||
return getBooleanPreference(context, INCOGNITO_KEYBOARD_PREF, false);
|
||||
}
|
||||
|
||||
public static boolean isReadReceiptsEnabled(Context context) {
|
||||
|
||||
Reference in New Issue
Block a user