From 1e3b6d02b7131719d5945cdba873e72f2f87d60f Mon Sep 17 00:00:00 2001 From: Abdelilah El Aissaoui Date: Sat, 25 Sep 2021 02:48:13 +0200 Subject: [PATCH] Added basic branches listing --- src/main/kotlin/Branches.kt | 108 +++++++++++++++++++++ src/main/kotlin/GitManager.kt | 14 ++- src/main/kotlin/Log.kt | 122 ++++++++++++++++++++++++ src/main/kotlin/RepositorySelected.kt | 127 +++---------------------- src/main/kotlin/git/BranchesManager.kt | 22 +++++ src/main/resources/branch.png | Bin 0 -> 59789 bytes 6 files changed, 277 insertions(+), 116 deletions(-) create mode 100644 src/main/kotlin/Branches.kt create mode 100644 src/main/kotlin/Log.kt create mode 100644 src/main/kotlin/git/BranchesManager.kt create mode 100644 src/main/resources/branch.png diff --git a/src/main/kotlin/Branches.kt b/src/main/kotlin/Branches.kt new file mode 100644 index 0000000..a073b69 --- /dev/null +++ b/src/main/kotlin/Branches.kt @@ -0,0 +1,108 @@ +import androidx.compose.foundation.border +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.foundation.shape.RoundedCornerShape +import androidx.compose.material.* +import androidx.compose.material.icons.Icons +import androidx.compose.material.icons.filled.Build +import androidx.compose.material.icons.filled.MoreVert +import androidx.compose.runtime.Composable +import androidx.compose.runtime.collectAsState +import androidx.compose.runtime.getValue +import androidx.compose.runtime.remember +import androidx.compose.ui.Alignment +import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.ImageBitmap +import androidx.compose.ui.graphics.asImageBitmap +import androidx.compose.ui.res.useResource +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextAlign +import androidx.compose.ui.text.style.TextOverflow +import androidx.compose.ui.unit.dp +import extensions.filePath +import extensions.icon +import extensions.toByteArray +import org.eclipse.jgit.lib.Ref +import org.jetbrains.skija.Image + +@Composable +fun Branches(gitManager: GitManager) { + val branches by gitManager.branches.collectAsState() + val branchIcon = remember { + useResource("branch.png") { + Image.makeFromEncoded(it.toByteArray()).asImageBitmap() + } + } + Card( + modifier = Modifier + .fillMaxSize() + .padding(8.dp) + ) { + Column { + Text( + modifier = Modifier + .padding(vertical = 16.dp) + .fillMaxWidth(), + text = "Branches", + fontWeight = FontWeight.Bold, + textAlign = TextAlign.Center, + color = MaterialTheme.colors.primary, + ) + + Divider(modifier = Modifier.fillMaxWidth()) + + LazyColumn(modifier = Modifier.weight(5f)) { + itemsIndexed(branches) { _, branch -> + BranchRow( + branch = branch, + icon = branchIcon, + ) + + } + } + } + } +} + +@Composable +private fun BranchRow(branch: Ref, icon: ImageBitmap) { + Row( + modifier = Modifier + .height(56.dp) + .fillMaxWidth() + .clickable(onClick = {}), + verticalAlignment = Alignment.CenterVertically, + ) { + + Icon( + bitmap = icon, + contentDescription = null, + modifier = Modifier + .padding(horizontal = 16.dp) + .size(24.dp), + tint = MaterialTheme.colors.primary, + ) + + Text( + text = branch.name, + modifier = Modifier.weight(1f, fill = true), + maxLines = 1, + overflow = TextOverflow.Ellipsis, + ) + + IconButton( + onClick = {}, + modifier = Modifier + .padding(horizontal = 16.dp) + .size(32.dp) + ) { + Icon( + imageVector = Icons.Default.MoreVert, + contentDescription = null, + tint = MaterialTheme.colors.primary, + ) + } + } +} \ No newline at end of file diff --git a/src/main/kotlin/GitManager.kt b/src/main/kotlin/GitManager.kt index 0fe83a7..3cf8ce3 100644 --- a/src/main/kotlin/GitManager.kt +++ b/src/main/kotlin/GitManager.kt @@ -9,6 +9,7 @@ import org.eclipse.jgit.api.Git import org.eclipse.jgit.diff.DiffEntry import org.eclipse.jgit.diff.DiffFormatter import org.eclipse.jgit.dircache.DirCacheIterator +import org.eclipse.jgit.lib.Ref import org.eclipse.jgit.lib.Repository import org.eclipse.jgit.storage.file.FileRepositoryBuilder import org.eclipse.jgit.treewalk.FileTreeIterator @@ -21,6 +22,7 @@ class GitManager { private val statusManager = StatusManager() private val logManager = LogManager() private val remoteOperationsManager = RemoteOperationsManager() + private val branchesManager = BranchesManager() private val managerScope = CoroutineScope(SupervisorJob()) @@ -38,6 +40,9 @@ class GitManager { val logStatus: StateFlow get() = logManager.logStatus + val branches: StateFlow> + get() = branchesManager.branches + val latestDirectoryOpened: File? get() = File(preferences.latestOpenedRepositoryPath).parentFile @@ -87,7 +92,7 @@ class GitManager { _repositorySelectionStatus.value = RepositorySelectionStatus.Open(repository) git = Git(repository) - loadLog() + refreshRepositoryInfo() } catch (ex: Exception) { ex.printStackTrace() } @@ -132,7 +137,7 @@ class GitManager { val newTree = FileTreeIterator(repo) println(diffEntry) - formatter.scan(oldTree, newTree) + formatter.scan(oldTree, newTree) //TODO Should only be set when using diff for unstaged changes // formatter.format(oldTree, newTree) formatter.format(diffEntry) formatter.flush() @@ -148,6 +153,11 @@ class GitManager { fun push() = managerScope.launch { remoteOperationsManager.push(safeGit) } + + private fun refreshRepositoryInfo() = managerScope.launch { + branchesManager.loadBranches(safeGit) + loadLog() + } } diff --git a/src/main/kotlin/Log.kt b/src/main/kotlin/Log.kt new file mode 100644 index 0000000..c20cbc8 --- /dev/null +++ b/src/main/kotlin/Log.kt @@ -0,0 +1,122 @@ +import androidx.compose.foundation.background +import androidx.compose.foundation.clickable +import androidx.compose.foundation.layout.* +import androidx.compose.foundation.lazy.LazyColumn +import androidx.compose.foundation.lazy.itemsIndexed +import androidx.compose.material.Card +import androidx.compose.material.Divider +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text +import androidx.compose.runtime.* +import androidx.compose.ui.Modifier +import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.unit.dp +import git.LogStatus +import org.eclipse.jgit.revwalk.RevCommit +import theme.primaryTextColor +import theme.secondaryTextColor + +@Composable +fun Log( + gitManager: GitManager, + onRevCommitSelected: (RevCommit) -> Unit, + onUncommitedChangesSelected: () -> Unit, + selectedIndex: MutableState = remember { mutableStateOf(-1) } +) { + val logStatusState = gitManager.logStatus.collectAsState() + val logStatus = logStatusState.value + + val selectedUncommited = remember { mutableStateOf(false) } + + val log = if (logStatus is LogStatus.Loaded) { + logStatus.commits + } else + listOf() + + Card( + modifier = Modifier + .padding(8.dp) + .background(MaterialTheme.colors.surface) + .fillMaxSize() + ) { + LazyColumn( + modifier = Modifier + .background(MaterialTheme.colors.surface) + .fillMaxSize() + ) { + if (gitManager.hasUncommitedChanges()) + item { + val textColor = if (selectedUncommited.value) { + MaterialTheme.colors.primary + } else + MaterialTheme.colors.primaryTextColor + + Column( + modifier = Modifier + .height(64.dp) + .fillMaxWidth() + .clickable { + selectedIndex.value = -1 + selectedUncommited.value = true + onUncommitedChangesSelected() + }, + verticalArrangement = Arrangement.Center, + ) { + Spacer(modifier = Modifier.weight(2f)) + + Text( + text = "Uncommited changes", + fontWeight = FontWeight.Bold, + modifier = Modifier.padding(start = 16.dp), + color = textColor, + ) + Text( + text = "You", + modifier = Modifier.padding(start = 16.dp), + color = MaterialTheme.colors.secondaryTextColor, + ) + + Spacer(modifier = Modifier.weight(2f)) + + Divider() + } + } + + itemsIndexed(items = log) { index, item -> + val textColor = if (selectedIndex.value == index) { + MaterialTheme.colors.primary + } else + MaterialTheme.colors.primaryTextColor + + Column( + modifier = Modifier + .height(64.dp) + .fillMaxWidth() + .clickable { + selectedIndex.value = index + selectedUncommited.value = false + onRevCommitSelected(item) + }, + verticalArrangement = Arrangement.Center, + ) { + Spacer(modifier = Modifier.weight(2f)) + + Text( + text = item.shortMessage, + modifier = Modifier.padding(start = 16.dp), + color = textColor, + ) + Text( + text = item.authorIdent.name, + modifier = Modifier.padding(start = 16.dp), + color = MaterialTheme.colors.secondaryTextColor, + ) + Spacer(modifier = Modifier.weight(2f)) + + Divider() + } + } + } + } + +} \ No newline at end of file diff --git a/src/main/kotlin/RepositorySelected.kt b/src/main/kotlin/RepositorySelected.kt index 961962b..25ae1d6 100644 --- a/src/main/kotlin/RepositorySelected.kt +++ b/src/main/kotlin/RepositorySelected.kt @@ -1,21 +1,18 @@ import androidx.compose.animation.Crossfade -import androidx.compose.foundation.background -import androidx.compose.foundation.clickable import androidx.compose.foundation.layout.* import androidx.compose.foundation.lazy.LazyColumn import androidx.compose.foundation.lazy.items -import androidx.compose.foundation.lazy.itemsIndexed import androidx.compose.foundation.text.selection.SelectionContainer -import androidx.compose.material.* +import androidx.compose.material.Button +import androidx.compose.material.MaterialTheme +import androidx.compose.material.Text import androidx.compose.runtime.* import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.text.font.FontFamily -import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.unit.dp import extensions.filePath -import git.LogStatus import org.eclipse.jgit.api.Git import org.eclipse.jgit.diff.DiffEntry import org.eclipse.jgit.lib.Repository @@ -24,9 +21,7 @@ import org.eclipse.jgit.revwalk.RevTree import org.eclipse.jgit.revwalk.RevWalk import org.eclipse.jgit.treewalk.AbstractTreeIterator import org.eclipse.jgit.treewalk.CanonicalTreeParser -import theme.backgroundColorLight import theme.primaryTextColor -import theme.secondaryTextColor import java.io.IOException @Composable @@ -45,6 +40,13 @@ fun RepositorySelected(gitManager: GitManager, repository: Repository) { val selectedIndexCommitLog = remember { mutableStateOf(-1) } Row { + Box( + modifier = Modifier + .weight(0.15f) + .fillMaxHeight() + ) { + Branches(gitManager = gitManager) + } Box( modifier = Modifier .weight(0.7f) @@ -94,7 +96,7 @@ fun RepositorySelected(gitManager: GitManager, repository: Repository) { } Box( modifier = Modifier - .weight(0.3f) + .weight(0.15f) .fillMaxHeight() ) { if (uncommitedChangesSelected) { @@ -119,6 +121,8 @@ fun RepositorySelected(gitManager: GitManager, repository: Repository) { } } + + @Composable fun DiffView(gitManager: GitManager, diffEntry: DiffEntry, onCloseDiffView: () -> Unit) { val text = remember(diffEntry) { @@ -169,109 +173,4 @@ fun prepareTreeParser(repository: Repository, commit: RevCommit): AbstractTreeIt walk.dispose() return treeParser } -} - -@Composable -fun Log( - gitManager: GitManager, - onRevCommitSelected: (RevCommit) -> Unit, - onUncommitedChangesSelected: () -> Unit, - selectedIndex: MutableState = remember { mutableStateOf(-1) } -) { - val logStatusState = gitManager.logStatus.collectAsState() - val logStatus = logStatusState.value - - val selectedUncommited = remember { mutableStateOf(false) } - - val log = if (logStatus is LogStatus.Loaded) { - logStatus.commits - } else - listOf() - - Card( - modifier = Modifier - .padding(8.dp) - .background(MaterialTheme.colors.surface) - .fillMaxSize() - ) { - LazyColumn( - modifier = Modifier - .background(MaterialTheme.colors.surface) - .fillMaxSize() - ) { - if (gitManager.hasUncommitedChanges()) - item { - val textColor = if (selectedUncommited.value) { - MaterialTheme.colors.primary - } else - MaterialTheme.colors.primaryTextColor - - Column( - modifier = Modifier - .height(64.dp) - .fillMaxWidth() - .clickable { - selectedIndex.value = -1 - selectedUncommited.value = true - onUncommitedChangesSelected() - }, - verticalArrangement = Arrangement.Center, - ) { - Spacer(modifier = Modifier.weight(2f)) - - Text( - text = "Uncommited changes", - fontWeight = FontWeight.Bold, - modifier = Modifier.padding(start = 16.dp), - color = textColor, - ) - Text( - text = "You", - modifier = Modifier.padding(start = 16.dp), - color = MaterialTheme.colors.secondaryTextColor, - ) - - Spacer(modifier = Modifier.weight(2f)) - - Divider() - } - } - - itemsIndexed(items = log) { index, item -> - val textColor = if (selectedIndex.value == index) { - MaterialTheme.colors.primary - } else - MaterialTheme.colors.primaryTextColor - - Column( - modifier = Modifier - .height(64.dp) - .fillMaxWidth() - .clickable { - selectedIndex.value = index - selectedUncommited.value = false - onRevCommitSelected(item) - }, - verticalArrangement = Arrangement.Center, - ) { - Spacer(modifier = Modifier.weight(2f)) - - Text( - text = item.shortMessage, - modifier = Modifier.padding(start = 16.dp), - color = textColor, - ) - Text( - text = item.authorIdent.name, - modifier = Modifier.padding(start = 16.dp), - color = MaterialTheme.colors.secondaryTextColor, - ) - Spacer(modifier = Modifier.weight(2f)) - - Divider() - } - } - } - } - } \ No newline at end of file diff --git a/src/main/kotlin/git/BranchesManager.kt b/src/main/kotlin/git/BranchesManager.kt new file mode 100644 index 0000000..00cd2e8 --- /dev/null +++ b/src/main/kotlin/git/BranchesManager.kt @@ -0,0 +1,22 @@ +package git + +import kotlinx.coroutines.Dispatchers +import kotlinx.coroutines.flow.MutableStateFlow +import kotlinx.coroutines.flow.StateFlow +import kotlinx.coroutines.withContext +import org.eclipse.jgit.api.Git +import org.eclipse.jgit.lib.Ref + +class BranchesManager { + private val _branches = MutableStateFlow>(listOf()) + val branches: StateFlow> + get() = _branches + + suspend fun loadBranches(git: Git) = withContext(Dispatchers.IO) { + val branchList = git + .branchList() + .call() + + _branches.value = branchList + } +} \ No newline at end of file diff --git a/src/main/resources/branch.png b/src/main/resources/branch.png new file mode 100644 index 0000000000000000000000000000000000000000..52af5682e179f57ec8ceeae44a9fd52f5e4e5a45 GIT binary patch literal 59789 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ℜ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 literal 0 HcmV?d00001