|
|
|
@ -1,6 +1,13 @@
|
|
|
|
|
package org.thoughtcrime.securesms.ui.components
|
|
|
|
|
|
|
|
|
|
import androidx.annotation.StringRes
|
|
|
|
|
import androidx.compose.animation.AnimatedVisibility
|
|
|
|
|
import androidx.compose.animation.EnterTransition
|
|
|
|
|
import androidx.compose.animation.fadeIn
|
|
|
|
|
import androidx.compose.animation.fadeOut
|
|
|
|
|
import androidx.compose.animation.slideIn
|
|
|
|
|
import androidx.compose.animation.slideInHorizontally
|
|
|
|
|
import androidx.compose.animation.slideOutHorizontally
|
|
|
|
|
import androidx.compose.foundation.BorderStroke
|
|
|
|
|
import androidx.compose.foundation.interaction.MutableInteractionSource
|
|
|
|
|
import androidx.compose.foundation.interaction.PressInteraction
|
|
|
|
@ -32,6 +39,8 @@ import androidx.compose.ui.unit.dp
|
|
|
|
|
import kotlinx.coroutines.delay
|
|
|
|
|
import kotlinx.coroutines.flow.collectLatest
|
|
|
|
|
import kotlinx.coroutines.flow.filter
|
|
|
|
|
import network.loki.messenger.R
|
|
|
|
|
import org.thoughtcrime.securesms.preferences.copyPublicKey
|
|
|
|
|
import org.thoughtcrime.securesms.ui.GetString
|
|
|
|
|
import org.thoughtcrime.securesms.ui.LaunchedEffectAsync
|
|
|
|
|
import org.thoughtcrime.securesms.ui.LocalButtonColor
|
|
|
|
@ -80,6 +89,24 @@ fun OutlineButton(
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Composable
|
|
|
|
|
fun OutlineTemporaryStateButton(
|
|
|
|
|
modifier: Modifier = Modifier,
|
|
|
|
|
onClick: () -> Unit = {},
|
|
|
|
|
content: @Composable (Boolean) -> Unit,
|
|
|
|
|
) {
|
|
|
|
|
TemporaryStateButton { source, isTemporary ->
|
|
|
|
|
OutlineButton(
|
|
|
|
|
modifier = modifier,
|
|
|
|
|
interactionSource = source,
|
|
|
|
|
onClick = onClick,
|
|
|
|
|
) {
|
|
|
|
|
AnimatedVisibility(isTemporary) { content(true) }
|
|
|
|
|
AnimatedVisibility(!isTemporary) { content(false) }
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@Composable
|
|
|
|
|
fun TemporaryStateButton(
|
|
|
|
|
content: @Composable (MutableInteractionSource, Boolean) -> Unit,
|
|
|
|
|