Centered progress bar and remove the title
This commit is contained in:
parent
d783455ed8
commit
3e8865060e
|
|
@ -225,6 +225,7 @@ dependencies {
|
|||
implementation("androidx.compose.material3:material3:$material3Version")
|
||||
implementation("androidx.compose.material3:material3-window-size-class:$material3Version")
|
||||
implementation("androidx.compose.material:material-icons-core:1.7.8")
|
||||
implementation("androidx.compose.material:material-icons-extended:1.7.8")
|
||||
implementation("androidx.compose.ui:ui-tooling-preview")
|
||||
implementation("androidx.compose.runtime:runtime-livedata")
|
||||
implementation("androidx.lifecycle:lifecycle-runtime-ktx:2.9.1")
|
||||
|
|
|
|||
|
|
@ -72,7 +72,7 @@ fun DiscoverServersList(
|
|||
|
||||
Column(
|
||||
modifier = Modifier
|
||||
.padding(top = 12.dp, start = 16.dp, end = 16.dp),
|
||||
.padding(top = 16.dp, start = 16.dp, end = 16.dp),
|
||||
) {
|
||||
Row(
|
||||
modifier = Modifier.fillMaxWidth(),
|
||||
|
|
@ -99,7 +99,9 @@ fun DiscoverServersList(
|
|||
when {
|
||||
uiState.isLoading -> {
|
||||
Box(
|
||||
modifier = Modifier.weight(1f),
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.weight(1f),
|
||||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
CircularProgressIndicator(
|
||||
|
|
@ -111,16 +113,16 @@ fun DiscoverServersList(
|
|||
|
||||
uiState.error != null || uiState.servers.isEmpty() -> {
|
||||
Box(
|
||||
Modifier.weight(1f)
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.weight(1f),
|
||||
contentAlignment = Alignment.Center
|
||||
) {
|
||||
Column(
|
||||
modifier = Modifier.fillMaxSize(),
|
||||
horizontalAlignment = Alignment.CenterHorizontally,
|
||||
verticalArrangement = Arrangement.Center,
|
||||
|
||||
verticalArrangement = Arrangement.spacedBy(8.dp),
|
||||
) {
|
||||
Text(stringResource(R.string.error))
|
||||
Spacer(Modifier.height(8.dp))
|
||||
SquareButton(
|
||||
onClick = viewModel::loadServers
|
||||
) {
|
||||
|
|
|
|||
|
|
@ -488,103 +488,105 @@ fun ChannelSideDrawer(
|
|||
.weight(weight = 1f)
|
||||
.fillMaxHeight()
|
||||
) {
|
||||
Box(
|
||||
Modifier
|
||||
.height(serverBannerHeight)
|
||||
) {
|
||||
if (server?.banner != null) {
|
||||
RemoteImage(
|
||||
url = "${PeptideAPI.getCurrentFilesUrl()}/banners/${server.banner.id}",
|
||||
description = null,
|
||||
contentScale = ContentScale.Crop,
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
)
|
||||
|
||||
with(MaterialTheme.colorScheme) {
|
||||
Box(
|
||||
Modifier
|
||||
.fillMaxSize()
|
||||
.drawBehind {
|
||||
drawRect(
|
||||
Brush.linearGradient(
|
||||
listOf(
|
||||
Color.Black.copy(alpha = 0.6f),
|
||||
Color.Transparent
|
||||
),
|
||||
Offset.Zero,
|
||||
Offset.Infinite.copy(x = 0f)
|
||||
),
|
||||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
Row(
|
||||
if (currentDestination !is ChatRouterDestination.Discover) {
|
||||
Box(
|
||||
Modifier
|
||||
.padding(16.dp),
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
.height(serverBannerHeight)
|
||||
) {
|
||||
CompositionLocalProvider(
|
||||
LocalContentColor provides
|
||||
if (server?.banner != null) Color.White
|
||||
else LocalContentColor.current
|
||||
) {
|
||||
Row(
|
||||
Modifier.weight(1f),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.spacedBy(8.dp)
|
||||
) {
|
||||
if (server?.flags has ServerFlags.Official) {
|
||||
Icon(
|
||||
painter = painterResource(
|
||||
id = R.drawable.ic_peptide_decagram_24dp
|
||||
),
|
||||
contentDescription = stringResource(
|
||||
R.string.server_flag_official
|
||||
),
|
||||
tint = LocalContentColor.current,
|
||||
modifier = Modifier
|
||||
.size(24.dp)
|
||||
)
|
||||
}
|
||||
if (server?.flags has ServerFlags.Verified) {
|
||||
Icon(
|
||||
painter = painterResource(
|
||||
id = R.drawable.ic_check_decagram_24dp
|
||||
),
|
||||
contentDescription = stringResource(
|
||||
R.string.server_flag_verified
|
||||
),
|
||||
tint = LocalContentColor.current,
|
||||
modifier = Modifier
|
||||
.size(24.dp)
|
||||
)
|
||||
}
|
||||
if (server?.banner != null) {
|
||||
RemoteImage(
|
||||
url = "${PeptideAPI.getCurrentFilesUrl()}/banners/${server.banner.id}",
|
||||
description = null,
|
||||
contentScale = ContentScale.Crop,
|
||||
modifier = Modifier
|
||||
.fillMaxSize()
|
||||
)
|
||||
|
||||
Text(
|
||||
text = when (currentServer) {
|
||||
null -> stringResource(if (currentDestination is ChatRouterDestination.Discover) R.string.discover_servers else R.string.direct_messages)
|
||||
else -> server?.name ?: stringResource(R.string.unknown)
|
||||
},
|
||||
style = MaterialTheme.typography.titleMedium,
|
||||
maxLines = 1,
|
||||
overflow = TextOverflow.Ellipsis
|
||||
)
|
||||
with(MaterialTheme.colorScheme) {
|
||||
Box(
|
||||
Modifier
|
||||
.fillMaxSize()
|
||||
.drawBehind {
|
||||
drawRect(
|
||||
Brush.linearGradient(
|
||||
listOf(
|
||||
Color.Black.copy(alpha = 0.6f),
|
||||
Color.Transparent
|
||||
),
|
||||
Offset.Zero,
|
||||
Offset.Infinite.copy(x = 0f)
|
||||
),
|
||||
)
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
if (currentServer != null) {
|
||||
IconButton(onClick = {
|
||||
server?.id?.let { srvId -> onShowServerContextSheet(srvId) }
|
||||
}) {
|
||||
Icon(
|
||||
painter = painterResource(R.drawable.icn_more_vert_24dp),
|
||||
contentDescription = stringResource(R.string.menu),
|
||||
tint = LocalContentColor.current
|
||||
Row(
|
||||
Modifier
|
||||
.padding(16.dp),
|
||||
verticalAlignment = Alignment.CenterVertically
|
||||
) {
|
||||
CompositionLocalProvider(
|
||||
LocalContentColor provides
|
||||
if (server?.banner != null) Color.White
|
||||
else LocalContentColor.current
|
||||
) {
|
||||
Row(
|
||||
Modifier.weight(1f),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
horizontalArrangement = Arrangement.spacedBy(8.dp)
|
||||
) {
|
||||
if (server?.flags has ServerFlags.Official) {
|
||||
Icon(
|
||||
painter = painterResource(
|
||||
id = R.drawable.ic_peptide_decagram_24dp
|
||||
),
|
||||
contentDescription = stringResource(
|
||||
R.string.server_flag_official
|
||||
),
|
||||
tint = LocalContentColor.current,
|
||||
modifier = Modifier
|
||||
.size(24.dp)
|
||||
)
|
||||
}
|
||||
if (server?.flags has ServerFlags.Verified) {
|
||||
Icon(
|
||||
painter = painterResource(
|
||||
id = R.drawable.ic_check_decagram_24dp
|
||||
),
|
||||
contentDescription = stringResource(
|
||||
R.string.server_flag_verified
|
||||
),
|
||||
tint = LocalContentColor.current,
|
||||
modifier = Modifier
|
||||
.size(24.dp)
|
||||
)
|
||||
}
|
||||
|
||||
Text(
|
||||
text = when (currentServer) {
|
||||
null -> stringResource(R.string.direct_messages)
|
||||
else -> server?.name ?: stringResource(R.string.unknown)
|
||||
},
|
||||
style = MaterialTheme.typography.titleMedium,
|
||||
maxLines = 1,
|
||||
overflow = TextOverflow.Ellipsis
|
||||
)
|
||||
}
|
||||
} else {
|
||||
Spacer(Modifier.height(64.dp))
|
||||
|
||||
if (currentServer != null) {
|
||||
IconButton(onClick = {
|
||||
server?.id?.let { srvId -> onShowServerContextSheet(srvId) }
|
||||
}) {
|
||||
Icon(
|
||||
painter = painterResource(R.drawable.icn_more_vert_24dp),
|
||||
contentDescription = stringResource(R.string.menu),
|
||||
tint = LocalContentColor.current
|
||||
)
|
||||
}
|
||||
} else {
|
||||
Spacer(Modifier.height(64.dp))
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -55,6 +55,10 @@ import androidx.compose.ui.input.pointer.pointerInput
|
|||
import androidx.compose.ui.layout.layout
|
||||
import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.platform.LocalView
|
||||
import androidx.compose.material.icons.Icons
|
||||
import androidx.compose.material.icons.filled.Home
|
||||
import androidx.compose.material.icons.filled.People
|
||||
import androidx.compose.material.icons.filled.Settings
|
||||
import androidx.compose.ui.res.painterResource
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.text.style.TextAlign
|
||||
|
|
@ -948,13 +952,13 @@ fun ChannelNavigator(
|
|||
NavigationBarItem(
|
||||
icon = {
|
||||
Icon(
|
||||
painter = painterResource(R.drawable.ic_bottom_navbar_home),
|
||||
imageVector = Icons.Filled.Home,
|
||||
contentDescription = "Home",
|
||||
modifier = Modifier.size(32.dp)
|
||||
)
|
||||
},
|
||||
label = {
|
||||
Text(text = "you")
|
||||
Text(text = "Home")
|
||||
},
|
||||
selected = when (dest) {
|
||||
is ChatRouterDestination.ServersChannels,
|
||||
|
|
@ -982,7 +986,7 @@ fun ChannelNavigator(
|
|||
NavigationBarItem(
|
||||
icon = {
|
||||
Icon(
|
||||
painter = painterResource(R.drawable.ic_bottom_navbar_friends),
|
||||
imageVector = Icons.Filled.People,
|
||||
contentDescription = "Friends",
|
||||
modifier = Modifier.size(32.dp)
|
||||
)
|
||||
|
|
@ -1010,13 +1014,13 @@ fun ChannelNavigator(
|
|||
NavigationBarItem(
|
||||
icon = {
|
||||
Icon(
|
||||
painter = painterResource(R.drawable.ic_bottom_navbar_you),
|
||||
contentDescription = "You",
|
||||
imageVector = Icons.Filled.Settings,
|
||||
contentDescription = "Settings",
|
||||
modifier = Modifier.size(32.dp)
|
||||
)
|
||||
},
|
||||
label = {
|
||||
Text(text = "you")
|
||||
Text(text = "Settings")
|
||||
},
|
||||
selected = dest is ChatRouterDestination.Settings,
|
||||
colors = NavigationBarItemDefaults.colors(
|
||||
|
|
|
|||
Loading…
Reference in New Issue