Made log rows smaller and showing date instead of author

This commit is contained in:
Duba 2021-09-30 02:24:09 +02:00
parent 4e87a89ea5
commit c24908cc5a
3 changed files with 82 additions and 38 deletions

View File

@ -16,10 +16,7 @@ import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.text.style.TextAlign
import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import extensions.filePath import extensions.*
import extensions.icon
import extensions.md5
import extensions.toByteArray
import kotlinx.coroutines.* import kotlinx.coroutines.*
import org.eclipse.jgit.diff.DiffEntry import org.eclipse.jgit.diff.DiffEntry
import org.eclipse.jgit.revwalk.RevCommit import org.eclipse.jgit.revwalk.RevCommit
@ -95,10 +92,7 @@ fun CommitChanges(commitDiff: Pair<RevCommit, List<DiffEntry>>, onDiffSelected:
Spacer(modifier = Modifier.weight(1f, fill = true)) Spacer(modifier = Modifier.weight(1f, fill = true))
val date = remember(commit) { val date = remember(commit) {
val systemLocale = System.getProperty("user.language") commit.authorIdent.`when`.toSystemString()
val locale = Locale(systemLocale)
val sdf = DateFormat.getDateInstance(DateFormat.MEDIUM, locale)
sdf.format(commit.authorIdent.`when`)
} }
Text( Text(

View File

@ -8,10 +8,14 @@ import androidx.compose.material.Divider
import androidx.compose.material.MaterialTheme import androidx.compose.material.MaterialTheme
import androidx.compose.material.Text import androidx.compose.material.Text
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.font.FontStyle
import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.font.FontWeight
import androidx.compose.ui.text.style.TextOverflow
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp
import extensions.toSystemString
import git.LogStatus import git.LogStatus
import org.eclipse.jgit.revwalk.RevCommit import org.eclipse.jgit.revwalk.RevCommit
import theme.primaryTextColor import theme.primaryTextColor
@ -57,7 +61,7 @@ fun Log(
Column( Column(
modifier = Modifier modifier = Modifier
.height(64.dp) .height(48.dp)
.fillMaxWidth() .fillMaxWidth()
.clickable { .clickable {
selectedIndex.value = -1 selectedIndex.value = -1
@ -74,12 +78,12 @@ fun Log(
modifier = Modifier.padding(start = 16.dp), modifier = Modifier.padding(start = 16.dp),
color = textColor, color = textColor,
) )
Text( // Text(
text = "You", // text = "You",
fontStyle = FontStyle.Italic, // fontStyle = FontStyle.Italic,
modifier = Modifier.padding(start = 16.dp), // modifier = Modifier.padding(start = 16.dp),
color = MaterialTheme.colors.secondaryTextColor, // color = MaterialTheme.colors.secondaryTextColor,
) // )
Spacer(modifier = Modifier.weight(2f)) Spacer(modifier = Modifier.weight(2f))
@ -92,34 +96,45 @@ fun Log(
MaterialTheme.colors.primary MaterialTheme.colors.primary
} else } else
MaterialTheme.colors.primaryTextColor MaterialTheme.colors.primaryTextColor
Column {
Column( Spacer(modifier = Modifier.weight(2f))
Row(
modifier = Modifier modifier = Modifier
.height(64.dp) .height(48.dp)
.fillMaxWidth() .fillMaxWidth()
.clickable { .clickable {
selectedIndex.value = index selectedIndex.value = index
selectedUncommited.value = false selectedUncommited.value = false
onRevCommitSelected(item) onRevCommitSelected(item)
}, },
verticalArrangement = Arrangement.Center, verticalAlignment = Alignment.CenterVertically,
) { ) {
Spacer(modifier = Modifier.weight(2f))
Text( Text(
text = item.shortMessage, text = item.shortMessage,
modifier = Modifier.padding(start = 16.dp), modifier = Modifier.padding(start = 16.dp),
fontSize = 16.sp,
color = textColor, color = textColor,
) maxLines = 1,
Text( overflow = TextOverflow.Ellipsis,
text = item.authorIdent.name,
modifier = Modifier.padding(start = 16.dp),
color = MaterialTheme.colors.secondaryTextColor,
) )
Spacer(modifier = Modifier.weight(2f)) Spacer(modifier = Modifier.weight(2f))
Text(
text = item.committerIdent.`when`.toSystemString(),
modifier = Modifier.padding(horizontal = 16.dp),
fontSize = 14.sp,
color = MaterialTheme.colors.secondaryTextColor,
maxLines = 1,
overflow = TextOverflow.Ellipsis,
)
}
Spacer(modifier = Modifier.weight(2f))
Divider() Divider()
} }
} }
} }
} }

View File

@ -0,0 +1,35 @@
package extensions
import java.text.DateFormat
import java.time.LocalDate
import java.time.ZoneId
import java.util.*
fun Date.toSmartSystemString(): String {
val systemLocale = System.getProperty("user.language")
val locale = Locale(systemLocale)
val sdf = DateFormat.getDateInstance(DateFormat.MEDIUM, locale)
val zoneId = ZoneId.systemDefault()
val localDate = this.toInstant().atZone(zoneId).toLocalDate();
val currentTime = LocalDate.now(zoneId)
var result = sdf.format(this)
if(localDate.year == currentTime.year &&
localDate.month == currentTime.month) {
if(localDate.dayOfMonth == currentTime.dayOfMonth)
result = "Today"
else if(localDate.dayOfMonth == currentTime.dayOfMonth - 1)
result = "Yesterday"
}
return result
}
fun Date.toSystemString(): String {
val systemLocale = System.getProperty("user.language")
val locale = Locale(systemLocale)
val sdf = DateFormat.getDateInstance(DateFormat.MEDIUM, locale)
return sdf.format(this)
}