refactor: global refactor and optimization

This commit is contained in:
aro 2023-01-14 22:09:23 +01:00
parent be5039b386
commit 68fae30197
22 changed files with 75 additions and 97 deletions

View file

@ -5,7 +5,7 @@ import androidx.compose.material.BottomAppBar
import androidx.compose.material.MaterialTheme import androidx.compose.material.MaterialTheme
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import xyz.atnrch.wrench.gui.filemanager.bottom.FileBottomRow import xyz.atnrch.wrench.gui.filemanager.bottom.FileBottomRow
import xyz.atnrch.wrench.gui.style.UIColors import xyz.atnrch.wrench.gui.appearance.UIColors
import xyz.atnrch.wrench.watcher.Watcher import xyz.atnrch.wrench.watcher.Watcher
import xyz.atnrch.wrench.watcher.WatcherManager import xyz.atnrch.wrench.watcher.WatcherManager
import java.nio.file.Path import java.nio.file.Path

View file

@ -1,4 +1,4 @@
package xyz.atnrch.wrench.gui.filemanager.top package xyz.atnrch.wrench.gui
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.size import androidx.compose.foundation.layout.size
@ -12,14 +12,15 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import xyz.atnrch.wrench.gui.style.Fonts import xyz.atnrch.wrench.gui.appearance.Fonts
import xyz.atnrch.wrench.gui.style.UIColors import xyz.atnrch.wrench.gui.appearance.UIColors
import xyz.atnrch.wrench.json.JsonLayout import xyz.atnrch.wrench.gui.filemanager.top.FileManagerTopButtons
import xyz.atnrch.wrench.storage.LayoutStorage
import xyz.atnrch.wrench.watcher.WatcherEntry import xyz.atnrch.wrench.watcher.WatcherEntry
@Composable @Composable
fun TopBar( fun TopBar(
jsonLayout: JsonLayout, layoutStorage: LayoutStorage,
tabIndex: Int, tabIndex: Int,
values: MutableCollection<WatcherEntry> values: MutableCollection<WatcherEntry>
) { ) {
@ -42,7 +43,7 @@ fun TopBar(
}, },
actions = { actions = {
if (tabIndex == 0) { if (tabIndex == 0) {
TopBarButtons(jsonLayout, values) FileManagerTopButtons(layoutStorage, values)
} }
} }
) )

View file

@ -8,7 +8,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import xyz.atnrch.wrench.gui.filemanager.FileManagerDisplay import xyz.atnrch.wrench.gui.filemanager.FileManagerDisplay
import xyz.atnrch.wrench.gui.server.ServerManagerDisplay import xyz.atnrch.wrench.gui.server.ServerManagerDisplay
import xyz.atnrch.wrench.gui.style.UIColors import xyz.atnrch.wrench.gui.appearance.UIColors
import xyz.atnrch.wrench.watcher.WatcherManager import xyz.atnrch.wrench.watcher.WatcherManager
import java.nio.file.Path import java.nio.file.Path

View file

