Changed commited and uncommited changes to use new design

This commit is contained in:
Abdelilah El Aissaoui 2021-11-26 05:24:14 +01:00
parent 317947cee7
commit b394d9f33b
2 changed files with 143 additions and 137 deletions

View File

@ -33,6 +33,7 @@ import androidx.compose.ui.graphics.toComposeImageBitmap
import app.ui.components.ScrollableLazyColumn
import app.git.GitManager
import app.theme.headerText
import org.eclipse.jgit.lib.PersonIdent
import org.jetbrains.skia.Image.Companion.makeFromEncoded
@Composable
@ -48,26 +49,22 @@ fun CommitChanges(
Column(
modifier = Modifier
.fillMaxSize()
.background(MaterialTheme.colors.background),
) {
Column(
modifier = Modifier
.fillMaxWidth(),
.fillMaxSize(),
) {
val scroll = rememberScrollState(0)
Card(
Column(
modifier = Modifier
.padding(8.dp)
.fillMaxWidth()
.padding(8.dp),
) {
Column {
SelectionContainer {
Text(
text = commit.fullMessage,
fontSize = 14.sp,
modifier = Modifier
.fillMaxWidth()
.background(MaterialTheme.colors.background)
.height(120.dp)
.padding(8.dp)
.verticalScroll(scroll),
@ -76,69 +73,16 @@ fun CommitChanges(
Divider(modifier = Modifier.fillMaxWidth())
Row(
modifier = Modifier
.fillMaxWidth()
.height(72.dp),
verticalAlignment = Alignment.CenterVertically
) {
val url = "https://www.gravatar.com/avatar/${commit.authorIdent.emailAddress.md5}"
Image(
bitmap = rememberNetworkImage(url),
modifier = Modifier
.padding(horizontal = 16.dp)
.height(40.dp)
.clip(CircleShape),
contentDescription = null,
)
Author(commit.authorIdent)
}
Column(
modifier = Modifier
.fillMaxSize(),
verticalArrangement = Arrangement.Center
) {
Row {
Text(
text = commit.authorIdent.name,
color = MaterialTheme.colors.primaryTextColor,
maxLines = 1,
fontSize = 14.sp,
)
Spacer(modifier = Modifier.weight(1f, fill = true))
val date = remember(commit) {
commit.authorIdent.`when`.toSmartSystemString()
}
Text(
text = date,
color = MaterialTheme.colors.secondaryTextColor,
maxLines = 1,
modifier = Modifier.padding(horizontal = 16.dp),
fontSize = 12.sp,
)
}
Text(
text = commit.authorIdent.emailAddress,
color = MaterialTheme.colors.secondaryTextColor,
maxLines = 1,
fontSize = 12.sp,
)
}
}
}
}
}
Card(
modifier = Modifier
.fillMaxWidth()
.weight(1f, fill = true)
.padding(horizontal = 8.dp, vertical = 8.dp)
.background(MaterialTheme.colors.background)
) {
Column {
Text(
modifier = Modifier
.background(MaterialTheme.colors.headerBackground)
@ -156,7 +100,65 @@ fun CommitChanges(
CommitLogChanges(diff, onDiffSelected = onDiffSelected)
}
}
}
@Composable
fun Author(authorIdent: PersonIdent?) {
if(authorIdent == null)
return
Row(
modifier = Modifier
.fillMaxWidth()
.height(72.dp)
.background(MaterialTheme.colors.background),
verticalAlignment = Alignment.CenterVertically
) {
val url = "https://www.gravatar.com/avatar/${authorIdent.emailAddress.md5}"
Image(
bitmap = rememberNetworkImage(url),
modifier = Modifier
.padding(horizontal = 16.dp)
.height(40.dp)
.clip(CircleShape),
contentDescription = null,
)
Column(
modifier = Modifier
.fillMaxSize(),
verticalArrangement = Arrangement.Center
) {
Row {
Text(
text = authorIdent.name,
color = MaterialTheme.colors.primaryTextColor,
maxLines = 1,
fontSize = 14.sp,
)
Spacer(modifier = Modifier.weight(1f, fill = true))
val date = remember(authorIdent) {
authorIdent.`when`.toSmartSystemString()
}
Text(
text = date,
color = MaterialTheme.colors.secondaryTextColor,
maxLines = 1,
modifier = Modifier.padding(horizontal = 16.dp),
fontSize = 12.sp,
)
}
Text(
text = authorIdent.emailAddress,
color = MaterialTheme.colors.secondaryTextColor,
maxLines = 1,
fontSize = 12.sp,
)
}
}
}

View File

@ -9,11 +9,13 @@ import androidx.compose.animation.fadeOut
import androidx.compose.foundation.*
import androidx.compose.foundation.layout.*
import androidx.compose.foundation.lazy.itemsIndexed
import androidx.compose.foundation.shape.RoundedCornerShape
import androidx.compose.material.*
import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.ExperimentalComposeUiApi
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.input.pointer.pointerMoveFilter
@ -127,7 +129,7 @@ fun UncommitedChanges(
value = commitMessage,
onValueChange = { commitMessage = it },
label = { Text("Write your commit message here", fontSize = 14.sp) },
colors = TextFieldDefaults.textFieldColors(backgroundColor = MaterialTheme.colors.surface),
colors = TextFieldDefaults.textFieldColors(backgroundColor = MaterialTheme.colors.background),
textStyle = TextStyle.Default.copy(fontSize = 14.sp)
)
@ -166,11 +168,9 @@ private fun EntriesList(
onAllAction: () -> Unit,
allActionTitle: String,
) {
Card(
Column(
modifier = modifier
) {
Column {
Box {
Text(
modifier = Modifier
@ -185,21 +185,28 @@ private fun EntriesList(
maxLines = 1,
)
Button(
onClick = onAllAction,
Box(
modifier = Modifier
.padding(horizontal = 16.dp)
.align(Alignment.CenterEnd),
elevation = ButtonDefaults.elevation(0.dp, 0.dp, 0.dp),
colors = ButtonDefaults.buttonColors(backgroundColor = actionColor)
.align(Alignment.CenterEnd)
.clip(RoundedCornerShape(5.dp))
.background(actionColor)
.clickable { onAllAction() },
) {
Text(allActionTitle, fontSize = 10.sp)
Text(
text = allActionTitle,
fontSize = 12.sp,
color = MaterialTheme.colors.contentColorFor(actionColor),
modifier = Modifier.padding(vertical = 4.dp, horizontal = 16.dp)
)
}
}
ScrollableLazyColumn(
modifier = Modifier.fillMaxSize(),
modifier = Modifier
.fillMaxSize()
.background(MaterialTheme.colors.background),
) {
itemsIndexed(diffEntries) { index, diffEntry ->
FileEntry(
@ -220,9 +227,6 @@ private fun EntriesList(
if (index < diffEntries.size - 1) {
Divider(modifier = Modifier.fillMaxWidth())
}
}
}
}
}