mirror of
https://github.com/T8RIN/ImageToolbox.git
synced 2025-08-06 15:49:35 +08:00
modularization
This commit is contained in:
@ -172,6 +172,10 @@ dependencies {
|
||||
implementation(project(":feature:delete-exif"))
|
||||
implementation(project(":feature:generate-palette"))
|
||||
implementation(project(":feature:resize-convert"))
|
||||
implementation(project(":feature:pdf-tools"))
|
||||
implementation(project(":feature:single-edit"))
|
||||
implementation(project(":feature:erase-background"))
|
||||
implementation(project(":feature:draw"))
|
||||
|
||||
"marketImplementation"(libs.firebase.crashlytics.ktx) {
|
||||
exclude("androidx.datastore", "datastore-preferences")
|
||||
|
@ -101,12 +101,12 @@ import dev.olshevski.navigation.reimagined.hilt.hiltViewModel
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.PickColorFromImageSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.PickColorFromImageSheet
|
||||
import ru.tech.imageresizershrinker.presentation.filters_screen.components.AddEditMaskSheet
|
||||
import ru.tech.imageresizershrinker.presentation.filters_screen.components.AddFilterButton
|
||||
import ru.tech.imageresizershrinker.presentation.filters_screen.components.AddFiltersSheet
|
||||
import ru.tech.imageresizershrinker.presentation.filters_screen.components.FilterItem
|
||||
import ru.tech.imageresizershrinker.presentation.filters_screen.components.FilterReorderSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.AddFiltersSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.FilterItem
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.FilterReorderSheet
|
||||
import ru.tech.imageresizershrinker.presentation.filters_screen.components.MaskItem
|
||||
import ru.tech.imageresizershrinker.presentation.filters_screen.components.MaskReorderSheet
|
||||
import ru.tech.imageresizershrinker.presentation.filters_screen.viewModel.FilterViewModel
|
||||
|
@ -75,11 +75,11 @@ import ru.tech.imageresizershrinker.coredomain.image.draw.pt
|
||||
import ru.tech.imageresizershrinker.coredomain.image.filters.FilterMaskApplier
|
||||
import ru.tech.imageresizershrinker.coredomain.model.ImageFormat
|
||||
import ru.tech.imageresizershrinker.coredomain.model.ImageInfo
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.BitmapDrawer
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.BrushSoftnessSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.DrawColorSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.DrawPathModeSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.LineWidthSelector
|
||||
import ru.tech.imageresizershrinker.feature.draw.presentation.components.BitmapDrawer
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.BrushSoftnessSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.DrawColorSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.DrawPathModeSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.LineWidthSelector
|
||||
import ru.tech.imageresizershrinker.coreui.icons.material.Eraser
|
||||
import ru.tech.imageresizershrinker.coreui.model.PtSaver
|
||||
import ru.tech.imageresizershrinker.coreui.model.UiPathPaint
|
||||
@ -98,11 +98,14 @@ import ru.tech.imageresizershrinker.coreui.widget.dialogs.ExitWithoutSavingDialo
|
||||
import ru.tech.imageresizershrinker.coreui.widget.image.ImageHeaderState
|
||||
import ru.tech.imageresizershrinker.coreui.widget.image.imageStickyHeader
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.container
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.FilterItem
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.Loading
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.LocalToastHost
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.showError
|
||||
import ru.tech.imageresizershrinker.coreui.widget.preferences.PreferenceRowSwitch
|
||||
import ru.tech.imageresizershrinker.coreui.widget.saver.DrawPathModeSaver
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.AddFiltersSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.FilterReorderSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.SimpleSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.TitleItem
|
||||
import ru.tech.imageresizershrinker.coreui.widget.utils.LocalWindowSizeClass
|
||||
|
@ -49,7 +49,9 @@ import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedIconButton
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.alertDialogBorder
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.container
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.ExpandableItem
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.FilterItem
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.PathPaintPreview
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.AddFiltersSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.TitleItem
|
||||
import ru.tech.imageresizershrinker.coreui.widget.utils.LocalSettingsState
|
||||
|
||||
|
@ -71,9 +71,9 @@ import kotlinx.coroutines.launch
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.DrawBackgroundSelector
|
||||
import ru.tech.imageresizershrinker.presentation.image_stitching_screen.components.ImageFadingEdgesSelector
|
||||
import ru.tech.imageresizershrinker.presentation.image_stitching_screen.components.ImageReorderCarousel
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.ImageReorderCarousel
|
||||
import ru.tech.imageresizershrinker.presentation.image_stitching_screen.components.ImageScaleSelector
|
||||
import ru.tech.imageresizershrinker.presentation.image_stitching_screen.components.ScaleSmallImagesToLargeToggle
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.ScaleSmallImagesToLargeToggle
|
||||
import ru.tech.imageresizershrinker.presentation.image_stitching_screen.components.SpacingSelector
|
||||
import ru.tech.imageresizershrinker.presentation.image_stitching_screen.components.StitchModeSelector
|
||||
import ru.tech.imageresizershrinker.presentation.image_stitching_screen.viewModel.ImageStitchingViewModel
|
||||
|
@ -24,8 +24,8 @@ import ru.tech.imageresizershrinker.feature.load_net_image.presentation.LoadNetI
|
||||
import ru.tech.imageresizershrinker.feature.bytes_resize.presentation.BytesResizeScreen
|
||||
import ru.tech.imageresizershrinker.feature.compare.presentation.CompareScreen
|
||||
import ru.tech.imageresizershrinker.feature.delete_exif.presentation.DeleteExifScreen
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.DrawScreen
|
||||
import ru.tech.imageresizershrinker.presentation.erase_background_screen.EraseBackgroundScreen
|
||||
import ru.tech.imageresizershrinker.feature.draw.presentation.DrawScreen
|
||||
import ru.tech.imageresizershrinker.feature.erase_background.presentation.EraseBackgroundScreen
|
||||
import ru.tech.imageresizershrinker.feature.cipher.presentation.FileCipherScreen
|
||||
import ru.tech.imageresizershrinker.feature.limits_resize.presentation.LimitsResizeScreen
|
||||
import ru.tech.imageresizershrinker.presentation.filters_screen.FiltersScreen
|
||||
@ -33,10 +33,10 @@ import ru.tech.imageresizershrinker.feature.generate_palette.presentation.Genera
|
||||
import ru.tech.imageresizershrinker.feature.image_preview.presentation.ImagePreviewScreen
|
||||
import ru.tech.imageresizershrinker.presentation.image_stitching_screen.ImageStitchingScreen
|
||||
import ru.tech.imageresizershrinker.presentation.main_screen.viewModel.MainViewModel
|
||||
import ru.tech.imageresizershrinker.presentation.pdf_tools_screen.PdfToolsScreen
|
||||
import ru.tech.imageresizershrinker.feature.pdf_tools.presentation.PdfToolsScreen
|
||||
import ru.tech.imageresizershrinker.presentation.pick_color_from_image_screen.PickColorFromImageScreen
|
||||
import ru.tech.imageresizershrinker.feature.resize_convert.presentation.ResizeAndConvertScreen
|
||||
import ru.tech.imageresizershrinker.presentation.single_edit_screen.SingleEditScreen
|
||||
import ru.tech.imageresizershrinker.feature.single_edit.presentation.SingleEditScreen
|
||||
|
||||
@Composable
|
||||
fun ScreenSelector(
|
||||
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.image_stitching_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.controls
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.net.Uri
|
||||
@ -50,8 +50,6 @@ import org.burnoutcrew.reorderable.detectReorderAfterLongPress
|
||||
import org.burnoutcrew.reorderable.rememberReorderableLazyListState
|
||||
import org.burnoutcrew.reorderable.reorderable
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedButton
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedIconButton
|
||||
import ru.tech.imageresizershrinker.coreui.widget.image.Picture
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.container
|
||||
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.image_stitching_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.controls
|
||||
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("KotlinConstantConditions")
|
||||
|
||||
package ru.tech.imageresizershrinker.presentation.erase_background_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.controls.draw
|
||||
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.Column
|
||||
@ -22,8 +22,8 @@ import androidx.compose.ui.Alignment
|
||||
import androidx.compose.ui.Modifier
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import ru.tech.imageresizershrinker.BuildConfig
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coreui.BuildConfig
|
||||
import ru.tech.imageresizershrinker.coreui.theme.mixedContainer
|
||||
import ru.tech.imageresizershrinker.coreui.theme.onMixedContainer
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedButton
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.draw_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.controls.draw
|
||||
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.draw_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.controls.draw
|
||||
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.draw_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.controls.draw
|
||||
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
import androidx.compose.foundation.layout.Column
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.draw_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.controls.draw
|
||||
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
import androidx.compose.animation.core.animateDpAsState
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.draw_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.controls.draw
|
||||
|
||||
import androidx.compose.animation.core.animateDpAsState
|
||||
import androidx.compose.foundation.BorderStroke
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.erase_background_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.controls.draw
|
||||
|
||||
import androidx.compose.animation.AnimatedContent
|
||||
import androidx.compose.animation.SizeTransform
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.draw_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.controls.draw
|
||||
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.draw_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.controls.draw
|
||||
|
||||
import androidx.compose.foundation.clickable
|
||||
import androidx.compose.foundation.layout.Row
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.draw_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.controls.draw
|
||||
|
||||
import androidx.compose.foundation.layout.padding
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.erase_background_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.controls.draw
|
||||
|
||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||
import androidx.compose.material.icons.Icons
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.filters_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.other
|
||||
|
||||
import androidx.compose.animation.animateContentSize
|
||||
import androidx.compose.foundation.background
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.filters_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.sheets
|
||||
|
||||
import android.content.res.Configuration
|
||||
import android.graphics.Bitmap
|
||||
@ -69,9 +69,9 @@ import androidx.compose.ui.platform.LocalConfiguration
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import kotlinx.coroutines.launch
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coredomain.image.ImageManager
|
||||
import ru.tech.imageresizershrinker.coredomain.model.IntegerSize
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coreui.icons.material.Cube
|
||||
import ru.tech.imageresizershrinker.coreui.theme.outlineVariant
|
||||
import ru.tech.imageresizershrinker.coreui.transformation.filter.UiFilter
|
||||
@ -80,9 +80,8 @@ import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedIconButton
|
||||
import ru.tech.imageresizershrinker.coreui.widget.image.SimplePicture
|
||||
import ru.tech.imageresizershrinker.coreui.widget.image.imageStickyHeader
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.container
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.FilterItem
|
||||
import ru.tech.imageresizershrinker.coreui.widget.preferences.PreferenceItemOverload
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.SimpleDragHandle
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.SimpleSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.AutoSizeText
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.Marquee
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.TitleItem
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.filters_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.sheets
|
||||
|
||||
import androidx.compose.animation.core.animateDpAsState
|
||||
import androidx.compose.foundation.layout.Arrangement
|
||||
@ -28,7 +28,7 @@ import org.burnoutcrew.reorderable.reorderable
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coreui.transformation.filter.UiFilter
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedButton
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.SimpleSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.FilterItem
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.AutoSizeText
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.TitleItem
|
||||
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.draw_screen.components
|
||||
package ru.tech.imageresizershrinker.coreui.widget.sheets
|
||||
|
||||
import android.graphics.Bitmap
|
||||
import androidx.compose.animation.animateColorAsState
|
||||
@ -48,7 +48,6 @@ import ru.tech.imageresizershrinker.coreui.widget.modifier.container
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.shimmer
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.transparencyChecker
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.LocalToastHost
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.SimpleSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.utils.LocalSettingsState
|
||||
|
||||
@Composable
|
1
feature/draw/.gitignore
vendored
Normal file
1
feature/draw/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/build
|
56
feature/draw/build.gradle.kts
Normal file
56
feature/draw/build.gradle.kts
Normal file
@ -0,0 +1,56 @@
|
||||
@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
|
||||
plugins {
|
||||
id("com.android.library")
|
||||
id("org.jetbrains.kotlin.android")
|
||||
kotlin("kapt")
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "ru.tech.imageresizershrinker.feature.draw"
|
||||
compileSdk = libs.versions.androidCompileSdk.get().toIntOrNull()
|
||||
|
||||
defaultConfig {
|
||||
minSdk = libs.versions.androidMinSdk.get().toIntOrNull()
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = rootProject.extra.get("javaCompile") as JavaVersion
|
||||
targetCompatibility = rootProject.extra.get("javaCompile") as JavaVersion
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = libs.versions.jvmTarget.get()
|
||||
}
|
||||
|
||||
composeOptions {
|
||||
kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get()
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
compose = true
|
||||
}
|
||||
|
||||
flavorDimensions += "app"
|
||||
|
||||
productFlavors {
|
||||
create("foss") {
|
||||
dimension = "app"
|
||||
}
|
||||
create("market") {
|
||||
dimension = "app"
|
||||
}
|
||||
create("jxl") {
|
||||
dimension = "app"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(":core-domain"))
|
||||
implementation(project(":core-ui"))
|
||||
implementation(project(":core-data"))
|
||||
implementation(project(":core-resources"))
|
||||
|
||||
implementation(libs.hilt)
|
||||
kapt(libs.dagger.hilt.compiler)
|
||||
}
|
4
feature/draw/src/main/AndroidManifest.xml
Normal file
4
feature/draw/src/main/AndroidManifest.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
</manifest>
|
@ -1,6 +1,6 @@
|
||||
@file:Suppress("PrivatePropertyName")
|
||||
|
||||
package ru.tech.imageresizershrinker.presentation.draw_screen
|
||||
package ru.tech.imageresizershrinker.feature.draw.presentation
|
||||
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
@ -113,23 +113,11 @@ import com.t8rin.dynamic.theme.observeAsState
|
||||
import com.t8rin.dynamic.theme.rememberAppColorTuple
|
||||
import dev.olshevski.navigation.reimagined.hilt.hiltViewModel
|
||||
import kotlinx.coroutines.launch
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coredomain.image.draw.DrawBehavior
|
||||
import ru.tech.imageresizershrinker.coredomain.image.draw.DrawMode
|
||||
import ru.tech.imageresizershrinker.coredomain.image.draw.DrawPathMode
|
||||
import ru.tech.imageresizershrinker.coredomain.image.draw.pt
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.BitmapDrawer
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.BrushSoftnessSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.DrawAlphaSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.DrawBackgroundSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.DrawColorSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.DrawModeSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.DrawPathModeSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.LineWidthSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.OpenColorPickerCard
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.PickColorFromImageSheet
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.viewModel.DrawViewModel
|
||||
import ru.tech.imageresizershrinker.presentation.main_screen.components.settings.LockDrawOrientationSettingItem
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coreui.icons.material.Eraser
|
||||
import ru.tech.imageresizershrinker.coreui.model.PtSaver
|
||||
import ru.tech.imageresizershrinker.coreui.theme.mixedContainer
|
||||
@ -141,6 +129,7 @@ import ru.tech.imageresizershrinker.coreui.utils.helper.Picker
|
||||
import ru.tech.imageresizershrinker.coreui.utils.helper.localImagePickerMode
|
||||
import ru.tech.imageresizershrinker.coreui.utils.helper.parseSaveResult
|
||||
import ru.tech.imageresizershrinker.coreui.utils.helper.rememberImagePicker
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.DrawBackgroundSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedButton
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedFloatingActionButton
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedIconButton
|
||||
@ -148,6 +137,13 @@ import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedSwitch
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedSwitchDefaults
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.ExtensionGroup
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.SaveExifWidget
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.BrushSoftnessSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.DrawAlphaSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.DrawColorSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.DrawModeSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.DrawPathModeSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.LineWidthSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.OpenColorPickerCard
|
||||
import ru.tech.imageresizershrinker.coreui.widget.dialogs.ExitWithoutSavingDialog
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.container
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.drawHorizontalStroke
|
||||
@ -161,6 +157,7 @@ import ru.tech.imageresizershrinker.coreui.widget.preferences.PreferenceItem
|
||||
import ru.tech.imageresizershrinker.coreui.widget.saver.ColorSaver
|
||||
import ru.tech.imageresizershrinker.coreui.widget.saver.DrawModeSaver
|
||||
import ru.tech.imageresizershrinker.coreui.widget.saver.DrawPathModeSaver
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.PickColorFromImageSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.SimpleSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.AutoSizeText
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.Marquee
|
||||
@ -168,6 +165,8 @@ import ru.tech.imageresizershrinker.coreui.widget.text.RoundedTextField
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.TitleItem
|
||||
import ru.tech.imageresizershrinker.coreui.widget.utils.LocalSettingsState
|
||||
import ru.tech.imageresizershrinker.coreui.widget.utils.LocalWindowSizeClass
|
||||
import ru.tech.imageresizershrinker.feature.draw.presentation.components.BitmapDrawer
|
||||
import ru.tech.imageresizershrinker.feature.draw.presentation.viewModel.DrawViewModel
|
||||
|
||||
@SuppressLint("AutoboxingStateCreation")
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@ -702,12 +701,6 @@ fun DrawScreen(
|
||||
modifier = Modifier.fillMaxWidth()
|
||||
)
|
||||
}
|
||||
item {
|
||||
LockDrawOrientationSettingItem(
|
||||
modifier = Modifier,
|
||||
onClick = { viewModel.toggleLockDrawOrientation() }
|
||||
)
|
||||
}
|
||||
}
|
||||
Row(
|
||||
modifier = Modifier
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.draw_screen.components
|
||||
package ru.tech.imageresizershrinker.feature.draw.presentation.components
|
||||
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.BlurMaskFilter
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.draw_screen.viewModel
|
||||
package ru.tech.imageresizershrinker.feature.draw.presentation.viewModel
|
||||
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.graphics.Bitmap
|
||||
@ -38,7 +38,6 @@ import javax.inject.Inject
|
||||
class DrawViewModel @Inject constructor(
|
||||
private val fileController: FileController,
|
||||
private val imageManager: ImageManager<Bitmap, ExifInterface>,
|
||||
private val toggleLockDrawOrientationUseCase: ToggleLockDrawOrientationUseCase,
|
||||
private val imageDrawApplier: ImageDrawApplier<Bitmap, Path, Color>
|
||||
) : ViewModel() {
|
||||
|
||||
@ -320,10 +319,4 @@ class DrawViewModel @Inject constructor(
|
||||
_isSaving.value = false
|
||||
}
|
||||
|
||||
fun toggleLockDrawOrientation() {
|
||||
viewModelScope.launch {
|
||||
toggleLockDrawOrientationUseCase()
|
||||
}
|
||||
}
|
||||
|
||||
}
|
1
feature/erase-background/.gitignore
vendored
Normal file
1
feature/erase-background/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/build
|
56
feature/erase-background/build.gradle.kts
Normal file
56
feature/erase-background/build.gradle.kts
Normal file
@ -0,0 +1,56 @@
|
||||
@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
|
||||
plugins {
|
||||
id("com.android.library")
|
||||
id("org.jetbrains.kotlin.android")
|
||||
kotlin("kapt")
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "ru.tech.imageresizershrinker.feature.erase_background"
|
||||
compileSdk = libs.versions.androidCompileSdk.get().toIntOrNull()
|
||||
|
||||
defaultConfig {
|
||||
minSdk = libs.versions.androidMinSdk.get().toIntOrNull()
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = rootProject.extra.get("javaCompile") as JavaVersion
|
||||
targetCompatibility = rootProject.extra.get("javaCompile") as JavaVersion
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = libs.versions.jvmTarget.get()
|
||||
}
|
||||
|
||||
composeOptions {
|
||||
kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get()
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
compose = true
|
||||
}
|
||||
|
||||
flavorDimensions += "app"
|
||||
|
||||
productFlavors {
|
||||
create("foss") {
|
||||
dimension = "app"
|
||||
}
|
||||
create("market") {
|
||||
dimension = "app"
|
||||
}
|
||||
create("jxl") {
|
||||
dimension = "app"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(":core-domain"))
|
||||
implementation(project(":core-ui"))
|
||||
implementation(project(":core-data"))
|
||||
implementation(project(":core-resources"))
|
||||
|
||||
implementation(libs.hilt)
|
||||
kapt(libs.dagger.hilt.compiler)
|
||||
}
|
4
feature/erase-background/src/main/AndroidManifest.xml
Normal file
4
feature/erase-background/src/main/AndroidManifest.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
</manifest>
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.erase_background_screen
|
||||
package ru.tech.imageresizershrinker.feature.erase_background.presentation
|
||||
|
||||
import android.content.res.Configuration
|
||||
import android.graphics.Bitmap
|
||||
@ -88,14 +88,14 @@ import kotlinx.coroutines.launch
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coredomain.image.draw.pt
|
||||
import ru.tech.imageresizershrinker.coredomain.model.ImageFormat
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.BrushSoftnessSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.LineWidthSelector
|
||||
import ru.tech.imageresizershrinker.presentation.erase_background_screen.components.AutoEraseBackgroundCard
|
||||
import ru.tech.imageresizershrinker.presentation.erase_background_screen.components.BitmapEraser
|
||||
import ru.tech.imageresizershrinker.presentation.erase_background_screen.components.EraseModeButton
|
||||
import ru.tech.imageresizershrinker.presentation.erase_background_screen.components.EraseModeCard
|
||||
import ru.tech.imageresizershrinker.presentation.erase_background_screen.components.TrimImageToggle
|
||||
import ru.tech.imageresizershrinker.presentation.erase_background_screen.viewModel.EraseBackgroundViewModel
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.BrushSoftnessSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.LineWidthSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.AutoEraseBackgroundCard
|
||||
import ru.tech.imageresizershrinker.feature.erase_background.presentation.components.BitmapEraser
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.EraseModeButton
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.EraseModeCard
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.TrimImageToggle
|
||||
import ru.tech.imageresizershrinker.feature.erase_background.presentation.viewModel.EraseBackgroundViewModel
|
||||
import ru.tech.imageresizershrinker.coreui.icons.material.Transparency
|
||||
import ru.tech.imageresizershrinker.coreui.model.PtSaver
|
||||
import ru.tech.imageresizershrinker.coreui.utils.confetti.LocalConfettiController
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.erase_background_screen.components
|
||||
package ru.tech.imageresizershrinker.feature.erase_background.presentation.components
|
||||
|
||||
import android.graphics.Bitmap
|
||||
import android.graphics.BlurMaskFilter
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.erase_background_screen.viewModel
|
||||
package ru.tech.imageresizershrinker.feature.erase_background.presentation.viewModel
|
||||
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.graphics.Bitmap
|
1
feature/pdf-tools/.gitignore
vendored
Normal file
1
feature/pdf-tools/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/build
|
56
feature/pdf-tools/build.gradle.kts
Normal file
56
feature/pdf-tools/build.gradle.kts
Normal file
@ -0,0 +1,56 @@
|
||||
@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
|
||||
plugins {
|
||||
id("com.android.library")
|
||||
id("org.jetbrains.kotlin.android")
|
||||
kotlin("kapt")
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "ru.tech.imageresizershrinker.feature.pdf_tools"
|
||||
compileSdk = libs.versions.androidCompileSdk.get().toIntOrNull()
|
||||
|
||||
defaultConfig {
|
||||
minSdk = libs.versions.androidMinSdk.get().toIntOrNull()
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = rootProject.extra.get("javaCompile") as JavaVersion
|
||||
targetCompatibility = rootProject.extra.get("javaCompile") as JavaVersion
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = libs.versions.jvmTarget.get()
|
||||
}
|
||||
|
||||
composeOptions {
|
||||
kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get()
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
compose = true
|
||||
}
|
||||
|
||||
flavorDimensions += "app"
|
||||
|
||||
productFlavors {
|
||||
create("foss") {
|
||||
dimension = "app"
|
||||
}
|
||||
create("market") {
|
||||
dimension = "app"
|
||||
}
|
||||
create("jxl") {
|
||||
dimension = "app"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(":core-domain"))
|
||||
implementation(project(":core-ui"))
|
||||
implementation(project(":core-data"))
|
||||
implementation(project(":core-resources"))
|
||||
|
||||
implementation(libs.hilt)
|
||||
kapt(libs.dagger.hilt.compiler)
|
||||
}
|
4
feature/pdf-tools/src/main/AndroidManifest.xml
Normal file
4
feature/pdf-tools/src/main/AndroidManifest.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
</manifest>
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.pdf_tools_screen
|
||||
package ru.tech.imageresizershrinker.feature.pdf_tools.presentation
|
||||
|
||||
import android.app.Activity
|
||||
import android.content.Context
|
||||
@ -102,11 +102,8 @@ import com.t8rin.dynamic.theme.observeAsState
|
||||
import dev.olshevski.navigation.reimagined.hilt.hiltViewModel
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coredomain.model.Preset
|
||||
import ru.tech.imageresizershrinker.presentation.image_stitching_screen.components.ImageReorderCarousel
|
||||
import ru.tech.imageresizershrinker.presentation.image_stitching_screen.components.ScaleSmallImagesToLargeToggle
|
||||
import ru.tech.imageresizershrinker.presentation.pdf_tools_screen.viewModel.PdfToolsViewModel
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coreui.utils.confetti.LocalConfettiController
|
||||
import ru.tech.imageresizershrinker.coreui.utils.helper.ContextUtils.getFileName
|
||||
import ru.tech.imageresizershrinker.coreui.utils.helper.Picker
|
||||
@ -118,16 +115,16 @@ import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedButton
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedFloatingActionButton
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedIconButton
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.ExtensionGroup
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.ImageReorderCarousel
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.PresetWidget
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.QualityWidget
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.ScaleSmallImagesToLargeToggle
|
||||
import ru.tech.imageresizershrinker.coreui.widget.dialogs.ExitWithoutSavingDialog
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.container
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.drawHorizontalStroke
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.navBarsPaddingOnlyIfTheyAtTheEnd
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.LoadingDialog
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.LocalToastHost
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.PdfViewer
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.PdfViewerOrientation
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.TopAppBarEmoji
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.showError
|
||||
import ru.tech.imageresizershrinker.coreui.widget.preferences.PreferenceItem
|
||||
@ -137,6 +134,9 @@ import ru.tech.imageresizershrinker.coreui.widget.sheets.SimpleSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.Marquee
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.TitleItem
|
||||
import ru.tech.imageresizershrinker.coreui.widget.utils.LocalWindowSizeClass
|
||||
import ru.tech.imageresizershrinker.feature.pdf_tools.presentation.components.PdfViewer
|
||||
import ru.tech.imageresizershrinker.feature.pdf_tools.presentation.components.PdfViewerOrientation
|
||||
import ru.tech.imageresizershrinker.feature.pdf_tools.presentation.viewModel.PdfToolsViewModel
|
||||
|
||||
@OptIn(
|
||||
ExperimentalMaterial3Api::class
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.pdf_tools_screen.components
|
||||
package ru.tech.imageresizershrinker.feature.pdf_tools.presentation.components
|
||||
|
||||
import android.net.Uri
|
||||
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.coreui.widget.other
|
||||
package ru.tech.imageresizershrinker.feature.pdf_tools.presentation.components
|
||||
|
||||
import android.content.res.Configuration
|
||||
import android.graphics.Bitmap
|
||||
@ -99,6 +99,7 @@ import ru.tech.imageresizershrinker.coredomain.model.IntegerSize
|
||||
import ru.tech.imageresizershrinker.coreui.utils.state.update
|
||||
import ru.tech.imageresizershrinker.coreui.widget.image.Picture
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.container
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.Loading
|
||||
import ru.tech.imageresizershrinker.coreui.widget.utils.LocalImageLoader
|
||||
import ru.tech.imageresizershrinker.coreui.widget.utils.LocalWindowSizeClass
|
||||
import kotlin.math.max
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.pdf_tools_screen.viewModel
|
||||
package ru.tech.imageresizershrinker.feature.pdf_tools.presentation.viewModel
|
||||
|
||||
import android.graphics.Bitmap
|
||||
import android.net.Uri
|
||||
@ -22,7 +22,7 @@ import ru.tech.imageresizershrinker.coredomain.model.Preset
|
||||
import ru.tech.imageresizershrinker.coredomain.saving.FileController
|
||||
import ru.tech.imageresizershrinker.coredomain.saving.SaveResult
|
||||
import ru.tech.imageresizershrinker.coredomain.saving.model.ImageSaveTarget
|
||||
import ru.tech.imageresizershrinker.presentation.pdf_tools_screen.components.PdfToImageState
|
||||
import ru.tech.imageresizershrinker.feature.pdf_tools.presentation.components.PdfToImageState
|
||||
import ru.tech.imageresizershrinker.coreui.utils.navigation.Screen
|
||||
import ru.tech.imageresizershrinker.coreui.utils.state.update
|
||||
import java.io.OutputStream
|
1
feature/single-edit/.gitignore
vendored
Normal file
1
feature/single-edit/.gitignore
vendored
Normal file
@ -0,0 +1 @@
|
||||
/build
|
60
feature/single-edit/build.gradle.kts
Normal file
60
feature/single-edit/build.gradle.kts
Normal file
@ -0,0 +1,60 @@
|
||||
@Suppress("DSL_SCOPE_VIOLATION") // TODO: Remove once KTIJ-19369 is fixed
|
||||
plugins {
|
||||
id("com.android.library")
|
||||
id("org.jetbrains.kotlin.android")
|
||||
kotlin("kapt")
|
||||
}
|
||||
|
||||
android {
|
||||
namespace = "ru.tech.imageresizershrinker.feature.single_edit"
|
||||
compileSdk = libs.versions.androidCompileSdk.get().toIntOrNull()
|
||||
|
||||
defaultConfig {
|
||||
minSdk = libs.versions.androidMinSdk.get().toIntOrNull()
|
||||
}
|
||||
|
||||
compileOptions {
|
||||
sourceCompatibility = rootProject.extra.get("javaCompile") as JavaVersion
|
||||
targetCompatibility = rootProject.extra.get("javaCompile") as JavaVersion
|
||||
}
|
||||
|
||||
kotlinOptions {
|
||||
jvmTarget = libs.versions.jvmTarget.get()
|
||||
}
|
||||
|
||||
composeOptions {
|
||||
kotlinCompilerExtensionVersion = libs.versions.compose.compiler.get()
|
||||
}
|
||||
|
||||
buildFeatures {
|
||||
compose = true
|
||||
}
|
||||
|
||||
flavorDimensions += "app"
|
||||
|
||||
productFlavors {
|
||||
create("foss") {
|
||||
dimension = "app"
|
||||
}
|
||||
create("market") {
|
||||
dimension = "app"
|
||||
}
|
||||
create("jxl") {
|
||||
dimension = "app"
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(":core-domain"))
|
||||
implementation(project(":core-ui"))
|
||||
implementation(project(":core-data"))
|
||||
implementation(project(":core-resources"))
|
||||
|
||||
implementation(project(":feature:crop"))
|
||||
implementation(project(":feature:erase-background"))
|
||||
implementation(project(":feature:draw"))
|
||||
|
||||
implementation(libs.hilt)
|
||||
kapt(libs.dagger.hilt.compiler)
|
||||
}
|
4
feature/single-edit/src/main/AndroidManifest.xml
Normal file
4
feature/single-edit/src/main/AndroidManifest.xml
Normal file
@ -0,0 +1,4 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
|
||||
|
||||
</manifest>
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.single_edit_screen
|
||||
package ru.tech.imageresizershrinker.feature.single_edit.presentation
|
||||
|
||||
import android.content.res.Configuration
|
||||
import android.net.Uri
|
||||
@ -108,12 +108,12 @@ import ru.tech.imageresizershrinker.coreui.widget.utils.LocalWindowSizeClass
|
||||
import ru.tech.imageresizershrinker.coreui.widget.utils.isExpanded
|
||||
import ru.tech.imageresizershrinker.coreui.widget.utils.middleImageState
|
||||
import ru.tech.imageresizershrinker.coreui.widget.utils.rememberAvailableHeight
|
||||
import ru.tech.imageresizershrinker.presentation.single_edit_screen.components.CropEditOption
|
||||
import ru.tech.imageresizershrinker.presentation.single_edit_screen.components.DrawEditOption
|
||||
import ru.tech.imageresizershrinker.feature.single_edit.presentation.components.CropEditOption
|
||||
import ru.tech.imageresizershrinker.feature.single_edit.presentation.components.DrawEditOption
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.EditExifSheet
|
||||
import ru.tech.imageresizershrinker.presentation.single_edit_screen.components.EraseBackgroundEditOption
|
||||
import ru.tech.imageresizershrinker.presentation.single_edit_screen.components.FilterEditOption
|
||||
import ru.tech.imageresizershrinker.presentation.single_edit_screen.viewModel.SingleEditViewModel
|
||||
import ru.tech.imageresizershrinker.feature.single_edit.presentation.components.EraseBackgroundEditOption
|
||||
import ru.tech.imageresizershrinker.feature.single_edit.presentation.components.FilterEditOption
|
||||
import ru.tech.imageresizershrinker.feature.single_edit.presentation.viewModel.SingleEditViewModel
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.single_edit_screen.components
|
||||
package ru.tech.imageresizershrinker.feature.single_edit.presentation.components
|
||||
|
||||
import android.graphics.Bitmap
|
||||
import android.net.Uri
|
||||
@ -40,16 +40,16 @@ import com.smarttoolfactory.cropper.settings.CropProperties
|
||||
import kotlinx.coroutines.Job
|
||||
import kotlinx.coroutines.delay
|
||||
import kotlinx.coroutines.launch
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coredomain.model.DomainAspectRatio
|
||||
import ru.tech.imageresizershrinker.feature.crop.presentation.components.AspectRatioSelection
|
||||
import ru.tech.imageresizershrinker.feature.crop.presentation.components.CropMaskSelection
|
||||
import ru.tech.imageresizershrinker.feature.crop.presentation.components.Cropper
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedIconButton
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.autoElevatedBorder
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.drawHorizontalStroke
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.Loading
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.Marquee
|
||||
import ru.tech.imageresizershrinker.feature.crop.presentation.components.AspectRatioSelection
|
||||
import ru.tech.imageresizershrinker.feature.crop.presentation.components.CropMaskSelection
|
||||
import ru.tech.imageresizershrinker.feature.crop.presentation.components.Cropper
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
||||
@ -75,7 +75,7 @@ fun CropEditOption(
|
||||
onDismiss = onDismiss,
|
||||
useScaffold = useScaffold,
|
||||
controls = {
|
||||
ru.tech.imageresizershrinker.feature.crop.presentation.components.AspectRatioSelection(
|
||||
AspectRatioSelection(
|
||||
modifier = Modifier
|
||||
.fillMaxWidth()
|
||||
.padding(vertical = 16.dp),
|
||||
@ -83,7 +83,7 @@ fun CropEditOption(
|
||||
onAspectRatioChange = setCropAspectRatio
|
||||
)
|
||||
HorizontalDivider()
|
||||
ru.tech.imageresizershrinker.feature.crop.presentation.components.CropMaskSelection(
|
||||
CropMaskSelection(
|
||||
onCropMaskChange = { setCropMask(it) },
|
||||
selectedItem = cropProperties.cropOutlineProperty,
|
||||
loadImage = {
|
||||
@ -143,7 +143,7 @@ fun CropEditOption(
|
||||
) {
|
||||
var loading by remember { mutableStateOf(false) }
|
||||
Box(contentAlignment = Alignment.Center) {
|
||||
ru.tech.imageresizershrinker.feature.crop.presentation.components.Cropper(
|
||||
Cropper(
|
||||
bitmap = stateBitmap,
|
||||
crop = crop,
|
||||
imageCropStarted = { loading = true },
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.single_edit_screen.components
|
||||
package ru.tech.imageresizershrinker.feature.single_edit.presentation.components
|
||||
|
||||
import android.graphics.Bitmap
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
@ -47,20 +47,11 @@ import androidx.compose.ui.graphics.Color
|
||||
import androidx.compose.ui.graphics.asImageBitmap
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coredomain.image.ImageManager
|
||||
import ru.tech.imageresizershrinker.coredomain.image.draw.DrawMode
|
||||
import ru.tech.imageresizershrinker.coredomain.image.draw.DrawPathMode
|
||||
import ru.tech.imageresizershrinker.coredomain.image.draw.pt
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.BitmapDrawer
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.BrushSoftnessSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.DrawAlphaSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.DrawColorSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.DrawModeSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.DrawPathModeSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.LineWidthSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.OpenColorPickerCard
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.PickColorFromImageSheet
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coreui.icons.material.Eraser
|
||||
import ru.tech.imageresizershrinker.coreui.model.PtSaver
|
||||
import ru.tech.imageresizershrinker.coreui.model.UiPathPaint
|
||||
@ -70,14 +61,23 @@ import ru.tech.imageresizershrinker.coreui.theme.outlineVariant
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedIconButton
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedSwitch
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedSwitchDefaults
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.BrushSoftnessSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.DrawAlphaSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.DrawColorSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.DrawModeSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.DrawPathModeSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.LineWidthSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.OpenColorPickerCard
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.container
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.drawHorizontalStroke
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.DrawLockScreenOrientation
|
||||
import ru.tech.imageresizershrinker.coreui.widget.saver.ColorSaver
|
||||
import ru.tech.imageresizershrinker.coreui.widget.saver.DrawModeSaver
|
||||
import ru.tech.imageresizershrinker.coreui.widget.saver.DrawPathModeSaver
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.PickColorFromImageSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.Marquee
|
||||
import ru.tech.imageresizershrinker.coreui.widget.utils.LocalSettingsState
|
||||
import ru.tech.imageresizershrinker.feature.draw.presentation.components.BitmapDrawer
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.single_edit_screen.components
|
||||
package ru.tech.imageresizershrinker.feature.single_edit.presentation.components
|
||||
|
||||
import android.graphics.Bitmap
|
||||
import androidx.compose.animation.AnimatedContent
|
||||
@ -47,16 +47,9 @@ import androidx.compose.ui.platform.LocalContext
|
||||
import androidx.compose.ui.res.stringResource
|
||||
import androidx.compose.ui.unit.dp
|
||||
import kotlinx.coroutines.launch
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coredomain.image.ImageManager
|
||||
import ru.tech.imageresizershrinker.coredomain.image.draw.pt
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.BrushSoftnessSelector
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.LineWidthSelector
|
||||
import ru.tech.imageresizershrinker.presentation.erase_background_screen.components.AutoEraseBackgroundCard
|
||||
import ru.tech.imageresizershrinker.presentation.erase_background_screen.components.BitmapEraser
|
||||
import ru.tech.imageresizershrinker.presentation.erase_background_screen.components.EraseModeButton
|
||||
import ru.tech.imageresizershrinker.presentation.erase_background_screen.components.EraseModeCard
|
||||
import ru.tech.imageresizershrinker.presentation.erase_background_screen.components.TrimImageToggle
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coreui.icons.material.Transparency
|
||||
import ru.tech.imageresizershrinker.coreui.model.PtSaver
|
||||
import ru.tech.imageresizershrinker.coreui.model.UiPathPaint
|
||||
@ -65,6 +58,12 @@ import ru.tech.imageresizershrinker.coreui.utils.confetti.LocalConfettiControlle
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedIconButton
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedSwitch
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.EnhancedSwitchDefaults
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.AutoEraseBackgroundCard
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.BrushSoftnessSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.EraseModeButton
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.EraseModeCard
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.LineWidthSelector
|
||||
import ru.tech.imageresizershrinker.coreui.widget.controls.draw.TrimImageToggle
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.container
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.drawHorizontalStroke
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.DrawLockScreenOrientation
|
||||
@ -73,6 +72,7 @@ import ru.tech.imageresizershrinker.coreui.widget.other.LocalToastHost
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.showError
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.Marquee
|
||||
import ru.tech.imageresizershrinker.coreui.widget.utils.LocalSettingsState
|
||||
import ru.tech.imageresizershrinker.feature.erase_background.presentation.components.BitmapEraser
|
||||
|
||||
@OptIn(ExperimentalMaterial3Api::class)
|
||||
@Composable
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.single_edit_screen.components
|
||||
package ru.tech.imageresizershrinker.feature.single_edit.presentation.components
|
||||
|
||||
import android.graphics.Bitmap
|
||||
import androidx.compose.animation.AnimatedVisibility
|
||||
@ -52,13 +52,9 @@ import coil.size.Size
|
||||
import com.smarttoolfactory.image.zoom.animatedZoom
|
||||
import com.smarttoolfactory.image.zoom.rememberAnimatedZoomState
|
||||
import kotlinx.coroutines.launch
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coredomain.image.ImageManager
|
||||
import ru.tech.imageresizershrinker.coredomain.image.Transformation
|
||||
import ru.tech.imageresizershrinker.presentation.draw_screen.components.PickColorFromImageSheet
|
||||
import ru.tech.imageresizershrinker.presentation.filters_screen.components.AddFiltersSheet
|
||||
import ru.tech.imageresizershrinker.presentation.filters_screen.components.FilterItem
|
||||
import ru.tech.imageresizershrinker.presentation.filters_screen.components.FilterReorderSheet
|
||||
import ru.tech.imageresizershrinker.coreresources.R
|
||||
import ru.tech.imageresizershrinker.coreui.theme.mixedContainer
|
||||
import ru.tech.imageresizershrinker.coreui.transformation.filter.UiFilter
|
||||
import ru.tech.imageresizershrinker.coreui.utils.helper.ImageUtils.toBitmap
|
||||
@ -69,8 +65,12 @@ import ru.tech.imageresizershrinker.coreui.widget.modifier.autoElevatedBorder
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.container
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.drawHorizontalStroke
|
||||
import ru.tech.imageresizershrinker.coreui.widget.modifier.transparencyChecker
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.FilterItem
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.LocalToastHost
|
||||
import ru.tech.imageresizershrinker.coreui.widget.other.showError
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.AddFiltersSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.FilterReorderSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.sheets.PickColorFromImageSheet
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.Marquee
|
||||
import ru.tech.imageresizershrinker.coreui.widget.text.TitleItem
|
||||
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.single_edit_screen.components
|
||||
package ru.tech.imageresizershrinker.feature.single_edit.presentation.components
|
||||
|
||||
import androidx.activity.compose.BackHandler
|
||||
import androidx.compose.animation.AnimatedVisibility
|
@ -1,4 +1,4 @@
|
||||
package ru.tech.imageresizershrinker.presentation.single_edit_screen.viewModel
|
||||
package ru.tech.imageresizershrinker.feature.single_edit.presentation.viewModel
|
||||
|
||||
import android.content.pm.ActivityInfo
|
||||
import android.graphics.Bitmap
|
@ -1,5 +1,17 @@
|
||||
@file:Suppress("UnstableApiUsage")
|
||||
|
||||
include(":feature:draw")
|
||||
|
||||
|
||||
include(":feature:erase-background")
|
||||
|
||||
|
||||
include(":feature:single-edit")
|
||||
|
||||
|
||||
include(":feature:pdf-tools")
|
||||
|
||||
|
||||
include(":feature:resize-convert")
|
||||
|
||||
|
||||
|
Reference in New Issue
Block a user