Initial commit: rosetta-android-prime

This commit is contained in:
k1ngsterr1
2026-01-08 19:06:37 +05:00
commit 42ddfe5b18
54 changed files with 68604 additions and 0 deletions

View File

@@ -0,0 +1,41 @@
package com.rosetta.messenger.ui.theme
import androidx.compose.ui.graphics.Color
// Light theme colors
val LightBackground = Color(0xFFFFFFFF)
val LightBackgroundSecondary = Color(0xFFF2F3F5)
val LightSurface = Color(0xFFF5F5F5)
val LightText = Color(0xFF000000)
val LightTextSecondary = Color(0xFF666666)
val LightTextTertiary = Color(0xFF999999)
val LightBlue = Color(0xFF74C0FC)
val LightBorder = Color(0xFFE0E0E0)
val LightDivider = Color(0xFFEEEEEE)
val LightMessageBackground = Color(0xFFF5F5F5)
val LightMessageBackgroundOwn = Color(0xFFDCF8C6)
val LightPrimary = Color(0xFF248AE6)
val LightPrimaryLight = Color(0xFF73C0FC)
val LightInputBackground = Color(0xFFF2F3F5)
// Dark theme colors
val DarkBackground = Color(0xFF1E1E1E)
val DarkBackgroundSecondary = Color(0xFF2A2A2A)
val DarkSurface = Color(0xFF242424)
val DarkText = Color(0xFFFFFFFF)
val DarkTextSecondary = Color(0xFF8E8E93)
val DarkTextTertiary = Color(0xFF666666)
val DarkBorder = Color(0xFF2E2E2E)
val DarkDivider = Color(0xFF333333)
val DarkMessageBackground = Color(0xFF2A2A2A)
val DarkMessageBackgroundOwn = Color(0xFF263341)
val DarkPrimary = Color(0xFF238BE6)
val DarkPrimaryLight = Color(0xFF5BA8F0)
val DarkInputBackground = Color(0xFF2A2A2A)
// Shared colors
val Accent = Color(0xFFE91E63)
val Error = Color(0xFFFF3B30)
val Success = Color(0xFF34C759)
val Warning = Color(0xFFFF9500)
val OnlineIndicator = Color(0xFF34C759)

View File

@@ -0,0 +1,82 @@
package com.rosetta.messenger.ui.theme
import android.graphics.Color as AndroidColor
import android.os.Build
import androidx.compose.foundation.isSystemInDarkTheme
import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.darkColorScheme
import androidx.compose.material3.dynamicDarkColorScheme
import androidx.compose.material3.dynamicLightColorScheme
import androidx.compose.material3.lightColorScheme
import androidx.compose.runtime.*
import androidx.compose.ui.graphics.toArgb
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.platform.LocalView
import androidx.core.view.WindowCompat
import kotlinx.coroutines.delay
private val DarkColorScheme = darkColorScheme(
primary = DarkPrimary,
secondary = Accent,
tertiary = DarkPrimaryLight,
background = DarkBackground,
surface = DarkSurface,
error = Error,
onPrimary = DarkText,
onSecondary = DarkText,
onTertiary = DarkText,
onBackground = DarkText,
onSurface = DarkText,
onError = DarkText,
)
private val LightColorScheme = lightColorScheme(
primary = LightPrimary,
secondary = Accent,
tertiary = LightPrimaryLight,
background = LightBackground,
surface = LightSurface,
error = Error,
onPrimary = LightText,
onSecondary = LightText,
onTertiary = LightText,
onBackground = LightText,
onSurface = LightText,
onError = LightText,
)
@Composable
fun RosettaAndroidTheme(
darkTheme: Boolean = isSystemInDarkTheme(),
// Dynamic color is available on Android 12+
dynamicColor: Boolean = false,
@Suppress("UNUSED_PARAMETER") animated: Boolean = false,
content: @Composable () -> Unit
) {
val colorScheme = when {
dynamicColor && Build.VERSION.SDK_INT >= Build.VERSION_CODES.S -> {
val context = LocalContext.current
if (darkTheme) dynamicDarkColorScheme(context) else dynamicLightColorScheme(context)
}
darkTheme -> DarkColorScheme
else -> LightColorScheme
}
val view = LocalView.current
if (!view.isInEditMode) {
SideEffect {
val window = (view.context as android.app.Activity).window
// Make status bar transparent for wave animation overlay
window.statusBarColor = AndroidColor.TRANSPARENT
window.navigationBarColor = if (darkTheme) 0xFF1B1B1B.toInt() else 0xFFFFFFFF.toInt()
WindowCompat.getInsetsController(window, view).isAppearanceLightStatusBars = !darkTheme
WindowCompat.getInsetsController(window, view).isAppearanceLightNavigationBars = !darkTheme
}
}
MaterialTheme(
colorScheme = colorScheme,
typography = Typography,
content = content
)
}

View File

@@ -0,0 +1,38 @@
package com.rosetta.messenger.ui.theme
import androidx.compose.material3.Typography
import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.sp
val Typography = Typography(
bodyLarge = TextStyle(
fontFamily = FontFamily.Default,
fontWeight = FontWeight.Normal,
fontSize = 16.sp,
lineHeight = 24.sp,
letterSpacing = 0.5.sp
),
titleLarge = TextStyle(
fontFamily = FontFamily.Default,
fontWeight = FontWeight.Bold,
fontSize = 28.sp,
lineHeight = 34.sp,
letterSpacing = 0.sp
),
bodyMedium = TextStyle(
fontFamily = FontFamily.Default,
fontWeight = FontWeight.Normal,
fontSize = 14.sp,
lineHeight = 20.sp,
letterSpacing = 0.25.sp
),
labelLarge = TextStyle(
fontFamily = FontFamily.Default,
fontWeight = FontWeight.SemiBold,
fontSize = 16.sp,
lineHeight = 24.sp,
letterSpacing = 0.sp
)
)