From 042a9ebcf5d5af595924d18af01ba1acadbe3d6e Mon Sep 17 00:00:00 2001 From: T8RIN Date: Sun, 21 Jan 2024 03:34:06 +0300 Subject: [PATCH] core settings added --- app/build.gradle.kts | 3 +- .../crash_screen/viewModel/CrashViewModel.kt | 4 +- .../ImageToolboxLibraryFeaturePlugin.kt | 1 + core/data/build.gradle.kts | 2 + .../core/data/di/ImageModule.kt | 5 +- .../core/data/di/SavingModule.kt | 7 +- .../core/data/image/AndroidImageCompressor.kt | 2 +- .../core/data/image/AndroidImageScaler.kt | 2 +- .../core/data/saving/FileControllerImpl.kt | 80 ++++---------- core/settings/.gitignore | 1 + .../build.gradle.kts} | 24 ++--- core/settings/src/main/AndroidManifest.xml | 20 ++++ .../settings/data}/BorderWidthMigration.kt | 5 +- .../core/settings/data}/Keys.kt | 4 +- .../settings/data}/SettingsRepositoryImpl.kt | 100 +++++++++--------- .../core/settings}/di/DataStoreModule.kt | 4 +- .../core/settings/di/SettingsModule.kt} | 9 +- .../settings/domain}/SettingsRepository.kt | 2 +- .../use_case}/CreateBackupFileUseCase.kt | 4 +- .../use_case}/CreateBackupFilenameUseCase.kt | 4 +- .../use_case}/GetSettingsStateFlowUseCase.kt | 4 +- .../use_case}/GetSettingsStateUseCase.kt | 4 +- .../use_case}/RestoreFromBackupFileUseCase.kt | 4 +- core/ui/build.gradle.kts | 2 + .../activity/SettingsStateEntryPoint.kt | 2 +- .../presentation/viewModel/MainViewModel.kt | 7 +- .../viewModel/RecognizeTextViewModel.kt | 3 +- settings.gradle.kts | 3 + 28 files changed, 148 insertions(+), 164 deletions(-) create mode 100644 core/settings/.gitignore rename core/{domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/saving/model/FileParams.kt => settings/build.gradle.kts} (60%) create mode 100644 core/settings/src/main/AndroidManifest.xml rename core/{data/src/main/java/ru/tech/imageresizershrinker/core/data/migrations => settings/src/main/java/ru/tech/imageresizershrinker/core/settings/data}/BorderWidthMigration.kt (88%) rename core/{data/src/main/java/ru/tech/imageresizershrinker/core/data/keys => settings/src/main/java/ru/tech/imageresizershrinker/core/settings/data}/Keys.kt (98%) rename core/{data/src/main/java/ru/tech/imageresizershrinker/core/data/repository => settings/src/main/java/ru/tech/imageresizershrinker/core/settings/data}/SettingsRepositoryImpl.kt (82%) rename core/{data/src/main/java/ru/tech/imageresizershrinker/core/data => settings/src/main/java/ru/tech/imageresizershrinker/core/settings}/di/DataStoreModule.kt (92%) rename core/{data/src/main/java/ru/tech/imageresizershrinker/core/data/di/RepositoryModule.kt => settings/src/main/java/ru/tech/imageresizershrinker/core/settings/di/SettingsModule.kt} (84%) rename core/{domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/repository => settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain}/SettingsRepository.kt (98%) rename core/{domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/backup_and_restore => settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case}/CreateBackupFileUseCase.kt (85%) rename core/{domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/backup_and_restore => settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case}/CreateBackupFilenameUseCase.kt (85%) rename core/{domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/get_settings_state => settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case}/GetSettingsStateFlowUseCase.kt (85%) rename core/{domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/get_settings_state => settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case}/GetSettingsStateUseCase.kt (85%) rename core/{domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/backup_and_restore => settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case}/RestoreFromBackupFileUseCase.kt (87%) diff --git a/app/build.gradle.kts b/app/build.gradle.kts index 6360c6d2b..46726969f 100644 --- a/app/build.gradle.kts +++ b/app/build.gradle.kts @@ -168,7 +168,6 @@ android { } dependencies { - coreLibraryDesugaring(libs.desugaring) //Di @@ -185,12 +184,12 @@ dependencies { implementation(projects.core.ui) implementation(projects.core.data) implementation(projects.core.resources) + implementation(projects.core.settings) implementation(projects.feature.main) "marketImplementation"(libs.firebase.crashlytics.ktx) "marketImplementation"(libs.firebase.analytics.ktx) - } diff --git a/app/src/main/java/ru/tech/imageresizershrinker/presentation/crash_screen/viewModel/CrashViewModel.kt b/app/src/main/java/ru/tech/imageresizershrinker/presentation/crash_screen/viewModel/CrashViewModel.kt index 887efacb3..90b808b37 100644 --- a/app/src/main/java/ru/tech/imageresizershrinker/presentation/crash_screen/viewModel/CrashViewModel.kt +++ b/app/src/main/java/ru/tech/imageresizershrinker/presentation/crash_screen/viewModel/CrashViewModel.kt @@ -26,8 +26,8 @@ import kotlinx.coroutines.flow.launchIn import kotlinx.coroutines.flow.onEach import kotlinx.coroutines.runBlocking import ru.tech.imageresizershrinker.core.domain.model.SettingsState -import ru.tech.imageresizershrinker.core.domain.use_case.get_settings_state.GetSettingsStateFlowUseCase -import ru.tech.imageresizershrinker.core.domain.use_case.get_settings_state.GetSettingsStateUseCase +import ru.tech.imageresizershrinker.core.settings.domain.use_case.GetSettingsStateFlowUseCase +import ru.tech.imageresizershrinker.core.settings.domain.use_case.GetSettingsStateUseCase import javax.inject.Inject @HiltViewModel diff --git a/build-logic/convention/src/main/kotlin/ImageToolboxLibraryFeaturePlugin.kt b/build-logic/convention/src/main/kotlin/ImageToolboxLibraryFeaturePlugin.kt index 18eaa7046..fcfb6170d 100644 --- a/build-logic/convention/src/main/kotlin/ImageToolboxLibraryFeaturePlugin.kt +++ b/build-logic/convention/src/main/kotlin/ImageToolboxLibraryFeaturePlugin.kt @@ -32,6 +32,7 @@ class ImageToolboxLibraryFeaturePlugin : Plugin { "implementation"(project(":core:ui")) "implementation"(project(":core:domain")) "implementation"(project(":core:resources")) + "implementation"(project(":core:settings")) } } } diff --git a/core/data/build.gradle.kts b/core/data/build.gradle.kts index 6a523c1b4..3c661ab68 100644 --- a/core/data/build.gradle.kts +++ b/core/data/build.gradle.kts @@ -45,4 +45,6 @@ dependencies { implementation(projects.core.resources) implementation(projects.core.filters) + + implementation(projects.core.settings) } \ No newline at end of file diff --git a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/di/ImageModule.kt b/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/di/ImageModule.kt index 368086a86..29d846778 100644 --- a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/di/ImageModule.kt +++ b/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/di/ImageModule.kt @@ -38,7 +38,6 @@ import ru.tech.imageresizershrinker.core.domain.image.ImagePreviewCreator import ru.tech.imageresizershrinker.core.domain.image.ImageScaler import ru.tech.imageresizershrinker.core.domain.image.ImageTransformer import ru.tech.imageresizershrinker.core.domain.image.ShareProvider -import ru.tech.imageresizershrinker.core.domain.repository.SettingsRepository import ru.tech.imageresizershrinker.core.domain.saving.FileController import ru.tech.imageresizershrinker.core.filters.domain.FilterProvider import javax.inject.Singleton @@ -60,7 +59,7 @@ object ImageModule { @Singleton @Provides fun provideImageScaler( - settingsRepository: SettingsRepository, + settingsRepository: ru.tech.imageresizershrinker.core.settings.domain.SettingsRepository, imageCompressor: ImageCompressor, imageTransformer: ImageTransformer, filterProvider: FilterProvider @@ -76,7 +75,7 @@ object ImageModule { fun provideImageCompressor( @ApplicationContext context: Context, imageTransformer: ImageTransformer, - settingsRepository: SettingsRepository, + settingsRepository: ru.tech.imageresizershrinker.core.settings.domain.SettingsRepository, filterProvider: FilterProvider ): ImageCompressor = AndroidImageCompressor( context = context, diff --git a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/di/SavingModule.kt b/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/di/SavingModule.kt index 4b0774db5..d28c83d99 100644 --- a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/di/SavingModule.kt +++ b/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/di/SavingModule.kt @@ -18,8 +18,6 @@ package ru.tech.imageresizershrinker.core.data.di import android.content.Context -import androidx.datastore.core.DataStore -import androidx.datastore.preferences.core.Preferences import dagger.Module import dagger.Provides import dagger.hilt.InstallIn @@ -28,6 +26,7 @@ import dagger.hilt.components.SingletonComponent import ru.tech.imageresizershrinker.core.data.saving.FileControllerImpl import ru.tech.imageresizershrinker.core.domain.saving.FileController import ru.tech.imageresizershrinker.core.domain.saving.RandomStringGenerator +import ru.tech.imageresizershrinker.core.settings.domain.SettingsRepository import javax.inject.Singleton @Module @@ -38,11 +37,11 @@ object SavingModule { @Provides fun provideFileController( @ApplicationContext context: Context, - dataStore: DataStore, + settingsRepository: SettingsRepository, randomStringGenerator: RandomStringGenerator ): FileController = FileControllerImpl( context = context, - dataStore = dataStore, + settingsRepository = settingsRepository, randomStringGenerator = randomStringGenerator ) diff --git a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/image/AndroidImageCompressor.kt b/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/image/AndroidImageCompressor.kt index d59ee609c..43a510e2b 100644 --- a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/image/AndroidImageCompressor.kt +++ b/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/image/AndroidImageCompressor.kt @@ -34,8 +34,8 @@ import ru.tech.imageresizershrinker.core.domain.image.ImageScaler import ru.tech.imageresizershrinker.core.domain.image.ImageTransformer import ru.tech.imageresizershrinker.core.domain.model.ImageFormat import ru.tech.imageresizershrinker.core.domain.model.ImageInfo -import ru.tech.imageresizershrinker.core.domain.repository.SettingsRepository import ru.tech.imageresizershrinker.core.filters.domain.FilterProvider +import ru.tech.imageresizershrinker.core.settings.domain.SettingsRepository import java.io.ByteArrayOutputStream import javax.inject.Inject diff --git a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/image/AndroidImageScaler.kt b/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/image/AndroidImageScaler.kt index 3202e81ba..c2d287dad 100644 --- a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/image/AndroidImageScaler.kt +++ b/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/image/AndroidImageScaler.kt @@ -36,9 +36,9 @@ import ru.tech.imageresizershrinker.core.domain.model.ImageFormat import ru.tech.imageresizershrinker.core.domain.model.ImageInfo import ru.tech.imageresizershrinker.core.domain.model.ImageScaleMode import ru.tech.imageresizershrinker.core.domain.model.ResizeType -import ru.tech.imageresizershrinker.core.domain.repository.SettingsRepository import ru.tech.imageresizershrinker.core.filters.domain.FilterProvider import ru.tech.imageresizershrinker.core.filters.domain.model.Filter +import ru.tech.imageresizershrinker.core.settings.domain.SettingsRepository import java.io.ByteArrayInputStream import java.io.ByteArrayOutputStream import javax.inject.Inject diff --git a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/saving/FileControllerImpl.kt b/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/saving/FileControllerImpl.kt index d2debe9a9..6c940de4d 100644 --- a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/saving/FileControllerImpl.kt +++ b/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/saving/FileControllerImpl.kt @@ -32,9 +32,6 @@ import android.provider.OpenableColumns import androidx.core.content.ContextCompat import androidx.core.content.FileProvider import androidx.core.net.toUri -import androidx.datastore.core.DataStore -import androidx.datastore.preferences.core.Preferences -import androidx.datastore.preferences.core.edit import androidx.documentfile.provider.DocumentFile import androidx.exifinterface.media.ExifInterface import kotlinx.coroutines.CoroutineScope @@ -42,26 +39,17 @@ import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.launch import kotlinx.coroutines.withContext import okio.use -import ru.tech.imageresizershrinker.core.data.keys.Keys.ADD_ORIGINAL_NAME_TO_FILENAME -import ru.tech.imageresizershrinker.core.data.keys.Keys.ADD_SEQ_NUM_TO_FILENAME -import ru.tech.imageresizershrinker.core.data.keys.Keys.ADD_SIZE_TO_FILENAME -import ru.tech.imageresizershrinker.core.data.keys.Keys.COPY_TO_CLIPBOARD_MODE -import ru.tech.imageresizershrinker.core.data.keys.Keys.FILENAME_PREFIX -import ru.tech.imageresizershrinker.core.data.keys.Keys.FILENAME_SUFFIX -import ru.tech.imageresizershrinker.core.data.keys.Keys.IMAGE_PICKER_MODE -import ru.tech.imageresizershrinker.core.data.keys.Keys.OVERWRITE_FILE -import ru.tech.imageresizershrinker.core.data.keys.Keys.RANDOMIZE_FILENAME -import ru.tech.imageresizershrinker.core.data.keys.Keys.SAVE_FOLDER_URI import ru.tech.imageresizershrinker.core.domain.image.Metadata import ru.tech.imageresizershrinker.core.domain.model.CopyToClipboardMode +import ru.tech.imageresizershrinker.core.domain.model.SettingsState import ru.tech.imageresizershrinker.core.domain.saving.FileController import ru.tech.imageresizershrinker.core.domain.saving.RandomStringGenerator import ru.tech.imageresizershrinker.core.domain.saving.SaveResult import ru.tech.imageresizershrinker.core.domain.saving.SaveTarget -import ru.tech.imageresizershrinker.core.domain.saving.model.FileParams import ru.tech.imageresizershrinker.core.domain.saving.model.ImageSaveTarget import ru.tech.imageresizershrinker.core.domain.utils.readableByteCount import ru.tech.imageresizershrinker.core.resources.R +import ru.tech.imageresizershrinker.core.settings.domain.SettingsRepository import java.io.File import java.io.FileOutputStream import java.io.OutputStream @@ -74,40 +62,18 @@ import kotlin.random.Random class FileControllerImpl @Inject constructor( private val context: Context, - private val dataStore: DataStore, + private val settingsRepository: SettingsRepository, private val randomStringGenerator: RandomStringGenerator ) : FileController { - private var _fileParams: FileParams = FileParams( - treeUri = null, - filenamePrefix = "", - filenameSuffix = "", - addSizeInFilename = false, - addOriginalFilename = false, - addSequenceNumber = false, - randomizeFilename = false, - copyToClipboardMode = CopyToClipboardMode.Disabled, - overwriteFile = false - ) + private var _settingsState: SettingsState = SettingsState.Default - private val fileParams get() = _fileParams + private val settingsState get() = _settingsState init { CoroutineScope(Dispatchers.IO).launch { - dataStore.data.collect { preferences -> - _fileParams = _fileParams.copy( - treeUri = preferences[SAVE_FOLDER_URI]?.takeIf { it.isNotEmpty() }, - filenamePrefix = preferences[FILENAME_PREFIX] ?: "ResizedImage", - filenameSuffix = preferences[FILENAME_SUFFIX] ?: "", - addSizeInFilename = preferences[ADD_SIZE_TO_FILENAME] ?: false, - addOriginalFilename = preferences[ADD_ORIGINAL_NAME_TO_FILENAME] ?: false, - addSequenceNumber = preferences[ADD_SEQ_NUM_TO_FILENAME] ?: true, - randomizeFilename = preferences[RANDOMIZE_FILENAME] ?: false, - copyToClipboardMode = preferences[COPY_TO_CLIPBOARD_MODE]?.let { - CopyToClipboardMode.fromInt(it) - } ?: CopyToClipboardMode.Disabled, - overwriteFile = preferences[OVERWRITE_FILE] ?: false - ) + settingsRepository.getSettingsStateFlow().collect { state -> + _settingsState = state } } } @@ -137,7 +103,7 @@ class FileControllerImpl @Inject constructor( } override val savingPath: String - get() = fileParams.treeUri?.takeIf { it.isNotEmpty() }?.toUri().toUiPath( + get() = settingsState.saveFolderUri?.takeIf { it.isNotEmpty() }?.toUri().toUiPath( context = context, default = context.getString(R.string.default_folder) ) @@ -175,7 +141,7 @@ class FileControllerImpl @Inject constructor( } kotlin.runCatching { - if (fileParams.copyToClipboardMode is CopyToClipboardMode.Enabled) { + if (settingsState.copyToClipboardMode is CopyToClipboardMode.Enabled) { val clipboardManager = ContextCompat.getSystemService( context, ClipboardManager::class.java @@ -192,7 +158,7 @@ class FileControllerImpl @Inject constructor( } } - if (fileParams.copyToClipboardMode is CopyToClipboardMode.Enabled.WithoutSaving) { + if (settingsState.copyToClipboardMode is CopyToClipboardMode.Enabled.WithoutSaving) { return SaveResult.Success(context.getString(R.string.copied)) } @@ -201,15 +167,13 @@ class FileControllerImpl @Inject constructor( context.contentResolver.openFileDescriptor(originalUri, "r") }.isSuccess - if (fileParams.overwriteFile && hasOriginalUri) { + if (settingsState.overwriteFiles && hasOriginalUri) { runCatching { if (originalUri == Uri.EMPTY) throw IllegalStateException() context.contentResolver.openFileDescriptor(originalUri, "wt") }.onFailure { - dataStore.edit { - it[IMAGE_PICKER_MODE] = 2 - } + settingsRepository.setImagePickerMode(2) return SaveResult.Error.Exception( Exception( context.getString( @@ -238,7 +202,7 @@ class FileControllerImpl @Inject constructor( ) } } else { - fileParams.treeUri.takeIf { + settingsState.saveFolderUri.takeIf { it != null }?.let { treeUri -> val hasDir: Boolean = treeUri.toUri().let { @@ -246,9 +210,7 @@ class FileControllerImpl @Inject constructor( }?.exists() == true if (!hasDir) { - dataStore.edit { - it[SAVE_FOLDER_URI] = "" - } + settingsRepository.setSaveFolderUri(null) return SaveResult.Error.Exception( Exception( context.getString( @@ -274,7 +236,7 @@ class FileControllerImpl @Inject constructor( } else saveTarget val savingFolder = context.getSavingFolder( - treeUri = fileParams.treeUri?.takeIf { it.isNotEmpty() }?.toUri(), + treeUri = settingsState.saveFolderUri?.takeIf { it.isNotEmpty() }?.toUri(), saveTarget = newSaveTarget ) @@ -383,7 +345,7 @@ class FileControllerImpl @Inject constructor( ): String { val extension = saveTarget.imageInfo.imageFormat.extension - if (fileParams.randomizeFilename) return "${randomStringGenerator.generate(32)}.$extension" + if (settingsState.randomizeFilename) return "${randomStringGenerator.generate(32)}.$extension" val wh = "(" + (if (saveTarget.originalUri.toUri() == Uri.EMPTY) context.getString(R.string.width) @@ -391,20 +353,20 @@ class FileControllerImpl @Inject constructor( R.string.height ).split(" ")[0] else saveTarget.imageInfo.height) + ")" - var prefix = fileParams.filenamePrefix - var suffix = fileParams.filenameSuffix + var prefix = settingsState.filenamePrefix + var suffix = settingsState.filenameSuffix if (prefix.isNotEmpty()) prefix = "${prefix}_" if (suffix.isNotEmpty()) suffix = "_$suffix" - if (fileParams.addOriginalFilename) { + if (settingsState.addOriginalFilename) { prefix += if (saveTarget.originalUri.toUri() != Uri.EMPTY) { context.getFileName(saveTarget.originalUri.toUri()) ?: "" } else { context.getString(R.string.original_filename) } } - if (fileParams.addSizeInFilename) prefix += wh + if (settingsState.addSizeInFilename) prefix += wh val timeStamp = SimpleDateFormat( "yyyy-MM-dd_HH-mm-ss", @@ -412,7 +374,7 @@ class FileControllerImpl @Inject constructor( ).format(Date()) + "_${Random(Random.nextInt()).hashCode().toString().take(4)}" return "$prefix${ - if (fileParams.addSequenceNumber && saveTarget.sequenceNumber != null) { + if (settingsState.addSequenceNumber && saveTarget.sequenceNumber != null) { SimpleDateFormat( "yyyy-MM-dd_HH-mm-ss", Locale.getDefault() diff --git a/core/settings/.gitignore b/core/settings/.gitignore new file mode 100644 index 000000000..42afabfd2 --- /dev/null +++ b/core/settings/.gitignore @@ -0,0 +1 @@ +/build \ No newline at end of file diff --git a/core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/saving/model/FileParams.kt b/core/settings/build.gradle.kts similarity index 60% rename from core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/saving/model/FileParams.kt rename to core/settings/build.gradle.kts index a902d4a16..60eaafc06 100644 --- a/core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/saving/model/FileParams.kt +++ b/core/settings/build.gradle.kts @@ -15,18 +15,16 @@ * along with this program. If not, see . */ -package ru.tech.imageresizershrinker.core.domain.saving.model +plugins { + alias(libs.plugins.image.toolbox.library) + alias(libs.plugins.image.toolbox.hilt) +} -import ru.tech.imageresizershrinker.core.domain.model.CopyToClipboardMode +android.namespace = "ru.tech.imageresizershrinker.core.settings" -data class FileParams( - val treeUri: String?, - val filenamePrefix: String, - val filenameSuffix: String, - val addSizeInFilename: Boolean, - val addOriginalFilename: Boolean, - val addSequenceNumber: Boolean, - val randomizeFilename: Boolean, - val copyToClipboardMode: CopyToClipboardMode, - val overwriteFile: Boolean -) \ No newline at end of file +dependencies { + api(libs.datastore.preferences.android) + + implementation(projects.core.domain) + implementation(projects.core.resources) +} \ No newline at end of file diff --git a/core/settings/src/main/AndroidManifest.xml b/core/settings/src/main/AndroidManifest.xml new file mode 100644 index 000000000..0862d94c4 --- /dev/null +++ b/core/settings/src/main/AndroidManifest.xml @@ -0,0 +1,20 @@ + + + + + \ No newline at end of file diff --git a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/migrations/BorderWidthMigration.kt b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/data/BorderWidthMigration.kt similarity index 88% rename from core/data/src/main/java/ru/tech/imageresizershrinker/core/data/migrations/BorderWidthMigration.kt rename to core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/data/BorderWidthMigration.kt index 960ccbbe4..4e42805f6 100644 --- a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/migrations/BorderWidthMigration.kt +++ b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/data/BorderWidthMigration.kt @@ -15,14 +15,13 @@ * along with this program. If not, see . */ -package ru.tech.imageresizershrinker.core.data.migrations +package ru.tech.imageresizershrinker.core.settings.data import androidx.datastore.core.DataMigration import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.booleanPreferencesKey -import ru.tech.imageresizershrinker.core.data.keys.Keys -class BorderWidthMigration : DataMigration { +internal class BorderWidthMigration : DataMigration { private val migrated = booleanPreferencesKey("migratedBorders") override suspend fun cleanUp() = Unit diff --git a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/keys/Keys.kt b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/data/Keys.kt similarity index 98% rename from core/data/src/main/java/ru/tech/imageresizershrinker/core/data/keys/Keys.kt rename to core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/data/Keys.kt index 3cb1efb8f..c4222eb5e 100644 --- a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/keys/Keys.kt +++ b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/data/Keys.kt @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package ru.tech.imageresizershrinker.core.data.keys +package ru.tech.imageresizershrinker.core.settings.data import androidx.datastore.preferences.core.booleanPreferencesKey import androidx.datastore.preferences.core.doublePreferencesKey @@ -23,7 +23,7 @@ import androidx.datastore.preferences.core.floatPreferencesKey import androidx.datastore.preferences.core.intPreferencesKey import androidx.datastore.preferences.core.stringPreferencesKey -object Keys { +internal object Keys { val SAVE_FOLDER_URI = stringPreferencesKey("saveFolder") val NIGHT_MODE = intPreferencesKey("nightMode") val DYNAMIC_COLORS = booleanPreferencesKey("dynamicColors") diff --git a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/repository/SettingsRepositoryImpl.kt b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/data/SettingsRepositoryImpl.kt similarity index 82% rename from core/data/src/main/java/ru/tech/imageresizershrinker/core/data/repository/SettingsRepositoryImpl.kt rename to core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/data/SettingsRepositoryImpl.kt index f8194f50e..6eba1646c 100644 --- a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/repository/SettingsRepositoryImpl.kt +++ b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/data/SettingsRepositoryImpl.kt @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package ru.tech.imageresizershrinker.core.data.repository +package ru.tech.imageresizershrinker.core.settings.data import android.annotation.SuppressLint import android.content.Context @@ -30,62 +30,62 @@ import kotlinx.coroutines.flow.Flow import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.map import kotlinx.coroutines.withContext -import ru.tech.imageresizershrinker.core.data.keys.Keys.ADD_ORIGINAL_NAME_TO_FILENAME -import ru.tech.imageresizershrinker.core.data.keys.Keys.ADD_SEQ_NUM_TO_FILENAME -import ru.tech.imageresizershrinker.core.data.keys.Keys.ADD_SIZE_TO_FILENAME -import ru.tech.imageresizershrinker.core.data.keys.Keys.ALLOW_ANALYTICS -import ru.tech.imageresizershrinker.core.data.keys.Keys.ALLOW_BETAS -import ru.tech.imageresizershrinker.core.data.keys.Keys.ALLOW_CRASHLYTICS -import ru.tech.imageresizershrinker.core.data.keys.Keys.ALLOW_IMAGE_MONET -import ru.tech.imageresizershrinker.core.data.keys.Keys.AMOLED_MODE -import ru.tech.imageresizershrinker.core.data.keys.Keys.APP_COLOR_TUPLE -import ru.tech.imageresizershrinker.core.data.keys.Keys.APP_OPEN_COUNT -import ru.tech.imageresizershrinker.core.data.keys.Keys.AUTO_CACHE_CLEAR -import ru.tech.imageresizershrinker.core.data.keys.Keys.BORDER_WIDTH -import ru.tech.imageresizershrinker.core.data.keys.Keys.COLOR_TUPLES -import ru.tech.imageresizershrinker.core.data.keys.Keys.COPY_TO_CLIPBOARD_MODE -import ru.tech.imageresizershrinker.core.data.keys.Keys.DRAW_APPBAR_SHADOWS -import ru.tech.imageresizershrinker.core.data.keys.Keys.DRAW_BUTTON_SHADOWS -import ru.tech.imageresizershrinker.core.data.keys.Keys.DRAW_CONTAINER_SHADOWS -import ru.tech.imageresizershrinker.core.data.keys.Keys.DRAW_FAB_SHADOWS -import ru.tech.imageresizershrinker.core.data.keys.Keys.DRAW_SLIDER_SHADOWS -import ru.tech.imageresizershrinker.core.data.keys.Keys.DRAW_SWITCH_SHADOWS -import ru.tech.imageresizershrinker.core.data.keys.Keys.DYNAMIC_COLORS -import ru.tech.imageresizershrinker.core.data.keys.Keys.EMOJI_COUNT -import ru.tech.imageresizershrinker.core.data.keys.Keys.EXIF_WIDGET_INITIAL_STATE -import ru.tech.imageresizershrinker.core.data.keys.Keys.FAB_ALIGNMENT -import ru.tech.imageresizershrinker.core.data.keys.Keys.FILENAME_PREFIX -import ru.tech.imageresizershrinker.core.data.keys.Keys.FILENAME_SUFFIX -import ru.tech.imageresizershrinker.core.data.keys.Keys.FONT_SCALE -import ru.tech.imageresizershrinker.core.data.keys.Keys.GROUP_OPTIONS_BY_TYPE -import ru.tech.imageresizershrinker.core.data.keys.Keys.IMAGE_PICKER_MODE -import ru.tech.imageresizershrinker.core.data.keys.Keys.IMAGE_SCALE_MODE -import ru.tech.imageresizershrinker.core.data.keys.Keys.INITIAL_OCR_CODES -import ru.tech.imageresizershrinker.core.data.keys.Keys.INVERT_THEME -import ru.tech.imageresizershrinker.core.data.keys.Keys.LOCK_DRAW_ORIENTATION -import ru.tech.imageresizershrinker.core.data.keys.Keys.MAGNIFIER_ENABLED -import ru.tech.imageresizershrinker.core.data.keys.Keys.NIGHT_MODE -import ru.tech.imageresizershrinker.core.data.keys.Keys.OVERWRITE_FILE -import ru.tech.imageresizershrinker.core.data.keys.Keys.PRESETS -import ru.tech.imageresizershrinker.core.data.keys.Keys.RANDOMIZE_FILENAME -import ru.tech.imageresizershrinker.core.data.keys.Keys.SAVE_FOLDER_URI -import ru.tech.imageresizershrinker.core.data.keys.Keys.SCREEN_ORDER -import ru.tech.imageresizershrinker.core.data.keys.Keys.SCREEN_SEARCH_ENABLED -import ru.tech.imageresizershrinker.core.data.keys.Keys.SELECTED_EMOJI_INDEX -import ru.tech.imageresizershrinker.core.data.keys.Keys.SELECTED_FONT_INDEX -import ru.tech.imageresizershrinker.core.data.keys.Keys.SHOW_UPDATE_DIALOG -import ru.tech.imageresizershrinker.core.data.keys.Keys.THEME_CONTRAST_LEVEL -import ru.tech.imageresizershrinker.core.data.keys.Keys.THEME_STYLE -import ru.tech.imageresizershrinker.core.data.keys.Keys.USE_PIXEL_SWITCH -import ru.tech.imageresizershrinker.core.data.keys.Keys.VIBRATION_STRENGTH import ru.tech.imageresizershrinker.core.domain.model.CopyToClipboardMode import ru.tech.imageresizershrinker.core.domain.model.FontFam import ru.tech.imageresizershrinker.core.domain.model.ImageScaleMode import ru.tech.imageresizershrinker.core.domain.model.NightMode import ru.tech.imageresizershrinker.core.domain.model.Preset import ru.tech.imageresizershrinker.core.domain.model.SettingsState -import ru.tech.imageresizershrinker.core.domain.repository.SettingsRepository import ru.tech.imageresizershrinker.core.resources.R +import ru.tech.imageresizershrinker.core.settings.data.Keys.ADD_ORIGINAL_NAME_TO_FILENAME +import ru.tech.imageresizershrinker.core.settings.data.Keys.ADD_SEQ_NUM_TO_FILENAME +import ru.tech.imageresizershrinker.core.settings.data.Keys.ADD_SIZE_TO_FILENAME +import ru.tech.imageresizershrinker.core.settings.data.Keys.ALLOW_ANALYTICS +import ru.tech.imageresizershrinker.core.settings.data.Keys.ALLOW_BETAS +import ru.tech.imageresizershrinker.core.settings.data.Keys.ALLOW_CRASHLYTICS +import ru.tech.imageresizershrinker.core.settings.data.Keys.ALLOW_IMAGE_MONET +import ru.tech.imageresizershrinker.core.settings.data.Keys.AMOLED_MODE +import ru.tech.imageresizershrinker.core.settings.data.Keys.APP_COLOR_TUPLE +import ru.tech.imageresizershrinker.core.settings.data.Keys.APP_OPEN_COUNT +import ru.tech.imageresizershrinker.core.settings.data.Keys.AUTO_CACHE_CLEAR +import ru.tech.imageresizershrinker.core.settings.data.Keys.BORDER_WIDTH +import ru.tech.imageresizershrinker.core.settings.data.Keys.COLOR_TUPLES +import ru.tech.imageresizershrinker.core.settings.data.Keys.COPY_TO_CLIPBOARD_MODE +import ru.tech.imageresizershrinker.core.settings.data.Keys.DRAW_APPBAR_SHADOWS +import ru.tech.imageresizershrinker.core.settings.data.Keys.DRAW_BUTTON_SHADOWS +import ru.tech.imageresizershrinker.core.settings.data.Keys.DRAW_CONTAINER_SHADOWS +import ru.tech.imageresizershrinker.core.settings.data.Keys.DRAW_FAB_SHADOWS +import ru.tech.imageresizershrinker.core.settings.data.Keys.DRAW_SLIDER_SHADOWS +import ru.tech.imageresizershrinker.core.settings.data.Keys.DRAW_SWITCH_SHADOWS +import ru.tech.imageresizershrinker.core.settings.data.Keys.DYNAMIC_COLORS +import ru.tech.imageresizershrinker.core.settings.data.Keys.EMOJI_COUNT +import ru.tech.imageresizershrinker.core.settings.data.Keys.EXIF_WIDGET_INITIAL_STATE +import ru.tech.imageresizershrinker.core.settings.data.Keys.FAB_ALIGNMENT +import ru.tech.imageresizershrinker.core.settings.data.Keys.FILENAME_PREFIX +import ru.tech.imageresizershrinker.core.settings.data.Keys.FILENAME_SUFFIX +import ru.tech.imageresizershrinker.core.settings.data.Keys.FONT_SCALE +import ru.tech.imageresizershrinker.core.settings.data.Keys.GROUP_OPTIONS_BY_TYPE +import ru.tech.imageresizershrinker.core.settings.data.Keys.IMAGE_PICKER_MODE +import ru.tech.imageresizershrinker.core.settings.data.Keys.IMAGE_SCALE_MODE +import ru.tech.imageresizershrinker.core.settings.data.Keys.INITIAL_OCR_CODES +import ru.tech.imageresizershrinker.core.settings.data.Keys.INVERT_THEME +import ru.tech.imageresizershrinker.core.settings.data.Keys.LOCK_DRAW_ORIENTATION +import ru.tech.imageresizershrinker.core.settings.data.Keys.MAGNIFIER_ENABLED +import ru.tech.imageresizershrinker.core.settings.data.Keys.NIGHT_MODE +import ru.tech.imageresizershrinker.core.settings.data.Keys.OVERWRITE_FILE +import ru.tech.imageresizershrinker.core.settings.data.Keys.PRESETS +import ru.tech.imageresizershrinker.core.settings.data.Keys.RANDOMIZE_FILENAME +import ru.tech.imageresizershrinker.core.settings.data.Keys.SAVE_FOLDER_URI +import ru.tech.imageresizershrinker.core.settings.data.Keys.SCREEN_ORDER +import ru.tech.imageresizershrinker.core.settings.data.Keys.SCREEN_SEARCH_ENABLED +import ru.tech.imageresizershrinker.core.settings.data.Keys.SELECTED_EMOJI_INDEX +import ru.tech.imageresizershrinker.core.settings.data.Keys.SELECTED_FONT_INDEX +import ru.tech.imageresizershrinker.core.settings.data.Keys.SHOW_UPDATE_DIALOG +import ru.tech.imageresizershrinker.core.settings.data.Keys.THEME_CONTRAST_LEVEL +import ru.tech.imageresizershrinker.core.settings.data.Keys.THEME_STYLE +import ru.tech.imageresizershrinker.core.settings.data.Keys.USE_PIXEL_SWITCH +import ru.tech.imageresizershrinker.core.settings.data.Keys.VIBRATION_STRENGTH +import ru.tech.imageresizershrinker.core.settings.domain.SettingsRepository import java.io.ByteArrayInputStream import java.io.ByteArrayOutputStream import java.io.DataInputStream diff --git a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/di/DataStoreModule.kt b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/di/DataStoreModule.kt similarity index 92% rename from core/data/src/main/java/ru/tech/imageresizershrinker/core/data/di/DataStoreModule.kt rename to core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/di/DataStoreModule.kt index 60d587def..41ab5f18c 100644 --- a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/di/DataStoreModule.kt +++ b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/di/DataStoreModule.kt @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package ru.tech.imageresizershrinker.core.data.di +package ru.tech.imageresizershrinker.core.settings.di import android.content.Context import androidx.datastore.core.DataStore @@ -27,7 +27,7 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent -import ru.tech.imageresizershrinker.core.data.migrations.BorderWidthMigration +import ru.tech.imageresizershrinker.core.settings.data.BorderWidthMigration import javax.inject.Singleton @Module diff --git a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/di/RepositoryModule.kt b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/di/SettingsModule.kt similarity index 84% rename from core/data/src/main/java/ru/tech/imageresizershrinker/core/data/di/RepositoryModule.kt rename to core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/di/SettingsModule.kt index d1456710c..977544d4b 100644 --- a/core/data/src/main/java/ru/tech/imageresizershrinker/core/data/di/RepositoryModule.kt +++ b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/di/SettingsModule.kt @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package ru.tech.imageresizershrinker.core.data.di +package ru.tech.imageresizershrinker.core.settings.di import android.content.Context import androidx.datastore.core.DataStore @@ -25,13 +25,14 @@ import dagger.Provides import dagger.hilt.InstallIn import dagger.hilt.android.qualifiers.ApplicationContext import dagger.hilt.components.SingletonComponent -import ru.tech.imageresizershrinker.core.data.repository.SettingsRepositoryImpl -import ru.tech.imageresizershrinker.core.domain.repository.SettingsRepository +import ru.tech.imageresizershrinker.core.settings.data.SettingsRepositoryImpl +import ru.tech.imageresizershrinker.core.settings.domain.SettingsRepository import javax.inject.Singleton + @Module @InstallIn(SingletonComponent::class) -object RepositoryModule { +object SettingsModule { @Singleton @Provides diff --git a/core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/repository/SettingsRepository.kt b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/SettingsRepository.kt similarity index 98% rename from core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/repository/SettingsRepository.kt rename to core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/SettingsRepository.kt index 3655d957a..6a6cf94cd 100644 --- a/core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/repository/SettingsRepository.kt +++ b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/SettingsRepository.kt @@ -15,7 +15,7 @@ * along with this program. If not, see . */ -package ru.tech.imageresizershrinker.core.domain.repository +package ru.tech.imageresizershrinker.core.settings.domain import kotlinx.coroutines.flow.Flow import ru.tech.imageresizershrinker.core.domain.model.CopyToClipboardMode diff --git a/core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/backup_and_restore/CreateBackupFileUseCase.kt b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case/CreateBackupFileUseCase.kt similarity index 85% rename from core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/backup_and_restore/CreateBackupFileUseCase.kt rename to core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case/CreateBackupFileUseCase.kt index 3f6b00e0e..2e08f7170 100644 --- a/core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/backup_and_restore/CreateBackupFileUseCase.kt +++ b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case/CreateBackupFileUseCase.kt @@ -15,9 +15,9 @@ * along with this program. If not, see . */ -package ru.tech.imageresizershrinker.core.domain.use_case.backup_and_restore +package ru.tech.imageresizershrinker.core.settings.domain.use_case -import ru.tech.imageresizershrinker.core.domain.repository.SettingsRepository +import ru.tech.imageresizershrinker.core.settings.domain.SettingsRepository import javax.inject.Inject class CreateBackupFileUseCase @Inject constructor( diff --git a/core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/backup_and_restore/CreateBackupFilenameUseCase.kt b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case/CreateBackupFilenameUseCase.kt similarity index 85% rename from core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/backup_and_restore/CreateBackupFilenameUseCase.kt rename to core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case/CreateBackupFilenameUseCase.kt index 60114fc92..2ca70ea53 100644 --- a/core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/backup_and_restore/CreateBackupFilenameUseCase.kt +++ b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case/CreateBackupFilenameUseCase.kt @@ -15,9 +15,9 @@ * along with this program. If not, see . */ -package ru.tech.imageresizershrinker.core.domain.use_case.backup_and_restore +package ru.tech.imageresizershrinker.core.settings.domain.use_case -import ru.tech.imageresizershrinker.core.domain.repository.SettingsRepository +import ru.tech.imageresizershrinker.core.settings.domain.SettingsRepository import javax.inject.Inject class CreateBackupFilenameUseCase @Inject constructor( diff --git a/core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/get_settings_state/GetSettingsStateFlowUseCase.kt b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case/GetSettingsStateFlowUseCase.kt similarity index 85% rename from core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/get_settings_state/GetSettingsStateFlowUseCase.kt rename to core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case/GetSettingsStateFlowUseCase.kt index f17c6102c..fc15ec2db 100644 --- a/core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/get_settings_state/GetSettingsStateFlowUseCase.kt +++ b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case/GetSettingsStateFlowUseCase.kt @@ -15,9 +15,9 @@ * along with this program. If not, see . */ -package ru.tech.imageresizershrinker.core.domain.use_case.get_settings_state +package ru.tech.imageresizershrinker.core.settings.domain.use_case -import ru.tech.imageresizershrinker.core.domain.repository.SettingsRepository +import ru.tech.imageresizershrinker.core.settings.domain.SettingsRepository import javax.inject.Inject class GetSettingsStateFlowUseCase @Inject constructor( diff --git a/core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/get_settings_state/GetSettingsStateUseCase.kt b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case/GetSettingsStateUseCase.kt similarity index 85% rename from core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/get_settings_state/GetSettingsStateUseCase.kt rename to core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case/GetSettingsStateUseCase.kt index fb70db050..dbcbce1d4 100644 --- a/core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/get_settings_state/GetSettingsStateUseCase.kt +++ b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case/GetSettingsStateUseCase.kt @@ -15,9 +15,9 @@ * along with this program. If not, see . */ -package ru.tech.imageresizershrinker.core.domain.use_case.get_settings_state +package ru.tech.imageresizershrinker.core.settings.domain.use_case -import ru.tech.imageresizershrinker.core.domain.repository.SettingsRepository +import ru.tech.imageresizershrinker.core.settings.domain.SettingsRepository import javax.inject.Inject class GetSettingsStateUseCase @Inject constructor( diff --git a/core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/backup_and_restore/RestoreFromBackupFileUseCase.kt b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case/RestoreFromBackupFileUseCase.kt similarity index 87% rename from core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/backup_and_restore/RestoreFromBackupFileUseCase.kt rename to core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case/RestoreFromBackupFileUseCase.kt index 54f8455d1..0a18a9af0 100644 --- a/core/domain/src/main/kotlin/ru/tech/imageresizershrinker/core/domain/use_case/backup_and_restore/RestoreFromBackupFileUseCase.kt +++ b/core/settings/src/main/java/ru/tech/imageresizershrinker/core/settings/domain/use_case/RestoreFromBackupFileUseCase.kt @@ -15,9 +15,9 @@ * along with this program. If not, see . */ -package ru.tech.imageresizershrinker.core.domain.use_case.backup_and_restore +package ru.tech.imageresizershrinker.core.settings.domain.use_case -import ru.tech.imageresizershrinker.core.domain.repository.SettingsRepository +import ru.tech.imageresizershrinker.core.settings.domain.SettingsRepository import javax.inject.Inject class RestoreFromBackupFileUseCase @Inject constructor( diff --git a/core/ui/build.gradle.kts b/core/ui/build.gradle.kts index 505083b5e..64b029cbc 100644 --- a/core/ui/build.gradle.kts +++ b/core/ui/build.gradle.kts @@ -83,4 +83,6 @@ dependencies { "marketImplementation"(libs.app.update.ktx) api(projects.core.resources) + + implementation(projects.core.settings) } \ No newline at end of file diff --git a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/activity/SettingsStateEntryPoint.kt b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/activity/SettingsStateEntryPoint.kt index 7c5123537..632c66e3d 100644 --- a/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/activity/SettingsStateEntryPoint.kt +++ b/core/ui/src/main/kotlin/ru/tech/imageresizershrinker/core/ui/widget/activity/SettingsStateEntryPoint.kt @@ -20,7 +20,7 @@ package ru.tech.imageresizershrinker.core.ui.widget.activity import dagger.hilt.EntryPoint import dagger.hilt.InstallIn import dagger.hilt.components.SingletonComponent -import ru.tech.imageresizershrinker.core.domain.use_case.get_settings_state.GetSettingsStateUseCase +import ru.tech.imageresizershrinker.core.settings.domain.use_case.GetSettingsStateUseCase @EntryPoint @InstallIn(SingletonComponent::class) diff --git a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/viewModel/MainViewModel.kt b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/viewModel/MainViewModel.kt index 1a86315a2..1b41ecb7b 100644 --- a/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/viewModel/MainViewModel.kt +++ b/feature/main/src/main/java/ru/tech/imageresizershrinker/feature/main/presentation/viewModel/MainViewModel.kt @@ -48,11 +48,10 @@ import ru.tech.imageresizershrinker.core.domain.model.FontFam import ru.tech.imageresizershrinker.core.domain.model.ImageScaleMode import ru.tech.imageresizershrinker.core.domain.model.NightMode import ru.tech.imageresizershrinker.core.domain.model.SettingsState -import ru.tech.imageresizershrinker.core.domain.repository.SettingsRepository import ru.tech.imageresizershrinker.core.domain.saving.FileController -import ru.tech.imageresizershrinker.core.domain.use_case.get_settings_state.GetSettingsStateFlowUseCase -import ru.tech.imageresizershrinker.core.domain.use_case.get_settings_state.GetSettingsStateUseCase import ru.tech.imageresizershrinker.core.resources.BuildConfig +import ru.tech.imageresizershrinker.core.settings.domain.use_case.GetSettingsStateFlowUseCase +import ru.tech.imageresizershrinker.core.settings.domain.use_case.GetSettingsStateUseCase import ru.tech.imageresizershrinker.core.ui.utils.navigation.Screen import ru.tech.imageresizershrinker.core.ui.utils.state.update import ru.tech.imageresizershrinker.core.ui.widget.other.ToastHostState @@ -68,7 +67,7 @@ class MainViewModel @Inject constructor( private val imageGetter: ImageGetter, private val fileController: FileController, private val getSettingsStateUseCase: GetSettingsStateUseCase, - private val settingsRepository: SettingsRepository + private val settingsRepository: ru.tech.imageresizershrinker.core.settings.domain.SettingsRepository ) : ViewModel() { private val _settingsState = mutableStateOf(SettingsState.Default) diff --git a/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/viewModel/RecognizeTextViewModel.kt b/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/viewModel/RecognizeTextViewModel.kt index ccd08ba28..e606a0c8a 100644 --- a/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/viewModel/RecognizeTextViewModel.kt +++ b/feature/recognize-text/src/main/java/ru/tech/imageresizershrinker/feature/recognize/text/presentation/viewModel/RecognizeTextViewModel.kt @@ -31,7 +31,6 @@ import kotlinx.coroutines.delay import kotlinx.coroutines.launch import kotlinx.coroutines.sync.Mutex import kotlinx.coroutines.sync.withLock -import ru.tech.imageresizershrinker.core.domain.repository.SettingsRepository import ru.tech.imageresizershrinker.core.ui.utils.state.update import ru.tech.imageresizershrinker.feature.recognize.text.domain.DownloadData import ru.tech.imageresizershrinker.feature.recognize.text.domain.ImageTextReader @@ -46,7 +45,7 @@ import javax.inject.Inject @HiltViewModel class RecognizeTextViewModel @Inject constructor( private val imageTextReader: ImageTextReader, - private val settingsRepository: SettingsRepository + private val settingsRepository: ru.tech.imageresizershrinker.core.settings.domain.SettingsRepository ) : ViewModel() { private val _segmentationMode: MutableState = diff --git a/settings.gradle.kts b/settings.gradle.kts index 8f5f6770d..4b124027d 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -17,6 +17,9 @@ @file:Suppress("UnstableApiUsage") +include(":core:settings") + + pluginManagement { repositories { includeBuild("build-logic")