diff --git a/build.gradle.kts b/build.gradle.kts index 6108161..a1468a0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -4,11 +4,11 @@ import org.jetbrains.kotlin.gradle.tasks.KotlinCompile plugins { // __KOTLIN_COMPOSE_VERSION__ - kotlin("jvm") version "1.5.21" - kotlin("kapt") version "1.5.21" - kotlin("plugin.serialization") version "1.5.21" + kotlin("jvm") version "1.5.31" + kotlin("kapt") version "1.5.31" + kotlin("plugin.serialization") version "1.5.31" // __LATEST_COMPOSE_RELEASE_VERSION__ - id("org.jetbrains.compose") version "1.0.0-alpha3" + id("org.jetbrains.compose") version "1.0.0-beta3" } group = "aeab13.github" @@ -27,7 +27,7 @@ dependencies { implementation("org.eclipse.jgit:org.eclipse.jgit:5.13.0.202109080827-r") implementation("org.apache.sshd:sshd-core:2.7.0") implementation("com.google.dagger:dagger:2.39.1") - implementation("org.jetbrains.kotlin:kotlin-reflect:1.5.21") + implementation("org.jetbrains.kotlin:kotlin-reflect:1.5.31") implementation("org.jetbrains.kotlinx:kotlinx-serialization-json:1.3.0") kapt("com.google.dagger:dagger-compiler:2.39.1") } diff --git a/src/main/kotlin/app/App.kt b/src/main/kotlin/app/App.kt index dea91a0..e2a6828 100644 --- a/src/main/kotlin/app/App.kt +++ b/src/main/kotlin/app/App.kt @@ -15,6 +15,7 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.draw.alpha import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.painterResource +import androidx.compose.ui.unit.DpSize import androidx.compose.ui.unit.dp import androidx.compose.ui.window.* import androidx.compose.ui.zIndex @@ -54,7 +55,7 @@ class Main { }, state = rememberWindowState( placement = WindowPlacement.Maximized, - size = WindowSize(1280.dp, 720.dp) + size = DpSize(1280.dp, 720.dp) ) ) { AppTheme { diff --git a/src/main/kotlin/app/ui/CommitChanges.kt b/src/main/kotlin/app/ui/CommitChanges.kt index 9f7e0c9..d4812fe 100644 --- a/src/main/kotlin/app/ui/CommitChanges.kt +++ b/src/main/kotlin/app/ui/CommitChanges.kt @@ -21,7 +21,6 @@ import app.extensions.* import kotlinx.coroutines.* import org.eclipse.jgit.diff.DiffEntry import org.eclipse.jgit.revwalk.RevCommit -import org.jetbrains.skija.Image.makeFromEncoded import app.theme.headerBackground import app.theme.primaryTextColor import app.theme.secondaryTextColor @@ -29,9 +28,11 @@ import java.net.HttpURLConnection import java.net.URL import androidx.compose.runtime.getValue import androidx.compose.runtime.setValue +import androidx.compose.ui.graphics.toComposeImageBitmap import app.ui.components.ScrollableLazyColumn import app.git.GitManager import app.theme.headerText +import org.jetbrains.skia.Image.Companion.makeFromEncoded @Composable fun CommitChanges( @@ -169,7 +170,7 @@ fun rememberNetworkImage(url: String): ImageBitmap { var image by remember(url) { mutableStateOf( useResource("image.jpg") { - makeFromEncoded(it.toByteArray()).asImageBitmap() + makeFromEncoded(it.toByteArray()).toComposeImageBitmap() } ) } @@ -178,7 +179,7 @@ fun rememberNetworkImage(url: String): ImageBitmap { LaunchedEffect(url) { try { loadImage(url).let { - image = makeFromEncoded(it).asImageBitmap() + image = makeFromEncoded(it).toComposeImageBitmap() } } catch (ex: Exception) { println("Avatar loading failed: ${ex.message}") diff --git a/src/main/kotlin/app/ui/GMenu.kt b/src/main/kotlin/app/ui/GMenu.kt index 3ee2d7b..997616e 100644 --- a/src/main/kotlin/app/ui/GMenu.kt +++ b/src/main/kotlin/app/ui/GMenu.kt @@ -30,11 +30,6 @@ fun GMenu( onPopStash: () -> Unit, onCreateBranch: () -> Unit, ) { - val openHovering = remember { mutableStateOf(false) } - val pullHovering = remember { mutableStateOf(false) } - val pushHovering = remember { mutableStateOf(false) } - val branchHovering = remember { mutableStateOf(false) } - Row( modifier = Modifier .padding(vertical = 16.dp) @@ -43,37 +38,29 @@ fun GMenu( ) { MenuButton( title = "Open", - hovering = openHovering, icon = painterResource("open.svg"), onClick = { - openHovering.value = false // Without this, the hover would be kept because of the newly opened dialog onRepositoryOpen() } ) MenuButton( title = "Pull", - hovering = pullHovering, icon = painterResource("download.svg"), onClick = { - pullHovering.value = false onPull() }, ) MenuButton( title = "Push", - hovering = pushHovering, icon = painterResource("upload.svg"), onClick = { - pushHovering.value = false onPush() }, ) MenuButton( title = "Branch", - hovering = branchHovering, icon = painterResource("branch.svg"), onClick = { - branchHovering.value = false onCreateBranch() }, ) @@ -94,16 +81,10 @@ fun GMenu( fun MenuButton( modifier: Modifier = Modifier, enabled: Boolean = true, - hovering: MutableState = remember { mutableStateOf(false) }, title: String, icon: Painter, onClick: () -> Unit ) { - val backgroundColor = if (hovering.value) - MaterialTheme.colors.primary.copy(alpha = 0.15F) - else - Color.Transparent - val iconColor = if (enabled) { MaterialTheme.colors.primary } else { @@ -112,23 +93,9 @@ fun MenuButton( TextButton( modifier = modifier - .padding(horizontal = 2.dp) - .pointerMoveFilter( - onEnter = { - hovering.value = true - false - }, - onExit = { - hovering.value = false - false - } - ), + .padding(horizontal = 2.dp), enabled = enabled, onClick = onClick, - colors = ButtonDefaults.buttonColors( - backgroundColor = backgroundColor, - disabledBackgroundColor = Color.Transparent - ) ) { Column(horizontalAlignment = Alignment.CenterHorizontally) { Image( diff --git a/src/main/kotlin/app/ui/Log.kt b/src/main/kotlin/app/ui/Log.kt index 6fd7b36..79414b3 100644 --- a/src/main/kotlin/app/ui/Log.kt +++ b/src/main/kotlin/app/ui/Log.kt @@ -17,7 +17,8 @@ import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.drawscope.clipRect import androidx.compose.ui.input.pointer.PointerIcon -import androidx.compose.ui.input.pointer.pointerIcon +import androidx.compose.ui.input.pointer.PointerIconDefaults +import androidx.compose.ui.input.pointer.pointerHoverIcon import androidx.compose.ui.res.painterResource import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.font.FontWeight @@ -52,7 +53,7 @@ private const val CANVAS_MIN_WIDTH = 100 // TODO Min size for message column // TODO Horizontal scroll for the graph @OptIn( - ExperimentalDesktopApi::class, ExperimentalFoundationApi::class, + ExperimentalFoundationApi::class, ExperimentalComposeUiApi::class ) @Composable @@ -289,7 +290,7 @@ fun DividerLog(modifier: Modifier) { modifier = Modifier .width(8.dp) .then(modifier) - .pointerIcon(PointerIcon.Hand) + .pointerHoverIcon(PointerIconDefaults.Hand) ) { Box( modifier = Modifier diff --git a/src/main/kotlin/app/ui/UncommitedChanges.kt b/src/main/kotlin/app/ui/UncommitedChanges.kt index e030264..d26cfcb 100644 --- a/src/main/kotlin/app/ui/UncommitedChanges.kt +++ b/src/main/kotlin/app/ui/UncommitedChanges.kt @@ -17,7 +17,6 @@ import androidx.compose.ui.Modifier import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.input.pointer.pointerMoveFilter -import androidx.compose.ui.platform.ContextMenuItem import androidx.compose.ui.text.TextStyle import androidx.compose.ui.text.font.FontWeight import androidx.compose.ui.text.style.TextAlign @@ -230,7 +229,7 @@ private fun EntriesList( @OptIn( ExperimentalComposeUiApi::class, ExperimentalFoundationApi::class, - ExperimentalDesktopApi::class, androidx.compose.animation.ExperimentalAnimationApi::class + ExperimentalAnimationApi::class ) @Composable private fun FileEntry(