@ -7,11 +7,10 @@ import androidx.compose.material.rememberScaffoldState
import androidx.compose.runtime.* import androidx.compose.runtime.*
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.WindowState import androidx.compose.ui.window.WindowState
import xyz.atnrch.wrench.data.SnackBarDataHolder import xyz.atnrch.wrench.gui.appearance.UIColors
import xyz.atnrch.wrench.gui.filemanager.bottom.FloatingButton import xyz.atnrch.wrench.gui.component.SnackBarDataHolder
import xyz.atnrch.wrench.gui.filemanager.top.TopBar import xyz.atnrch.wrench.gui.filemanager.bottom.FloatingAddButton
import xyz.atnrch.wrench.gui.style.UIColors import xyz.atnrch.wrench.storage.LayoutStorage
import xyz.atnrch.wrench.json.JsonLayout
import xyz.atnrch.wrench.watcher.Watcher import xyz.atnrch.wrench.watcher.Watcher
import xyz.atnrch.wrench.watcher.WatcherEntry import xyz.atnrch.wrench.watcher.WatcherEntry
import xyz.atnrch.wrench.watcher.WatcherManager import xyz.atnrch.wrench.watcher.WatcherManager
@ -27,7 +26,7 @@ fun WrenchScaffold(state: WindowState) {
val watcherManager = remember { WatcherManager(entries) } val watcherManager = remember { WatcherManager(entries) }
val watcher = remember { Watcher(watcherManager, snackBarDataHolder) } val watcher = remember { Watcher(watcherManager, snackBarDataHolder) }
val tabTitles = listOf("File Manager", "Servers") val tabTitles = listOf("File Manager", "Servers")
val jsonLayout = JsonLayout { val layoutStorage = LayoutStorage {
it.forEach { entry -> it.forEach { entry ->
watcherManager.addFile(entry.file, entry.outputs) watcherManager.addFile(entry.file, entry.outputs)
} }
@ -43,8 +42,8 @@ fun WrenchScaffold(state: WindowState) {
} else { } else {
Scaffold( Scaffold(
scaffoldState = scaffoldState, scaffoldState = scaffoldState,
topBar = { TopBar(jsonLayout, tabIndex, entries.values) }, topBar = { TopBar(layoutStorage, tabIndex, entries.values) },
floatingActionButton = { if (tabIndex == 0) FloatingButton(watcherManager) }, floatingActionButton = { if (tabIndex == 0) FloatingAddButton(watcherManager) },
isFloatingActionButtonDocked = true, isFloatingActionButtonDocked = true,
backgroundColor = UIColors.PRIMARY, backgroundColor = UIColors.PRIMARY,
bottomBar = { bottomBar = {

View file

@ -1,4 +1,4 @@
package xyz.atnrch.wrench.gui.style package xyz.atnrch.wrench.gui.appearance
import androidx.compose.ui.text.font.FontFamily import androidx.compose.ui.text.font.FontFamily
import androidx.compose.ui.text.font.FontStyle import androidx.compose.ui.text.font.FontStyle
@ -15,14 +15,6 @@ class Fonts {
) )
) )
val ROBOTO_MEDIUM: FontFamily = FontFamily(
Font(
resource = "font/Roboto-Medium.ttf",
style = FontStyle.Normal,
weight = FontWeight.Medium
)
)
val ROBOTO_REGULAR: FontFamily = FontFamily( val ROBOTO_REGULAR: FontFamily = FontFamily(
Font( Font(
resource = "font/Roboto-Regular.ttf", resource = "font/Roboto-Regular.ttf",

View file

@ -1,4 +1,4 @@
package xyz.atnrch.wrench.gui.style package xyz.atnrch.wrench.gui.appearance
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
@ -6,7 +6,6 @@ class UIColors {
companion object { companion object {
val PRIMARY = Color(0xFF242424) val PRIMARY = Color(0xFF242424)
val DARK_PRIMARY = Color(0XFF1B1B1B) val DARK_PRIMARY = Color(0XFF1B1B1B)
val LIGHT_PRIMARY = Color(0xFF6D6D6D)
val LIGHT_RED = Color(0xFFF44336) val LIGHT_RED = Color(0xFFF44336)

View file

@ -1,4 +1,4 @@
package xyz.atnrch.wrench.registery package xyz.atnrch.wrench.gui.component
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable

View file

@ -1,4 +1,4 @@
package xyz.atnrch.wrench.data package xyz.atnrch.wrench.gui.component
import androidx.compose.material.ScaffoldState import androidx.compose.material.ScaffoldState
import kotlinx.coroutines.CoroutineScope import kotlinx.coroutines.CoroutineScope

View file

@ -8,7 +8,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import xyz.atnrch.wrench.gui.filemanager.center.empty.DefaultDisplay import xyz.atnrch.wrench.gui.filemanager.center.DefaultDisplay
import xyz.atnrch.wrench.gui.filemanager.center.input.InputEntries import xyz.atnrch.wrench.gui.filemanager.center.input.InputEntries
import xyz.atnrch.wrench.gui.filemanager.center.output.OutputEntries import xyz.atnrch.wrench.gui.filemanager.center.output.OutputEntries
import xyz.atnrch.wrench.watcher.WatcherManager import xyz.atnrch.wrench.watcher.WatcherManager
@ -42,18 +42,17 @@ fun FileManagerDisplay(
} }
@Composable @Composable
fun DisplayEntries( private fun DisplayEntries(
minmode: Boolean, minMode: Boolean,
watcherManager: WatcherManager, watcherManager: WatcherManager,
currentClick: Int, currentClick: Int,
outputs: MutableList<Path>, outputs: MutableList<Path>,
onEntryClick: (id: Int) -> Unit onEntryClick: (id: Int) -> Unit
) { ) {
if (watcherManager.getEntries().isEmpty()) { if (watcherManager.getEntries().isEmpty()) {
//watcherManager.addFile(File("/home/aro/IdeaProjects/Wrench/dummy"))
DefaultDisplay() DefaultDisplay()
} else { } else {
InputEntries(minmode, watcherManager, onEntryClick) InputEntries(minMode, watcherManager, onEntryClick)
OutputEntries(watcherManager, currentClick, outputs) OutputEntries(watcherManager, currentClick, outputs)
} }
} }

View file

@ -16,9 +16,9 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.shadow import androidx.compose.ui.draw.shadow
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import xyz.atnrch.wrench.gui.appearance.UIColors
import xyz.atnrch.wrench.gui.filemanager.center.showDirectoryPicker import xyz.atnrch.wrench.gui.filemanager.center.showDirectoryPicker
import xyz.atnrch.wrench.logger.Logger import xyz.atnrch.wrench.logger.Logger
import xyz.atnrch.wrench.gui.style.UIColors
import xyz.atnrch.wrench.watcher.WatcherEntry import xyz.atnrch.wrench.watcher.WatcherEntry
import xyz.atnrch.wrench.watcher.WatcherManager import xyz.atnrch.wrench.watcher.WatcherManager
import java.nio.file.Path import java.nio.file.Path

View file

@ -12,13 +12,13 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import xyz.atnrch.wrench.gui.appearance.UIColors
import xyz.atnrch.wrench.gui.filemanager.center.showFilePicker import xyz.atnrch.wrench.gui.filemanager.center.showFilePicker
import xyz.atnrch.wrench.logger.Logger import xyz.atnrch.wrench.logger.Logger
import xyz.atnrch.wrench.gui.style.UIColors
import xyz.atnrch.wrench.watcher.WatcherManager import xyz.atnrch.wrench.watcher.WatcherManager
@Composable @Composable
fun FloatingButton( fun FloatingAddButton(
watcherManager: WatcherManager watcherManager: WatcherManager
) { ) {
FloatingActionButton( FloatingActionButton(

View file

@ -16,7 +16,7 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.shadow import androidx.compose.ui.draw.shadow
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import xyz.atnrch.wrench.gui.style.UIColors import xyz.atnrch.wrench.gui.appearance.UIColors
import xyz.atnrch.wrench.watcher.Watcher import xyz.atnrch.wrench.watcher.Watcher
@Composable @Composable

View file

@ -16,8 +16,8 @@ import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.shadow import androidx.compose.ui.draw.shadow
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import xyz.atnrch.wrench.registery.ACTIVE_COMPOSABLE import xyz.atnrch.wrench.gui.appearance.UIColors
import xyz.atnrch.wrench.gui.style.UIColors import xyz.atnrch.wrench.gui.component.ACTIVE_COMPOSABLE
import xyz.atnrch.wrench.watcher.WatcherManager import xyz.atnrch.wrench.watcher.WatcherManager
import java.nio.file.Path import java.nio.file.Path

View file

@ -1,10 +1,10 @@
package xyz.atnrch.wrench.gui.filemanager.center.empty package xyz.atnrch.wrench.gui.filemanager.center
import androidx.compose.foundation.layout.* import androidx.compose.foundation.layout.*
import androidx.compose.material.Icon import androidx.compose.material.Icon
import androidx.compose.material.Text import androidx.compose.material.Text
import androidx.compose.material.icons.Icons import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.rounded.FolderOff import androidx.compose.material.icons.rounded.CreateNewFolder
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.ui.Alignment import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
@ -13,8 +13,8 @@ import androidx.compose.ui.unit.ExperimentalUnitApi
import androidx.compose.ui.unit.TextUnit import androidx.compose.ui.unit.TextUnit
import androidx.compose.ui.unit.TextUnitType import androidx.compose.ui.unit.TextUnitType
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import xyz.atnrch.wrench.gui.style.Fonts import xyz.atnrch.wrench.gui.appearance.Fonts
import xyz.atnrch.wrench.gui.style.UIColors import xyz.atnrch.wrench.gui.appearance.UIColors
@OptIn(ExperimentalUnitApi::class) @OptIn(ExperimentalUnitApi::class)
@Composable @Composable
@ -28,7 +28,7 @@ fun DefaultDisplay() {
horizontalAlignment = Alignment.CenterHorizontally horizontalAlignment = Alignment.CenterHorizontally
) { ) {
Icon( Icon(
imageVector = Icons.Rounded.FolderOff, imageVector = Icons.Rounded.CreateNewFolder,
tint = UIColors.ORANGE, tint = UIColors.ORANGE,
contentDescription = "Open Folder", contentDescription = "Open Folder",
modifier = Modifier.size(58.dp) modifier = Modifier.size(58.dp)

View file

@ -9,9 +9,9 @@ import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.RectangleShape import androidx.compose.ui.graphics.RectangleShape
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import xyz.atnrch.wrench.gui.style.UIColors import xyz.atnrch.wrench.gui.appearance.UIColors
import xyz.atnrch.wrench.registery.ACTIVE_COMPOSABLE import xyz.atnrch.wrench.gui.component.ACTIVE_COMPOSABLE
import xyz.atnrch.wrench.registery.RegisterComposable import xyz.atnrch.wrench.gui.component.RegisterComposable
import xyz.atnrch.wrench.watcher.WatcherManager import xyz.atnrch.wrench.watcher.WatcherManager
@Composable @Composable
@ -22,7 +22,7 @@ fun InputEntries(
) { ) {
Box( Box(
contentAlignment = Alignment.Center, contentAlignment = Alignment.Center,
modifier = getModifier(minMode, onEntryClick) modifier = getBoxModifier(minMode, onEntryClick)
) { ) {
InputTopText() InputTopText()
Column( Column(
@ -42,26 +42,21 @@ fun InputEntries(
} }
@Composable @Composable
fun getModifier( private fun getBoxModifier(
minmode: Boolean, minMode: Boolean,
onEntryClick: (id: Int) -> Unit onEntryClick: (id: Int) -> Unit
): Modifier { ): Modifier {
return if (minmode) val modifier: Modifier = Modifier.border(BorderStroke(4.dp, UIColors.ORANGE), RectangleShape)
Modifier .clickable {
ACTIVE_COMPOSABLE = -1
onEntryClick.invoke(-1)
}
return if (minMode)
modifier
.fillMaxWidth() .fillMaxWidth()
.fillMaxHeight(0.5f) .fillMaxHeight(0.5f)
.border(BorderStroke(4.dp, UIColors.ORANGE), RectangleShape) else modifier
.clickable {
ACTIVE_COMPOSABLE = -1
onEntryClick.invoke(-1)
} else {
Modifier
.fillMaxHeight() .fillMaxHeight()
.fillMaxWidth(0.5f) .fillMaxWidth(0.5f)
.border(BorderStroke(4.dp, UIColors.ORANGE), RectangleShape)
.clickable {
ACTIVE_COMPOSABLE = -1
onEntryClick.invoke(-1)
}
}
} }

View file

@ -12,9 +12,9 @@ import androidx.compose.ui.text.TextStyle
import androidx.compose.ui.unit.ExperimentalUnitApi import androidx.compose.ui.unit.ExperimentalUnitApi
import androidx.compose.ui.unit.TextUnit import androidx.compose.ui.unit.TextUnit
import androidx.compose.ui.unit.TextUnitType import androidx.compose.ui.unit.TextUnitType
import xyz.atnrch.wrench.gui.style.Fonts import xyz.atnrch.wrench.gui.appearance.Fonts
import xyz.atnrch.wrench.gui.style.UIColors import xyz.atnrch.wrench.gui.appearance.UIColors
import xyz.atnrch.wrench.registery.ACTIVE_COMPOSABLE import xyz.atnrch.wrench.gui.component.ACTIVE_COMPOSABLE
import xyz.atnrch.wrench.watcher.WatcherEntry import xyz.atnrch.wrench.watcher.WatcherEntry
@OptIn(ExperimentalUnitApi::class, ExperimentalFoundationApi::class) @OptIn(ExperimentalUnitApi::class, ExperimentalFoundationApi::class)

View file

@ -13,8 +13,8 @@ import androidx.compose.ui.unit.ExperimentalUnitApi
import androidx.compose.ui.unit.TextUnit import androidx.compose.ui.unit.TextUnit
import androidx.compose.ui.unit.TextUnitType import androidx.compose.ui.unit.TextUnitType
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import xyz.atnrch.wrench.gui.style.Fonts import xyz.atnrch.wrench.gui.appearance.Fonts
import xyz.atnrch.wrench.gui.style.UIColors import xyz.atnrch.wrench.gui.appearance.UIColors
import xyz.atnrch.wrench.watcher.WatcherEntry import xyz.atnrch.wrench.watcher.WatcherEntry
import xyz.atnrch.wrench.watcher.WatcherManager import xyz.atnrch.wrench.watcher.WatcherManager
import java.nio.file.Path import java.nio.file.Path

View file

@ -9,21 +9,21 @@ import androidx.compose.runtime.Composable
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.graphics.Color import androidx.compose.ui.graphics.Color
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import xyz.atnrch.wrench.gui.style.UIColors import xyz.atnrch.wrench.gui.appearance.UIColors
import xyz.atnrch.wrench.json.JsonLayout import xyz.atnrch.wrench.storage.LayoutStorage
import xyz.atnrch.wrench.json.SerializedWatcherEntry import xyz.atnrch.wrench.storage.SerializedWatcherEntry
import xyz.atnrch.wrench.watcher.WatcherEntry import xyz.atnrch.wrench.watcher.WatcherEntry
import xyz.atnrch.wrench.watcher.WatcherManager import xyz.atnrch.wrench.watcher.WatcherManager
@Composable @Composable
fun TopBarButtons( fun FileManagerTopButtons(
jsonLayout: JsonLayout, layoutStorage: LayoutStorage,
values: MutableCollection<WatcherEntry> values: MutableCollection<WatcherEntry>
) { ) {
Button( Button(
colors = ButtonDefaults.buttonColors(UIColors.DARK_GREEN, Color.White), colors = ButtonDefaults.buttonColors(UIColors.DARK_GREEN, Color.White),
onClick = { onClick = {
jsonLayout.writeLayout(SerializedWatcherEntry.fromUnserializedEntries(values.toList())) layoutStorage.storeLayout(SerializedWatcherEntry.fromUnserializedEntries(values.toList()))
}) { }) {
Text("Save") Text("Save")
} }
@ -37,7 +37,7 @@ fun TopBarButtons(
// for the past 2 hrs // for the past 2 hrs
// TODO: Make it cleaner maybe? // TODO: Make it cleaner maybe?
WatcherManager.CURRENT_ID = 0 WatcherManager.CURRENT_ID = 0
jsonLayout.readLayout() layoutStorage.readLayout()
}) { }) {
Text("Load") Text("Load")
} }

View file

@ -13,8 +13,8 @@ import androidx.compose.ui.unit.ExperimentalUnitApi
import androidx.compose.ui.unit.TextUnit import androidx.compose.ui.unit.TextUnit
import androidx.compose.ui.unit.TextUnitType import androidx.compose.ui.unit.TextUnitType
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import xyz.atnrch.wrench.gui.style.Fonts import xyz.atnrch.wrench.gui.appearance.Fonts
import xyz.atnrch.wrench.gui.style.UIColors import xyz.atnrch.wrench.gui.appearance.UIColors
@OptIn(ExperimentalUnitApi::class) @OptIn(ExperimentalUnitApi::class)
@Composable @Composable

View file

@ -1,4 +1,4 @@
package xyz.atnrch.wrench.json package xyz.atnrch.wrench.storage
import com.google.gson.Gson import com.google.gson.Gson
import com.google.gson.reflect.TypeToken import com.google.gson.reflect.TypeToken
@ -7,16 +7,14 @@ import java.io.File
import java.io.FileReader import java.io.FileReader
import java.io.FileWriter import java.io.FileWriter
class JsonLayout( class LayoutStorage(private val onWatcherEntriesUpdate: (List<WatcherEntry>) -> Unit) {
private val onWatcherEntriesUpdate: (List<WatcherEntry>) -> Unit
) {
private val entryListType = object : TypeToken<List<SerializedWatcherEntry>>() {}.type private val entryListType = object : TypeToken<List<SerializedWatcherEntry>>() {}.type
private val gson: Gson = Gson().newBuilder() private val gson: Gson = Gson().newBuilder()
.setPrettyPrinting() .setPrettyPrinting()
.create() .create()
private val file = File("layout.json") private val file = File("layout.json")
fun writeLayout(list: List<SerializedWatcherEntry>) { fun storeLayout(list: List<SerializedWatcherEntry>) {
val writer = FileWriter(file) val writer = FileWriter(file)
gson.toJson(list, writer) gson.toJson(list, writer)
writer.flush() writer.flush()

View file

@ -1,4 +1,4 @@
package xyz.atnrch.wrench.json package xyz.atnrch.wrench.storage
import xyz.atnrch.wrench.watcher.WatcherEntry import xyz.atnrch.wrench.watcher.WatcherEntry
import java.io.File import java.io.File

View file

@ -2,7 +2,7 @@ package xyz.atnrch.wrench.watcher
import androidx.compose.material.SnackbarDuration import androidx.compose.material.SnackbarDuration
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import xyz.atnrch.wrench.data.SnackBarDataHolder import xyz.atnrch.wrench.gui.component.SnackBarDataHolder
import xyz.atnrch.wrench.logger.Logger import xyz.atnrch.wrench.logger.Logger
import java.io.IOException import java.io.IOException
import java.nio.file.Files import java.nio.file.Files
@ -10,10 +10,7 @@ import java.nio.file.Path
import java.nio.file.StandardCopyOption import java.nio.file.StandardCopyOption
import kotlin.io.path.name import kotlin.io.path.name
class Watcher( class Watcher(private val watcherManager: WatcherManager, private val snackBarDataHolder: SnackBarDataHolder) {
private val watcherManager: WatcherManager,
private val snackBarDataHolder: SnackBarDataHolder
) {
fun move() { fun move() {
Logger.info("Moving files...") Logger.info("Moving files...")
snackBarDataHolder.coroutineScope.launch { snackBarDataHolder.coroutineScope.launch {
@ -31,11 +28,9 @@ class Watcher(
} }
} }
} }
val logMessage: String = if (foldersTotal < 1) { val logMessage: String = if (foldersTotal < 1)
"No files to move!" "No files to move!" else
} else {
"Successfully moved $filesTotal ${if (filesTotal > 1) "files" else "file"} to $foldersTotal ${if (foldersTotal > 1) "folders" else "folder"}." "Successfully moved $filesTotal ${if (filesTotal > 1) "files" else "file"} to $foldersTotal ${if (foldersTotal > 1) "folders" else "folder"}."
}
Logger.info(logMessage) Logger.info(logMessage)
Logger.info("Done moving files.") Logger.info("Done moving files.")
snackBarDataHolder.scaffoldState.snackbarHostState.currentSnackbarData?.dismiss() snackBarDataHolder.scaffoldState.snackbarHostState.currentSnackbarData?.dismiss()