refactor: global refactor and optimization
This commit is contained in:
parent
be5039b386
commit
68fae30197
22 changed files with 75 additions and 97 deletions
|
@ -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
|
||||||
|
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
)
|
)
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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 = {
|
||||||
|
|
|
@ -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",
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
|
@ -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)
|
||||||
}
|
}
|
||||||
}
|
}
|
|
@ -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
|
||||||
|
|
|
@ -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(
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
@ -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)
|
|
@ -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)
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
|
@ -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)
|
||||||
|
|
|
@ -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
|
||||||
|
|
|
@ -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")
|
||||||
}
|
}
|
|
@ -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
|
||||||
|
|
|
@ -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()
|
|
@ -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
|
|
@ -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()
|
||||||
|
|
Reference in a new issue