modularization

This commit is contained in:
T8RIN
2024-01-03 01:57:34 +03:00
parent c7029b9787
commit 0592edb2bb
53 changed files with 385 additions and 133 deletions

View File

@ -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")

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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(

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
View File

@ -0,0 +1 @@
/build

View 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)
}

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
</manifest>

View File

@ -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

View File

@ -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

View File

@ -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
View File

@ -0,0 +1 @@
/build

View 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)
}

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
</manifest>

View File

@ -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

View File

@ -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

View File

@ -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
View File

@ -0,0 +1 @@
/build

View 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)
}

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
</manifest>

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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
View File

@ -0,0 +1 @@
/build

View 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)
}

View File

@ -0,0 +1,4 @@
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android">
</manifest>

View File

@ -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

View File

@ -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 },

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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

View File

@ -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")