mirror of
https://github.com/oxen-io/session-android.git
synced 2025-02-17 12:28:24 +00:00
Add LightDarkColors and repackage to colors
This commit is contained in:
parent
f83bd8b3d4
commit
c6952cfcc1
@ -18,7 +18,7 @@ import androidx.compose.ui.unit.dp
|
||||
import network.loki.messenger.R
|
||||
import network.loki.messenger.libsession_util.util.ExpiryMode
|
||||
import org.thoughtcrime.securesms.ui.Callbacks
|
||||
import org.thoughtcrime.securesms.ui.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.NoOpCallbacks
|
||||
import org.thoughtcrime.securesms.ui.OptionsCard
|
||||
import org.thoughtcrime.securesms.ui.RadioOption
|
||||
|
@ -11,7 +11,7 @@ import network.loki.messenger.libsession_util.util.ExpiryMode
|
||||
import org.thoughtcrime.securesms.conversation.disappearingmessages.ExpiryType
|
||||
import org.thoughtcrime.securesms.conversation.disappearingmessages.State
|
||||
import org.thoughtcrime.securesms.ui.PreviewTheme
|
||||
import org.thoughtcrime.securesms.ui.Colors
|
||||
import org.thoughtcrime.securesms.ui.color.Colors
|
||||
import org.thoughtcrime.securesms.ui.SessionColorsParameterProvider
|
||||
|
||||
@Preview(widthDp = 450, heightDp = 700)
|
||||
|
@ -47,9 +47,9 @@ import org.thoughtcrime.securesms.conversation.start.NewConversationDelegate
|
||||
import org.thoughtcrime.securesms.conversation.v2.ConversationActivityV2
|
||||
import org.thoughtcrime.securesms.dependencies.DatabaseComponent
|
||||
import org.thoughtcrime.securesms.showOpenUrlDialog
|
||||
import org.thoughtcrime.securesms.ui.Colors
|
||||
import org.thoughtcrime.securesms.ui.color.Colors
|
||||
import org.thoughtcrime.securesms.ui.LoadingArcOr
|
||||
import org.thoughtcrime.securesms.ui.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.LocalDimensions
|
||||
import org.thoughtcrime.securesms.ui.PreviewTheme
|
||||
import org.thoughtcrime.securesms.ui.SessionColorsParameterProvider
|
||||
|
@ -29,7 +29,7 @@ import network.loki.messenger.R
|
||||
import org.session.libsession.utilities.TextSecurePreferences
|
||||
import org.thoughtcrime.securesms.preferences.copyPublicKey
|
||||
import org.thoughtcrime.securesms.preferences.sendInvitationToUseSession
|
||||
import org.thoughtcrime.securesms.ui.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.PreviewTheme
|
||||
import org.thoughtcrime.securesms.ui.base
|
||||
import org.thoughtcrime.securesms.ui.components.AppBar
|
||||
|
@ -27,10 +27,11 @@ import dagger.hilt.android.AndroidEntryPoint
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import network.loki.messenger.R
|
||||
import org.session.libsession.utilities.TextSecurePreferences
|
||||
import org.thoughtcrime.securesms.ui.Colors
|
||||
import org.thoughtcrime.securesms.ui.Divider
|
||||
import org.thoughtcrime.securesms.ui.color.Colors
|
||||
import org.thoughtcrime.securesms.ui.Divider
|
||||
import org.thoughtcrime.securesms.ui.ItemButton
|
||||
import org.thoughtcrime.securesms.ui.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.LocalDimensions
|
||||
import org.thoughtcrime.securesms.ui.PreviewTheme
|
||||
import org.thoughtcrime.securesms.ui.SessionColorsParameterProvider
|
||||
|
@ -64,16 +64,16 @@ import org.thoughtcrime.securesms.ui.Divider
|
||||
import org.thoughtcrime.securesms.ui.GetString
|
||||
import org.thoughtcrime.securesms.ui.HorizontalPagerIndicator
|
||||
import org.thoughtcrime.securesms.ui.ItemButton
|
||||
import org.thoughtcrime.securesms.ui.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.PreviewTheme
|
||||
import org.thoughtcrime.securesms.ui.Colors
|
||||
import org.thoughtcrime.securesms.ui.color.Colors
|
||||
import org.thoughtcrime.securesms.ui.SessionColorsParameterProvider
|
||||
import org.thoughtcrime.securesms.ui.TitledText
|
||||
import org.thoughtcrime.securesms.ui.base
|
||||
import org.thoughtcrime.securesms.ui.baseBold
|
||||
import org.thoughtcrime.securesms.ui.baseMonospace
|
||||
import org.thoughtcrime.securesms.ui.blackAlpha40
|
||||
import org.thoughtcrime.securesms.ui.destructiveButtonColors
|
||||
import org.thoughtcrime.securesms.ui.color.blackAlpha40
|
||||
import org.thoughtcrime.securesms.ui.color.destructiveButtonColors
|
||||
import org.thoughtcrime.securesms.ui.setComposeContent
|
||||
import javax.inject.Inject
|
||||
|
||||
|
@ -93,8 +93,8 @@ import org.thoughtcrime.securesms.showMuteDialog
|
||||
import org.thoughtcrime.securesms.showSessionDialog
|
||||
import org.thoughtcrime.securesms.ui.Divider
|
||||
import org.thoughtcrime.securesms.ui.LocalDimensions
|
||||
import org.thoughtcrime.securesms.ui.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.Colors
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.Colors
|
||||
import org.thoughtcrime.securesms.ui.PreviewTheme
|
||||
import org.thoughtcrime.securesms.ui.SessionColorsParameterProvider
|
||||
import org.thoughtcrime.securesms.ui.SessionShieldIcon
|
||||
|
@ -46,10 +46,11 @@ import org.thoughtcrime.securesms.onboarding.pickname.startPickDisplayNameActivi
|
||||
import org.thoughtcrime.securesms.service.KeyCachingService
|
||||
import org.thoughtcrime.securesms.showOpenUrlDialog
|
||||
import org.thoughtcrime.securesms.ui.LocalDimensions
|
||||
import org.thoughtcrime.securesms.ui.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.Colors
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.Colors
|
||||
import org.thoughtcrime.securesms.ui.PreviewTheme
|
||||
import org.thoughtcrime.securesms.ui.SessionColorsParameterProvider
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.components.BorderlessHtmlButton
|
||||
import org.thoughtcrime.securesms.ui.components.PrimaryFillButton
|
||||
import org.thoughtcrime.securesms.ui.components.PrimaryOutlineButton
|
||||
|
@ -26,7 +26,7 @@ import org.thoughtcrime.securesms.BaseActionBarActivity
|
||||
import org.thoughtcrime.securesms.home.HomeActivity
|
||||
import org.thoughtcrime.securesms.notifications.PushRegistry
|
||||
import org.thoughtcrime.securesms.ui.LocalDimensions
|
||||
import org.thoughtcrime.securesms.ui.Colors
|
||||
import org.thoughtcrime.securesms.ui.color.Colors
|
||||
import org.thoughtcrime.securesms.ui.PreviewTheme
|
||||
import org.thoughtcrime.securesms.ui.SessionColorsParameterProvider
|
||||
import org.thoughtcrime.securesms.ui.base
|
||||
|
@ -33,8 +33,8 @@ import org.thoughtcrime.securesms.BaseActionBarActivity
|
||||
import org.thoughtcrime.securesms.showSessionDialog
|
||||
import org.thoughtcrime.securesms.ui.CellWithPaddingAndMargin
|
||||
import org.thoughtcrime.securesms.ui.LocalDimensions
|
||||
import org.thoughtcrime.securesms.ui.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.Colors
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.Colors
|
||||
import org.thoughtcrime.securesms.ui.PreviewTheme
|
||||
import org.thoughtcrime.securesms.ui.SessionColorsParameterProvider
|
||||
import org.thoughtcrime.securesms.ui.SessionShieldIcon
|
||||
|
@ -4,7 +4,6 @@ import android.os.Bundle
|
||||
import dagger.hilt.android.AndroidEntryPoint
|
||||
import network.loki.messenger.R
|
||||
import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity
|
||||
import org.thoughtcrime.securesms.preferences.NotificationsPreferenceFragment
|
||||
|
||||
@AndroidEntryPoint
|
||||
class NotificationSettingsActivity : PassphraseRequiredActionBarActivity() {
|
||||
|
@ -25,7 +25,7 @@ import org.thoughtcrime.securesms.PassphraseRequiredActionBarActivity
|
||||
import org.thoughtcrime.securesms.conversation.v2.ConversationActivityV2
|
||||
import org.thoughtcrime.securesms.database.threadDatabase
|
||||
import org.thoughtcrime.securesms.ui.LocalDimensions
|
||||
import org.thoughtcrime.securesms.ui.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.components.MaybeScanQrCode
|
||||
import org.thoughtcrime.securesms.ui.components.QrImage
|
||||
import org.thoughtcrime.securesms.ui.components.SessionTabRow
|
||||
|
@ -80,7 +80,7 @@ import org.thoughtcrime.securesms.ui.ItemButtonWithDrawable
|
||||
import org.thoughtcrime.securesms.ui.LocalDimensions
|
||||
import org.thoughtcrime.securesms.ui.components.OutlineButton
|
||||
import org.thoughtcrime.securesms.ui.components.OutlineCopyButton
|
||||
import org.thoughtcrime.securesms.ui.destructiveButtonColors
|
||||
import org.thoughtcrime.securesms.ui.color.destructiveButtonColors
|
||||
import org.thoughtcrime.securesms.ui.setThemedContent
|
||||
import org.thoughtcrime.securesms.util.BitmapDecodingException
|
||||
import org.thoughtcrime.securesms.util.BitmapUtil
|
||||
|
@ -38,6 +38,7 @@ import androidx.compose.ui.unit.IntOffset
|
||||
import androidx.compose.ui.unit.dp
|
||||
import kotlinx.coroutines.launch
|
||||
import network.loki.messenger.R
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import kotlin.math.absoluteValue
|
||||
import kotlin.math.sign
|
||||
|
||||
|
@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.ui
|
||||
|
||||
import androidx.annotation.DrawableRes
|
||||
import androidx.annotation.StringRes
|
||||
import androidx.appcompat.content.res.AppCompatResources
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.foundation.Canvas
|
||||
import androidx.compose.foundation.Image
|
||||
@ -64,6 +65,10 @@ import org.session.libsession.utilities.recipients.Recipient
|
||||
import org.session.libsession.utilities.runIf
|
||||
import org.thoughtcrime.securesms.components.ProfilePictureView
|
||||
import org.thoughtcrime.securesms.conversation.disappearingmessages.ui.OptionsCard
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.divider
|
||||
import org.thoughtcrime.securesms.ui.color.radioButtonColors
|
||||
import org.thoughtcrime.securesms.ui.color.transparentButtonColors
|
||||
import kotlin.math.min
|
||||
import kotlin.math.roundToInt
|
||||
|
||||
@ -130,13 +135,12 @@ fun ItemButtonWithDrawable(
|
||||
text = stringResource(textId),
|
||||
icon = {
|
||||
Image(
|
||||
painter = rememberDrawablePainter(drawable = context.getDrawable(icon)),
|
||||
painter = rememberDrawablePainter(drawable = AppCompatResources.getDrawable(context, icon)),
|
||||
contentDescription = stringResource(contentDescription),
|
||||
modifier = Modifier.align(Alignment.Center)
|
||||
)
|
||||
},
|
||||
colors = colors,
|
||||
contentDescription = stringResource(contentDescription),
|
||||
onClick = onClick
|
||||
)
|
||||
}
|
||||
@ -159,7 +163,6 @@ fun ItemButton(
|
||||
)
|
||||
},
|
||||
colors = colors,
|
||||
contentDescription = contentDescription,
|
||||
onClick = onClick
|
||||
)
|
||||
}
|
||||
@ -167,9 +170,8 @@ fun ItemButton(
|
||||
@Composable
|
||||
fun ItemButton(
|
||||
text: String,
|
||||
icon: @Composable BoxScope.() -> Unit,
|
||||
icon: @Composable() (BoxScope.() -> Unit),
|
||||
colors: ButtonColors = transparentButtonColors(),
|
||||
contentDescription: String = text,
|
||||
onClick: () -> Unit
|
||||
) {
|
||||
TextButton(
|
||||
|
@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.ui
|
||||
|
||||
import android.content.Context
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.text.selection.LocalTextSelectionColors
|
||||
@ -16,8 +15,13 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameterProvider
|
||||
import org.session.libsession.utilities.AppTextSecurePreferences
|
||||
import org.thoughtcrime.securesms.util.ThemeState
|
||||
import org.thoughtcrime.securesms.util.themeState
|
||||
import org.thoughtcrime.securesms.ui.color.ClassicDark
|
||||
import org.thoughtcrime.securesms.ui.color.ClassicLight
|
||||
import org.thoughtcrime.securesms.ui.color.Colors
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.OceanDark
|
||||
import org.thoughtcrime.securesms.ui.color.OceanLight
|
||||
import org.thoughtcrime.securesms.ui.color.colors
|
||||
|
||||
/**
|
||||
* Apply a Material2 compose theme based on user selections in SharedPreferences.
|
||||
@ -26,7 +30,7 @@ import org.thoughtcrime.securesms.util.themeState
|
||||
fun SessionMaterialTheme(
|
||||
content: @Composable () -> Unit
|
||||
) {
|
||||
SessionMaterialTheme(LocalContext.current.sessionColors()) { content() }
|
||||
SessionMaterialTheme(LocalContext.current.colors()) { content() }
|
||||
}
|
||||
|
||||
/**
|
||||
@ -73,8 +77,7 @@ private fun Colors.toMaterialColors() = androidx.compose.material.Colors(
|
||||
isLight = isLight
|
||||
)
|
||||
|
||||
@Composable private fun Context.sessionColors() = AppTextSecurePreferences(this).themeState().sessionColors()
|
||||
@Composable private fun ThemeState.sessionColors() = sessionColors(if (followSystem) !isSystemInDarkTheme() else isLight, isClassic, accent)
|
||||
@Composable private fun Context.colors() = AppTextSecurePreferences(this).colors()
|
||||
|
||||
val sessionShapes = Shapes(
|
||||
small = RoundedCornerShape(50)
|
||||
|
@ -0,0 +1,53 @@
|
||||
package org.thoughtcrime.securesms.ui.color
|
||||
|
||||
import androidx.compose.ui.graphics.Color
|
||||
|
||||
|
||||
val classicDark0 = Color(0xff111111)
|
||||
val classicDark1 = Color(0xff1B1B1B)
|
||||
val classicDark2 = Color(0xff2D2D2D)
|
||||
val classicDark3 = Color(0xff414141)
|
||||
val classicDark4 = Color(0xff767676)
|
||||
val classicDark5 = Color(0xffA1A2A1)
|
||||
val classicDark6 = Color(0xffFFFFFF)
|
||||
|
||||
val classicLight0 = Color(0xff000000)
|
||||
val classicLight1 = Color(0xff6D6D6D)
|
||||
val classicLight2 = Color(0xffA1A2A1)
|
||||
val classicLight3 = Color(0xffDFDFDF)
|
||||
val classicLight4 = Color(0xffF0F0F0)
|
||||
val classicLight5 = Color(0xffF9F9F9)
|
||||
val classicLight6 = Color(0xffFFFFFF)
|
||||
|
||||
val oceanDark0 = Color(0xff000000)
|
||||
val oceanDark1 = Color(0xff1A1C28)
|
||||
val oceanDark2 = Color(0xff252735)
|
||||
val oceanDark3 = Color(0xff2B2D40)
|
||||
val oceanDark4 = Color(0xff3D4A5D)
|
||||
val oceanDark5 = Color(0xffA6A9CE)
|
||||
val oceanDark6 = Color(0xff5CAACC)
|
||||
val oceanDark7 = Color(0xffFFFFFF)
|
||||
|
||||
val oceanLight0 = Color(0xff000000)
|
||||
val oceanLight1 = Color(0xff19345D)
|
||||
val oceanLight2 = Color(0xff6A6E90)
|
||||
val oceanLight3 = Color(0xff5CAACC)
|
||||
val oceanLight4 = Color(0xffB3EDF2)
|
||||
val oceanLight5 = Color(0xffE7F3F4)
|
||||
val oceanLight6 = Color(0xffECFAFB)
|
||||
val oceanLight7 = Color(0xffFCFFFF)
|
||||
|
||||
val primaryGreen = Color(0xFF31F196)
|
||||
val primaryBlue = Color(0xFF57C9FA)
|
||||
val primaryPurple = Color(0xFFC993FF)
|
||||
val primaryPink = Color(0xFFFF95EF)
|
||||
val primaryRed = Color(0xFFFF9C8E)
|
||||
val primaryOrange = Color(0xFFFCB159)
|
||||
val primaryYellow = Color(0xFFFAD657)
|
||||
|
||||
val dangerDark = Color(0xFFFF3A3A)
|
||||
val dangerLight = Color(0xFFE12D19)
|
||||
val disabledDark = Color(0xFFA1A2A1)
|
||||
val disabledLight = Color(0xFF6D6D6D)
|
||||
|
||||
val blackAlpha40 = Color.Black.copy(alpha = 0.4f)
|
@ -1,7 +1,7 @@
|
||||
package org.thoughtcrime.securesms.ui
|
||||
package org.thoughtcrime.securesms.ui.color
|
||||
|
||||
import android.content.Context
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.isSystemInDarkTheme
|
||||
import androidx.compose.foundation.layout.Box
|
||||
import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.material.ButtonDefaults
|
||||
@ -15,58 +15,12 @@ import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.staticCompositionLocalOf
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.takeOrElse
|
||||
import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import org.session.libsession.utilities.TextSecurePreferences
|
||||
|
||||
val classicDark0 = Color(0xff111111)
|
||||
val classicDark1 = Color(0xff1B1B1B)
|
||||
val classicDark2 = Color(0xff2D2D2D)
|
||||
val classicDark3 = Color(0xff414141)
|
||||
val classicDark4 = Color(0xff767676)
|
||||
val classicDark5 = Color(0xffA1A2A1)
|
||||
val classicDark6 = Color(0xffFFFFFF)
|
||||
|
||||
val classicLight0 = Color(0xff000000)
|
||||
val classicLight1 = Color(0xff6D6D6D)
|
||||
val classicLight2 = Color(0xffA1A2A1)
|
||||
val classicLight3 = Color(0xffDFDFDF)
|
||||
val classicLight4 = Color(0xffF0F0F0)
|
||||
val classicLight5 = Color(0xffF9F9F9)
|
||||
val classicLight6 = Color(0xffFFFFFF)
|
||||
|
||||
val oceanDark0 = Color(0xff000000)
|
||||
val oceanDark1 = Color(0xff1A1C28)
|
||||
val oceanDark2 = Color(0xff252735)
|
||||
val oceanDark3 = Color(0xff2B2D40)
|
||||
val oceanDark4 = Color(0xff3D4A5D)
|
||||
val oceanDark5 = Color(0xffA6A9CE)
|
||||
val oceanDark6 = Color(0xff5CAACC)
|
||||
val oceanDark7 = Color(0xffFFFFFF)
|
||||
|
||||
val oceanLight0 = Color(0xff000000)
|
||||
val oceanLight1 = Color(0xff19345D)
|
||||
val oceanLight2 = Color(0xff6A6E90)
|
||||
val oceanLight3 = Color(0xff5CAACC)
|
||||
val oceanLight4 = Color(0xffB3EDF2)
|
||||
val oceanLight5 = Color(0xffE7F3F4)
|
||||
val oceanLight6 = Color(0xffECFAFB)
|
||||
val oceanLight7 = Color(0xffFCFFFF)
|
||||
|
||||
val primaryGreen = Color(0xFF31F196)
|
||||
val primaryBlue = Color(0xFF57C9FA)
|
||||
val primaryPurple = Color(0xFFC993FF)
|
||||
val primaryPink = Color(0xFFFF95EF)
|
||||
val primaryRed = Color(0xFFFF9C8E)
|
||||
val primaryOrange = Color(0xFFFCB159)
|
||||
val primaryYellow = Color(0xFFFAD657)
|
||||
|
||||
val dangerDark = Color(0xFFFF3A3A)
|
||||
val dangerLight = Color(0xFFE12D19)
|
||||
val disabledDark = Color(0xFFA1A2A1)
|
||||
val disabledLight = Color(0xFF6D6D6D)
|
||||
|
||||
val blackAlpha40 = Color.Black.copy(alpha = 0.4f)
|
||||
import org.thoughtcrime.securesms.ui.PreviewTheme
|
||||
import org.thoughtcrime.securesms.ui.SessionColorsParameterProvider
|
||||
import org.thoughtcrime.securesms.ui.base
|
||||
|
||||
val LocalColors = staticCompositionLocalOf<Colors> { ClassicDark() }
|
||||
|
||||
@ -90,19 +44,6 @@ interface Colors {
|
||||
val qrCodeBackground: Color
|
||||
}
|
||||
|
||||
val Colors.slimOutlineButton: Color get() = text
|
||||
|
||||
fun sessionColors(
|
||||
isLight: Boolean,
|
||||
isClassic: Boolean,
|
||||
primary: Color
|
||||
): Colors = when {
|
||||
isClassic && isLight -> ::ClassicLight
|
||||
isLight -> ::OceanLight
|
||||
isClassic -> ::ClassicDark
|
||||
else -> ::OceanDark
|
||||
}(primary)
|
||||
|
||||
data class ClassicDark(override val primary: Color = primaryGreen): Colors {
|
||||
override val isLight = false
|
||||
override val danger = dangerDark
|
||||
@ -175,11 +116,7 @@ data class OceanLight(override val primary: Color = primaryBlue): Colors {
|
||||
override val qrCodeBackground = backgroundSecondary
|
||||
}
|
||||
|
||||
@Composable
|
||||
fun transparentButtonColors() = ButtonDefaults.buttonColors(backgroundColor = Color.Transparent)
|
||||
|
||||
@Composable
|
||||
fun destructiveButtonColors() = ButtonDefaults.buttonColors(backgroundColor = Color.Transparent, contentColor = LocalColors.current.danger)
|
||||
val Colors.slimOutlineButton: Color get() = text
|
||||
|
||||
@Composable
|
||||
fun Colors(name: String, colors: List<Color>) {
|
||||
@ -250,12 +187,39 @@ fun Colors.radioButtonColors() = RadioButtonDefaults.colors(
|
||||
disabledColor = disabled
|
||||
)
|
||||
|
||||
fun TextSecurePreferences.Companion.getAccentColor(context: Context): Color = when (getAccentColorName(context)) {
|
||||
BLUE_ACCENT -> primaryBlue
|
||||
PURPLE_ACCENT -> primaryPurple
|
||||
PINK_ACCENT -> primaryPink
|
||||
RED_ACCENT -> primaryRed
|
||||
ORANGE_ACCENT -> primaryOrange
|
||||
YELLOW_ACCENT -> primaryYellow
|
||||
else -> primaryGreen
|
||||
@Composable
|
||||
fun transparentButtonColors() = ButtonDefaults.buttonColors(backgroundColor = Color.Transparent)
|
||||
|
||||
@Composable
|
||||
fun destructiveButtonColors() = ButtonDefaults.buttonColors(backgroundColor = Color.Transparent, contentColor = LocalColors.current.danger)
|
||||
|
||||
|
||||
/**
|
||||
* This class holds two instances of [Colors], [light] representing the [Colors] to use when the system is in a
|
||||
* light theme, and [dark] representing the [Colors] to use when the system is in a dark theme.
|
||||
*
|
||||
* If the user has [followSystemSettings] turned on then [light] should be equal to [dark].
|
||||
*/
|
||||
data class LightDarkColors(
|
||||
val light: Colors,
|
||||
val dark: Colors
|
||||
) {
|
||||
@Composable
|
||||
fun colors() = if (light == dark || isSystemInDarkTheme()) dark else light
|
||||
}
|
||||
|
||||
/**
|
||||
* Courtesy constructor that sets [light] and [dark] based on properties.
|
||||
*/
|
||||
fun LightDarkColors(isClassic: Boolean, isLight: Boolean, followSystemSettings: Boolean, primaryOrUnspecified: Color): LightDarkColors {
|
||||
val primary = primaryOrUnspecified.takeOrElse { if (isClassic) primaryGreen else primaryBlue }
|
||||
val light = when {
|
||||
isLight || followSystemSettings -> if (isClassic) ClassicLight(primary) else OceanLight(primary)
|
||||
else -> if (isClassic) ClassicDark(primary) else OceanDark(primary)
|
||||
}
|
||||
val dark = when {
|
||||
isLight && !followSystemSettings -> if (isClassic) ClassicLight(primary) else OceanLight(primary)
|
||||
else -> if (isClassic) ClassicDark(primary) else OceanDark(primary)
|
||||
}
|
||||
return LightDarkColors(light, dark)
|
||||
}
|
@ -0,0 +1,34 @@
|
||||
package org.thoughtcrime.securesms.ui.color
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import org.session.libsession.utilities.TextSecurePreferences
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.BLUE_ACCENT
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.CLASSIC_DARK
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.CLASSIC_LIGHT
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.GREEN_ACCENT
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.OCEAN_LIGHT
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.ORANGE_ACCENT
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.PINK_ACCENT
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.PURPLE_ACCENT
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.RED_ACCENT
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.YELLOW_ACCENT
|
||||
|
||||
/**
|
||||
* Retrieve the current [Colors] from [TextSecurePreferences] and current system settings.
|
||||
*/
|
||||
@Composable
|
||||
fun TextSecurePreferences.colors(): Colors = lightDarkColors().colors()
|
||||
fun TextSecurePreferences.lightDarkColors() = LightDarkColors(isClassic(), isLight(), getFollowSystemSettings(), primaryColor())
|
||||
fun TextSecurePreferences.isLight(): Boolean = getThemeStyle() in setOf(CLASSIC_LIGHT, OCEAN_LIGHT)
|
||||
fun TextSecurePreferences.isClassic(): Boolean = getThemeStyle() in setOf(CLASSIC_DARK, CLASSIC_LIGHT)
|
||||
fun TextSecurePreferences.primaryColor(): Color = when(getSelectedAccentColor()) {
|
||||
GREEN_ACCENT -> primaryGreen
|
||||
BLUE_ACCENT -> primaryBlue
|
||||
PURPLE_ACCENT -> primaryPurple
|
||||
PINK_ACCENT -> primaryPink
|
||||
RED_ACCENT -> primaryRed
|
||||
ORANGE_ACCENT -> primaryOrange
|
||||
YELLOW_ACCENT -> primaryYellow
|
||||
else -> Color.Unspecified
|
||||
}
|
@ -16,7 +16,7 @@ import androidx.compose.ui.tooling.preview.Preview
|
||||
import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import network.loki.messenger.R
|
||||
import org.thoughtcrime.securesms.ui.Colors
|
||||
import org.thoughtcrime.securesms.ui.color.Colors
|
||||
import org.thoughtcrime.securesms.ui.PreviewTheme
|
||||
import org.thoughtcrime.securesms.ui.SessionColorsParameterProvider
|
||||
import org.thoughtcrime.securesms.ui.h4
|
||||
|
@ -42,14 +42,14 @@ import kotlinx.coroutines.flow.filter
|
||||
import network.loki.messenger.R
|
||||
import org.thoughtcrime.securesms.ui.GetString
|
||||
import org.thoughtcrime.securesms.ui.LaunchedEffectAsync
|
||||
import org.thoughtcrime.securesms.ui.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.baseBold
|
||||
import org.thoughtcrime.securesms.ui.color.radioButtonColors
|
||||
import org.thoughtcrime.securesms.ui.color.slimOutlineButton
|
||||
import org.thoughtcrime.securesms.ui.contentDescription
|
||||
import org.thoughtcrime.securesms.ui.extraSmall
|
||||
import org.thoughtcrime.securesms.ui.h8
|
||||
import org.thoughtcrime.securesms.ui.h9
|
||||
import org.thoughtcrime.securesms.ui.radioButtonColors
|
||||
import org.thoughtcrime.securesms.ui.slimOutlineButton
|
||||
import org.thoughtcrime.securesms.ui.small
|
||||
import kotlin.time.Duration
|
||||
import kotlin.time.Duration.Companion.seconds
|
||||
|
@ -57,7 +57,7 @@ import kotlinx.coroutines.flow.filter
|
||||
import network.loki.messenger.R
|
||||
import org.session.libsignal.utilities.Log
|
||||
import org.thoughtcrime.securesms.ui.LocalDimensions
|
||||
import org.thoughtcrime.securesms.ui.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.base
|
||||
import java.util.concurrent.Executors
|
||||
|
||||
|
@ -30,7 +30,7 @@ import androidx.compose.ui.unit.dp
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import network.loki.messenger.R
|
||||
import org.thoughtcrime.securesms.ui.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.util.QRCodeUtilities
|
||||
|
||||
@Composable
|
||||
|
@ -19,11 +19,11 @@ import androidx.compose.ui.tooling.preview.PreviewParameter
|
||||
import androidx.compose.ui.unit.dp
|
||||
import kotlinx.coroutines.launch
|
||||
import network.loki.messenger.R
|
||||
import org.thoughtcrime.securesms.ui.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.PreviewTheme
|
||||
import org.thoughtcrime.securesms.ui.Colors
|
||||
import org.thoughtcrime.securesms.ui.color.Colors
|
||||
import org.thoughtcrime.securesms.ui.SessionColorsParameterProvider
|
||||
import org.thoughtcrime.securesms.ui.divider
|
||||
import org.thoughtcrime.securesms.ui.color.divider
|
||||
import org.thoughtcrime.securesms.ui.h8
|
||||
|
||||
private val TITLES = listOf(R.string.sessionRecoveryPassword, R.string.qrScan)
|
||||
|
@ -26,10 +26,10 @@ import androidx.compose.ui.text.style.TextAlign
|
||||
import androidx.compose.ui.unit.TextUnit
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import org.thoughtcrime.securesms.ui.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.base
|
||||
import org.thoughtcrime.securesms.ui.baseBold
|
||||
import org.thoughtcrime.securesms.ui.outlinedTextFieldColors
|
||||
import org.thoughtcrime.securesms.ui.color.LocalColors
|
||||
import org.thoughtcrime.securesms.ui.color.outlinedTextFieldColors
|
||||
|
||||
@Composable
|
||||
fun SessionOutlinedTextField(
|
||||
|
@ -11,14 +11,11 @@ import androidx.appcompat.widget.Toolbar
|
||||
import androidx.fragment.app.DialogFragment
|
||||
import network.loki.messenger.R
|
||||
import org.session.libsession.utilities.TextSecurePreferences
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.CLASSIC_DARK
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.CLASSIC_LIGHT
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.OCEAN_DARK
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.OCEAN_LIGHT
|
||||
import org.thoughtcrime.securesms.BaseActionBarActivity
|
||||
import org.thoughtcrime.securesms.ui.primaryBlue
|
||||
import org.thoughtcrime.securesms.ui.primaryGreen
|
||||
import org.thoughtcrime.securesms.ui.primaryOrange
|
||||
import org.thoughtcrime.securesms.ui.primaryPink
|
||||
import org.thoughtcrime.securesms.ui.primaryPurple
|
||||
import org.thoughtcrime.securesms.ui.primaryRed
|
||||
import org.thoughtcrime.securesms.ui.primaryYellow
|
||||
|
||||
fun BaseActionBarActivity.setUpActionBarSessionLogo(hideBackButton: Boolean = false) {
|
||||
val actionbar = supportActionBar!!
|
||||
@ -90,10 +87,10 @@ fun TextSecurePreferences.themeState(): ThemeState {
|
||||
|
||||
@StyleRes
|
||||
fun String.getThemeStyle(): Int = when (this) {
|
||||
TextSecurePreferences.CLASSIC_DARK -> R.style.Classic_Dark
|
||||
TextSecurePreferences.CLASSIC_LIGHT -> R.style.Classic_Light
|
||||
TextSecurePreferences.OCEAN_DARK -> R.style.Ocean_Dark
|
||||
TextSecurePreferences.OCEAN_LIGHT -> R.style.Ocean_Light
|
||||
CLASSIC_DARK -> R.style.Classic_Dark
|
||||
CLASSIC_LIGHT -> R.style.Classic_Light
|
||||
OCEAN_DARK -> R.style.Ocean_Dark
|
||||
OCEAN_LIGHT -> R.style.Ocean_Light
|
||||
else -> throw NullPointerException("The style [$this] is not supported")
|
||||
}
|
||||
|
||||
@ -107,21 +104,7 @@ data class ThemeState (
|
||||
@StyleRes val theme: Int,
|
||||
@StyleRes val accentStyle: Int,
|
||||
val followSystem: Boolean
|
||||
) {
|
||||
val isLight = theme in setOf(R.style.Classic_Light, R.style.Ocean_Light)
|
||||
val isClassic = theme in setOf(R.style.Classic_Light, R.style.Classic_Dark)
|
||||
|
||||
val accent = when(accentStyle) {
|
||||
R.style.PrimaryGreen -> primaryGreen
|
||||
R.style.PrimaryBlue -> primaryBlue
|
||||
R.style.PrimaryPurple -> primaryPurple
|
||||
R.style.PrimaryPink -> primaryPink
|
||||
R.style.PrimaryRed -> primaryRed
|
||||
R.style.PrimaryOrange -> primaryOrange
|
||||
R.style.PrimaryYellow -> primaryYellow
|
||||
else -> primaryGreen
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
inline fun <reified T: Activity> Activity.show() = Intent(this, T::class.java).also(::startActivity).let { overridePendingTransition(R.anim.slide_from_bottom, R.anim.fade_scale_out) }
|
||||
inline fun <reified T: Activity> Activity.push() = Intent(this, T::class.java).also(::startActivity).let { overridePendingTransition(R.anim.slide_from_right, R.anim.fade_scale_out) }
|
||||
|
@ -14,6 +14,7 @@ import kotlinx.coroutines.channels.BufferOverflow
|
||||
import kotlinx.coroutines.flow.MutableSharedFlow
|
||||
import kotlinx.coroutines.flow.asSharedFlow
|
||||
import org.session.libsession.R
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.AUTOPLAY_AUDIO_MESSAGES
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.CALL_NOTIFICATIONS_ENABLED
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.CLASSIC_DARK
|
||||
@ -24,6 +25,8 @@ import org.session.libsession.utilities.TextSecurePreferences.Companion.LAST_VAC
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.LEGACY_PREF_KEY_SELECTED_UI_MODE
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.OCEAN_DARK
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.OCEAN_LIGHT
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.ORANGE_ACCENT
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.SELECTED_ACCENT_COLOR
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.SELECTED_STYLE
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.SHOWN_CALL_NOTIFICATION
|
||||
import org.session.libsession.utilities.TextSecurePreferences.Companion.SHOWN_CALL_WARNING
|
||||
@ -175,6 +178,7 @@ interface TextSecurePreferences {
|
||||
fun setLastVacuumNow()
|
||||
fun getFingerprintKeyGenerated(): Boolean
|
||||
fun setFingerprintKeyGenerated()
|
||||
fun getSelectedAccentColor(): String?
|
||||
@StyleRes fun getAccentColorStyle(): Int?
|
||||
fun setAccentColorStyle(@StyleRes newColorStyle: Int?)
|
||||
fun getThemeStyle(): String
|
||||
@ -987,35 +991,6 @@ interface TextSecurePreferences {
|
||||
setBooleanPreference(context, FINGERPRINT_KEY_GENERATED, true)
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun getAccentColorName(context: Context): String? = getStringPreference(context, SELECTED_ACCENT_COLOR, ORANGE_ACCENT)
|
||||
|
||||
@JvmStatic @StyleRes
|
||||
fun getAccentColorStyle(context: Context): Int? = when (getAccentColorName(context)) {
|
||||
GREEN_ACCENT -> R.style.PrimaryGreen
|
||||
BLUE_ACCENT -> R.style.PrimaryBlue
|
||||
PURPLE_ACCENT -> R.style.PrimaryPurple
|
||||
PINK_ACCENT -> R.style.PrimaryPink
|
||||
RED_ACCENT -> R.style.PrimaryRed
|
||||
ORANGE_ACCENT -> R.style.PrimaryOrange
|
||||
YELLOW_ACCENT -> R.style.PrimaryYellow
|
||||
else -> null
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun setAccentColorStyle(context: Context, @StyleRes newColor: Int?) {
|
||||
setStringPreference(context, SELECTED_ACCENT_COLOR, when (newColor) {
|
||||
R.style.PrimaryGreen -> GREEN_ACCENT
|
||||
R.style.PrimaryBlue -> BLUE_ACCENT
|
||||
R.style.PrimaryPurple -> PURPLE_ACCENT
|
||||
R.style.PrimaryPink -> PINK_ACCENT
|
||||
R.style.PrimaryRed -> RED_ACCENT
|
||||
R.style.PrimaryOrange -> ORANGE_ACCENT
|
||||
R.style.PrimaryYellow -> YELLOW_ACCENT
|
||||
else -> null
|
||||
})
|
||||
}
|
||||
|
||||
@JvmStatic
|
||||
fun clearAll(context: Context) {
|
||||
getDefaultSharedPreferences(context).edit().clear().commit()
|
||||
@ -1628,13 +1603,12 @@ class AppTextSecurePreferences @Inject constructor(
|
||||
setBooleanPreference(TextSecurePreferences.FINGERPRINT_KEY_GENERATED, true)
|
||||
}
|
||||
|
||||
override fun getSelectedAccentColor(): String? =
|
||||
getStringPreference(SELECTED_ACCENT_COLOR, null)
|
||||
|
||||
@StyleRes
|
||||
override fun getAccentColorStyle(): Int? {
|
||||
val prefColor = getStringPreference(
|
||||
TextSecurePreferences.SELECTED_ACCENT_COLOR,
|
||||
null
|
||||
)
|
||||
return when (prefColor) {
|
||||
return when (getSelectedAccentColor()) {
|
||||
TextSecurePreferences.GREEN_ACCENT -> R.style.PrimaryGreen
|
||||
TextSecurePreferences.BLUE_ACCENT -> R.style.PrimaryBlue
|
||||
TextSecurePreferences.PURPLE_ACCENT -> R.style.PrimaryPurple
|
||||
|
Loading…
x
Reference in New Issue
Block a user