diff --git a/src/main/kotlin/Branches.kt b/src/main/kotlin/Branches.kt index c7cda49..d055f2e 100644 --- a/src/main/kotlin/Branches.kt +++ b/src/main/kotlin/Branches.kt @@ -1,39 +1,29 @@ import androidx.compose.foundation.background -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.graphics.painter.Painter import androidx.compose.ui.res.painterResource -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 extensions.simpleName import org.eclipse.jgit.lib.Ref -import org.jetbrains.skija.Image import theme.headerBackground @Composable fun Branches(gitManager: GitManager) { val branches by gitManager.branches.collectAsState() + val currentBranch by gitManager.currentBranch.collectAsState() Card( modifier = Modifier @@ -58,6 +48,7 @@ fun Branches(gitManager: GitManager) { itemsIndexed(branches) { _, branch -> BranchRow( branch = branch, + isCurrentBranch = currentBranch == branch.name ) } @@ -67,7 +58,15 @@ fun Branches(gitManager: GitManager) { } @Composable -private fun BranchRow(branch: Ref) { +private fun BranchRow( + branch: Ref, + isCurrentBranch: Boolean +) { + val fontWeight = if(isCurrentBranch) + FontWeight.Bold + else + FontWeight.Normal + Row( modifier = Modifier .height(56.dp) @@ -86,7 +85,8 @@ private fun BranchRow(branch: Ref) { ) Text( - text = branch.name, + text = branch.simpleName, + fontWeight = fontWeight, modifier = Modifier.weight(1f, fill = true), maxLines = 1, overflow = TextOverflow.Ellipsis, diff --git a/src/main/kotlin/GitManager.kt b/src/main/kotlin/GitManager.kt index b305666..5187535 100644 --- a/src/main/kotlin/GitManager.kt +++ b/src/main/kotlin/GitManager.kt @@ -44,6 +44,9 @@ class GitManager { val branches: StateFlow> get() = branchesManager.branches + val currentBranch: StateFlow + get() = branchesManager.currentBranch + val stashStatus: StateFlow get() = stashManager.stashStatus diff --git a/src/main/kotlin/extensions/RefExtensions.kt b/src/main/kotlin/extensions/RefExtensions.kt new file mode 100644 index 0000000..37a5235 --- /dev/null +++ b/src/main/kotlin/extensions/RefExtensions.kt @@ -0,0 +1,8 @@ +package extensions + +import org.eclipse.jgit.lib.Ref + +val Ref.simpleName: String + get() { + return this.name.split("/").last() + } \ No newline at end of file diff --git a/src/main/kotlin/git/BranchesManager.kt b/src/main/kotlin/git/BranchesManager.kt index 4edfdcd..81808d7 100644 --- a/src/main/kotlin/git/BranchesManager.kt +++ b/src/main/kotlin/git/BranchesManager.kt @@ -12,12 +12,21 @@ class BranchesManager { val branches: StateFlow> get() = _branches + private val _currentBranch = MutableStateFlow("") + val currentBranch: StateFlow + get() = _currentBranch + suspend fun loadBranches(git: Git) = withContext(Dispatchers.IO) { val branchList = git .branchList() .call() + val branchName = git + .repository + .fullBranch + _branches.value = branchList + _currentBranch.value = branchName } suspend fun createBranch(git: Git, branchName: String) = withContext(Dispatchers.IO) {