milan jurkulák преди 2 години
родител
ревизия
6a471b29a7

+ 18 - 11
src/main/kotlin/eu/mjdev/desktop/components/charts/MemoryChart.kt

@@ -4,25 +4,27 @@ import androidx.compose.animation.core.AnimationSpec
 import androidx.compose.animation.core.TweenSpec
 import androidx.compose.runtime.Composable
 import androidx.compose.runtime.LaunchedEffect
+import androidx.compose.runtime.getValue
 import androidx.compose.ui.Modifier
 import androidx.compose.ui.graphics.Color
 import com.aay.compose.baseComponents.model.LegendPosition
 import eu.mjdev.desktop.components.draggable.DraggableView
-import eu.mjdev.desktop.extensions.Compose.DarkDarkGray
 import eu.mjdev.desktop.extensions.Compose.rememberState
+import eu.mjdev.desktop.helpers.internal.Palette.Companion.rememberBackgroundColor
+import eu.mjdev.desktop.helpers.internal.Palette.Companion.rememberBorderColor
+import eu.mjdev.desktop.helpers.internal.Palette.Companion.rememberIconTintColor
+import eu.mjdev.desktop.helpers.internal.Palette.Companion.rememberTextColor
 import eu.mjdev.desktop.helpers.system.MemInfo
 import eu.mjdev.desktop.helpers.system.MemInfo.Companion.toReadable
+import eu.mjdev.desktop.provider.DesktopProvider
+import eu.mjdev.desktop.provider.DesktopProvider.Companion.LocalDesktop
 import kotlinx.coroutines.delay
 import kotlinx.coroutines.isActive
 
