mirror of
https://github.com/amir1376/ab-download-manager.git
synced 2025-02-20 11:43:24 +08:00
extracting common code to shared modules (#345)
This commit is contained in:
parent
3f7824dab8
commit
40ca2a51fc
9
desktop/app-utils/build.gradle.kts
Normal file
9
desktop/app-utils/build.gradle.kts
Normal file
@ -0,0 +1,9 @@
|
||||
plugins {
|
||||
id(MyPlugins.kotlin)
|
||||
id(MyPlugins.composeDesktop)
|
||||
}
|
||||
dependencies {
|
||||
api(project(":desktop:custom-window-frame"))
|
||||
api(project(":desktop:shared"))
|
||||
api(project(":shared:app"))
|
||||
}
|
@ -1,21 +1,15 @@
|
||||
package com.abdownloadmanager.desktop.ui.customwindow
|
||||
package com.abdownloadmanager.desktop.window.custom
|
||||
|
||||
import ir.amirab.util.customwindow.ProvideWindowSpotContainer
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentColor
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import androidx.compose.foundation.Image
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.onClick
|
||||
import androidx.compose.foundation.window.WindowDraggableArea
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
@ -25,21 +19,26 @@ import androidx.compose.ui.graphics.RectangleShape
|
||||
import androidx.compose.ui.graphics.painter.Painter
|
||||
import androidx.compose.ui.graphics.takeOrElse
|
||||
import androidx.compose.ui.input.key.KeyEvent
|
||||
import androidx.compose.ui.platform.LocalDensity
|
||||
import androidx.compose.ui.platform.LocalLayoutDirection
|
||||
import androidx.compose.ui.platform.LocalWindowInfo
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.Density
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.FrameWindowScope
|
||||
import androidx.compose.ui.window.Window
|
||||
import androidx.compose.ui.window.WindowPlacement
|
||||
import androidx.compose.ui.window.WindowState
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.utils.PopUpContainer
|
||||
import com.abdownloadmanager.shared.utils.ResponsiveBox
|
||||
import com.abdownloadmanager.shared.utils.ui.WithTitleBarDirection
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.UiScaledContent
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import ir.amirab.util.desktop.LocalWindow
|
||||
import ir.amirab.util.customwindow.HitSpots
|
||||
import ir.amirab.util.customwindow.util.CustomWindowDecorationAccessing
|
||||
import ir.amirab.util.customwindow.windowFrameItem
|
||||
import ir.amirab.util.ifThen
|
||||
|
||||
|
||||
// a window frame which totally rendered with compose
|
||||
@ -360,28 +359,6 @@ fun CustomWindow(
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* put this in every window because [Window] composable override [LocalDensity]
|
||||
*/
|
||||
@Composable
|
||||
fun UiScaledContent(
|
||||
defaultDensity: Density = LocalDensity.current,
|
||||
uiScale: Float? = LocalUiScale.current,
|
||||
content: @Composable () -> Unit,
|
||||
) {
|
||||
val density = remember(uiScale) {
|
||||
if (uiScale == null) {
|
||||
defaultDensity
|
||||
} else {
|
||||
Density(uiScale)
|
||||
}
|
||||
}
|
||||
CompositionLocalProvider(
|
||||
LocalDensity provides density,
|
||||
content,
|
||||
)
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun PreventMinimize() {
|
||||
val state = LocalWindowState.current
|
@ -1,7 +1,8 @@
|
||||
package com.abdownloadmanager.desktop.ui.customwindow
|
||||
package com.abdownloadmanager.desktop.window.custom
|
||||
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.window.*
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.UiScaledContent
|
||||
import java.awt.event.WindowEvent
|
||||
import java.awt.event.WindowFocusListener
|
||||
|
@ -1,10 +1,8 @@
|
||||
package com.abdownloadmanager.desktop.ui.customwindow
|
||||
package com.abdownloadmanager.desktop.window.custom
|
||||
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import com.abdownloadmanager.shared.utils.ui.LocalContentColor
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import androidx.compose.animation.animateColorAsState
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.clickable
|
||||
@ -20,6 +18,8 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.FrameWindowScope
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import ir.amirab.util.customwindow.HitSpots
|
||||
import ir.amirab.util.customwindow.windowFrameItem
|
||||
|
@ -1,8 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.ui.customwindow
|
||||
package com.abdownloadmanager.desktop.window.custom
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.ui.awt.ComposeWindow
|
||||
import java.awt.Toolkit
|
||||
import java.awt.Window
|
||||
import kotlin.math.max
|
@ -1,4 +1,4 @@
|
||||
package com.abdownloadmanager.desktop.utils.windowUtil
|
||||
package com.abdownloadmanager.desktop.window
|
||||
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.geometry.Offset
|
@ -21,9 +21,6 @@ dependencies {
|
||||
implementation(libs.decompose)
|
||||
implementation(libs.decompose.jbCompose)
|
||||
|
||||
//because we don't have material design, but we use ripple effect
|
||||
implementation(libs.compose.material.rippleEffect)
|
||||
|
||||
implementation(libs.koin.core)
|
||||
|
||||
implementation(libs.kotlin.serialization.json)
|
||||
@ -64,14 +61,23 @@ dependencies {
|
||||
|
||||
implementation(project(":integration:server"))
|
||||
implementation(project(":desktop:shared"))
|
||||
implementation(project(":desktop:tray"))
|
||||
implementation(project(":desktop:custom-window-frame"))
|
||||
implementation(project(":desktop:app-utils"))
|
||||
|
||||
implementation(project(":desktop:tray:common"))
|
||||
if (Platform.getCurrentPlatform() == Platform.Desktop.Windows) {
|
||||
implementation(project(":desktop:tray:windows"))
|
||||
} else {
|
||||
// TODO use external library for linux and remove this line
|
||||
implementation(project(":desktop:tray:windows"))
|
||||
// implementation(project(":desktop:tray:linux"))
|
||||
}
|
||||
|
||||
implementation(project(":shared:app"))
|
||||
implementation(project(":shared:app-utils"))
|
||||
implementation(project(":shared:utils"))
|
||||
implementation(project(":shared:updater"))
|
||||
implementation(project(":shared:auto-start"))
|
||||
implementation(project(":shared:nanohttp4k"))
|
||||
implementation(project(":shared:resources"))
|
||||
}
|
||||
|
||||
aboutLibraries {
|
||||
|
@ -9,8 +9,8 @@ import com.abdownloadmanager.desktop.ui.Ui
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.desktop.utils.singleInstance.*
|
||||
import com.abdownloadmanager.integration.Integration
|
||||
import com.abdownloadmanager.utils.DownloadSystem
|
||||
import com.abdownloadmanager.utils.appinfo.PreviousVersion
|
||||
import com.abdownloadmanager.shared.utils.DownloadSystem
|
||||
import com.abdownloadmanager.shared.utils.appinfo.PreviousVersion
|
||||
import ir.amirab.util.platform.Platform
|
||||
import kotlinx.coroutines.runBlocking
|
||||
import okio.Path.Companion.toOkioPath
|
||||
|
@ -17,11 +17,11 @@ import com.abdownloadmanager.desktop.repository.AppRepository
|
||||
import com.abdownloadmanager.desktop.storage.AppSettingsStorage
|
||||
import com.abdownloadmanager.desktop.ui.widget.MessageDialogModel
|
||||
import com.abdownloadmanager.desktop.ui.widget.MessageDialogType
|
||||
import com.abdownloadmanager.desktop.ui.widget.NotificationModel
|
||||
import com.abdownloadmanager.desktop.ui.widget.NotificationType
|
||||
import com.abdownloadmanager.shared.ui.widget.NotificationModel
|
||||
import com.abdownloadmanager.shared.ui.widget.NotificationType
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.desktop.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.desktop.utils.mvi.supportEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.supportEffects
|
||||
import com.arkivanov.decompose.ComponentContext
|
||||
import com.arkivanov.decompose.router.children.ChildNavState
|
||||
import com.arkivanov.decompose.router.pages.Pages
|
||||
@ -40,9 +40,12 @@ import ir.amirab.downloader.utils.OnDuplicateStrategy
|
||||
import com.abdownloadmanager.integration.Integration
|
||||
import com.abdownloadmanager.integration.IntegrationResult
|
||||
import com.abdownloadmanager.resources.*
|
||||
import com.abdownloadmanager.utils.DownloadSystem
|
||||
import com.abdownloadmanager.utils.category.CategoryManager
|
||||
import com.abdownloadmanager.utils.category.CategorySelectionMode
|
||||
import com.abdownloadmanager.shared.utils.BaseComponent
|
||||
import com.abdownloadmanager.shared.utils.DownloadItemOpener
|
||||
import com.abdownloadmanager.shared.utils.DownloadSystem
|
||||
import com.abdownloadmanager.shared.utils.category.CategoryManager
|
||||
import com.abdownloadmanager.shared.utils.category.CategorySelectionMode
|
||||
import com.abdownloadmanager.shared.utils.subscribeAsStateFlow
|
||||
import com.arkivanov.decompose.childContext
|
||||
import ir.amirab.downloader.exception.TooManyErrorException
|
||||
import ir.amirab.downloader.monitor.isDownloadActiveFlow
|
||||
|
@ -1,37 +1,24 @@
|
||||
package com.abdownloadmanager.desktop
|
||||
|
||||
import com.abdownloadmanager.desktop.utils.BrowserIntegrationModel
|
||||
import com.abdownloadmanager.desktop.utils.BrowserType
|
||||
import com.abdownloadmanager.shared.utils.BaseConstants
|
||||
import com.abdownloadmanager.shared.utils.BrowserIntegrationModel
|
||||
import com.abdownloadmanager.shared.utils.BrowserType
|
||||
|
||||
interface BaseConstants{
|
||||
val appName:String
|
||||
val appDisplayName: String
|
||||
val packageName:String
|
||||
val projectWebsite:String
|
||||
val projectSourceCode:String
|
||||
val projectTranslations: String
|
||||
val projectGithubOwner: String
|
||||
val projectGithubRepo: String
|
||||
val browserIntegrations:List<BrowserIntegrationModel>
|
||||
val telegramGroupUrl:String
|
||||
val telegramChannelUrl:String
|
||||
}
|
||||
|
||||
object SharedConstants:BaseConstants{
|
||||
object SharedConstants : BaseConstants {
|
||||
override val appName: String = BuildConfig.APP_NAME
|
||||
override val appDisplayName: String = BuildConfig.APP_DISPLAY_NAME
|
||||
override val packageName: String = BuildConfig.PACKAGE_NAME
|
||||
override val projectWebsite: String= BuildConfig.PROJECT_WEBSITE
|
||||
override val projectWebsite: String = BuildConfig.PROJECT_WEBSITE
|
||||
override val projectTranslations: String = BuildConfig.PROJECT_TRANSLATIONS
|
||||
override val projectSourceCode: String= BuildConfig.PROJECT_SOURCE_CODE
|
||||
override val projectSourceCode: String = BuildConfig.PROJECT_SOURCE_CODE
|
||||
override val projectGithubOwner: String = BuildConfig.PROJECT_GITHUB_OWNER
|
||||
override val projectGithubRepo: String = BuildConfig.PROJECT_GITHUB_REPO
|
||||
override val browserIntegrations: List<BrowserIntegrationModel> = listOf(
|
||||
BrowserIntegrationModel(
|
||||
BrowserType.Chrome,BuildConfig.INTEGRATION_CHROME_LINK
|
||||
BrowserType.Chrome, BuildConfig.INTEGRATION_CHROME_LINK
|
||||
),
|
||||
BrowserIntegrationModel(
|
||||
BrowserType.Firefox,BuildConfig.INTEGRATION_FIREFOX_LINK
|
||||
BrowserType.Firefox, BuildConfig.INTEGRATION_FIREFOX_LINK
|
||||
)
|
||||
)
|
||||
override val telegramChannelUrl: String = BuildConfig.TELEGRAM_CHANNEL
|
||||
|
@ -1,46 +0,0 @@
|
||||
package com.abdownloadmanager.desktop.actions
|
||||
|
||||
import androidx.compose.runtime.compositionLocalOf
|
||||
import androidx.compose.ui.awt.awtEventOrNull
|
||||
import androidx.compose.ui.input.key.KeyEvent
|
||||
import javax.swing.KeyStroke
|
||||
|
||||
class ShortcutManager {
|
||||
private val shortcuts = mutableMapOf<KeyStroke, () -> Unit>()
|
||||
fun register(keyStroke: KeyStroke, action: () -> Unit) {
|
||||
shortcuts[keyStroke] = action
|
||||
}
|
||||
|
||||
infix fun String.to(action: () -> Unit) {
|
||||
register(KeyStroke.getKeyStroke(this), action)
|
||||
}
|
||||
|
||||
fun executeShortcut(
|
||||
keyStroke: KeyStroke,
|
||||
): Boolean {
|
||||
val action = shortcuts[keyStroke] ?: return false
|
||||
runCatching {
|
||||
action()
|
||||
}
|
||||
return true
|
||||
}
|
||||
|
||||
fun getShortCutOf(action: () -> Unit): KeyStroke? {
|
||||
return shortcuts.firstNotNullOfOrNull {
|
||||
if (it.value==action){
|
||||
it.key
|
||||
}else null
|
||||
}
|
||||
}
|
||||
}
|
||||
val LocalShortCutManager = compositionLocalOf {
|
||||
null as ShortcutManager?
|
||||
}
|
||||
fun ShortcutManager.handle(event: KeyEvent): Boolean {
|
||||
val awtEvent = event.awtEventOrNull ?: return false
|
||||
val keyStroke = runCatching {
|
||||
KeyStroke.getKeyStrokeForEvent(awtEvent)
|
||||
}.getOrNull() ?: return false
|
||||
executeShortcut(keyStroke)
|
||||
return true
|
||||
}
|
@ -2,7 +2,7 @@ package com.abdownloadmanager.desktop.actions
|
||||
|
||||
import com.abdownloadmanager.desktop.AppComponent
|
||||
import com.abdownloadmanager.desktop.di.Di
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.widget.MessageDialogType
|
||||
import ir.amirab.util.compose.action.AnAction
|
||||
import ir.amirab.util.compose.action.MenuItem
|
||||
|
@ -3,22 +3,22 @@ package com.abdownloadmanager.desktop.actions
|
||||
import com.abdownloadmanager.desktop.AppComponent
|
||||
import com.abdownloadmanager.desktop.SharedConstants
|
||||
import com.abdownloadmanager.desktop.di.Di
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.utils.AppInfo
|
||||
import com.abdownloadmanager.desktop.utils.ClipboardUtil
|
||||
import ir.amirab.util.compose.action.AnAction
|
||||
import ir.amirab.util.compose.action.MenuItem
|
||||
import ir.amirab.util.compose.action.buildMenu
|
||||
import ir.amirab.util.compose.action.simpleAction
|
||||
import com.abdownloadmanager.desktop.utils.getIcon
|
||||
import com.abdownloadmanager.desktop.utils.getName
|
||||
import com.abdownloadmanager.shared.utils.getIcon
|
||||
import com.abdownloadmanager.shared.utils.getName
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.category.Category
|
||||
import com.abdownloadmanager.shared.utils.category.Category
|
||||
import ir.amirab.downloader.downloaditem.DownloadCredentials
|
||||
import ir.amirab.downloader.queue.DownloadQueue
|
||||
import ir.amirab.downloader.queue.activeQueuesFlow
|
||||
import ir.amirab.downloader.queue.inactiveQueuesFlow
|
||||
import com.abdownloadmanager.utils.extractors.linkextractor.DownloadCredentialFromStringExtractor
|
||||
import com.abdownloadmanager.shared.utils.extractors.linkextractor.DownloadCredentialFromStringExtractor
|
||||
import ir.amirab.util.UrlUtils
|
||||
import ir.amirab.util.compose.asStringSource
|
||||
import ir.amirab.util.flow.combineStateFlows
|
||||
|
@ -13,7 +13,8 @@ import com.abdownloadmanager.desktop.pages.updater.UpdateDownloaderViaDownloadSy
|
||||
import ir.amirab.downloader.queue.QueueManager
|
||||
import com.abdownloadmanager.desktop.repository.AppRepository
|
||||
import com.abdownloadmanager.desktop.storage.*
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.ISystemThemeDetector
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.desktop.utils.native_messaging.NativeMessaging
|
||||
import com.abdownloadmanager.desktop.utils.native_messaging.NativeMessagingManifestApplier
|
||||
@ -42,18 +43,18 @@ import org.koin.dsl.bind
|
||||
import org.koin.dsl.module
|
||||
import com.abdownloadmanager.updatechecker.GithubUpdateChecker
|
||||
import com.abdownloadmanager.updatechecker.UpdateChecker
|
||||
import com.abdownloadmanager.utils.DownloadFoldersRegistry
|
||||
import com.abdownloadmanager.utils.DownloadSystem
|
||||
import com.abdownloadmanager.utils.FileIconProvider
|
||||
import com.abdownloadmanager.utils.FileIconProviderUsingCategoryIcons
|
||||
import com.abdownloadmanager.shared.utils.DownloadFoldersRegistry
|
||||
import com.abdownloadmanager.shared.utils.DownloadSystem
|
||||
import com.abdownloadmanager.shared.utils.FileIconProvider
|
||||
import com.abdownloadmanager.shared.utils.FileIconProviderUsingCategoryIcons
|
||||
import ir.amirab.util.AppVersionTracker
|
||||
import com.abdownloadmanager.utils.appinfo.PreviousVersion
|
||||
import com.abdownloadmanager.utils.autoremove.RemovedDownloadsFromDiskTracker
|
||||
import com.abdownloadmanager.utils.category.*
|
||||
import com.abdownloadmanager.utils.compose.IMyIcons
|
||||
import com.abdownloadmanager.utils.proxy.IProxyStorage
|
||||
import com.abdownloadmanager.utils.proxy.ProxyData
|
||||
import com.abdownloadmanager.utils.proxy.ProxyManager
|
||||
import com.abdownloadmanager.shared.utils.appinfo.PreviousVersion
|
||||
import com.abdownloadmanager.shared.utils.autoremove.RemovedDownloadsFromDiskTracker
|
||||
import com.abdownloadmanager.shared.utils.category.*
|
||||
import com.abdownloadmanager.shared.utils.ui.IMyIcons
|
||||
import com.abdownloadmanager.shared.utils.proxy.IProxyStorage
|
||||
import com.abdownloadmanager.shared.utils.proxy.ProxyData
|
||||
import com.abdownloadmanager.shared.utils.proxy.ProxyManager
|
||||
import ir.amirab.downloader.connection.proxy.ProxyStrategyProvider
|
||||
import ir.amirab.downloader.monitor.IDownloadMonitor
|
||||
import ir.amirab.downloader.utils.EmptyFileCreator
|
||||
@ -92,6 +93,9 @@ val downloaderModule = module {
|
||||
single<IDiskStat> {
|
||||
DesktopDiskStat()
|
||||
}
|
||||
single<ISystemThemeDetector> {
|
||||
DesktopSystemThemeDetector()
|
||||
}
|
||||
single {
|
||||
QueueManager(get(), get())
|
||||
}
|
||||
@ -265,7 +269,7 @@ val appModule = module {
|
||||
AppRepository()
|
||||
}
|
||||
single {
|
||||
ThemeManager(get(), get())
|
||||
ThemeManager(get(), get(), get())
|
||||
}
|
||||
single {
|
||||
LanguageManager(get())
|
||||
|
@ -2,7 +2,7 @@ package com.abdownloadmanager.desktop.integration
|
||||
|
||||
import com.abdownloadmanager.desktop.AppComponent
|
||||
import com.abdownloadmanager.desktop.repository.AppRepository
|
||||
import com.abdownloadmanager.utils.DownloadSystem
|
||||
import com.abdownloadmanager.shared.utils.DownloadSystem
|
||||
import com.abdownloadmanager.integration.IntegrationHandler
|
||||
import com.abdownloadmanager.integration.NewDownloadInfoFromIntegration
|
||||
import com.abdownloadmanager.integration.NewDownloadTask
|
||||
|
@ -1,8 +1,8 @@
|
||||
package com.abdownloadmanager.desktop.pages.about
|
||||
|
||||
import com.abdownloadmanager.desktop.AppComponent
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitle
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.ui.Alignment
|
||||
@ -10,9 +10,9 @@ import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
|
@ -1,13 +1,13 @@
|
||||
package com.abdownloadmanager.desktop.pages.about
|
||||
|
||||
import androidx.compose.foundation.*
|
||||
import com.abdownloadmanager.utils.compose.LocalTextStyle
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.utils.ui.LocalTextStyle
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import com.abdownloadmanager.desktop.utils.AppInfo
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.interaction.collectIsHoveredAsState
|
||||
import androidx.compose.foundation.layout.*
|
||||
@ -28,11 +28,11 @@ import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.desktop.SharedConstants
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
import com.abdownloadmanager.desktop.ui.widget.IconActionButton
|
||||
import com.abdownloadmanager.desktop.ui.widget.Tooltip
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import ir.amirab.util.ifThen
|
||||
import com.abdownloadmanager.shared.ui.widget.IconActionButton
|
||||
import com.abdownloadmanager.shared.ui.widget.Tooltip
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import ir.amirab.util.UrlUtils
|
||||
import ir.amirab.util.compose.IconSource
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.pages.addDownload
|
||||
|
||||
import com.abdownloadmanager.desktop.storage.PageStatesStorage
|
||||
import com.abdownloadmanager.desktop.utils.BaseComponent
|
||||
import com.abdownloadmanager.shared.utils.BaseComponent
|
||||
import com.arkivanov.decompose.ComponentContext
|
||||
import ir.amirab.downloader.downloaditem.DownloadCredentials
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
@ -14,7 +14,7 @@ import java.util.*
|
||||
abstract class AddDownloadComponent(
|
||||
ctx: ComponentContext,
|
||||
val id: String,
|
||||
) :BaseComponent(ctx),KoinComponent{
|
||||
) : BaseComponent(ctx), KoinComponent {
|
||||
companion object{
|
||||
const val lastLocationsCacheSize = 4
|
||||
|
||||
|
@ -1,7 +1,8 @@
|
||||
package com.abdownloadmanager.desktop.pages.addDownload
|
||||
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.utils.DownloadSystem
|
||||
import com.abdownloadmanager.shared.utils.AddDownloadChecker
|
||||
import com.abdownloadmanager.shared.utils.DownloadSystem
|
||||
import com.abdownloadmanager.shared.utils.LinkChecker
|
||||
import ir.amirab.downloader.connection.DownloaderClient
|
||||
import ir.amirab.downloader.downloaditem.DownloadCredentials
|
||||
import ir.amirab.util.flow.onEachLatest
|
||||
|
@ -5,10 +5,10 @@ import com.abdownloadmanager.desktop.pages.addDownload.multiple.AddMultiDownload
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.multiple.AddMultiItemPage
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.single.AddDownloadPage
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.single.AddSingleDownloadComponent
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowIcon
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowIcon
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitle
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.collectAsState
|
||||
@ -18,7 +18,7 @@ import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
|
@ -3,17 +3,17 @@ package com.abdownloadmanager.desktop.pages.addDownload.multiple
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.AddDownloadComponent
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.DownloadUiChecker
|
||||
import com.abdownloadmanager.desktop.repository.AppRepository
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.TableState
|
||||
import com.abdownloadmanager.utils.DownloadSystem
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.TableState
|
||||
import com.abdownloadmanager.shared.utils.DownloadSystem
|
||||
import androidx.compose.runtime.derivedStateOf
|
||||
import androidx.compose.runtime.getValue
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.setValue
|
||||
import com.abdownloadmanager.utils.FileIconProvider
|
||||
import com.abdownloadmanager.utils.category.Category
|
||||
import com.abdownloadmanager.utils.category.CategoryItem
|
||||
import com.abdownloadmanager.utils.category.CategoryManager
|
||||
import com.abdownloadmanager.utils.category.CategorySelectionMode
|
||||
import com.abdownloadmanager.shared.utils.FileIconProvider
|
||||
import com.abdownloadmanager.shared.utils.category.Category
|
||||
import com.abdownloadmanager.shared.utils.category.CategoryItem
|
||||
import com.abdownloadmanager.shared.utils.category.CategoryManager
|
||||
import com.abdownloadmanager.shared.utils.category.CategorySelectionMode
|
||||
import com.arkivanov.decompose.ComponentContext
|
||||
import ir.amirab.downloader.connection.DownloaderClient
|
||||
import ir.amirab.downloader.downloaditem.DownloadCredentials
|
||||
|
@ -1,6 +1,5 @@
|
||||
package com.abdownloadmanager.desktop.pages.addDownload.multiple
|
||||
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.onClick
|
||||
@ -8,17 +7,17 @@ import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.shared.ui.widget.*
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.shared.CategoryAddButton
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.shared.CategorySelect
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.shared.LocationTextField
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.shared.ShowAddToQueueDialog
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.*
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.category.Category
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.category.Category
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
|
||||
@Composable
|
||||
|
@ -1,13 +1,10 @@
|
||||
package com.abdownloadmanager.desktop.pages.addDownload.multiple
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.DownloadUiChecker
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.*
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.*
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.styled.MyStyledTableHeader
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.styled.MyStyledTableHeader
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.layout.*
|
||||
@ -25,9 +22,17 @@ import androidx.compose.ui.input.key.onKeyEvent
|
||||
import androidx.compose.ui.input.pointer.isShiftPressed
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.shared.ui.widget.CheckBox
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.CellSize
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.CustomCellRenderer
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.Table
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.TableCell
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.FileIconProvider
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.FileIconProvider
|
||||
import com.abdownloadmanager.shared.utils.LocalSizeUnit
|
||||
import com.abdownloadmanager.shared.utils.convertPositiveSizeToHumanReadable
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import ir.amirab.util.compose.StringSource
|
||||
import ir.amirab.util.compose.asStringSource
|
||||
|
||||
|
@ -11,14 +11,14 @@ import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.alpha
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.unit.*
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.utils.category.Category
|
||||
import com.abdownloadmanager.utils.category.rememberIconPainter
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import ir.amirab.util.ifThen
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import com.abdownloadmanager.shared.utils.category.Category
|
||||
import com.abdownloadmanager.shared.utils.category.rememberIconPainter
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
|
||||
@Composable
|
||||
fun CategorySelect(
|
||||
|
@ -22,18 +22,17 @@ import androidx.compose.ui.unit.DpOffset
|
||||
import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.rememberDialogState
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.BaseOptionDialog
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.desktop.utils.windowUtil.moveSafe
|
||||
import com.abdownloadmanager.desktop.window.custom.BaseOptionDialog
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import ir.amirab.util.ifThen
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import com.abdownloadmanager.desktop.window.moveSafe
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.resources.*
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
import java.awt.MouseInfo
|
||||
|
@ -1,12 +1,12 @@
|
||||
package com.abdownloadmanager.desktop.pages.addDownload.shared
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.widgets.RenderConfigurable
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.BaseOptionDialog
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.desktop.utils.windowUtil.moveSafe
|
||||
import com.abdownloadmanager.desktop.window.custom.BaseOptionDialog
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentColor
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import com.abdownloadmanager.desktop.window.moveSafe
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
@ -22,7 +22,7 @@ import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.rememberDialogState
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.Configurable
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.LocalUiScale
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
import java.awt.Dimension
|
||||
import java.awt.MouseInfo
|
||||
|
@ -2,11 +2,11 @@ package com.abdownloadmanager.desktop.pages.addDownload.shared
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.single.AddDownloadPageTextField
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.single.MyTextFieldIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.desktop.ui.widget.menu.MyDropDown
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.menu.MyDropDown
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.*
|
||||
@ -21,7 +21,6 @@ import androidx.compose.ui.platform.LocalDensity
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.resources.*
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import io.github.vinceglb.filekit.compose.rememberDirectoryPickerLauncher
|
||||
import io.github.vinceglb.filekit.core.FileKitPlatformSettings
|
||||
|
@ -1,16 +1,16 @@
|
||||
package com.abdownloadmanager.desktop.pages.addDownload.shared
|
||||
|
||||
import com.abdownloadmanager.desktop.actions.newQueueAction
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.BaseOptionDialog
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.desktop.ui.widget.IconActionButton
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.desktop.utils.windowUtil.moveSafe
|
||||
import com.abdownloadmanager.desktop.window.custom.BaseOptionDialog
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.shared.ui.widget.IconActionButton
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentColor
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import com.abdownloadmanager.desktop.window.moveSafe
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
@ -24,9 +24,8 @@ import androidx.compose.ui.unit.DpOffset
|
||||
import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.rememberDialogState
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.resources.*
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.downloader.queue.DownloadQueue
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
|
@ -1,16 +1,15 @@
|
||||
package com.abdownloadmanager.desktop.pages.addDownload.single
|
||||
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.BaseOptionDialog
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentColor
|
||||
import com.abdownloadmanager.desktop.window.custom.BaseOptionDialog
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.*
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.desktop.utils.windowUtil.moveSafe
|
||||
import com.abdownloadmanager.desktop.window.moveSafe
|
||||
import androidx.compose.animation.*
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
@ -30,9 +29,14 @@ import androidx.compose.ui.input.pointer.pointerHoverIcon
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.*
|
||||
import androidx.compose.ui.window.*
|
||||
import com.abdownloadmanager.shared.ui.widget.*
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.shared.*
|
||||
import com.abdownloadmanager.desktop.utils.mvi.HandleEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.HandleEffects
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.shared.utils.CanAddResult
|
||||
import com.abdownloadmanager.shared.utils.LocalSizeUnit
|
||||
import com.abdownloadmanager.shared.utils.convertPositiveSizeToHumanReadable
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.downloader.utils.OnDuplicateStrategy
|
||||
import ir.amirab.util.compose.asStringSource
|
||||
|
@ -8,11 +8,12 @@ import com.abdownloadmanager.desktop.pages.settings.configurable.StringConfigura
|
||||
import com.abdownloadmanager.desktop.repository.AppRepository
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import androidx.compose.runtime.*
|
||||
import com.abdownloadmanager.desktop.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.desktop.utils.mvi.supportEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.supportEffects
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.DownloadSystem
|
||||
import com.abdownloadmanager.utils.extractors.linkextractor.DownloadCredentialFromStringExtractor
|
||||
import com.abdownloadmanager.shared.utils.*
|
||||
import com.abdownloadmanager.shared.utils.FileIconProvider
|
||||
import com.abdownloadmanager.shared.utils.extractors.linkextractor.DownloadCredentialFromStringExtractor
|
||||
import com.arkivanov.decompose.ComponentContext
|
||||
import ir.amirab.downloader.connection.DownloaderClient
|
||||
import ir.amirab.downloader.downloaditem.DownloadCredentials
|
||||
@ -29,10 +30,9 @@ import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withContext
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
import com.abdownloadmanager.utils.FileIconProvider
|
||||
import com.abdownloadmanager.utils.category.Category
|
||||
import com.abdownloadmanager.utils.category.CategoryItem
|
||||
import com.abdownloadmanager.utils.category.CategoryManager
|
||||
import com.abdownloadmanager.shared.utils.category.Category
|
||||
import com.abdownloadmanager.shared.utils.category.CategoryItem
|
||||
import com.abdownloadmanager.shared.utils.category.CategoryManager
|
||||
import ir.amirab.util.compose.asStringSource
|
||||
import ir.amirab.util.compose.asStringSourceWithARgs
|
||||
|
||||
|
@ -1,10 +1,10 @@
|
||||
package com.abdownloadmanager.desktop.pages.batchdownload
|
||||
|
||||
import com.abdownloadmanager.desktop.utils.BaseComponent
|
||||
import com.abdownloadmanager.shared.utils.BaseComponent
|
||||
import com.abdownloadmanager.desktop.utils.ClipboardUtil
|
||||
import com.abdownloadmanager.desktop.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.desktop.utils.mvi.supportEffects
|
||||
import com.abdownloadmanager.utils.isValidUrl
|
||||
import com.abdownloadmanager.shared.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.supportEffects
|
||||
import com.abdownloadmanager.shared.utils.isValidUrl
|
||||
import com.arkivanov.decompose.ComponentContext
|
||||
import ir.amirab.util.flow.combineStateFlows
|
||||
import ir.amirab.util.flow.mapStateFlow
|
||||
|
@ -6,9 +6,9 @@ import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.desktop.utils.mvi.HandleEffects
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.shared.utils.mvi.HandleEffects
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
|
||||
@Composable
|
||||
|
@ -17,21 +17,19 @@ import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.input.pointer.PointerIcon
|
||||
import androidx.compose.ui.input.pointer.pointerHoverIcon
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.single.MyTextFieldIcon
|
||||
import com.abdownloadmanager.desktop.pages.batchdownload.WildcardSelect.*
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
import com.abdownloadmanager.desktop.ui.widget.*
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitle
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.ui.widget.*
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import ir.amirab.util.ifThen
|
||||
import com.abdownloadmanager.desktop.utils.ClipboardUtil
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.resources.*
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.LocalContentColor
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import ir.amirab.util.compose.StringSource
|
||||
|
@ -1,10 +1,10 @@
|
||||
package com.abdownloadmanager.desktop.pages.category
|
||||
|
||||
import com.abdownloadmanager.desktop.repository.AppRepository
|
||||
import com.abdownloadmanager.desktop.utils.BaseComponent
|
||||
import com.abdownloadmanager.utils.category.Category
|
||||
import com.abdownloadmanager.utils.category.CategoryManager
|
||||
import com.abdownloadmanager.utils.category.iconSource
|
||||
import com.abdownloadmanager.shared.utils.BaseComponent
|
||||
import com.abdownloadmanager.shared.utils.category.Category
|
||||
import com.abdownloadmanager.shared.utils.category.CategoryManager
|
||||
import com.abdownloadmanager.shared.utils.category.iconSource
|
||||
import com.arkivanov.decompose.ComponentContext
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import ir.amirab.util.compose.uriOrNull
|
||||
|
@ -13,20 +13,19 @@ import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.single.MyTextFieldIcon
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
import com.abdownloadmanager.desktop.ui.widget.*
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitle
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.ui.widget.*
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import ir.amirab.util.ifThen
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import io.github.vinceglb.filekit.compose.rememberDirectoryPickerLauncher
|
||||
import io.github.vinceglb.filekit.core.FileKitPlatformSettings
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import ir.amirab.util.compose.asStringSource
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.util.desktop.LocalWindow
|
||||
import java.io.File
|
||||
|
@ -8,8 +8,8 @@ import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.LocalUiScale
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
|
||||
@Composable
|
||||
|
@ -4,13 +4,10 @@ import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.Brush
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
@ -18,19 +15,18 @@ import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.desktop.di.Di
|
||||
import com.abdownloadmanager.desktop.pages.about.MaybeLinkText
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalMyColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.Table
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.TableState
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.styled.MyStyledTableHeader
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.Table
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.TableState
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.styled.MyStyledTableHeader
|
||||
import com.abdownloadmanager.desktop.utils.AppInfo
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.LocalContentColor
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import ir.amirab.util.UrlUtils
|
||||
import ir.amirab.util.compose.localizationmanager.LanguageNameProvider
|
||||
import ir.amirab.util.compose.localizationmanager.MyLocale
|
||||
|
@ -1,8 +1,8 @@
|
||||
package com.abdownloadmanager.desktop.pages.credits.translators
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.CellSize
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.SortableCell
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.TableCell
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.CellSize
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.SortableCell
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.TableCell
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import ir.amirab.util.compose.StringSource
|
||||
|
@ -8,8 +8,8 @@ import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.AppComponent
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitle
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
|
||||
|
@ -2,13 +2,12 @@ package com.abdownloadmanager.desktop.pages.editdownload
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.*
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import androidx.compose.animation.*
|
||||
import androidx.compose.animation.core.animateDpAsState
|
||||
@ -30,15 +29,19 @@ import androidx.compose.ui.input.pointer.pointerHoverIcon
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.*
|
||||
import androidx.compose.ui.window.*
|
||||
import com.abdownloadmanager.shared.ui.widget.*
|
||||
import com.abdownloadmanager.desktop.pages.addDownload.shared.ExtraConfig
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
import com.abdownloadmanager.desktop.utils.mvi.HandleEffects
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitle
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.LocalUiScale
|
||||
import ir.amirab.util.ifThen
|
||||
import com.abdownloadmanager.shared.utils.mvi.HandleEffects
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.FileIconProvider
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import com.abdownloadmanager.shared.utils.FileIconProvider
|
||||
import com.abdownloadmanager.shared.utils.LocalSizeUnit
|
||||
import com.abdownloadmanager.shared.utils.convertPositiveSizeToHumanReadable
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentColor
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import ir.amirab.util.UrlUtils
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.util.compose.asStringSource
|
||||
|
@ -1,11 +1,11 @@
|
||||
package com.abdownloadmanager.desktop.pages.editdownload
|
||||
|
||||
import com.abdownloadmanager.desktop.repository.AppRepository
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.desktop.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.desktop.utils.mvi.supportEffects
|
||||
import com.abdownloadmanager.utils.DownloadSystem
|
||||
import com.abdownloadmanager.utils.FileIconProvider
|
||||
import com.abdownloadmanager.shared.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.supportEffects
|
||||
import com.abdownloadmanager.shared.utils.BaseComponent
|
||||
import com.abdownloadmanager.shared.utils.DownloadSystem
|
||||
import com.abdownloadmanager.shared.utils.FileIconProvider
|
||||
import com.arkivanov.decompose.ComponentContext
|
||||
import ir.amirab.downloader.connection.DownloaderClient
|
||||
import ir.amirab.downloader.downloaditem.DownloadCredentials
|
||||
|
@ -4,11 +4,11 @@ import com.abdownloadmanager.desktop.pages.settings.configurable.IntConfigurable
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.SpeedLimitConfigurable
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.StringConfigurable
|
||||
import com.abdownloadmanager.desktop.repository.AppRepository
|
||||
import com.abdownloadmanager.desktop.utils.FileNameValidator
|
||||
import com.abdownloadmanager.desktop.utils.LinkChecker
|
||||
import com.abdownloadmanager.desktop.utils.convertPositiveSpeedToHumanReadable
|
||||
import com.abdownloadmanager.shared.utils.FileNameValidator
|
||||
import com.abdownloadmanager.shared.utils.LinkChecker
|
||||
import com.abdownloadmanager.shared.utils.convertPositiveSpeedToHumanReadable
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.isValidUrl
|
||||
import com.abdownloadmanager.shared.utils.isValidUrl
|
||||
import ir.amirab.downloader.connection.DownloaderClient
|
||||
import ir.amirab.downloader.downloaditem.DownloadCredentials
|
||||
import ir.amirab.downloader.downloaditem.DownloadItem
|
||||
|
@ -1,15 +1,15 @@
|
||||
package com.abdownloadmanager.desktop.pages.extenallibs
|
||||
|
||||
import com.abdownloadmanager.utils.compose.ProvideTextStyle
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.Table
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.TableState
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.ProvideTextStyle
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.Table
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.TableState
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.lazy.rememberLazyListState
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.styled.MyStyledTableHeader
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.styled.MyStyledTableHeader
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.useResource
|
||||
|
@ -1,15 +1,14 @@
|
||||
package com.abdownloadmanager.desktop.pages.extenallibs
|
||||
|
||||
import com.abdownloadmanager.desktop.AppComponent
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitle
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.resources.*
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
|
||||
@Composable
|
||||
|
@ -1,17 +1,17 @@
|
||||
package com.abdownloadmanager.desktop.pages.extenallibs
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.about.MaybeLinkText
|
||||
import com.abdownloadmanager.utils.compose.ProvideTextStyle
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.shared.utils.ui.ProvideTextStyle
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.clip
|
||||
@ -22,7 +22,6 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.Dialog
|
||||
import androidx.compose.ui.window.DialogProperties
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.resources.*
|
||||
import com.mikepenz.aboutlibraries.entity.Developer
|
||||
import com.mikepenz.aboutlibraries.entity.Library
|
||||
import com.mikepenz.aboutlibraries.entity.License
|
||||
|
@ -1,8 +1,8 @@
|
||||
package com.abdownloadmanager.desktop.pages.extenallibs
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.CellSize
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.SortableCell
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.TableCell
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.CellSize
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.SortableCell
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.TableCell
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.mikepenz.aboutlibraries.entity.Library
|
||||
|
@ -1,29 +1,23 @@
|
||||
package com.abdownloadmanager.desktop.pages.home
|
||||
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
import com.abdownloadmanager.desktop.ui.widget.menu.MyDropDown
|
||||
import com.abdownloadmanager.desktop.ui.widget.menu.SubMenu
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import ir.amirab.util.ifThen
|
||||
import com.abdownloadmanager.shared.ui.widget.menu.MyDropDown
|
||||
import com.abdownloadmanager.shared.ui.widget.menu.SubMenu
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentColor
|
||||
import ir.amirab.util.compose.action.MenuItem
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.gestures.Orientation
|
||||
import androidx.compose.foundation.layout.*
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.alpha
|
||||
import androidx.compose.ui.graphics.Brush
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.utils.compose.LocalTextStyle
|
||||
import com.abdownloadmanager.utils.compose.widget.ScrollFade
|
||||
import org.http4k.routing.inspect.BackgroundColour
|
||||
|
||||
@Composable
|
||||
fun Actions(list: List<MenuItem>) {
|
||||
|
@ -6,16 +6,16 @@ import com.abdownloadmanager.desktop.pages.home.sections.DownloadListCells
|
||||
import com.abdownloadmanager.desktop.pages.home.sections.category.DefinedStatusCategories
|
||||
import com.abdownloadmanager.desktop.pages.home.sections.category.DownloadStatusCategoryFilter
|
||||
import com.abdownloadmanager.desktop.storage.PageStatesStorage
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.widget.NotificationType
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.Sort
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.TableState
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.ui.widget.NotificationType
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.Sort
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.TableState
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import ir.amirab.util.compose.action.MenuItem
|
||||
import ir.amirab.util.compose.action.buildMenu
|
||||
import ir.amirab.util.compose.action.simpleAction
|
||||
import com.abdownloadmanager.desktop.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.desktop.utils.mvi.supportEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.supportEffects
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.DpSize
|
||||
@ -23,14 +23,13 @@ import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.UpdateManager
|
||||
import com.abdownloadmanager.desktop.pages.category.CategoryDialogManager
|
||||
import com.abdownloadmanager.desktop.storage.AppSettingsStorage
|
||||
import com.abdownloadmanager.desktop.ui.widget.MessageDialogType
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.DownloadSystem
|
||||
import com.abdownloadmanager.utils.FileIconProvider
|
||||
import com.abdownloadmanager.utils.category.Category
|
||||
import com.abdownloadmanager.utils.category.CategoryItemWithId
|
||||
import com.abdownloadmanager.utils.category.CategoryManager
|
||||
import com.abdownloadmanager.utils.category.DefaultCategories
|
||||
import com.abdownloadmanager.shared.utils.*
|
||||
import com.abdownloadmanager.shared.utils.FileIconProvider
|
||||
import com.abdownloadmanager.shared.utils.category.Category
|
||||
import com.abdownloadmanager.shared.utils.category.CategoryItemWithId
|
||||
import com.abdownloadmanager.shared.utils.category.CategoryManager
|
||||
import com.abdownloadmanager.shared.utils.category.DefaultCategories
|
||||
import com.arkivanov.decompose.ComponentContext
|
||||
import ir.amirab.downloader.downloaditem.DownloadCredentials
|
||||
import ir.amirab.downloader.downloaditem.DownloadJobStatus
|
||||
@ -40,7 +39,7 @@ import ir.amirab.downloader.queue.QueueManager
|
||||
import ir.amirab.util.flow.combineStateFlows
|
||||
import ir.amirab.util.flow.mapStateFlow
|
||||
import ir.amirab.util.flow.mapTwoWayStateFlow
|
||||
import com.abdownloadmanager.utils.extractors.linkextractor.DownloadCredentialFromStringExtractor
|
||||
import com.abdownloadmanager.shared.utils.extractors.linkextractor.DownloadCredentialFromStringExtractor
|
||||
import ir.amirab.downloader.downloaditem.contexts.RemovedBy
|
||||
import ir.amirab.downloader.downloaditem.contexts.User
|
||||
import ir.amirab.util.AppVersionTracker
|
||||
@ -956,7 +955,7 @@ class HomeComponent(
|
||||
categoryActions.value = null
|
||||
}
|
||||
|
||||
override val shortcutManager = ShortcutManager().apply {
|
||||
override val shortcutManager = DesktopShortcutManager().apply {
|
||||
"ctrl N" to newDownloadAction
|
||||
"ctrl V" to newDownloadFromClipboardAction
|
||||
"ctrl C" to downloadActions.copyDownloadLinkAction
|
||||
|
@ -3,15 +3,13 @@ package com.abdownloadmanager.desktop.pages.home
|
||||
import com.abdownloadmanager.desktop.pages.home.sections.DownloadList
|
||||
import com.abdownloadmanager.desktop.pages.home.sections.SearchBox
|
||||
import com.abdownloadmanager.desktop.pages.home.sections.category.*
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.*
|
||||
import com.abdownloadmanager.desktop.ui.widget.menu.MenuBar
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.ui.widget.menu.MenuBar
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.animation.core.animateFloatAsState
|
||||
import androidx.compose.animation.fadeIn
|
||||
@ -19,7 +17,7 @@ import androidx.compose.animation.fadeOut
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.*
|
||||
import androidx.compose.ui.draw.alpha
|
||||
@ -28,7 +26,6 @@ import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
||||
import androidx.compose.animation.core.animateDpAsState
|
||||
import androidx.compose.foundation.draganddrop.dragAndDropTarget
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
@ -41,11 +38,19 @@ import androidx.compose.ui.graphics.SolidColor
|
||||
import androidx.compose.ui.platform.LocalDensity
|
||||
import androidx.compose.ui.platform.LocalWindowInfo
|
||||
import androidx.compose.ui.window.Dialog
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.*
|
||||
import com.abdownloadmanager.desktop.ui.widget.menu.ShowOptionsInDropDown
|
||||
import com.abdownloadmanager.shared.ui.widget.*
|
||||
import com.abdownloadmanager.shared.ui.widget.menu.ShowOptionsInDropDown
|
||||
import com.abdownloadmanager.desktop.window.custom.TitlePosition
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowEnd
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowStart
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitlePosition
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.category.Category
|
||||
import com.abdownloadmanager.utils.category.rememberIconPainter
|
||||
import com.abdownloadmanager.shared.utils.LocalSpeedUnit
|
||||
import com.abdownloadmanager.shared.utils.category.Category
|
||||
import com.abdownloadmanager.shared.utils.category.rememberIconPainter
|
||||
import com.abdownloadmanager.shared.utils.convertPositiveBytesToSizeUnit
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import com.abdownloadmanager.shared.utils.ui.WithTitleBarDirection
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.util.compose.StringSource
|
||||
import ir.amirab.util.compose.action.MenuItem
|
||||
|
@ -1,6 +1,6 @@
|
||||
package com.abdownloadmanager.desktop.pages.home
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.TableState
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.TableState
|
||||
import arrow.optics.Lens
|
||||
import ir.amirab.util.config.floatKeyOf
|
||||
import ir.amirab.util.config.getDecoded
|
||||
|
@ -6,13 +6,12 @@ import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.window.WindowPlacement
|
||||
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.shared.utils.LocalShortCutManager
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import com.abdownloadmanager.desktop.window.custom.rememberWindowController
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.utils.AppInfo
|
||||
import com.abdownloadmanager.desktop.utils.mvi.HandleEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.HandleEffects
|
||||
import java.awt.Dimension
|
||||
|
||||
@Composable
|
||||
|
@ -1,16 +1,15 @@
|
||||
package com.abdownloadmanager.desktop.pages.home.sections
|
||||
|
||||
import DOUBLE_CLICK_DELAY
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.widget.CheckBox
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.Table
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.*
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.styled.MyStyledTableHeader
|
||||
import com.abdownloadmanager.desktop.ui.widget.menu.LocalMenuDisabledItemBehavior
|
||||
import com.abdownloadmanager.desktop.ui.widget.menu.MenuDisabledItemBehavior
|
||||
import com.abdownloadmanager.desktop.ui.widget.menu.ShowOptionsInDropDown
|
||||
import com.abdownloadmanager.shared.utils.DOUBLE_CLICK_DELAY
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.ui.widget.CheckBox
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.Table
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.styled.MyStyledTableHeader
|
||||
import com.abdownloadmanager.shared.ui.widget.menu.LocalMenuDisabledItemBehavior
|
||||
import com.abdownloadmanager.shared.ui.widget.menu.MenuDisabledItemBehavior
|
||||
import com.abdownloadmanager.shared.ui.widget.menu.ShowOptionsInDropDown
|
||||
import ir.amirab.util.compose.action.MenuItem
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
@ -25,10 +24,11 @@ import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.input.key.*
|
||||
import androidx.compose.ui.input.pointer.*
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.*
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.FileIconProvider
|
||||
import com.abdownloadmanager.utils.category.CategoryManager
|
||||
import com.abdownloadmanager.utils.category.rememberCategoryOf
|
||||
import com.abdownloadmanager.shared.utils.FileIconProvider
|
||||
import com.abdownloadmanager.shared.utils.category.CategoryManager
|
||||
import com.abdownloadmanager.shared.utils.category.rememberCategoryOf
|
||||
import ir.amirab.downloader.monitor.*
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.util.compose.StringSource
|
||||
|
@ -1,11 +1,11 @@
|
||||
package com.abdownloadmanager.desktop.pages.home.sections
|
||||
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.MyTextField
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.ui.widget.MyTextField
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import androidx.compose.animation.*
|
||||
import androidx.compose.animation.core.animateFloatAsState
|
||||
import androidx.compose.foundation.clickable
|
||||
@ -21,7 +21,6 @@ import androidx.compose.ui.input.pointer.PointerIcon
|
||||
import androidx.compose.ui.input.pointer.pointerHoverIcon
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.resources.*
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
|
||||
@Composable
|
||||
|
@ -1,12 +1,9 @@
|
||||
package com.abdownloadmanager.desktop.pages.home.sections
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.home.sections.SortIndicatorMode.*
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.*
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.shared.utils.ui.LocalContentColor
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import androidx.compose.animation.core.animateFloatAsState
|
||||
import androidx.compose.animation.core.tween
|
||||
import androidx.compose.foundation.background
|
||||
@ -19,9 +16,12 @@ import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.Brush
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.shared.ui.widget.CheckBox
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.FileIconProvider
|
||||
import com.abdownloadmanager.utils.category.Category
|
||||
import com.abdownloadmanager.shared.utils.*
|
||||
import com.abdownloadmanager.shared.utils.FileIconProvider
|
||||
import com.abdownloadmanager.shared.utils.category.Category
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.downloader.downloaditem.DownloadJobStatus
|
||||
import ir.amirab.downloader.monitor.CompletedDownloadItemState
|
||||
@ -48,34 +48,6 @@ private fun isSelected(): Boolean {
|
||||
return LocalDownloadItemProperties.current.isSelected
|
||||
}
|
||||
|
||||
enum class SortIndicatorMode {
|
||||
None,
|
||||
Ascending,
|
||||
Descending,
|
||||
}
|
||||
|
||||
fun SortIndicatorMode.isAscending(): Boolean {
|
||||
return when (this) {
|
||||
Ascending -> true
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
fun SortIndicatorMode.isDescending(): Boolean {
|
||||
return when (this) {
|
||||
Descending -> true
|
||||
else -> false
|
||||
}
|
||||
}
|
||||
|
||||
fun SortIndicatorMode.next(): SortIndicatorMode {
|
||||
return when (this) {
|
||||
None -> Ascending
|
||||
Ascending -> Descending
|
||||
Descending -> Ascending
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Composable
|
||||
fun CheckCell(
|
||||
|
@ -4,18 +4,18 @@ import androidx.compose.animation.*
|
||||
import androidx.compose.foundation.PointerMatcher
|
||||
import androidx.compose.foundation.background
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.ExpandableItem
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.ui.widget.ExpandableItem
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.onClick
|
||||
import androidx.compose.foundation.selection.selectable
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
@ -25,12 +25,11 @@ import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.input.pointer.PointerButton
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.resources.*
|
||||
import com.abdownloadmanager.utils.category.Category
|
||||
import com.abdownloadmanager.utils.category.rememberIconPainter
|
||||
import com.abdownloadmanager.shared.utils.category.Category
|
||||
import com.abdownloadmanager.shared.utils.category.rememberIconPainter
|
||||
import ir.amirab.downloader.downloaditem.DownloadStatus
|
||||
import ir.amirab.downloader.monitor.IDownloadItemState
|
||||
import ir.amirab.downloader.monitor.statusOrFinished
|
||||
@ -212,7 +211,8 @@ fun StatusFilterItem(
|
||||
fontSize = myTextSizes.lg,
|
||||
maxLines = 1,
|
||||
)
|
||||
MyIcon(MyIcons.up, null, Modifier
|
||||
MyIcon(
|
||||
MyIcons.up, null, Modifier
|
||||
.fillMaxHeight().wrapContentHeight()
|
||||
.clip(CircleShape)
|
||||
.size(24.dp)
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.pages.newQueue
|
||||
|
||||
import com.abdownloadmanager.desktop.AppComponent
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.ui.Alignment
|
||||
@ -9,7 +9,7 @@ import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.LocalUiScale
|
||||
import ir.amirab.util.desktop.screen.applyUiScale
|
||||
|
||||
@Composable
|
||||
|
@ -1,8 +1,8 @@
|
||||
package com.abdownloadmanager.desktop.pages.newQueue
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.desktop.ui.widget.MyTextField
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitle
|
||||
import com.abdownloadmanager.shared.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.shared.ui.widget.MyTextField
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Modifier
|
||||
@ -10,7 +10,6 @@ import androidx.compose.ui.focus.FocusRequester
|
||||
import androidx.compose.ui.focus.focusRequester
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.resources.*
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
|
||||
@Composable
|
||||
|
@ -2,13 +2,12 @@ package com.abdownloadmanager.desktop.pages.queue
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.*
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.widgets.ConfigurableGroup
|
||||
import com.abdownloadmanager.desktop.utils.BaseComponent
|
||||
import com.abdownloadmanager.shared.utils.BaseComponent
|
||||
import ir.amirab.util.flow.createMutableStateFlowFromStateFlow
|
||||
import ir.amirab.util.flow.mapStateFlow
|
||||
import com.abdownloadmanager.desktop.utils.newScopeBasedOn
|
||||
import androidx.compose.runtime.toMutableStateList
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.resources.*
|
||||
import com.arkivanov.decompose.ComponentContext
|
||||
import ir.amirab.downloader.monitor.IDownloadItemState
|
||||
import ir.amirab.downloader.monitor.IDownloadMonitor
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.pages.queue
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.utils.mvi.HandleEffects
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import com.abdownloadmanager.shared.utils.mvi.HandleEffects
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
|
||||
|
@ -2,9 +2,12 @@ package com.abdownloadmanager.desktop.pages.queue
|
||||
|
||||
import com.abdownloadmanager.desktop.actions.newQueueAction
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.desktop.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.desktop.utils.mvi.supportEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.supportEffects
|
||||
import androidx.compose.runtime.*
|
||||
import com.abdownloadmanager.shared.utils.BaseComponent
|
||||
import com.abdownloadmanager.shared.utils.asState
|
||||
import com.abdownloadmanager.shared.utils.subscribeAsStateFlow
|
||||
import com.arkivanov.decompose.ComponentContext
|
||||
import com.arkivanov.decompose.router.slot.SlotNavigation
|
||||
import com.arkivanov.decompose.router.slot.childSlot
|
||||
|
@ -2,16 +2,14 @@ package com.abdownloadmanager.desktop.pages.queue
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.widgets.ConfigurableGroup
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.widgets.RenderConfigurableGroup
|
||||
import com.abdownloadmanager.utils.compose.LocalContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.shared.utils.ui.LocalContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.LocalContentColor
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitle
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.*
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import androidx.compose.animation.animateColorAsState
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
@ -23,7 +21,6 @@ import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
@ -35,8 +32,9 @@ import androidx.compose.ui.platform.LocalWindowInfo
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.shared.ui.widget.*
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.resources.*
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import ir.amirab.downloader.downloaditem.DownloadJobStatus
|
||||
import ir.amirab.downloader.monitor.IDownloadItemState
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.utils.mvi.HandleEffects
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import com.abdownloadmanager.shared.utils.mvi.HandleEffects
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.unit.DpSize
|
||||
|
@ -5,15 +5,15 @@ import com.abdownloadmanager.desktop.pages.settings.configurable.*
|
||||
import com.abdownloadmanager.desktop.repository.AppRepository
|
||||
import com.abdownloadmanager.desktop.storage.AppSettingsStorage
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.utils.BaseComponent
|
||||
import com.abdownloadmanager.desktop.utils.convertPositiveSpeedToHumanReadable
|
||||
import com.abdownloadmanager.desktop.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.desktop.utils.mvi.supportEffects
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.BaseComponent
|
||||
import com.abdownloadmanager.shared.utils.convertPositiveSpeedToHumanReadable
|
||||
import com.abdownloadmanager.shared.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.supportEffects
|
||||
import androidx.compose.runtime.*
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.proxy.ProxyManager
|
||||
import com.abdownloadmanager.utils.proxy.ProxyMode
|
||||
import com.abdownloadmanager.shared.utils.proxy.ProxyManager
|
||||
import com.abdownloadmanager.shared.utils.proxy.ProxyMode
|
||||
import com.arkivanov.decompose.ComponentContext
|
||||
import ir.amirab.util.compose.StringSource
|
||||
import ir.amirab.util.compose.asStringSource
|
||||
|
@ -1,16 +1,15 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.widgets.RenderConfigurable
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowIcon
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowIcon
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitle
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.widget.Handle
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.ui.widget.Handle
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import androidx.compose.animation.AnimatedContent
|
||||
import androidx.compose.foundation.*
|
||||
import androidx.compose.foundation.gestures.Orientation
|
||||
@ -24,9 +23,8 @@ import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.text.style.TextOverflow
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.resources.*
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
import kotlinx.coroutines.channels.ticker
|
||||
|
||||
@Composable
|
||||
private fun SideBar(
|
||||
|
@ -3,10 +3,10 @@ package com.abdownloadmanager.desktop.pages.settings
|
||||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import com.abdownloadmanager.desktop.storage.AppSettingsStorage
|
||||
import com.abdownloadmanager.desktop.ui.theme.MyColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.SystemThemeDetector
|
||||
import com.abdownloadmanager.desktop.ui.theme.darkColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.lightColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.ISystemThemeDetector
|
||||
import com.abdownloadmanager.shared.utils.ui.MyColors
|
||||
import com.abdownloadmanager.shared.ui.theme.darkColors
|
||||
import com.abdownloadmanager.shared.ui.theme.lightColors
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import ir.amirab.util.compose.StringSource
|
||||
import ir.amirab.util.compose.asStringSource
|
||||
@ -19,6 +19,7 @@ import kotlinx.coroutines.flow.*
|
||||
class ThemeManager(
|
||||
private val scope: CoroutineScope,
|
||||
private val appSettings: AppSettingsStorage,
|
||||
private val osThemeDetector: ISystemThemeDetector,
|
||||
) {
|
||||
companion object {
|
||||
val defaultThemes = listOf(
|
||||
@ -73,7 +74,6 @@ class ThemeManager(
|
||||
|
||||
|
||||
|
||||
private val osThemeDetector = SystemThemeDetector()
|
||||
private var osDarkModeFlow = MutableStateFlow(true)
|
||||
|
||||
val currentThemeColor = combineStateFlows(
|
||||
|
@ -1,16 +1,11 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings.configurable
|
||||
|
||||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.ui.graphics.Color
|
||||
import com.abdownloadmanager.desktop.pages.settings.ThemeInfo
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.BooleanConfigurable.RenderMode
|
||||
import com.abdownloadmanager.desktop.ui.theme.MyColors
|
||||
import com.abdownloadmanager.utils.proxy.ProxyData
|
||||
import com.abdownloadmanager.shared.utils.proxy.ProxyData
|
||||
import ir.amirab.util.compose.StringSource
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.asStateFlow
|
||||
import kotlinx.coroutines.flow.update
|
||||
import kotlinx.datetime.DayOfWeek
|
||||
import kotlinx.datetime.LocalTime
|
||||
|
||||
|
@ -1,8 +1,8 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.BooleanConfigurable
|
||||
import com.abdownloadmanager.desktop.ui.widget.CheckBox
|
||||
import com.abdownloadmanager.desktop.ui.widget.Switch
|
||||
import com.abdownloadmanager.shared.ui.widget.CheckBox
|
||||
import com.abdownloadmanager.shared.ui.widget.Switch
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.ui.Modifier
|
||||
|
@ -2,7 +2,7 @@ package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.EnumConfigurable
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.EnumConfigurable.RenderMode.*
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Modifier
|
||||
|
@ -2,8 +2,7 @@ package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.FloatConfigurable
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.FloatConfigurable.RenderMode.*
|
||||
import com.abdownloadmanager.desktop.ui.widget.FloatTextField
|
||||
import com.abdownloadmanager.desktop.ui.widget.IntTextField
|
||||
import com.abdownloadmanager.shared.ui.widget.FloatTextField
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
|
@ -1,9 +1,9 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.FolderConfigurable
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.widget.MyTextField
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.ui.widget.MyTextField
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.runtime.*
|
||||
|
@ -2,7 +2,7 @@ package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.IntConfigurable
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.IntConfigurable.RenderMode.*
|
||||
import com.abdownloadmanager.desktop.ui.widget.IntTextField
|
||||
import com.abdownloadmanager.shared.ui.widget.IntTextField
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.LongConfigurable
|
||||
import com.abdownloadmanager.desktop.ui.widget.LongTextField
|
||||
import com.abdownloadmanager.shared.ui.widget.LongTextField
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
|
@ -15,17 +15,17 @@ import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.Dialog
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.ProxyConfigurable
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.*
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.ui.widget.*
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.utils.proxy.ProxyMode
|
||||
import com.abdownloadmanager.utils.proxy.ProxyRules
|
||||
import com.abdownloadmanager.utils.proxy.ProxyWithRules
|
||||
import com.abdownloadmanager.shared.utils.ui.LocalContentColor
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.proxy.ProxyMode
|
||||
import com.abdownloadmanager.shared.utils.proxy.ProxyRules
|
||||
import com.abdownloadmanager.shared.utils.proxy.ProxyWithRules
|
||||
import ir.amirab.downloader.connection.proxy.Proxy
|
||||
import ir.amirab.downloader.connection.proxy.ProxyType
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
@ -303,7 +303,7 @@ private fun ProxyEditDialog(
|
||||
Row {
|
||||
Text(myStringResource(Res.string.proxy_do_not_use_proxy_for))
|
||||
Spacer(Modifier.width(8.dp))
|
||||
Help(
|
||||
com.abdownloadmanager.shared.ui.widget.Help(
|
||||
myStringResource(Res.string.proxy_do_not_use_proxy_for_description)
|
||||
)
|
||||
}
|
||||
|
@ -1,14 +1,13 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.runtime.getValue
|
||||
|
@ -1,17 +1,17 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.DayOfWeekConfigurable
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import ir.amirab.util.ifThen
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
@ -19,7 +19,6 @@ import androidx.compose.ui.draw.alpha
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import ir.amirab.util.compose.StringSource
|
||||
import ir.amirab.util.compose.asStringSource
|
||||
import kotlinx.datetime.DayOfWeek
|
||||
import java.time.DayOfWeek.*
|
||||
|
@ -1,12 +1,12 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.TimeConfigurable
|
||||
import com.abdownloadmanager.desktop.ui.widget.IntTextField
|
||||
import com.abdownloadmanager.shared.ui.widget.IntTextField
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.foundation.text.KeyboardOptions
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
|
@ -1,15 +1,14 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.Configurable
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.util.ifThen
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentColor
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import ir.amirab.util.ifThen
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.animation.expandVertically
|
||||
import androidx.compose.animation.shrinkVertically
|
||||
@ -31,6 +30,7 @@ import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.Popup
|
||||
import androidx.compose.ui.window.rememberComponentRectPositionProvider
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
|
||||
|
||||
@Composable
|
||||
|
@ -1,16 +1,16 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.SpeedLimitConfigurable
|
||||
import com.abdownloadmanager.desktop.ui.widget.CheckBox
|
||||
import com.abdownloadmanager.desktop.ui.widget.DoubleTextField
|
||||
import com.abdownloadmanager.shared.ui.widget.CheckBox
|
||||
import com.abdownloadmanager.shared.ui.widget.DoubleTextField
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.foundation.layout.*
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.desktop.utils.LocalSpeedUnit
|
||||
import com.abdownloadmanager.shared.utils.LocalSpeedUnit
|
||||
import ir.amirab.util.datasize.*
|
||||
|
||||
@Composable
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.StringConfigurable
|
||||
import com.abdownloadmanager.desktop.ui.widget.MyTextField
|
||||
import com.abdownloadmanager.shared.ui.widget.MyTextField
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.foundation.layout.width
|
||||
import androidx.compose.runtime.Composable
|
||||
|
@ -1,13 +1,13 @@
|
||||
package com.abdownloadmanager.desktop.pages.settings.configurable.widgets
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.ThemeConfigurable
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import androidx.compose.foundation.background
|
||||
import androidx.compose.foundation.border
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.runtime.getValue
|
||||
|
@ -8,17 +8,17 @@ import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.desktop.utils.LocalSizeUnit
|
||||
import com.abdownloadmanager.desktop.utils.convertPositiveSizeToHumanReadable
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.utils.LocalSizeUnit
|
||||
import com.abdownloadmanager.shared.utils.convertPositiveSizeToHumanReadable
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentColor
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import ir.amirab.downloader.monitor.CompletedDownloadItemState
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
|
||||
|
@ -1,11 +1,11 @@
|
||||
package com.abdownloadmanager.desktop.pages.singleDownloadPage
|
||||
|
||||
import com.abdownloadmanager.desktop.DownloadDialogManager
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowIcon
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.utils.mvi.HandleEffects
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowIcon
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitle
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.mvi.HandleEffects
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.unit.DpSize
|
||||
@ -14,7 +14,7 @@ import androidx.compose.ui.window.FrameWindowScope
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.WindowState
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.LocalUiScale
|
||||
import ir.amirab.downloader.downloaditem.DownloadJobStatus
|
||||
import ir.amirab.downloader.monitor.CompletedDownloadItemState
|
||||
import ir.amirab.downloader.monitor.IDownloadItemState
|
||||
|
@ -2,17 +2,14 @@ package com.abdownloadmanager.desktop.pages.singleDownloadPage
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.widgets.RenderConfigurable
|
||||
import com.abdownloadmanager.desktop.pages.singleDownloadPage.SingleDownloadPageSections.*
|
||||
import com.abdownloadmanager.utils.compose.LocalContentColor
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.utils.compose.WithContentColor
|
||||
import com.abdownloadmanager.shared.utils.ui.LocalContentColor
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentColor
|
||||
import ir.amirab.util.compose.IconSource
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.*
|
||||
import com.abdownloadmanager.desktop.ui.widget.customtable.*
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import androidx.compose.animation.*
|
||||
import androidx.compose.animation.core.*
|
||||
import androidx.compose.foundation.*
|
||||
@ -38,8 +35,16 @@ import androidx.compose.ui.unit.DpOffset
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.Popup
|
||||
import androidx.compose.ui.window.rememberComponentRectPositionProvider
|
||||
import com.abdownloadmanager.shared.ui.widget.*
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.CellSize
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.Table
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.TableCell
|
||||
import com.abdownloadmanager.shared.ui.widget.customtable.TableState
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.compose.useIsInDebugMode
|
||||
import com.abdownloadmanager.shared.utils.LocalSizeUnit
|
||||
import com.abdownloadmanager.shared.utils.convertPositiveSizeToHumanReadable
|
||||
import com.abdownloadmanager.shared.utils.ui.useIsInDebugMode
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import ir.amirab.downloader.downloaditem.DownloadJobStatus
|
||||
import ir.amirab.downloader.monitor.*
|
||||
import ir.amirab.downloader.part.PartDownloadStatus
|
||||
|
@ -3,17 +3,16 @@ package com.abdownloadmanager.desktop.pages.singleDownloadPage
|
||||
import androidx.compose.runtime.Immutable
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.IntConfigurable
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.SpeedLimitConfigurable
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.desktop.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.desktop.utils.mvi.supportEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.ContainsEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.supportEffects
|
||||
import arrow.optics.copy
|
||||
import com.abdownloadmanager.desktop.pages.settings.configurable.BooleanConfigurable
|
||||
import com.abdownloadmanager.desktop.repository.AppRepository
|
||||
import com.abdownloadmanager.desktop.storage.AppSettingsStorage
|
||||
import com.abdownloadmanager.desktop.storage.PageStatesStorage
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import com.abdownloadmanager.utils.DownloadSystem
|
||||
import com.abdownloadmanager.utils.FileIconProvider
|
||||
import com.abdownloadmanager.shared.utils.*
|
||||
import com.abdownloadmanager.shared.utils.FileIconProvider
|
||||
import com.arkivanov.decompose.ComponentContext
|
||||
import ir.amirab.downloader.DownloadManagerEvents
|
||||
import ir.amirab.downloader.downloaditem.DownloadJobStatus
|
||||
|
@ -3,35 +3,34 @@ package com.abdownloadmanager.desktop.pages.updater
|
||||
import androidx.compose.animation.animateColor
|
||||
import androidx.compose.animation.core.*
|
||||
import androidx.compose.foundation.*
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowIcon
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.utils.compose.WithContentAlpha
|
||||
import com.abdownloadmanager.desktop.utils.div
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowIcon
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitle
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.shared.utils.ui.WithContentAlpha
|
||||
import com.abdownloadmanager.shared.utils.div
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.shape.CircleShape
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.draw.BlurredEdgeTreatment
|
||||
import androidx.compose.ui.draw.alpha
|
||||
import androidx.compose.ui.draw.blur
|
||||
import androidx.compose.ui.draw.clip
|
||||
import androidx.compose.ui.graphics.Brush
|
||||
import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.Dp
|
||||
import androidx.compose.ui.unit.dp
|
||||
import com.abdownloadmanager.desktop.ui.theme.myMarkdownColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myMarkdownTypography
|
||||
import com.abdownloadmanager.shared.ui.theme.myMarkdownColors
|
||||
import com.abdownloadmanager.shared.ui.theme.myMarkdownTypography
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import io.github.z4kn4fein.semver.Version
|
||||
import com.abdownloadmanager.updatechecker.UpdateInfo
|
||||
import com.abdownloadmanager.utils.compose.needScroll
|
||||
import com.abdownloadmanager.shared.utils.ui.needScroll
|
||||
import com.mikepenz.markdown.compose.Markdown
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
|
||||
|
@ -1,7 +1,7 @@
|
||||
package com.abdownloadmanager.desktop.pages.updater
|
||||
|
||||
import com.abdownloadmanager.desktop.utils.AppVersion
|
||||
import com.abdownloadmanager.desktop.utils.BaseComponent
|
||||
import com.abdownloadmanager.shared.utils.BaseComponent
|
||||
import com.abdownloadmanager.UpdateManager
|
||||
import com.abdownloadmanager.desktop.NotificationSender
|
||||
import com.abdownloadmanager.desktop.ui.widget.MessageDialogType
|
||||
@ -11,7 +11,6 @@ import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.update
|
||||
import org.koin.core.component.KoinComponent
|
||||
import org.koin.core.component.inject
|
||||
import com.abdownloadmanager.updatechecker.UpdateInfo
|
||||
import ir.amirab.util.compose.asStringSource
|
||||
|
||||
class UpdateComponent(
|
||||
|
@ -3,7 +3,7 @@ package com.abdownloadmanager.desktop.pages.updater
|
||||
import com.abdownloadmanager.UpdateDownloadLocationProvider
|
||||
import com.abdownloadmanager.updateapplier.UpdateDownloader
|
||||
import com.abdownloadmanager.updatechecker.UpdateSource
|
||||
import com.abdownloadmanager.utils.DownloadSystem
|
||||
import com.abdownloadmanager.shared.utils.DownloadSystem
|
||||
import ir.amirab.downloader.downloaditem.DownloadItem
|
||||
import ir.amirab.downloader.downloaditem.EmptyContext
|
||||
import ir.amirab.downloader.utils.OnDuplicateStrategy
|
||||
|
@ -1,8 +1,8 @@
|
||||
package com.abdownloadmanager.desktop.pages.updater
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.widget.NotificationType
|
||||
import com.abdownloadmanager.desktop.ui.widget.ShowNotification
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import com.abdownloadmanager.shared.ui.widget.NotificationType
|
||||
import com.abdownloadmanager.shared.ui.widget.ShowNotification
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.unit.DpSize
|
||||
@ -10,7 +10,7 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.UpdateCheckStatus
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import ir.amirab.util.compose.StringSource
|
||||
import ir.amirab.util.compose.asStringSource
|
||||
|
@ -3,13 +3,13 @@ package com.abdownloadmanager.desktop.repository
|
||||
import ir.amirab.util.datasize.CommonSizeConvertConfigs
|
||||
import com.abdownloadmanager.desktop.storage.AppSettingsStorage
|
||||
import com.abdownloadmanager.desktop.utils.AutoStartManager
|
||||
import com.abdownloadmanager.utils.DownloadSystem
|
||||
import com.abdownloadmanager.shared.utils.DownloadSystem
|
||||
import ir.amirab.downloader.DownloadSettings
|
||||
import com.abdownloadmanager.integration.Integration
|
||||
import com.abdownloadmanager.integration.IntegrationResult
|
||||
import com.abdownloadmanager.utils.autoremove.RemovedDownloadsFromDiskTracker
|
||||
import com.abdownloadmanager.utils.category.CategoryManager
|
||||
import com.abdownloadmanager.utils.proxy.ProxyManager
|
||||
import com.abdownloadmanager.shared.utils.autoremove.RemovedDownloadsFromDiskTracker
|
||||
import com.abdownloadmanager.shared.utils.category.CategoryManager
|
||||
import com.abdownloadmanager.shared.utils.proxy.ProxyManager
|
||||
import ir.amirab.downloader.DownloadManager
|
||||
import ir.amirab.downloader.monitor.IDownloadMonitor
|
||||
import ir.amirab.util.datasize.BaseSize
|
||||
|
@ -1,13 +1,11 @@
|
||||
package com.abdownloadmanager.desktop.storage
|
||||
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import androidx.datastore.core.DataStore
|
||||
import arrow.optics.Lens
|
||||
import arrow.optics.optics
|
||||
import com.abdownloadmanager.desktop.App
|
||||
import com.abdownloadmanager.shared.utils.ConfigBaseSettingsByMapConfig
|
||||
import ir.amirab.util.compose.localizationmanager.LanguageStorage
|
||||
import ir.amirab.util.config.*
|
||||
import ir.amirab.util.datasize.BaseSize
|
||||
import kotlinx.serialization.Serializable
|
||||
import org.koin.core.component.KoinComponent
|
||||
import java.io.File
|
||||
|
@ -1,11 +1,11 @@
|
||||
package com.abdownloadmanager.desktop.storage
|
||||
|
||||
import com.abdownloadmanager.desktop.pages.home.HomePageStateToPersist
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import androidx.datastore.core.DataStore
|
||||
import arrow.optics.Lens
|
||||
import arrow.optics.optics
|
||||
import com.abdownloadmanager.desktop.pages.singleDownloadPage.SingleDownloadPageStateToPersist
|
||||
import com.abdownloadmanager.shared.utils.ConfigBaseSettingsByMapConfig
|
||||
import ir.amirab.util.config.getDecoded
|
||||
import ir.amirab.util.config.keyOfEncoded
|
||||
import ir.amirab.util.config.putEncoded
|
||||
|
@ -1,11 +1,9 @@
|
||||
package com.abdownloadmanager.desktop.storage
|
||||
|
||||
import androidx.datastore.core.DataStore
|
||||
import com.abdownloadmanager.desktop.utils.ConfigBaseSettingsByJson
|
||||
import com.abdownloadmanager.utils.proxy.IProxyStorage
|
||||
import com.abdownloadmanager.utils.proxy.ProxyData
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.update
|
||||
import com.abdownloadmanager.shared.utils.ConfigBaseSettingsByJson
|
||||
import com.abdownloadmanager.shared.utils.proxy.IProxyStorage
|
||||
import com.abdownloadmanager.shared.utils.proxy.ProxyData
|
||||
|
||||
class ProxyDatastoreStorage(
|
||||
dataStore: DataStore<ProxyData>,
|
||||
|
@ -11,13 +11,15 @@ 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.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.ABDownloaderTheme
|
||||
import com.abdownloadmanager.desktop.ui.widget.tray.ComposeTray
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.ui.theme.ABDownloaderTheme
|
||||
import ir.amirab.util.compose.action.buildMenu
|
||||
import com.abdownloadmanager.desktop.utils.mvi.HandleEffects
|
||||
import com.abdownloadmanager.shared.utils.mvi.HandleEffects
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.window.*
|
||||
import com.abdownloadmanager.shared.ui.widget.ProvideLanguageManager
|
||||
import com.abdownloadmanager.shared.ui.widget.ProvideNotificationManager
|
||||
import com.abdownloadmanager.shared.ui.widget.useNotification
|
||||
import com.abdownloadmanager.desktop.pages.batchdownload.BatchDownloadWindow
|
||||
import com.abdownloadmanager.desktop.pages.category.ShowCategoryDialogs
|
||||
import com.abdownloadmanager.desktop.pages.confirmexit.ConfirmExit
|
||||
@ -28,8 +30,11 @@ import com.abdownloadmanager.desktop.pages.settings.ThemeManager
|
||||
import com.abdownloadmanager.desktop.pages.updater.ShowUpdaterDialog
|
||||
import com.abdownloadmanager.desktop.ui.widget.*
|
||||
import com.abdownloadmanager.desktop.utils.*
|
||||
import com.abdownloadmanager.utils.compose.ProvideDebugInfo
|
||||
import com.abdownloadmanager.shared.utils.ProvideSizeAndSpeedUnit
|
||||
import com.abdownloadmanager.shared.utils.ui.ProvideDebugInfo
|
||||
import ir.amirab.util.compose.asStringSource
|
||||
import ir.amirab.util.compose.localizationmanager.LanguageManager
|
||||
import ir.amirab.util.desktop.systemtray.IComposeSystemTray
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.launch
|
||||
import kotlinx.coroutines.withTimeout
|
||||
@ -63,9 +68,8 @@ object Ui : KoinComponent {
|
||||
) {
|
||||
ProvideGlobalExceptionHandler(globalAppExceptionHandler) {
|
||||
ProvideSizeUnits(appComponent) {
|
||||
val trayState = rememberTrayState()
|
||||
HandleEffectsForApp(appComponent)
|
||||
SystemTray(appComponent, trayState)
|
||||
SystemTray(appComponent)
|
||||
val showHomeSlot = appComponent.showHomeSlot.collectAsState().value
|
||||
showHomeSlot.child?.instance?.let {
|
||||
HomeWindow(it, appComponent::closeHome)
|
||||
@ -138,13 +142,11 @@ private fun HandleEffectsForApp(appComponent: AppComponent) {
|
||||
@Composable
|
||||
private fun ApplicationScope.SystemTray(
|
||||
component: AppComponent,
|
||||
trayState: TrayState,
|
||||
) {
|
||||
ComposeTray(
|
||||
icon = MyIcons.appIcon.rememberPainter(),
|
||||
IComposeSystemTray.Instance.ComposeSystemTray(
|
||||
icon = MyIcons.appIcon,
|
||||
onClick = showDownloadList,
|
||||
tooltip = "Ab Download Manager",
|
||||
state = trayState,
|
||||
title = AppInfo.displayName.asStringSource(),
|
||||
menu = remember {
|
||||
buildMenu {
|
||||
+showDownloadList
|
||||
|
@ -1,11 +1,11 @@
|
||||
package com.abdownloadmanager.desktop.ui.error
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.ui.util.ScreenSurface
|
||||
import com.abdownloadmanager.desktop.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitle
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.ScreenSurface
|
||||
import com.abdownloadmanager.shared.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.desktop.utils.AppInfo
|
||||
import com.abdownloadmanager.desktop.utils.ClipboardUtil
|
||||
import androidx.compose.foundation.background
|
||||
@ -13,14 +13,13 @@ import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.text.selection.SelectionContainer
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
import com.abdownloadmanager.desktop.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
|
||||
|
@ -1,28 +0,0 @@
|
||||
package com.abdownloadmanager.desktop.ui.theme
|
||||
|
||||
import androidx.compose.runtime.Composable
|
||||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.runtime.compositionLocalOf
|
||||
import androidx.compose.runtime.staticCompositionLocalOf
|
||||
import androidx.compose.ui.unit.Density
|
||||
import androidx.compose.ui.unit.TextUnit
|
||||
|
||||
val LocalSystemDensity = staticCompositionLocalOf<Density?> { null }
|
||||
val LocalUiScale = staticCompositionLocalOf<Float?> { null }
|
||||
|
||||
val LocalTextSizes = compositionLocalOf<TextSizes> {
|
||||
error("LocalTextSizes not provided")
|
||||
}
|
||||
|
||||
val myTextSizes
|
||||
@Composable
|
||||
get() = LocalTextSizes.current
|
||||
|
||||
@Stable
|
||||
data class TextSizes(
|
||||
val xs: TextUnit,
|
||||
val sm: TextUnit,
|
||||
val base: TextUnit,
|
||||
val lg: TextUnit,
|
||||
val xl: TextUnit,
|
||||
)
|
@ -1,53 +0,0 @@
|
||||
package com.abdownloadmanager.desktop.ui.util
|
||||
|
||||
import androidx.compose.foundation.hoverable
|
||||
import androidx.compose.foundation.interaction.HoverInteraction
|
||||
import androidx.compose.foundation.interaction.MutableInteractionSource
|
||||
import androidx.compose.runtime.LaunchedEffect
|
||||
import androidx.compose.runtime.Stable
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.compose.runtime.remember
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.composed
|
||||
import androidx.compose.ui.input.pointer.PointerEventType
|
||||
import androidx.compose.ui.input.pointer.pointerInput
|
||||
import jdk.jfr.Enabled
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.flow.filterIsInstance
|
||||
import kotlinx.coroutines.flow.launchIn
|
||||
import kotlinx.coroutines.flow.onEach
|
||||
|
||||
@Stable
|
||||
class HoveredState {
|
||||
val isHovered = mutableStateOf(false)
|
||||
}
|
||||
|
||||
fun Modifier.listenToHoveredState(
|
||||
hoveredState: HoveredState,
|
||||
enabled: Boolean=true
|
||||
): Modifier {
|
||||
return composed {
|
||||
val mis= remember{
|
||||
MutableInteractionSource()
|
||||
}
|
||||
LaunchedEffect(Unit){
|
||||
mis.interactions.filterIsInstance<HoverInteraction>()
|
||||
.onEach {
|
||||
when(it){
|
||||
is HoverInteraction.Enter->{
|
||||
hoveredState.isHovered.value=true
|
||||
}
|
||||
is HoverInteraction.Exit->{
|
||||
hoveredState.isHovered.value=false
|
||||
}
|
||||
else->{
|
||||
|
||||
}
|
||||
}
|
||||
}.launchIn(this)
|
||||
}
|
||||
|
||||
hoverable(mis,enabled)
|
||||
}
|
||||
}
|
||||
|
@ -1,11 +1,11 @@
|
||||
package com.abdownloadmanager.desktop.ui.widget
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitle
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
@ -18,7 +18,10 @@ import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.WindowPosition
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.shared.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.shared.ui.widget.ActionContainer
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import ir.amirab.util.compose.StringSource
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
|
@ -1,12 +1,12 @@
|
||||
package com.abdownloadmanager.desktop.ui.widget
|
||||
|
||||
import com.abdownloadmanager.desktop.AppComponent
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.CustomWindow
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.WindowTitle
|
||||
import com.abdownloadmanager.utils.compose.widget.MyIcon
|
||||
import com.abdownloadmanager.desktop.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.desktop.ui.theme.myColors
|
||||
import com.abdownloadmanager.desktop.ui.theme.myTextSizes
|
||||
import com.abdownloadmanager.desktop.window.custom.CustomWindow
|
||||
import com.abdownloadmanager.desktop.window.custom.WindowTitle
|
||||
import com.abdownloadmanager.shared.utils.ui.widget.MyIcon
|
||||
import com.abdownloadmanager.shared.utils.ui.icon.MyIcons
|
||||
import com.abdownloadmanager.shared.utils.ui.myColors
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.myTextSizes
|
||||
import androidx.compose.foundation.layout.*
|
||||
import androidx.compose.foundation.rememberScrollState
|
||||
import androidx.compose.foundation.verticalScroll
|
||||
@ -19,7 +19,9 @@ import androidx.compose.ui.text.font.FontWeight
|
||||
import androidx.compose.ui.unit.DpSize
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.window.rememberWindowState
|
||||
import com.abdownloadmanager.desktop.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.shared.ui.widget.ActionButton
|
||||
import com.abdownloadmanager.shared.ui.widget.Text
|
||||
import com.abdownloadmanager.shared.utils.ui.theme.LocalUiScale
|
||||
import com.abdownloadmanager.resources.Res
|
||||
import ir.amirab.util.compose.StringSource
|
||||
import ir.amirab.util.compose.resources.myStringResource
|
||||
|
@ -1,7 +0,0 @@
|
||||
package com.abdownloadmanager.desktop.ui.widget.customtable
|
||||
|
||||
import androidx.compose.foundation.layout.PaddingValues
|
||||
import androidx.compose.runtime.compositionLocalOf
|
||||
import androidx.compose.ui.unit.dp
|
||||
|
||||
|
@ -1,69 +0,0 @@
|
||||
package com.abdownloadmanager.desktop.ui.widget.tray
|
||||
|
||||
import com.abdownloadmanager.desktop.ui.customwindow.BaseOptionDialog
|
||||
import com.abdownloadmanager.desktop.ui.widget.menu.SubMenu
|
||||
import ir.amirab.util.compose.action.MenuItem
|
||||
import com.abdownloadmanager.desktop.utils.windowUtil.moveSafe
|
||||
import androidx.compose.runtime.*
|
||||
import androidx.compose.ui.graphics.painter.Painter
|
||||
import androidx.compose.ui.unit.*
|
||||
import androidx.compose.ui.window.*
|
||||
import ir.amirab.util.desktop.systemtray.AwtTray
|
||||
|
||||
@Composable
|
||||
fun ComposeTray(
|
||||
tooltip: String,
|
||||
icon: Painter,
|
||||
state: TrayState = rememberTrayState(),
|
||||
onClick: () -> Unit,
|
||||
menu: List<MenuItem>,
|
||||
) {
|
||||
var popUpPosition by remember { mutableStateOf(null as DpOffset?) }
|
||||
val closeOptions = { popUpPosition = null }
|
||||
AwtTray(
|
||||
tooltip = tooltip,
|
||||
icon = icon,
|
||||
state = state,
|
||||
onClick = onClick,
|
||||
onRightClick = {
|
||||
popUpPosition = it
|
||||
}
|
||||
)
|
||||
popUpPosition.let { position ->
|
||||
if(position!=null){
|
||||
TrayOptions(
|
||||
position,
|
||||
closeOptions,
|
||||
) {
|
||||
SubMenu(menu,closeOptions)
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Composable
|
||||
private fun TrayOptions(
|
||||
position: DpOffset,
|
||||
onRequestClose: () -> Unit,
|
||||
content: @Composable () -> Unit,
|
||||
) {
|
||||
val state = rememberDialogState(
|
||||
size = DpSize.Unspecified,
|
||||
position = WindowPosition.Absolute(
|
||||
x = position.x,
|
||||
y = position.y,
|
||||
)
|
||||
)
|
||||
|
||||
BaseOptionDialog(
|
||||
onCloseRequest = onRequestClose,
|
||||
resizeable = false,
|
||||
state = state,
|
||||
content = {
|
||||
LaunchedEffect(window){
|
||||
window.moveSafe(position)
|
||||
}
|
||||
content()
|
||||
}
|
||||
)
|
||||
}
|
Some files were not shown because too many files have changed in this diff Show More
Loading…
x
Reference in New Issue
Block a user