mirror of
https://github.com/amir1376/ab-download-manager.git
synced 2025-02-20 11:43:24 +08:00
refactor code and update CHANGELOG.md
This commit is contained in:
parent
5a397dc40b
commit
929e832e58
@ -12,6 +12,8 @@
|
||||
|
||||
### Fixed
|
||||
|
||||
- App is now open in center of screen
|
||||
|
||||
### Security
|
||||
|
||||
## 1.0.6
|
||||
|
@ -0,0 +1,66 @@
|
||||
package com.abdownloadmanager.desktop.pages.home
|
||||
|
||||
import androidx.compose.foundation.layout.BoxWithConstraints
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.actions.LocalShortCutManager
|
||||
import com.abdownloadmanager.desktop.actions.handle
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.rememberWindowController
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.utils.mvi.HandleEffects
|
||||
import java.awt.Dimension
|
||||
|
||||
@Composable
|
||||
fun HomeWindow(
|
||||
homeComponent: HomeComponent,
|
||||
onCLoseRequest: () -> Unit,
|
||||
) {
|
||||
val size by homeComponent.windowSize.collectAsState()
|
||||
val windowState = rememberWindowState(
|
||||
size = size,
|
||||
position = WindowPosition.Aligned(Alignment.Center)
|
||||
)
|
||||
val onCloseRequest = onCLoseRequest
|
||||
val windowTitle = "AB Download Manager"
|
||||
val windowIcon = MyIcons.appIcon
|
||||
val windowController = rememberWindowController(
|
||||
windowTitle,
|
||||
windowIcon.rememberPainter(),
|
||||
)
|
||||
|
||||
CompositionLocalProvider(
|
||||
LocalShortCutManager provides homeComponent.shortcutManager
|
||||
) {
|
||||
CustomWindow(
|
||||
state = windowState,
|
||||
onCloseRequest = onCloseRequest,
|
||||
windowController = windowController,
|
||||
onKeyEvent = {
|
||||
homeComponent.shortcutManager.handle(it)
|
||||
}
|
||||
) {
|
||||
LaunchedEffect(windowState.size) {
|
||||
homeComponent.setWindowSize(windowState.size)
|
||||
}
|
||||
window.minimumSize = Dimension(
|
||||
400, 400
|
||||
)
|
||||
HandleEffects(homeComponent) {
|
||||
when (it) {
|
||||
HomeEffects.BringToFront -> {
|
||||
windowState.isMinimized = false
|
||||
window.toFront()
|
||||
}
|
||||
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
BoxWithConstraints {
|
||||
HomePage(homeComponent)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
@ -1,6 +1,5 @@
|
||||
package com.abdownloadmanager.desktop.ui
|
||||
|
||||
import com.abdownloadmanager.desktop.App
|
||||
import com.abdownloadmanager.desktop.AppArguments
|
||||
import com.abdownloadmanager.desktop.AppComponent
|
||||
import com.abdownloadmanager.desktop.AppEffects
|
||||
@ -8,16 +7,10 @@ import com.abdownloadmanager.desktop.actions.*
|
||||
import com.abdownloadmanager.desktop.pages.about.ShowAboutDialog
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.ShowAddDownloadDialogs
|
||||
import com.abdownloadmanager.desktop.pages.extenallibs.ShowOpenSourceLibraries
|
||||
import com.abdownloadmanager.desktop.pages.home.HomeComponent
|
||||
import com.abdownloadmanager.desktop.pages.home.HomeEffects
|
||||
import com.abdownloadmanager.desktop.pages.home.HomePage
|
||||
import com.abdownloadmanager.desktop.pages.newQueue.NewQueueDialog
|
||||
import com.abdownloadmanager.desktop.pages.queue.QueuesWindow
|
||||
import com.abdownloadmanager.desktop.pages.settings.SettingWindow
|
||||
import com.abdownloadmanager.desktop.pages.singleDownloadPage.ShowDownloadDialogs
|
||||
import com.abdownloadmanager.desktop.repository.AppRepository
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.rememberWindowController
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.ABDownloaderTheme
|
||||
import com.abdownloadmanager.desktop.ui.widget.tray.ComposeTray
|
||||
@ -30,10 +23,9 @@ import com.abdownloadmanager.desktop.utils.ProvideGlobalExceptionHandler
|
||||
import com.abdownloadmanager.desktop.utils.action.buildMenu
|
||||
import com.abdownloadmanager.desktop.utils.isInDebugMode
|
||||
import com.abdownloadmanager.desktop.utils.mvi.HandleEffects
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.window.*
|
||||
import com.abdownloadmanager.desktop.pages.home.HomeWindow
|
||||
import com.abdownloadmanager.utils.compose.ProvideDebugInfo
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.launch
|
||||
@ -41,7 +33,6 @@ import kotlinx.coroutines.withTimeout
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.get
|
||||
import org.koin.core.component.inject
|
||||
import java.awt.Dimension
|
||||
|
||||
object Ui : KoinComponent {
|
||||
val scope: CoroutineScope by inject()
|
||||
@ -66,9 +57,7 @@ object Ui : KoinComponent {
|
||||
SystemTray(appComponent, trayState)
|
||||
val showHomeSlot = appComponent.showHomeSlot.collectAsState().value
|
||||
showHomeSlot.child?.instance?.let {
|
||||
HomeWindow(it) {
|
||||
appComponent.closeHome()
|
||||
}
|
||||
HomeWindow(it,appComponent::closeHome)
|
||||
}
|
||||
val showSettingSlot = appComponent.showSettingSlot.collectAsState().value
|
||||
showSettingSlot.child?.instance?.let {
|
||||
@ -130,55 +119,3 @@ private fun ApplicationScope.SystemTray(
|
||||
}
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun HomeWindow(
|
||||
homeComponent: HomeComponent,
|
||||
onCLoseRequest: () -> Unit,
|
||||
) {
|
||||
val size by homeComponent.windowSize.collectAsState()
|
||||
val windowState = rememberWindowState(
|
||||
size = size,
|
||||
position = WindowPosition.Aligned(Alignment.Center)
|
||||
)
|
||||
val onCloseRequest = onCLoseRequest
|
||||
val windowTitle = "AB Download Manager"
|
||||
val windowIcon = MyIcons.appIcon
|
||||
val windowController = rememberWindowController(
|
||||
windowTitle,
|
||||
windowIcon.rememberPainter(),
|
||||
)
|
||||
|
||||
CompositionLocalProvider(
|
||||
LocalShortCutManager provides homeComponent.shortcutManager
|
||||
) {
|
||||
CustomWindow(
|
||||
state = windowState,
|
||||
onCloseRequest = onCloseRequest,
|
||||
windowController = windowController,
|
||||
onKeyEvent = {
|
||||
homeComponent.shortcutManager.handle(it)
|
||||
}
|
||||
) {
|
||||
LaunchedEffect(windowState.size) {
|
||||
homeComponent.setWindowSize(windowState.size)
|
||||
}
|
||||
window.minimumSize = Dimension(
|
||||
400, 400
|
||||
)
|
||||
HandleEffects(homeComponent) {
|
||||
when (it) {
|
||||
HomeEffects.BringToFront -> {
|
||||
windowState.isMinimized = false
|
||||
window.toFront()
|
||||
}
|
||||
|
||||
else -> {}
|
||||
}
|
||||
}
|
||||
BoxWithConstraints {
|
||||
HomePage(homeComponent)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user