diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 3d93fae..17803f9 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -3,7 +3,8 @@
xmlns:tools="http://schemas.android.com/tools"
package="dev.baseio.discordjetpackcompose">
-
+
+
Unit = {},
- navigationIcon: @Composable (() -> Unit)? = null,
- actions: @Composable RowScope.() -> Unit = {},
- backgroundColor: Color = DiscordColorProvider.colors.primarySurface,
- contentColor: Color = contentColorFor(backgroundColor),
- elevation: Dp = AppBarDefaults.TopAppBarElevation,
+ modifier: Modifier = Modifier,
+ title: @Composable () -> Unit = {},
+ navigationIcon: @Composable (() -> Unit)? = null,
+ actions: @Composable RowScope.() -> Unit = {},
+ backgroundColor: Color = DiscordColorProvider.colors.primarySurface,
+ contentColor: Color = contentColorFor(backgroundColor),
+ elevation: Dp = AppBarDefaults.TopAppBarElevation,
) {
- DiscordSurface(
- color = backgroundColor,
- contentColor = contentColor,
- elevation = elevation
- ) {
- TopAppBar(
- title, modifier, navigationIcon, actions, backgroundColor, contentColor, elevation
- )
- }
+ DiscordSurface(
+ color = backgroundColor,
+ contentColor = contentColor,
+ elevation = elevation
+ ) {
+ TopAppBar(
+ title, modifier, navigationIcon, actions, backgroundColor, contentColor, elevation
+ )
+ }
}
\ No newline at end of file
diff --git a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/components/NetworkStateBar.kt b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/components/NetworkStateBar.kt
new file mode 100644
index 0000000..43d46a1
--- /dev/null
+++ b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/components/NetworkStateBar.kt
@@ -0,0 +1,303 @@
+package dev.baseio.discordjetpackcompose.ui.routes.dashboard.components
+
+import android.content.BroadcastReceiver
+import android.content.Context
+import android.content.Intent
+import android.content.IntentFilter
+import android.net.ConnectivityManager
+import android.net.Network
+import android.net.NetworkCapabilities
+import android.net.NetworkRequest
+import androidx.compose.animation.AnimatedVisibility
+import androidx.compose.animation.animateColorAsState
+import androidx.compose.foundation.background
+import androidx.compose.foundation.layout.Arrangement
+import androidx.compose.foundation.layout.Box
+import androidx.compose.foundation.layout.Row
+import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
+import androidx.compose.foundation.layout.padding
+import androidx.compose.foundation.layout.width
+import androidx.compose.foundation.shape.RoundedCornerShape
+import androidx.compose.material.Icon
+import androidx.compose.material.Text
+import androidx.compose.runtime.Composable
+import androidx.compose.runtime.DisposableEffect
+import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.MutableState
+import androidx.compose.runtime.State
+import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
+import androidx.compose.runtime.produceState
+import androidx.compose.runtime.remember
+import androidx.compose.runtime.rememberCoroutineScope
+import androidx.compose.runtime.setValue
+import androidx.compose.ui.Alignment
+import androidx.compose.ui.Modifier
+import androidx.compose.ui.draw.rotate
+import androidx.compose.ui.graphics.Color
+import androidx.compose.ui.platform.LocalContext
+import androidx.compose.ui.res.painterResource
+import androidx.compose.ui.res.stringResource
+import androidx.compose.ui.unit.Dp
+import androidx.compose.ui.unit.dp
+import dev.baseio.discordjetpackcompose.R
+import dev.baseio.discordjetpackcompose.ui.theme.DiscordColorProvider
+import dev.baseio.discordjetpackcompose.ui.theme.Typography
+import kotlinx.coroutines.ExperimentalCoroutinesApi
+import kotlinx.coroutines.channels.awaitClose
+import kotlinx.coroutines.delay
+import kotlinx.coroutines.flow.callbackFlow
+import kotlinx.coroutines.launch
+
+@Composable
+fun rememberAirplaneModeState(): Boolean {
+ val context = LocalContext.current
+ val airplaneMode = remember {
+ mutableStateOf(false)
+ }
+ DisposableEffect(context) {
+ val broadcast = object : BroadcastReceiver() {
+ override fun onReceive(context: Context?, intent: Intent?) {
+ val state: Boolean = intent?.getBooleanExtra("state", false) ?: return
+ airplaneMode.value = state
+ }
+ }
+ context.registerReceiver(broadcast, IntentFilter(Intent.ACTION_AIRPLANE_MODE_CHANGED))
+ onDispose {
+ context.unregisterReceiver(broadcast)
+ }
+ }
+ return airplaneMode.value
+}
+
+
+@Composable
+fun NetworkStateBar(
+ modifier: Modifier = Modifier,
+) {
+
+ val connection by connectivityState()
+ val isConnected by remember(key1 = connection) {
+ mutableStateOf(connection == ConnectionState.Available)
+ }
+
+ Row(
+ verticalAlignment = Alignment.Bottom,
+ horizontalArrangement = Arrangement.Center,
+ modifier = modifier
+ .fillMaxWidth()
+ .padding(top = 4.dp)
+ ) {
+ if (rememberAirplaneModeState()) {
+ Icon(
+ painter = painterResource(id = R.drawable.ic_airplanemode),
+ contentDescription = null,
+ modifier = Modifier.rotate(90f),
+ tint = DiscordColorProvider.colors.textPrimary
+ )
+ NetworkStateText { R.string.airplane_mode_is_active }
+ } else if (isConnected) {
+ ConnectingAnimation()
+ } else {
+ NoNetwork()
+ NetworkStateText { R.string.no_internet_status }
+ }
+ }
+}
+
+
+sealed class ConnectionState {
+ object Available : ConnectionState()
+ object Unavailable : ConnectionState()
+}
+
+
+@Composable
+fun ConnectingAnimation(
+ speed: Double = 0.5
+) {
+ val maxCounter = 3
+ var counter by remember {
+ mutableStateOf(0)
+ }
+
+ val scope = rememberCoroutineScope()
+
+ LaunchedEffect(key1 = speed, block = {
+ scope.launch {
+ while (true) {
+ delay(speed.times(500).toLong())
+ counter = if (counter == (maxCounter - 1)) 0 else counter + 1
+ }
+ }
+ })
+
+ var isVisible by remember {
+ mutableStateOf(true)
+ }
+
+ LaunchedEffect(
+ key1 = null,
+ block = {
+ scope.launch {
+ delay(3000)
+ isVisible = !isVisible
+ }
+ }
+ )
+
+ AnimatedVisibility(visible = isVisible) {
+ Row(
+ verticalAlignment = Alignment.Bottom
+ ) {
+ repeat(maxCounter) { index ->
+ Bars(counter = counter, index = index)
+ }
+ NetworkStateText { R.string.connecting }
+ }
+ }
+}
+
+@Composable
+fun NetworkStateText(textProvider: () -> Int) {
+ Text(
+ text = stringResource(id = textProvider()),
+ style = Typography.caption.copy(color = DiscordColorProvider.colors.textPrimary),
+ modifier = Modifier.padding(start = 4.dp)
+ )
+}
+
+@Composable
+fun Bars(
+ counter: Int,
+ index: Int
+) {
+ val colors by animateColorAsState(
+ targetValue = when (counter) {
+ index -> {
+ Color(0xFFA77C30)
+ }
+ (index - 1) -> {
+ Color(0xFF6E5A3F)
+ }
+ else -> {
+ Color(0xFF404047)
+ }
+ }
+ )
+ Box(
+ modifier = Modifier
+ .width(6.dp)
+ .height(
+ when (index) {
+ 0 -> 8.dp
+ 1 -> 12.dp
+ 2 -> 16.dp
+ else -> 0.dp
+ }
+ )
+ .padding(end = 2.dp)
+ .background(colors, shape = RoundedCornerShape(3.dp))
+ )
+}
+
+@Composable
+fun NoNetwork() {
+ Row(verticalAlignment = Alignment.Bottom) {
+ NonAnimatedBar(height = 8.dp, color = Color(0xFFEC4345))
+ NonAnimatedBar(height = 12.dp, color = Color(0xFF36393F))
+ NonAnimatedBar(height = 16.dp, color = Color(0xFF36393F))
+ }
+}
+
+@Composable
+fun NonAnimatedBar(
+ height: Dp,
+ color: Color
+) {
+ Box(
+ modifier = Modifier
+ .width(6.dp)
+ .height(height)
+ .padding(end = 2.dp)
+ .background(color, shape = RoundedCornerShape(3.dp))
+ )
+}
+
+
+/**
+ * Network utility to get current state of internet connection
+ */
+val Context.currentConnectivityState: ConnectionState
+ get() {
+ val connectivityManager =
+ getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
+ return getCurrentConnectivityState(connectivityManager)
+ }
+
+
+private fun getCurrentConnectivityState(
+ connectivityManager: ConnectivityManager
+): ConnectionState {
+ val connected = connectivityManager.allNetworks.any { network ->
+ connectivityManager.getNetworkCapabilities(network)
+ ?.hasCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
+ ?: false
+ }
+
+
+ return if (connected) {
+ ConnectionState.Available
+ } else {
+ ConnectionState.Unavailable
+ }
+}
+
+/**
+ * Network Utility to observe availability or unavailability of Internet connection
+ */
+@ExperimentalCoroutinesApi
+fun Context.observeConnectivityAsFlow() = callbackFlow {
+ val connectivityManager = getSystemService(Context.CONNECTIVITY_SERVICE) as ConnectivityManager
+
+ val callback = networkCallback { connectionState -> trySend(connectionState) }
+
+ val networkRequest = NetworkRequest.Builder()
+ .addCapability(NetworkCapabilities.NET_CAPABILITY_INTERNET)
+ .build()
+
+ connectivityManager.registerNetworkCallback(networkRequest, callback)
+
+ val currentState = getCurrentConnectivityState(connectivityManager)
+ trySend(currentState)
+
+ awaitClose {
+ connectivityManager.unregisterNetworkCallback(callback)
+ }
+}
+
+
+fun networkCallback(callback: (ConnectionState) -> Unit): ConnectivityManager.NetworkCallback {
+ return object : ConnectivityManager.NetworkCallback() {
+ override fun onAvailable(network: Network) {
+ callback(ConnectionState.Available)
+ }
+
+ override fun onLost(network: Network) {
+ callback(ConnectionState.Unavailable)
+ }
+ }
+}
+
+@ExperimentalCoroutinesApi
+@Composable
+fun connectivityState(): State {
+ val context = LocalContext.current
+
+ return produceState(initialValue = context.currentConnectivityState) {
+ context.observeConnectivityAsFlow().collect { value = it }
+ }
+}
+
+
diff --git a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/createServer/CreateServer.kt b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/createServer/CreateServer.kt
index 3df211b..04dee26 100644
--- a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/createServer/CreateServer.kt
+++ b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/createServer/CreateServer.kt
@@ -26,25 +26,28 @@ import androidx.compose.ui.res.stringResource
import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
-import com.google.accompanist.insets.statusBarsPadding
import dev.baseio.discordjetpackcompose.R
import dev.baseio.discordjetpackcompose.navigator.ComposeNavigator
import dev.baseio.discordjetpackcompose.navigator.DiscordScreen
import dev.baseio.discordjetpackcompose.ui.components.DiscordAppBar
import dev.baseio.discordjetpackcompose.ui.components.DiscordScaffold
import dev.baseio.discordjetpackcompose.ui.routes.onboarding.commonui.CenteredTitleSubtitle
+import dev.baseio.discordjetpackcompose.ui.theme.DiscordColorProvider
import dev.baseio.discordjetpackcompose.ui.theme.Typography
-import dev.baseio.discordjetpackcompose.ui.theme.create_server_card_bottom_button_bg
-import dev.baseio.discordjetpackcompose.ui.theme.create_server_screen
+import dev.baseio.discordjetpackcompose.ui.theme.contentColorFor
+import dev.baseio.discordjetpackcompose.ui.theme.onboarding_button_grey
import dev.baseio.discordjetpackcompose.ui.theme.white
@Composable
fun CreateServer(
composeNavigator: ComposeNavigator
) {
+ val backgroundColor = DiscordColorProvider.colors.background
+ val serverCardBackgroundColor = DiscordColorProvider.colors.surface
+ val contentColor = DiscordColorProvider.colors.contentColorFor(backgroundColor)
+
val scaffoldState = rememberScaffoldState()
DiscordScaffold(
- modifier = Modifier.statusBarsPadding(),
scaffoldState = scaffoldState,
topAppBar = {
DiscordAppBar(
@@ -57,7 +60,7 @@ fun CreateServer(
)
}
},
- backgroundColor = create_server_screen,
+ backgroundColor = backgroundColor,
elevation = 0.dp
)
}
@@ -66,7 +69,7 @@ fun CreateServer(
modifier = Modifier
.fillMaxSize()
.padding(paddingValues)
- .background(color = create_server_screen),
+ .background(color = backgroundColor),
horizontalAlignment = Alignment.CenterHorizontally
) {
CenteredTitleSubtitle(
@@ -77,7 +80,7 @@ fun CreateServer(
LazyColumn(
modifier = Modifier
.fillMaxHeight(0.8f)
- .background(color = create_server_screen)
+ .background(color = backgroundColor)
) {
items(1) {
CreateServerCard(
@@ -130,7 +133,7 @@ fun HaveAnInviteBottomCard(
.padding(horizontal = 16.dp)
.padding(bottom = 16.dp),
shape = RoundedCornerShape(6.dp),
- colors = ButtonDefaults.buttonColors(backgroundColor = create_server_card_bottom_button_bg)
+ colors = ButtonDefaults.buttonColors(backgroundColor = onboarding_button_grey)
) {
Text(
text = stringResource(R.string.have_an_invite_already),
diff --git a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/createServer/CreateServerCard.kt b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/createServer/CreateServerCard.kt
index 053e201..6767080 100644
--- a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/createServer/CreateServerCard.kt
+++ b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/createServer/CreateServerCard.kt
@@ -32,8 +32,8 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.tooling.preview.Preview
import androidx.compose.ui.unit.dp
import dev.baseio.discordjetpackcompose.R
+import dev.baseio.discordjetpackcompose.ui.theme.DiscordColorProvider
import dev.baseio.discordjetpackcompose.ui.theme.Typography
-import dev.baseio.discordjetpackcompose.ui.theme.create_server_card_bg
@OptIn(ExperimentalMaterialApi::class)
@Composable
@@ -47,7 +47,7 @@ fun CreateServerCard(
modifier = Modifier
.padding(horizontal = 16.dp, vertical = 6.dp),
onClick = { onClick() },
- color = create_server_card_bg
+ color = DiscordColorProvider.colors.surface
) {
Row(
modifier = Modifier
diff --git a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/friends/FriendsScreen.kt b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/friends/FriendsScreen.kt
index 63cccd3..761ef93 100644
--- a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/friends/FriendsScreen.kt
+++ b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/friends/FriendsScreen.kt
@@ -74,7 +74,7 @@ fun FriendsScreen(
)
)
},
- backgroundColor = create_server_screen,
+ backgroundColor = DiscordColorProvider.colors.background,
actions = {
Icon(
painter = painterResource(id = R.drawable.ic_chat_bubble),
diff --git a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/main/chatscreen/ChannelMemberScreen.kt b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/main/chatscreen/ChannelMemberScreen.kt
index 63c592c..6e18ddb 100644
--- a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/main/chatscreen/ChannelMemberScreen.kt
+++ b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/dashboard/main/chatscreen/ChannelMemberScreen.kt
@@ -68,7 +68,7 @@ fun ChannelMemberScreen(
modifier = Modifier
.fillMaxWidth()
.height(1.dp)
- .background(create_server_screen)
+ .background(DiscordColorProvider.colors.background)
)
ChannelMemberActions()
InviteMembers(onInviteButtonClicked)
diff --git a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/onboarding/commonui/DiscordDialog.kt b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/onboarding/commonui/DiscordDialog.kt
index c94a4e5..3dad03e 100644
--- a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/onboarding/commonui/DiscordDialog.kt
+++ b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/onboarding/commonui/DiscordDialog.kt
@@ -26,12 +26,11 @@ import androidx.compose.ui.unit.sp
import androidx.compose.ui.window.Dialog
import androidx.compose.ui.window.DialogProperties
import dev.baseio.discordjetpackcompose.R
+import dev.baseio.discordjetpackcompose.ui.theme.DiscordColorProvider
import dev.baseio.discordjetpackcompose.ui.theme.DiscordDialogTypography
import dev.baseio.discordjetpackcompose.ui.theme.DiscordJetpackComposeTheme
-import dev.baseio.discordjetpackcompose.ui.theme.discord_dialog_bg
-import dev.baseio.discordjetpackcompose.ui.theme.discord_dialog_button_bg
-import dev.baseio.discordjetpackcompose.ui.theme.discord_dialog_button_row_bg
-import dev.baseio.discordjetpackcompose.ui.theme.discord_dialog_cancel_button_text
+import dev.baseio.discordjetpackcompose.ui.theme.dialog_text_grey
+import dev.baseio.discordjetpackcompose.ui.theme.onboarding_button_blue
import dev.baseio.discordjetpackcompose.ui.theme.white
@Composable
@@ -39,12 +38,12 @@ fun DiscordDialog(
modifier: Modifier = Modifier,
show: Boolean,
shape: Shape = RectangleShape,
- backgroundColor: Color = discord_dialog_bg,
+ backgroundColor: Color = DiscordColorProvider.colors.background,
titleTextProvider: () -> Int,
subTitleTextProvider: () -> Int,
properties: DialogProperties = DialogProperties(),
onDismissRequest: () -> Unit,
- buttonRowBackgroundColor: Color = discord_dialog_button_row_bg,
+ buttonRowBackgroundColor: Color = DiscordColorProvider.colors.surface,
confirmActionButtonTextProvider: () -> Int,
onClickCancelButton: () -> Unit,
onClickConfirmActionButton: () -> Unit
@@ -147,7 +146,7 @@ fun DialogNegativeAction(
style = TextStyle(
fontWeight = FontWeight.Black,
fontSize = 14.sp,
- color = discord_dialog_cancel_button_text
+ color = dialog_text_grey
)
)
}
@@ -161,7 +160,7 @@ fun DialogPositiveAction(
Button(
onClick = { onClickConfirmActionButton() },
elevation = ButtonDefaults.elevation(2.dp),
- colors = ButtonDefaults.buttonColors(backgroundColor = discord_dialog_button_bg),
+ colors = ButtonDefaults.buttonColors(backgroundColor = onboarding_button_blue),
modifier = Modifier
.padding(end = 10.dp)
.padding(vertical = 6.dp)
diff --git a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/onboarding/screens/register/RegisterScreen.kt b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/onboarding/screens/register/RegisterScreen.kt
index 0d794e4..bcb5e93 100644
--- a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/onboarding/screens/register/RegisterScreen.kt
+++ b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/onboarding/screens/register/RegisterScreen.kt
@@ -32,7 +32,6 @@ import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import androidx.hilt.navigation.compose.hiltViewModel
-import com.google.accompanist.insets.statusBarsPadding
import com.google.accompanist.systemuicontroller.rememberSystemUiController
import dev.baseio.discordjetpackcompose.R
import dev.baseio.discordjetpackcompose.entities.CountryEntity
@@ -70,7 +69,6 @@ fun RegisterScreen(
val onSelectionChange = { type: RegistrationType -> selectedOption = type }
DiscordScaffold(
- modifier = Modifier.statusBarsPadding(),
navigator = composeNavigator,
scaffoldState = scaffoldState
) {
diff --git a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/onboarding/screens/welcome/WelcomeScreen.kt b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/onboarding/screens/welcome/WelcomeScreen.kt
index 1627f97..5bcddae 100644
--- a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/onboarding/screens/welcome/WelcomeScreen.kt
+++ b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/routes/onboarding/screens/welcome/WelcomeScreen.kt
@@ -1,5 +1,6 @@
package dev.baseio.discordjetpackcompose.ui.routes.onboarding.screens.welcome
+import android.content.res.Configuration
import androidx.compose.foundation.Image
import androidx.compose.foundation.background
import androidx.compose.foundation.layout.Arrangement
@@ -8,22 +9,19 @@ import androidx.compose.foundation.layout.Row
import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth
+import androidx.compose.foundation.layout.height
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.layout.size
-import androidx.compose.material.Button
-import androidx.compose.material.ButtonDefaults.buttonColors
+import androidx.compose.foundation.layout.width
import androidx.compose.material.Icon
-import androidx.compose.material.Text
import androidx.compose.runtime.Composable
import androidx.compose.runtime.SideEffect
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
-import androidx.compose.ui.res.colorResource
+import androidx.compose.ui.platform.LocalConfiguration
import androidx.compose.ui.res.painterResource
-import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
-import com.google.accompanist.insets.systemBarsPadding
import com.google.accompanist.systemuicontroller.rememberSystemUiController
import dev.baseio.discordjetpackcompose.R
import dev.baseio.discordjetpackcompose.navigator.ComposeNavigator
@@ -31,7 +29,6 @@ import dev.baseio.discordjetpackcompose.navigator.DiscordScreen
import dev.baseio.discordjetpackcompose.ui.routes.onboarding.commonui.CenteredTitleSubtitle
import dev.baseio.discordjetpackcompose.ui.routes.onboarding.commonui.OnboardingScreensButton
import dev.baseio.discordjetpackcompose.ui.theme.DiscordColorProvider
-import dev.baseio.discordjetpackcompose.ui.theme.onboarding_button_blue
import dev.baseio.discordjetpackcompose.ui.theme.onboarding_button_grey
@Composable
@@ -47,17 +44,20 @@ fun WelcomeScreen(composeNavigator: ComposeNavigator) {
Column(
Modifier
.fillMaxSize()
- .systemBarsPadding()
.background(DiscordColorProvider.colors.background),
- verticalArrangement = Arrangement.SpaceAround
+ verticalArrangement = Arrangement.SpaceAround,
+ horizontalAlignment = Alignment.CenterHorizontally
) {
Header()
- Image(
- painter = painterResource(id = R.drawable.welcomelogo),
- contentDescription = null,
- modifier = Modifier.padding(32.dp)
- )
+
+ if (LocalConfiguration.current.orientation == Configuration.ORIENTATION_PORTRAIT) {
+ Image(
+ painter = painterResource(id = R.drawable.welcomelogo),
+ contentDescription = null,
+ modifier = Modifier.height((LocalConfiguration.current.screenHeightDp / 2.5).dp)
+ )
+ }
CenteredTitleSubtitle(
modifier = Modifier.padding(horizontal = 40.dp),
@@ -68,12 +68,12 @@ fun WelcomeScreen(composeNavigator: ComposeNavigator) {
Column(Modifier.fillMaxWidth(), horizontalAlignment = Alignment.CenterHorizontally) {
OnboardingScreensButton(
- buttonTextProvider = {R.string.register},
+ buttonTextProvider = { R.string.register },
onClick = { composeNavigator.navigate(DiscordScreen.Register.name) }
)
Spacer(modifier = Modifier.size(2.dp))
OnboardingScreensButton(
- buttonTextProvider = {R.string.login},
+ buttonTextProvider = { R.string.login },
buttonBackgroundColor = onboarding_button_grey,
onClick = { composeNavigator.navigate(DiscordScreen.Login.name) }
)
@@ -92,7 +92,7 @@ private fun Header() {
painter = painterResource(id = R.drawable.discord_welcome_header_light),
contentDescription = "",
modifier = Modifier
- .fillMaxWidth(0.5f),
+ .width(200.dp),
tint = DiscordColorProvider.colors.brand
)
}
diff --git a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/theme/Color.kt b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/theme/Color.kt
index 4a0f227..eeedec7 100644
--- a/app/src/main/java/dev/baseio/discordjetpackcompose/ui/theme/Color.kt
+++ b/app/src/main/java/dev/baseio/discordjetpackcompose/ui/theme/Color.kt
@@ -764,49 +764,7 @@ val xbox = Color(0xFF107c10)
val xbox_500 = Color(0xFF107c10)
val youtube = Color(0xFFcb2120)
val youtube_500 = Color(0xFFcb2120)
-
-val create_server_screen
- @Composable get() = if (isSystemInDarkTheme()) {
- Color(0xFF373840)
- } else {
- Color(0xFFFEFFFE)
- }
-
-val create_server_card_bg
- @Composable get() = if (isSystemInDarkTheme()) {
- Color(0xFF2B2B2E)
- } else {
- Color(0xFFEBEDEF)
- }
-
-val create_server_card_bottom_button_bg
- @Composable get() = if (isSystemInDarkTheme()) {
- Color(0xFF4E535D)
- } else {
- Color(0xFF747F8C)
- }
-
-
-val discord_dialog_bg
- @Composable get() = if (isSystemInDarkTheme()) {
- Color(0xFF36393E)
- } else {
- Color(0xFFFEFFFE)
- }
-
-val discord_dialog_button_row_bg
- @Composable get() = if (isSystemInDarkTheme()) {
- Color(0xFF303037)
- } else {
- Color(0xFFF9F8F9)
- }
-val discord_dialog_cancel_button_text
- @Composable get() = if (isSystemInDarkTheme()) {
- Color(0xFFA7A8AA)
- } else {
- Color(0xFF4F5761)
- }
-val discord_dialog_button_bg = Color(0xFF5864F1)
+val dialog_text_grey = Color(0xFFA7A8AA)
val discord_icon_button
@Composable get() = if (isSystemInDarkTheme()) {
diff --git a/app/src/main/res/drawable/ic_airplanemode.xml b/app/src/main/res/drawable/ic_airplanemode.xml
new file mode 100644
index 0000000..484a470
--- /dev/null
+++ b/app/src/main/res/drawable/ic_airplanemode.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index ac20199..b4723e3 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -102,6 +102,9 @@
Use anywhere with nitro
%s EMOJIS
NO EMOJI
+ Connecting…
+ Network connectivity limited or unavailable.
+ Airplane mode is active.
Filter Options
CANCEL
Where would you like to go?