From 69187207f6abcc50e00627d67bad27ce21eb20a3 Mon Sep 17 00:00:00 2001 From: aro Date: Fri, 18 Nov 2022 10:39:49 +0100 Subject: [PATCH] feat: display files added to Watcher --- .../xyz/atnrch/wrench/components/AddButton.kt | 6 ++- .../components/WrenchFileManagerInput.kt | 43 +++++++++++++++++-- .../components/WrenchFileManagerOutput.kt | 39 ----------------- .../wrench/components/WrenchScaffold.kt | 13 +++--- .../xyz/atnrch/wrench/watcher/Watcher.kt | 4 +- .../atnrch/wrench/watcher/WatcherManager.kt | 6 +-- 6 files changed, 55 insertions(+), 56 deletions(-) delete mode 100644 src/main/kotlin/xyz/atnrch/wrench/components/WrenchFileManagerOutput.kt diff --git a/src/main/kotlin/xyz/atnrch/wrench/components/AddButton.kt b/src/main/kotlin/xyz/atnrch/wrench/components/AddButton.kt index a314a91..a844ce5 100644 --- a/src/main/kotlin/xyz/atnrch/wrench/components/AddButton.kt +++ b/src/main/kotlin/xyz/atnrch/wrench/components/AddButton.kt @@ -11,9 +11,12 @@ import androidx.compose.ui.graphics.Color import androidx.compose.ui.unit.dp import xyz.atnrch.wrench.colors.WrenchColors import xyz.atnrch.wrench.logger.Logger +import xyz.atnrch.wrench.watcher.WatcherManager @Composable -fun AddButton() { +fun AddButton( + watcherManager: WatcherManager +) { //............. // ADD BUTTON (FLOATING) //............. @@ -21,6 +24,7 @@ fun AddButton() { { createFileChooser({ Logger.info("Path: ${it.absolutePath}") + watcherManager.addFile(it) }, { Logger.info("No file selected.") }) diff --git a/src/main/kotlin/xyz/atnrch/wrench/components/WrenchFileManagerInput.kt b/src/main/kotlin/xyz/atnrch/wrench/components/WrenchFileManagerInput.kt index c75d8a5..014c105 100644 --- a/src/main/kotlin/xyz/atnrch/wrench/components/WrenchFileManagerInput.kt +++ b/src/main/kotlin/xyz/atnrch/wrench/components/WrenchFileManagerInput.kt @@ -6,21 +6,56 @@ import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.padding import androidx.compose.material.Text import androidx.compose.runtime.Composable +import androidx.compose.runtime.mutableStateOf +import androidx.compose.runtime.remember import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier +import androidx.compose.ui.graphics.Color +import androidx.compose.ui.text.TextStyle +import androidx.compose.ui.unit.ExperimentalUnitApi +import androidx.compose.ui.unit.TextUnit +import androidx.compose.ui.unit.TextUnitType import androidx.compose.ui.unit.dp +import xyz.atnrch.wrench.watcher.WatcherManager +@OptIn(ExperimentalUnitApi::class) @Composable -fun WrenchFileManagerInput() { +fun WatcherDisplay( + watcherManager: WatcherManager +) { + var selectedFile = remember { mutableStateOf("") } + Box( contentAlignment = Alignment.CenterStart, modifier = Modifier.fillMaxSize(), ) { Column( - modifier = Modifier.padding(96.dp) + modifier = Modifier.padding(84.dp) ) { - Text("Test") - Text("Test2") + //............. + // INPUT SIDE + //............. + watcherManager.getEntries().forEach { + Text( + text = "${it.file.absolutePath}", + style = TextStyle( + color = Color.Black, + fontSize = TextUnit(15F, TextUnitType.Sp) + ) + ) + } + } + } + Box( + contentAlignment = Alignment.CenterEnd, + modifier = Modifier.fillMaxSize(), + ) { + Column( + modifier = Modifier.padding(84.dp) + ) { + //............. + // OUTPUT SIDE + //............. } } } diff --git a/src/main/kotlin/xyz/atnrch/wrench/components/WrenchFileManagerOutput.kt b/src/main/kotlin/xyz/atnrch/wrench/components/WrenchFileManagerOutput.kt deleted file mode 100644 index 9eb9fc3..0000000 --- a/src/main/kotlin/xyz/atnrch/wrench/components/WrenchFileManagerOutput.kt +++ /dev/null @@ -1,39 +0,0 @@ -package xyz.atnrch.wrench.components - -import androidx.compose.foundation.clickable -import androidx.compose.foundation.layout.Box -import androidx.compose.foundation.layout.Column -import androidx.compose.foundation.layout.fillMaxSize -import androidx.compose.foundation.layout.padding -import androidx.compose.material.Text -import androidx.compose.runtime.Composable -import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember -import androidx.compose.ui.Alignment -import androidx.compose.ui.Modifier -import androidx.compose.ui.graphics.Color -import androidx.compose.ui.unit.dp - -@Composable -fun WrenchFileManagerOutput() { - Box( - contentAlignment = Alignment.CenterEnd, - modifier = Modifier.fillMaxSize(), - ) { - Column( - modifier = Modifier.padding(96.dp) - ) { - val backgroundColor = remember { mutableStateOf(Color.Black) } - - Text( - text = "Test", - color = backgroundColor.value, - modifier = Modifier.clickable { - println("Click!") - backgroundColor.value = Color.Red - } - ) - Text("Test2") - } - } -} diff --git a/src/main/kotlin/xyz/atnrch/wrench/components/WrenchScaffold.kt b/src/main/kotlin/xyz/atnrch/wrench/components/WrenchScaffold.kt index 0bfa11b..7544250 100644 --- a/src/main/kotlin/xyz/atnrch/wrench/components/WrenchScaffold.kt +++ b/src/main/kotlin/xyz/atnrch/wrench/components/WrenchScaffold.kt @@ -3,20 +3,21 @@ package xyz.atnrch.wrench.components import androidx.compose.material.Scaffold import androidx.compose.runtime.* import xyz.atnrch.wrench.watcher.Watcher +import xyz.atnrch.wrench.watcher.WatcherEntry +import xyz.atnrch.wrench.watcher.WatcherManager @Composable fun WrenchScaffold() { - val watcher = remember { Watcher() } + val entries: MutableList = remember { mutableStateListOf() } + val watcher = remember { Watcher(entries) } + val watcherManager = remember { WatcherManager(entries) } var buttonState by remember { mutableStateOf(false) } Scaffold( topBar = { TopBar() }, - floatingActionButton = { AddButton() }, + floatingActionButton = { AddButton(watcherManager) }, isFloatingActionButtonDocked = true, bottomBar = { BottomAppBar(watcher, buttonState) { buttonState = it } } - ) { - WrenchFileManagerInput() - WrenchFileManagerOutput() - } + ) { WatcherDisplay(watcherManager) } } \ No newline at end of file diff --git a/src/main/kotlin/xyz/atnrch/wrench/watcher/Watcher.kt b/src/main/kotlin/xyz/atnrch/wrench/watcher/Watcher.kt index adc6642..8d4c929 100644 --- a/src/main/kotlin/xyz/atnrch/wrench/watcher/Watcher.kt +++ b/src/main/kotlin/xyz/atnrch/wrench/watcher/Watcher.kt @@ -6,7 +6,7 @@ import xyz.atnrch.wrench.logger.Logger import java.nio.file.Files import java.util.concurrent.TimeUnit -class Watcher { +class Watcher(private val entries: MutableList) { companion object { var WATCHING = false } @@ -21,7 +21,7 @@ class Watcher { Logger.info("Started Watcher.") while (WATCHING) { delay(TimeUnit.SECONDS.toMillis(5)) - val manager = WatcherManager() + val manager = WatcherManager(entries) for (entry: WatcherEntry in manager.getEntries()) { entry.map.forEach { Files.copy(entry.file.toPath(), it.toAbsolutePath()) diff --git a/src/main/kotlin/xyz/atnrch/wrench/watcher/WatcherManager.kt b/src/main/kotlin/xyz/atnrch/wrench/watcher/WatcherManager.kt index c05543e..0c69cb2 100644 --- a/src/main/kotlin/xyz/atnrch/wrench/watcher/WatcherManager.kt +++ b/src/main/kotlin/xyz/atnrch/wrench/watcher/WatcherManager.kt @@ -3,16 +3,14 @@ package xyz.atnrch.wrench.watcher import xyz.atnrch.wrench.logger.Logger import java.io.File -class WatcherManager { - private val entries: ArrayList = arrayListOf() - +class WatcherManager(private val entries: MutableList) { fun addFile(file: File) { val watcherEntry = WatcherEntry(file, arrayListOf()) entries.add(watcherEntry) Logger.info("Tracking new file: ${file.name} (${file.absolutePath})") } - fun getEntries(): ArrayList { + fun getEntries(): MutableList { return entries } } \ No newline at end of file