Changed secondary color & reorganized welcome/home screen

This commit is contained in:
Abdelilah El Aissaoui 2022-04-04 02:58:51 +02:00
parent 8f92b6d195
commit b980784b1f
2 changed files with 140 additions and 112 deletions

View File

@ -6,7 +6,7 @@ val primaryLight = Color(0xFF9FD1FF)
val primary = Color(0xFF0070D8)
val primaryDark = Color(0xFF014F97)
val onPrimary = Color(0xFFFFFFFFF)
val secondary = Color(0xFFAB02E9)
val secondary = Color(0xFFe9c754)
val mainText = Color(0xFF212934)
val mainTextDark = Color(0xFFFFFFFF)
val secondaryText = Color(0xFF595858)

View File

@ -20,6 +20,7 @@ import androidx.compose.ui.res.painterResource
import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import app.AppConstants
import app.AppStateManager
import app.extensions.dirName
import app.extensions.dirPath
import app.theme.primaryTextColor
@ -60,6 +61,50 @@ fun WelcomePage(
verticalAlignment = Alignment.Top,
modifier = Modifier.align(BiasAlignment(0f, -0.5f))
) {
HomeButtons(
newUpdate = newUpdate,
tabViewModel = tabViewModel,
onShowCloneView = {
showCloneView = true
}
)
RecentRepositories(appStateManager, tabViewModel)
}
Text(
"Version ${AppConstants.APP_VERSION}",
color = MaterialTheme.colors.primaryTextColor,
fontSize = 12.sp,
modifier = Modifier
.align(Alignment.BottomEnd)
.padding(bottom = 16.dp, end = 16.dp)
)
}
LaunchedEffect(showCloneView) {
if (showCloneView) tabViewModel.cloneViewModel.reset() // Reset dialog before showing it
}
if (showCloneView) CloneDialog(
tabViewModel.cloneViewModel,
onClose = {
showCloneView = false
tabViewModel.cloneViewModel.reset()
},
onOpenRepository = { dir ->
tabViewModel.openRepository(dir)
},
)
}
@Composable
fun HomeButtons(
newUpdate: Update?,
tabViewModel: TabViewModel,
onShowCloneView: () -> Unit,
) {
Column(
modifier = Modifier.padding(end = 32.dp),
) {
@ -80,9 +125,7 @@ fun WelcomePage(
modifier = Modifier.padding(bottom = 8.dp),
title = "Clone a repository",
painter = painterResource("download.svg"),
onClick = {
showCloneView = true
}
onClick = onShowCloneView
)
ButtonTile(
@ -120,30 +163,41 @@ fun WelcomePage(
if(newUpdate != null) {
IconTextButton(
title = "New update ${newUpdate?.appVersion} available ",
title = "New update ${newUpdate.appVersion} available ",
painter = painterResource("grade.svg"),
iconColor = MaterialTheme.colors.secondary,
onClick = {
newUpdate?.downloadUrl?.let {
Desktop.getDesktop().browse(URI(it))
}
Desktop.getDesktop().browse(URI(newUpdate.downloadUrl))
}
)
}
}
}
@Composable
fun RecentRepositories(appStateManager: AppStateManager, tabViewModel: TabViewModel) {
Column(
modifier = Modifier
.padding(start = 32.dp),
) {
val latestOpenedRepositoriesPaths = appStateManager.latestOpenedRepositoriesPaths
Text(
text = "Recent",
fontSize = 18.sp,
modifier = Modifier.padding(top = 48.dp, bottom = 8.dp),
color = MaterialTheme.colors.primaryTextColor,
)
if(latestOpenedRepositoriesPaths.isEmpty()) {
Text(
"Nothing to see here, open a repository first!",
color = MaterialTheme.colors.secondaryTextColor,
fontSize = 14.sp,
modifier = Modifier.padding(top = 16.dp)
)
} else {
LazyColumn {
items(items = appStateManager.latestOpenedRepositoriesPaths) { repo ->
items(items = latestOpenedRepositoriesPaths) { repo ->
val repoDirName = repo.dirName
val repoDirPath = repo.dirPath
@ -173,32 +227,6 @@ fun WelcomePage(
}
}
}
Text(
"Version ${AppConstants.APP_VERSION}",
color = MaterialTheme.colors.primaryTextColor,
fontSize = 12.sp,
modifier = Modifier
.align(Alignment.BottomEnd)
.padding(bottom = 16.dp, end = 16.dp)
)
}
LaunchedEffect(showCloneView) {
if (showCloneView) tabViewModel.cloneViewModel.reset() // Reset dialog before showing it
}
if (showCloneView) CloneDialog(
tabViewModel.cloneViewModel,
onClose = {
showCloneView = false
tabViewModel.cloneViewModel.reset()
},
onOpenRepository = { dir ->
tabViewModel.openRepository(dir)
},
)
}
@Composable