+@Suppress("FunctionName")
 @Composable
 fun MemoryChart(
     modifier: Modifier = Modifier,
-    textColor: Color = Color.White,
-    outerCircularColor: Color = Color.White,
-    innerCircularColor: Color = Color.White,
-    totalColor: Color = Color.DarkDarkGray,
-    currentColor: Color = Color.White,
     ratioLineColor: Color = Color.Transparent,
     mainTitle: String = "Memory",
     usedTitle: String = "Used",
@@ -30,21 +32,26 @@ fun MemoryChart(
     animation: AnimationSpec<Float> = TweenSpec(durationMillis = 3000),
     legendPosition: LegendPosition = LegendPosition.BOTTOM,
     updateTimeOut: Long = 10000,
-    dragEnabled: Boolean = true
+    dragEnabled: Boolean = true,
+    api: DesktopProvider = LocalDesktop.current,
 ) = DraggableView(
     modifier = modifier,
     dragEnabled = dragEnabled
 ) {
+    val backgroundColor by rememberBackgroundColor(api)
+    val textColor by rememberTextColor(api)
+    val borderColor by rememberBorderColor(api)
+    val iconsTintColor by rememberIconTintColor(api)
     val memData = rememberState(MemInfo())
     DualDonutChart(
         modifier = modifier,
         title = mainTitle,
         textColor = textColor,
-        outerCircularColor = outerCircularColor,
-        innerCircularColor = innerCircularColor,
+        outerCircularColor = borderColor,
+        innerCircularColor = borderColor,
         ratioLineColor = ratioLineColor,
-        secondColor = totalColor,
-        firstColor = currentColor,
+        secondColor = backgroundColor,
+        firstColor = iconsTintColor,
         secondValue = memData.value.free,
         firstValue = memData.value.used,
         secondTitle = freeTitle.plus(": ").plus(memData.value.free.toReadable()),

+ 3 - 2
src/main/kotlin/eu/mjdev/desktop/components/custom/UserAvatar.kt

@@ -25,6 +25,7 @@ import eu.mjdev.desktop.extensions.Modifier.clipCircle
 import eu.mjdev.desktop.provider.DesktopProvider
 import eu.mjdev.desktop.provider.DesktopProvider.Companion.LocalDesktop
 
+@Suppress("FunctionName")
 @Preview
 @Composable
 fun UserAvatar(
@@ -72,7 +73,7 @@ fun UserAvatar(
                 horizontalAlignment = Alignment.CenterHorizontally
             ) {
                 TextAny(
-                    text = api.currentUser.name ?: api.appsProvider.homeDir?.name ?: "-",
+                    text = api.currentUser.name ?: api.homeDir?.name ?: "-",
                     color = textColor,
                     textAlign = TextAlign.Center,
                     fontWeight = FontWeight.Bold
@@ -114,7 +115,7 @@ fun UserAvatar(
                 modifier = Modifier.padding(start = 8.dp).fillMaxWidth().padding(top = 8.dp),
             ) {
                 TextAny(
-                    text = api.currentUser.name ?: api.appsProvider.homeDir?.name ?: "-",
+                    text = api.currentUser.name ?: api.homeDir?.name ?: "-",
                     color = textColor,
                     textAlign = TextAlign.Start,
                     fontWeight = FontWeight.Bold

+ 5 - 2
src/main/kotlin/eu/mjdev/desktop/data/DesktopFile.kt

@@ -63,6 +63,9 @@ class DesktopFile(
             "1" -> true
             else -> false
         }
-    }
 
-}
+        fun create(path: String): DesktopFile = DesktopFile(File(path).apply {
+            createNewFile()
+        })
+    }
+}

+ 4 - 6
src/main/kotlin/eu/mjdev/desktop/provider/AppsProvider.kt

@@ -22,12 +22,10 @@ class AppsProvider(
     val scope
         get() = api.scope
 
-    val homeDir by lazy { runCatching { File(System.getProperty("user.home")) }.getOrNull() }
-
-    private val configDir by lazy { homeDir?.resolve(".config") }
-    private val iconsDir by lazy { homeDir?.resolve(".icons") }
-    private val themesDir by lazy { homeDir?.resolve(".themes") }
-    private val localDir by lazy { homeDir?.resolve(".local") }
+    private val configDir by lazy { api.homeDir?.resolve(".config") }
+    private val iconsDir by lazy { api.homeDir?.resolve(".icons") }
+    private val themesDir by lazy { api.homeDir?.resolve(".themes") }
+    private val localDir by lazy { api.homeDir?.resolve(".local") }
     private val localShareDir by lazy { localDir?.resolve("share") }
     private val allAppsDesktopFilesDir by lazy { localShareDir?.resolve("applications") }
     private val autostartDesktopFilesDir by lazy { configDir?.resolve("autoStart") }

+ 1 - 0
src/main/kotlin/eu/mjdev/desktop/provider/DesktopProvider.kt

@@ -32,6 +32,7 @@ class DesktopProvider(
     val windows: WindowsManager = WindowsManager(),
     val gnome: GnomeManager = GnomeManager(),
 ) {
+    val homeDir by lazy { runCatching { File(System.getProperty("user.home")) }.getOrNull() }
     private val __currentUser: User by lazy { User.load() }
     private val _currentUser: MutableState<User> = mutableStateOf(__currentUser)
     val currentUser

+ 10 - 2
src/main/kotlin/eu/mjdev/desktop/theme/gtk/GtkTheme.kt

@@ -1,7 +1,15 @@
 package eu.mjdev.desktop.theme.gtk
 
 import eu.mjdev.desktop.data.DesktopFile
+import eu.mjdev.desktop.provider.DesktopProvider
+import java.io.File
 
-class GtkTheme {
-    val desktopFile : DesktopFile? = null
+@Suppress("unused")
+class GtkTheme(
+    val themeName: String = "mjdev",
+    val api: DesktopProvider,
+    val themesDir: File = File(api.homeDir, ".themes"),
+    val themeDir: File = File(themesDir, themeName)
+) {
+    val desktopFile: DesktopFile = DesktopFile.create("") // todo
 }