diff --git a/.idea/artifacts/shared.xml b/.idea/artifacts/shared.xml
new file mode 100644
index 0000000..df2c7e6
--- /dev/null
+++ b/.idea/artifacts/shared.xml
@@ -0,0 +1,8 @@
+
+
+ $PROJECT_DIR$/utils/shared/build/libs
+
+
+
+
+
\ No newline at end of file
diff --git a/.idea/gradle.xml b/.idea/gradle.xml
index 031d3d1..f299419 100644
--- a/.idea/gradle.xml
+++ b/.idea/gradle.xml
@@ -10,8 +10,12 @@
diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml
index 52e63b5..ba29ab3 100644
--- a/.idea/inspectionProfiles/Project_Default.xml
+++ b/.idea/inspectionProfiles/Project_Default.xml
@@ -69,6 +69,7 @@
+
\ No newline at end of file
diff --git a/app/android/build.gradle.kts b/app/android/build.gradle.kts
new file mode 100644
index 0000000..df67770
--- /dev/null
+++ b/app/android/build.gradle.kts
@@ -0,0 +1,117 @@
+
+import org.jetbrains.kotlin.gradle.dsl.JvmTarget
+import java.io.FileInputStream
+import java.util.Properties
+
+plugins {
+ alias(libs.plugins.android.application)
+ alias(libs.plugins.jetbrains.kotlin.android)
+ alias(libs.plugins.compose.compiler)
+ alias(libs.plugins.compose.multiplatform)
+}
+
+kotlin {
+ compilerOptions {
+ jvmTarget = JvmTarget.JVM_17
+ }
+}
+
+// 1. Описываем задачу копирования с созданием правильной структуры
+val fixComposeResourcesStructure = tasks.register("fixComposeResourcesStructure") {
+ val sharedProject = rootProject.project(":app:shared")
+
+ // Откуда берем (исходные сгенерированные файлы)
+ val sourceDir = sharedProject.layout.buildDirectory
+ .dir("generated/compose/resourceGenerator/preparedResources/commonMain/composeResources")
+
+ // Куда кладем (создаем промежуточную папку с ПРАВИЛЬНЫМ путем)
+ val outputDir = layout.buildDirectory.dir("intermediates/fixed_compose_res/composeResources/ru.fromchat")
+
+ from(sourceDir)
+ into(outputDir)
+
+ // Убеждаемся, что генерация в shared уже прошла
+ dependsOn(sharedProject.tasks.matching { it.name.contains("prepareComposeResources", ignoreCase = true) })
+ dependsOn(sharedProject.tasks.matching { it.name.contains("copyNonXmlValueResources", ignoreCase = true) })
+}
+
+android {
+ namespace = "ru.fromchat"
+ compileSdk = 36
+
+ defaultConfig {
+ applicationId = "ru.fromchat"
+ minSdk = 24
+ targetSdk = 36
+ versionCode = 1
+ versionName = "1.0"
+ }
+
+ signingConfigs {
+ create("release") {
+ val keystoreProperties = Properties().apply {
+ load(FileInputStream(rootProject.file("keys/keystore.properties")))
+ }
+ storeFile = rootProject.file("keys/release.jks")
+ keyAlias = "release"
+ storePassword = keystoreProperties["storePassword"].toString()
+ keyPassword = keystoreProperties["keyPassword"].toString()
+ enableV3Signing = true
+ }
+ }
+
+ buildTypes {
+ release {
+ isMinifyEnabled = true
+ isShrinkResources = true
+ signingConfig = signingConfigs.getByName("release")
+
+ proguardFiles(
+ getDefaultProguardFile("proguard-android-optimize.txt"),
+ "proguard-rules.pro"
+ )
+ }
+ }
+
+ packaging {
+ resources {
+ excludes += "/META-INF/{AL2.0,LGPL2.1}"
+ }
+ }
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+ }
+
+ sourceSets["main"].apply {
+ assets.srcDirs(
+ layout.buildDirectory.dir("intermediates/fixed_compose_res")
+ )
+ }
+}
+
+tasks.withType().configureEach {
+ dependsOn(fixComposeResourcesStructure)
+}
+
+dependencies {
+ implementation(libs.androidx.core.ktx)
+ implementation(libs.androidx.lifecycle.runtime.ktx)
+ implementation(libs.androidx.activity.compose)
+ implementation(platform(libs.androidx.compose.bom))
+ implementation(libs.androidx.compose.ui)
+ implementation(libs.androidx.compose.ui.graphics)
+ implementation(libs.androidx.compose.ui.tooling.preview)
+ implementation(libs.androidx.compose.material3)
+ debugImplementation(libs.androidx.compose.ui.tooling)
+ implementation(libs.androidx.core.splashscreen)
+ implementation(libs.androidx.adaptive.android)
+ implementation(libs.ktor.client.okhttp)
+ implementation(libs.ktor.client.core)
+ implementation(libs.slf4j.android)
+ implementation(libs.material)
+
+ implementation(project(":app:shared"))
+ implementation(project(":utils:shared"))
+}
\ No newline at end of file
diff --git a/composeApp/proguard-rules.pro b/app/android/proguard-rules.pro
similarity index 100%
rename from composeApp/proguard-rules.pro
rename to app/android/proguard-rules.pro
diff --git a/composeApp/src/androidMain/AndroidManifest.xml b/app/android/src/main/AndroidManifest.xml
similarity index 100%
rename from composeApp/src/androidMain/AndroidManifest.xml
rename to app/android/src/main/AndroidManifest.xml
diff --git a/composeApp/src/androidMain/ic_launcher-playstore.png b/app/android/src/main/ic_launcher-playstore.png
similarity index 100%
rename from composeApp/src/androidMain/ic_launcher-playstore.png
rename to app/android/src/main/ic_launcher-playstore.png
diff --git a/composeApp/src/androidMain/kotlin/ru/fromchat/App.kt b/app/android/src/main/kotlin/ru/fromchat/App.kt
similarity index 100%
rename from composeApp/src/androidMain/kotlin/ru/fromchat/App.kt
rename to app/android/src/main/kotlin/ru/fromchat/App.kt
diff --git a/composeApp/src/androidMain/kotlin/ru/fromchat/MainActivity.kt b/app/android/src/main/kotlin/ru/fromchat/MainActivity.kt
similarity index 91%
rename from composeApp/src/androidMain/kotlin/ru/fromchat/MainActivity.kt
rename to app/android/src/main/kotlin/ru/fromchat/MainActivity.kt
index f1bc850..f176529 100644
--- a/composeApp/src/androidMain/kotlin/ru/fromchat/MainActivity.kt
+++ b/app/android/src/main/kotlin/ru/fromchat/MainActivity.kt
@@ -1,5 +1,3 @@
-@file:Suppress("NOTHING_TO_INLINE")
-
package ru.fromchat
import android.os.Bundle
@@ -14,10 +12,9 @@ class MainActivity : ComponentActivity() {
super.onCreate(savedInstanceState)
installSplashScreen()
enableEdgeToEdge()
-
+
setContent {
App()
}
}
-}
-
+}
\ No newline at end of file
diff --git a/composeApp/src/androidMain/res/drawable/logo.xml b/app/android/src/main/res/drawable/logo.xml
similarity index 100%
rename from composeApp/src/androidMain/res/drawable/logo.xml
rename to app/android/src/main/res/drawable/logo.xml
diff --git a/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml b/app/android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher.xml
rename to app/android/src/main/res/mipmap-anydpi-v26/ic_launcher.xml
diff --git a/composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml b/app/android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-anydpi-v26/ic_launcher_round.xml
rename to app/android/src/main/res/mipmap-anydpi-v26/ic_launcher_round.xml
diff --git a/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.webp b/app/android/src/main/res/mipmap-hdpi/ic_launcher.webp
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher.webp
rename to app/android/src/main/res/mipmap-hdpi/ic_launcher.webp
diff --git a/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_foreground.webp b/app/android/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_foreground.webp
rename to app/android/src/main/res/mipmap-hdpi/ic_launcher_foreground.webp
diff --git a/composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.webp b/app/android/src/main/res/mipmap-hdpi/ic_launcher_round.webp
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-hdpi/ic_launcher_round.webp
rename to app/android/src/main/res/mipmap-hdpi/ic_launcher_round.webp
diff --git a/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.webp b/app/android/src/main/res/mipmap-mdpi/ic_launcher.webp
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher.webp
rename to app/android/src/main/res/mipmap-mdpi/ic_launcher.webp
diff --git a/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_foreground.webp b/app/android/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_foreground.webp
rename to app/android/src/main/res/mipmap-mdpi/ic_launcher_foreground.webp
diff --git a/composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.webp b/app/android/src/main/res/mipmap-mdpi/ic_launcher_round.webp
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-mdpi/ic_launcher_round.webp
rename to app/android/src/main/res/mipmap-mdpi/ic_launcher_round.webp
diff --git a/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.webp b/app/android/src/main/res/mipmap-xhdpi/ic_launcher.webp
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher.webp
rename to app/android/src/main/res/mipmap-xhdpi/ic_launcher.webp
diff --git a/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_foreground.webp b/app/android/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_foreground.webp
rename to app/android/src/main/res/mipmap-xhdpi/ic_launcher_foreground.webp
diff --git a/composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.webp b/app/android/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-xhdpi/ic_launcher_round.webp
rename to app/android/src/main/res/mipmap-xhdpi/ic_launcher_round.webp
diff --git a/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.webp b/app/android/src/main/res/mipmap-xxhdpi/ic_launcher.webp
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher.webp
rename to app/android/src/main/res/mipmap-xxhdpi/ic_launcher.webp
diff --git a/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_foreground.webp b/app/android/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_foreground.webp
rename to app/android/src/main/res/mipmap-xxhdpi/ic_launcher_foreground.webp
diff --git a/composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.webp b/app/android/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-xxhdpi/ic_launcher_round.webp
rename to app/android/src/main/res/mipmap-xxhdpi/ic_launcher_round.webp
diff --git a/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.webp b/app/android/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher.webp
rename to app/android/src/main/res/mipmap-xxxhdpi/ic_launcher.webp
diff --git a/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_foreground.webp b/app/android/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
rename to app/android/src/main/res/mipmap-xxxhdpi/ic_launcher_foreground.webp
diff --git a/composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.webp b/app/android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
similarity index 100%
rename from composeApp/src/androidMain/res/mipmap-xxxhdpi/ic_launcher_round.webp
rename to app/android/src/main/res/mipmap-xxxhdpi/ic_launcher_round.webp
diff --git a/composeApp/src/androidMain/res/values-v31/themes.xml b/app/android/src/main/res/values-v31/themes.xml
similarity index 100%
rename from composeApp/src/androidMain/res/values-v31/themes.xml
rename to app/android/src/main/res/values-v31/themes.xml
diff --git a/composeApp/src/androidMain/res/values/strings.xml b/app/android/src/main/res/values/strings.xml
similarity index 100%
rename from composeApp/src/androidMain/res/values/strings.xml
rename to app/android/src/main/res/values/strings.xml
diff --git a/composeApp/src/androidMain/res/values/themes.xml b/app/android/src/main/res/values/themes.xml
similarity index 100%
rename from composeApp/src/androidMain/res/values/themes.xml
rename to app/android/src/main/res/values/themes.xml
diff --git a/composeApp/src/androidMain/res/xml/backup_rules.xml b/app/android/src/main/res/xml/backup_rules.xml
similarity index 100%
rename from composeApp/src/androidMain/res/xml/backup_rules.xml
rename to app/android/src/main/res/xml/backup_rules.xml
diff --git a/composeApp/src/androidMain/res/xml/data_extraction_rules.xml b/app/android/src/main/res/xml/data_extraction_rules.xml
similarity index 100%
rename from composeApp/src/androidMain/res/xml/data_extraction_rules.xml
rename to app/android/src/main/res/xml/data_extraction_rules.xml
diff --git a/composeApp/src/androidMain/res/xml/network_security_config.xml b/app/android/src/main/res/xml/network_security_config.xml
similarity index 100%
rename from composeApp/src/androidMain/res/xml/network_security_config.xml
rename to app/android/src/main/res/xml/network_security_config.xml
diff --git a/composeApp/.gitignore b/app/shared/.gitignore
similarity index 100%
rename from composeApp/.gitignore
rename to app/shared/.gitignore
diff --git a/composeApp/build.gradle.kts b/app/shared/build.gradle.kts
similarity index 56%
rename from composeApp/build.gradle.kts
rename to app/shared/build.gradle.kts
index 2917dc7..bce6db4 100644
--- a/composeApp/build.gradle.kts
+++ b/app/shared/build.gradle.kts
@@ -1,17 +1,20 @@
-import java.io.FileInputStream
-import java.util.Properties
+import com.android.build.api.dsl.androidLibrary
plugins {
- alias(libs.plugins.kotlinMultiplatform)
- alias(libs.plugins.androidApplication)
- alias(libs.plugins.composeMultiplatform)
- alias(libs.plugins.composeCompiler)
+ alias(libs.plugins.kotlin.multiplatform)
+ alias(libs.plugins.compose.multiplatform)
+ alias(libs.plugins.compose.compiler)
+ alias(libs.plugins.android.kotlin.multiplatform.library)
kotlin("plugin.serialization") version "1.9.22"
}
kotlin {
- androidTarget()
+ androidLibrary {
+ namespace = "ru.fromchat.shared"
+ minSdk = 24
+ compileSdk = 36
+ }
compilerOptions {
freeCompilerArgs.addAll("-Xexpect-actual-classes")
@@ -36,14 +39,7 @@ kotlin {
}
androidMain.dependencies {
- implementation(compose.preview)
- implementation(libs.androidx.activity.compose)
- implementation(libs.androidx.core.splashscreen)
- implementation(libs.androidx.adaptive.android)
implementation(libs.ktor.client.okhttp)
- implementation(libs.ktor.client.core)
- implementation(libs.slf4j.android)
- implementation(libs.material)
}
commonMain.dependencies {
@@ -78,7 +74,7 @@ kotlin {
implementation(libs.coil.compose)
implementation(libs.coil.network.ktor3)
- implementation(project(":utils"))
+ implementation(project(":utils:shared"))
}
iosMain.dependencies {
@@ -89,60 +85,6 @@ kotlin {
}
}
-android {
- namespace = "ru.fromchat"
- compileSdk = 36
-
- defaultConfig {
- applicationId = "ru.fromchat"
- minSdk = 24
- targetSdk = 36
- versionCode = 1
- versionName = "1.0"
- }
-
- signingConfigs {
- create("release") {
- val keystoreProperties = Properties().apply {
- load(FileInputStream(rootProject.file("keys/keystore.properties")))
- }
- storeFile = rootProject.file("keys/release.jks")
- keyAlias = "release"
- storePassword = keystoreProperties["storePassword"].toString()
- keyPassword = keystoreProperties["keyPassword"].toString()
- enableV3Signing = true
- }
- }
-
- buildTypes {
- release {
- isMinifyEnabled = true
- isShrinkResources = true
- signingConfig = signingConfigs.getByName("release")
-
- proguardFiles(
- getDefaultProguardFile("proguard-android-optimize.txt"),
- "proguard-rules.pro"
- )
- }
- }
-
- packaging {
- resources {
- excludes += "/META-INF/{AL2.0,LGPL2.1}"
- }
- }
-
- compileOptions {
- sourceCompatibility = JavaVersion.VERSION_11
- targetCompatibility = JavaVersion.VERSION_11
- }
-}
-
-dependencies {
- debugImplementation(compose.uiTooling)
-}
-
compose.resources {
publicResClass = true
packageOfResClass = "ru.fromchat"
diff --git a/composeApp/src/androidMain/kotlin/ru/fromchat/api/AndroidKtorLogger.kt b/app/shared/src/androidMain/kotlin/ru/fromchat/api/AndroidKtorLogger.kt
similarity index 100%
rename from composeApp/src/androidMain/kotlin/ru/fromchat/api/AndroidKtorLogger.kt
rename to app/shared/src/androidMain/kotlin/ru/fromchat/api/AndroidKtorLogger.kt
diff --git a/composeApp/src/androidMain/kotlin/ru/fromchat/api/ApiClient.android.kt b/app/shared/src/androidMain/kotlin/ru/fromchat/api/ApiClient.android.kt
similarity index 100%
rename from composeApp/src/androidMain/kotlin/ru/fromchat/api/ApiClient.android.kt
rename to app/shared/src/androidMain/kotlin/ru/fromchat/api/ApiClient.android.kt
diff --git a/composeApp/src/androidMain/kotlin/ru/fromchat/core/Logger.android.kt b/app/shared/src/androidMain/kotlin/ru/fromchat/core/Logger.android.kt
similarity index 100%
rename from composeApp/src/androidMain/kotlin/ru/fromchat/core/Logger.android.kt
rename to app/shared/src/androidMain/kotlin/ru/fromchat/core/Logger.android.kt
diff --git a/composeApp/src/androidMain/kotlin/ru/fromchat/ui/Theme.android.kt b/app/shared/src/androidMain/kotlin/ru/fromchat/ui/Theme.android.kt
similarity index 100%
rename from composeApp/src/androidMain/kotlin/ru/fromchat/ui/Theme.android.kt
rename to app/shared/src/androidMain/kotlin/ru/fromchat/ui/Theme.android.kt
diff --git a/composeApp/src/commonMain/composeResources/drawable/app_icon.xml b/app/shared/src/commonMain/composeResources/drawable/app_icon.xml
similarity index 100%
rename from composeApp/src/commonMain/composeResources/drawable/app_icon.xml
rename to app/shared/src/commonMain/composeResources/drawable/app_icon.xml
diff --git a/composeApp/src/commonMain/composeResources/values-ru/strings.xml b/app/shared/src/commonMain/composeResources/values-ru/strings.xml
similarity index 100%
rename from composeApp/src/commonMain/composeResources/values-ru/strings.xml
rename to app/shared/src/commonMain/composeResources/values-ru/strings.xml
diff --git a/composeApp/src/commonMain/composeResources/values/strings.xml b/app/shared/src/commonMain/composeResources/values/strings.xml
similarity index 100%
rename from composeApp/src/commonMain/composeResources/values/strings.xml
rename to app/shared/src/commonMain/composeResources/values/strings.xml
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/Constants.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/Constants.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/Constants.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/Constants.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/api/ApiClient.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/api/ApiClient.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/api/ApiClient.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/api/ApiClient.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/api/Models.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/api/Models.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/api/Models.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/api/Models.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/api/Utils.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/api/Utils.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/api/Utils.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/api/Utils.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/api/WebSocketData.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/api/WebSocketData.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/api/WebSocketData.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/api/WebSocketData.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/api/WebSocketManager.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/api/WebSocketManager.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/api/WebSocketManager.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/api/WebSocketManager.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/core/Logger.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/core/Logger.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/core/Logger.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/core/Logger.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/core/Settings.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/core/Settings.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/core/Settings.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/core/Settings.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/core/config/Config.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/core/config/Config.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/core/config/Config.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/core/config/Config.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/AboutScreen.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/AboutScreen.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/AboutScreen.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/AboutScreen.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/App.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/App.kt
similarity index 99%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/App.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/App.kt
index 49ba8b9..633b050 100644
--- a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/App.kt
+++ b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/App.kt
@@ -16,11 +16,11 @@ import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.runtime.setValue
import androidx.compose.ui.Alignment
-import androidx.compose.ui.platform.LocalLifecycleOwner
import androidx.compose.ui.unit.IntOffset
import androidx.lifecycle.Lifecycle
import androidx.lifecycle.LifecycleEventObserver
import androidx.lifecycle.LifecycleOwner
+import androidx.lifecycle.compose.LocalLifecycleOwner
import androidx.navigation.NavController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.composable
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/Components.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/Components.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/Components.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/Components.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/Theme.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/Theme.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/Theme.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/Theme.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/auth/LoginScreen.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/auth/LoginScreen.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/auth/LoginScreen.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/auth/LoginScreen.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/auth/RegisterScreen.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/auth/RegisterScreen.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/auth/RegisterScreen.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/auth/RegisterScreen.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/Avatar.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/Avatar.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/Avatar.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/Avatar.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatGradients.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatGradients.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatGradients.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatGradients.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatInput.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatInput.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatInput.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatInput.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatPanel.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatPanel.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatPanel.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatPanel.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatScreen.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatScreen.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatScreen.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatScreen.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageContextMenu.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageContextMenu.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageContextMenu.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageContextMenu.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageItem.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageItem.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageItem.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageItem.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/PublicChatPanel.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/PublicChatPanel.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/PublicChatPanel.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/PublicChatPanel.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/PublicChatScreen.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/PublicChatScreen.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/PublicChatScreen.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/PublicChatScreen.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/TypingHandler.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/TypingHandler.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/TypingHandler.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/TypingHandler.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/TypingIndicator.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/TypingIndicator.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/TypingIndicator.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/chat/TypingIndicator.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/main/ChatsTab.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/main/ChatsTab.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/main/ChatsTab.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/main/ChatsTab.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/main/MainScreen.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/main/MainScreen.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/main/MainScreen.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/main/MainScreen.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/main/SettingsTab.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/main/SettingsTab.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/main/SettingsTab.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/main/SettingsTab.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/main/TabBase.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/main/TabBase.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/main/TabBase.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/main/TabBase.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/setup/ServerConfigScreen.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/ui/setup/ServerConfigScreen.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/ui/setup/ServerConfigScreen.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/ui/setup/ServerConfigScreen.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/utils/Generic.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/utils/Generic.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/utils/Generic.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/utils/Generic.kt
diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/utils/Ktor.kt b/app/shared/src/commonMain/kotlin/ru/fromchat/utils/Ktor.kt
similarity index 100%
rename from composeApp/src/commonMain/kotlin/ru/fromchat/utils/Ktor.kt
rename to app/shared/src/commonMain/kotlin/ru/fromchat/utils/Ktor.kt
diff --git a/composeApp/src/iosMain/kotlin/ru/fromchat/MainViewController.kt b/app/shared/src/iosMain/kotlin/ru/fromchat/MainViewController.kt
similarity index 100%
rename from composeApp/src/iosMain/kotlin/ru/fromchat/MainViewController.kt
rename to app/shared/src/iosMain/kotlin/ru/fromchat/MainViewController.kt
diff --git a/composeApp/src/iosMain/kotlin/ru/fromchat/api/ApiClient.ios.kt b/app/shared/src/iosMain/kotlin/ru/fromchat/api/ApiClient.ios.kt
similarity index 100%
rename from composeApp/src/iosMain/kotlin/ru/fromchat/api/ApiClient.ios.kt
rename to app/shared/src/iosMain/kotlin/ru/fromchat/api/ApiClient.ios.kt
diff --git a/composeApp/src/iosMain/kotlin/ru/fromchat/core/Logger.ios.kt b/app/shared/src/iosMain/kotlin/ru/fromchat/core/Logger.ios.kt
similarity index 100%
rename from composeApp/src/iosMain/kotlin/ru/fromchat/core/Logger.ios.kt
rename to app/shared/src/iosMain/kotlin/ru/fromchat/core/Logger.ios.kt
diff --git a/composeApp/src/iosMain/kotlin/ru/fromchat/ui/Theme.ios.kt b/app/shared/src/iosMain/kotlin/ru/fromchat/ui/Theme.ios.kt
similarity index 100%
rename from composeApp/src/iosMain/kotlin/ru/fromchat/ui/Theme.ios.kt
rename to app/shared/src/iosMain/kotlin/ru/fromchat/ui/Theme.ios.kt
diff --git a/build.gradle.kts b/build.gradle.kts
index 2a710f8..75dec11 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -1,11 +1,11 @@
plugins {
// this is necessary to avoid the plugins to be loaded multiple times
// in each subproject's classloader
- alias(libs.plugins.androidApplication) apply false
- alias(libs.plugins.androidLibrary) apply false
- alias(libs.plugins.composeMultiplatform) apply false
- alias(libs.plugins.composeCompiler) apply false
- alias(libs.plugins.kotlinMultiplatform) apply false
- alias(libs.plugins.androidKotlinMultiplatformLibrary) apply false
+ alias(libs.plugins.android.application) apply false
+ alias(libs.plugins.compose.multiplatform) apply false
+ alias(libs.plugins.compose.compiler) apply false
+ alias(libs.plugins.kotlin.multiplatform) apply false
+ alias(libs.plugins.android.kotlin.multiplatform.library) apply false
alias(libs.plugins.jetbrains.kotlin.android) apply false
+ alias(libs.plugins.android.library) apply false
}
\ No newline at end of file
diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml
index 98099f7..dec36e3 100644
--- a/gradle/libs.versions.toml
+++ b/gradle/libs.versions.toml
@@ -25,6 +25,8 @@ datastore = "1.2.0"
ktor = "3.3.3"
slf4j = "1.7.36"
kotlinxDatetime = "0.7.1"
+lifecycleRuntimeKtx = "2.10.0"
+composeBom = "2025.12.01"
[libraries]
androidx-core-splashscreen = { module = "androidx.core:core-splashscreen", version.ref = "coreSplashscreen" }
@@ -58,12 +60,19 @@ ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "kto
ktor-client-darwin = { module = "io.ktor:ktor-client-darwin", version.ref = "ktor" }
slf4j-android = { module = "org.slf4j:slf4j-android", version.ref = "slf4j" }
kotlinx-datetime = { module = "org.jetbrains.kotlinx:kotlinx-datetime", version.ref = "kotlinxDatetime" }
+androidx-lifecycle-runtime-ktx = { group = "androidx.lifecycle", name = "lifecycle-runtime-ktx", version.ref = "lifecycleRuntimeKtx" }
+androidx-compose-bom = { group = "androidx.compose", name = "compose-bom", version.ref = "composeBom" }
+androidx-compose-ui = { group = "androidx.compose.ui", name = "ui" }
+androidx-compose-ui-graphics = { group = "androidx.compose.ui", name = "ui-graphics" }
+androidx-compose-ui-tooling = { group = "androidx.compose.ui", name = "ui-tooling" }
+androidx-compose-ui-tooling-preview = { group = "androidx.compose.ui", name = "ui-tooling-preview" }
+androidx-compose-material3 = { group = "androidx.compose.material3", name = "material3" }
[plugins]
-androidApplication = { id = "com.android.application", version.ref = "agp" }
-androidLibrary = { id = "com.android.library", version.ref = "agp" }
-composeMultiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" }
-composeCompiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
-kotlinMultiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
-androidKotlinMultiplatformLibrary = { id = "com.android.kotlin.multiplatform.library", version.ref = "agp" }
-jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version.ref = "kotlin" }
\ No newline at end of file
+android-application = { id = "com.android.application", version.ref = "agp" }
+compose-multiplatform = { id = "org.jetbrains.compose", version.ref = "compose-multiplatform" }
+compose-compiler = { id = "org.jetbrains.kotlin.plugin.compose", version.ref = "kotlin" }
+kotlin-multiplatform = { id = "org.jetbrains.kotlin.multiplatform", version.ref = "kotlin" }
+android-kotlin-multiplatform-library = { id = "com.android.kotlin.multiplatform.library", version.ref = "agp" }
+jetbrains-kotlin-android = { id = "org.jetbrains.kotlin.android", version = "2.3.0" }
+android-library = { id = "com.android.library", version.ref = "agp" }
\ No newline at end of file
diff --git a/iosApp/iosApp/iOSApp.swift b/iosApp/iosApp/iOSApp.swift
index 927e0b9..b0d2cf1 100644
--- a/iosApp/iosApp/iOSApp.swift
+++ b/iosApp/iosApp/iOSApp.swift
@@ -5,6 +5,7 @@ struct iOSApp: App {
var body: some Scene {
WindowGroup {
ContentView()
+
}
}
}
diff --git a/settings.gradle.kts b/settings.gradle.kts
index 6b8db56..23bdd6e 100644
--- a/settings.gradle.kts
+++ b/settings.gradle.kts
@@ -1,5 +1,8 @@
@file:Suppress("UnstableApiUsage")
+include(":utils:android")
+
+
rootProject.name = "FromChat"
enableFeaturePreview("TYPESAFE_PROJECT_ACCESSORS")
@@ -30,5 +33,5 @@ dependencyResolutionManagement {
}
}
-include(":composeApp", ":utils")
+include(":app:shared", ":utils:shared", ":app:android")
\ No newline at end of file
diff --git a/utils/.gitignore b/utils/android/.gitignore
similarity index 100%
rename from utils/.gitignore
rename to utils/android/.gitignore
diff --git a/utils/android/build.gradle.kts b/utils/android/build.gradle.kts
new file mode 100644
index 0000000..1295e7b
--- /dev/null
+++ b/utils/android/build.gradle.kts
@@ -0,0 +1,46 @@
+import org.jetbrains.kotlin.gradle.dsl.JvmTarget
+
+plugins {
+ alias(libs.plugins.android.library)
+ alias(libs.plugins.jetbrains.kotlin.android)
+}
+
+kotlin {
+ compilerOptions {
+ jvmTarget = JvmTarget.JVM_17
+ }
+}
+
+android {
+ namespace = "com.pr0gramm3r101.utils"
+ compileSdk = 36
+
+ defaultConfig {
+ minSdk = 24
+ }
+
+ buildTypes {
+ release {
+ isMinifyEnabled = true
+ proguardFiles(
+ getDefaultProguardFile("proguard-android-optimize.txt"),
+ "proguard-rules.pro"
+ )
+ }
+ }
+
+ compileOptions {
+ sourceCompatibility = JavaVersion.VERSION_17
+ targetCompatibility = JavaVersion.VERSION_17
+ }
+}
+
+dependencies {
+ implementation(libs.androidx.adaptive.android)
+ implementation(libs.androidx.activity.ktx)
+ implementation(libs.androidx.core.ktx)
+ implementation(libs.androidx.appcompat)
+ implementation(libs.material)
+
+ implementation(libs.gson)
+}
\ No newline at end of file
diff --git a/utils/android/proguard-rules.pro b/utils/android/proguard-rules.pro
new file mode 100644
index 0000000..481bb43
--- /dev/null
+++ b/utils/android/proguard-rules.pro
@@ -0,0 +1,21 @@
+# Add project specific ProGuard rules here.
+# You can control the set of applied configuration files using the
+# proguardFiles setting in build.gradle.
+#
+# For more details, see
+# http://developer.android.com/guide/developing/tools/proguard.html
+
+# If your project uses WebView with JS, uncomment the following
+# and specify the fully qualified class name to the JavaScript interface
+# class:
+#-keepclassmembers class fqcn.of.javascript.interface.for.webview {
+# public *;
+#}
+
+# Uncomment this to preserve the line number information for
+# debugging stack traces.
+#-keepattributes SourceFile,LineNumberTable
+
+# If you keep the line number information, uncomment this to
+# hide the original source file name.
+#-renamesourcefileattribute SourceFile
\ No newline at end of file
diff --git a/utils/src/androidMain/AndroidManifest.xml b/utils/android/src/main/AndroidManifest.xml
similarity index 100%
rename from utils/src/androidMain/AndroidManifest.xml
rename to utils/android/src/main/AndroidManifest.xml
diff --git a/utils/shared/.gitignore b/utils/shared/.gitignore
new file mode 100644
index 0000000..42afabf
--- /dev/null
+++ b/utils/shared/.gitignore
@@ -0,0 +1 @@
+/build
\ No newline at end of file
diff --git a/utils/build.gradle.kts b/utils/shared/build.gradle.kts
similarity index 69%
rename from utils/build.gradle.kts
rename to utils/shared/build.gradle.kts
index e778c30..8568ec8 100644
--- a/utils/build.gradle.kts
+++ b/utils/shared/build.gradle.kts
@@ -1,10 +1,10 @@
-import org.jetbrains.kotlin.gradle.dsl.JvmTarget
+import com.android.build.api.dsl.androidLibrary
plugins {
- alias(libs.plugins.kotlinMultiplatform)
- alias(libs.plugins.androidKotlinMultiplatformLibrary)
- alias(libs.plugins.composeMultiplatform)
- alias(libs.plugins.composeCompiler)
+ alias(libs.plugins.kotlin.multiplatform)
+ alias(libs.plugins.compose.multiplatform)
+ alias(libs.plugins.compose.compiler)
+ alias(libs.plugins.android.kotlin.multiplatform.library)
}
kotlin {
@@ -16,9 +16,6 @@ kotlin {
namespace = "com.pr0gramm3r101.utils"
compileSdk = 36
minSdk = 24
-
- compilerOptions.jvmTarget.set(JvmTarget.JVM_17)
- androidResources.enable = true
}
listOf(
@@ -27,7 +24,7 @@ kotlin {
iosSimulatorArm64()
).forEach {
it.binaries.framework {
- baseName = "utils"
+ baseName = "shared"
}
}
@@ -46,17 +43,12 @@ kotlin {
}
androidMain.dependencies {
- implementation(libs.androidx.adaptive.android)
- implementation(libs.androidx.activity.ktx)
- implementation(libs.androidx.core.ktx)
- implementation(libs.androidx.appcompat)
- implementation(libs.material)
- implementation(libs.biometric)
- implementation(libs.gson)
-
implementation(libs.androidx.adaptive.android)
implementation(libs.datastore.preferences)
implementation(libs.datastore.core)
+ implementation(libs.biometric)
+ implementation(libs.androidx.appcompat)
+ implementation(libs.material)
}
iosMain.dependencies {
@@ -67,6 +59,6 @@ kotlin {
compose.resources {
publicResClass = true
- packageOfResClass = "com.pr0gramm3r101.utils"
+ packageOfResClass = "com.pr0gramm3r101.shared"
generateResClass = auto
}
\ No newline at end of file
diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/components/Components.android.kt b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/components/Components.android.kt
similarity index 100%
rename from utils/src/androidMain/kotlin/com/pr0gramm3r101/components/Components.android.kt
rename to utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/components/Components.android.kt
diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/Adaptive.android.kt b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/Adaptive.android.kt
similarity index 100%
rename from utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/Adaptive.android.kt
rename to utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/Adaptive.android.kt
diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/BetterActivityResult.java b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/BetterActivityResult.java
similarity index 100%
rename from utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/BetterActivityResult.java
rename to utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/BetterActivityResult.java
diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/JobIdManager.kt b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/JobIdManager.kt
similarity index 100%
rename from utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/JobIdManager.kt
rename to utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/JobIdManager.kt
diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/NoParallelExecutor.kt b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/NoParallelExecutor.kt
similarity index 100%
rename from utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/NoParallelExecutor.kt
rename to utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/NoParallelExecutor.kt
diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/SerializableIntent.kt b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/SerializableIntent.kt
similarity index 100%
rename from utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/SerializableIntent.kt
rename to utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/SerializableIntent.kt
diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/SimpleAsyncTask.kt b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/SimpleAsyncTask.kt
similarity index 100%
rename from utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/SimpleAsyncTask.kt
rename to utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/SimpleAsyncTask.kt
diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/Utils.android.kt b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/Utils.android.kt
similarity index 100%
rename from utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/Utils.android.kt
rename to utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/Utils.android.kt
diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/UtilsLibrary.kt b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/UtilsLibrary.kt
similarity index 100%
rename from utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/UtilsLibrary.kt
rename to utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/UtilsLibrary.kt
diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/crypto/Base64.android.kt b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/crypto/Base64.android.kt
similarity index 100%
rename from utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/crypto/Base64.android.kt
rename to utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/crypto/Base64.android.kt
diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/crypto/Hmac.android.kt b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/crypto/Hmac.android.kt
similarity index 100%
rename from utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/crypto/Hmac.android.kt
rename to utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/crypto/Hmac.android.kt
diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AndroidSettings.kt b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AndroidSettings.kt
similarity index 100%
rename from utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AndroidSettings.kt
rename to utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AndroidSettings.kt
diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.android.kt b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.android.kt
similarity index 100%
rename from utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.android.kt
rename to utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.android.kt
diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/DataStoreSingleton.kt b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/DataStoreSingleton.kt
similarity index 100%
rename from utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/DataStoreSingleton.kt
rename to utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/DataStoreSingleton.kt
diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.android.kt b/utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.android.kt
similarity index 100%
rename from utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.android.kt
rename to utils/shared/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.android.kt
diff --git a/utils/src/commonMain/composeResources/drawable/license.xml b/utils/shared/src/commonMain/composeResources/drawable/license.xml
similarity index 100%
rename from utils/src/commonMain/composeResources/drawable/license.xml
rename to utils/shared/src/commonMain/composeResources/drawable/license.xml
diff --git a/utils/src/commonMain/composeResources/drawable/siren_filled.xml b/utils/shared/src/commonMain/composeResources/drawable/siren_filled.xml
similarity index 100%
rename from utils/src/commonMain/composeResources/drawable/siren_filled.xml
rename to utils/shared/src/commonMain/composeResources/drawable/siren_filled.xml
diff --git a/utils/src/commonMain/composeResources/drawable/siren_outlined.xml b/utils/shared/src/commonMain/composeResources/drawable/siren_outlined.xml
similarity index 100%
rename from utils/src/commonMain/composeResources/drawable/siren_outlined.xml
rename to utils/shared/src/commonMain/composeResources/drawable/siren_outlined.xml
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/components/Components.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/components/Components.kt
similarity index 100%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/components/Components.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/components/Components.kt
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/ui/Icons.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/ui/Icons.kt
similarity index 85%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/ui/Icons.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/ui/Icons.kt
index 96765ac..6369493 100644
--- a/utils/src/commonMain/kotlin/com/pr0gramm3r101/ui/Icons.kt
+++ b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/ui/Icons.kt
@@ -6,11 +6,11 @@ import androidx.compose.material.icons.Icons
import androidx.compose.material.icons.filled.Language
import androidx.compose.material.icons.outlined.Language
import androidx.compose.runtime.Composable
+import com.pr0gramm3r101.shared.Res
+import com.pr0gramm3r101.shared.license
+import com.pr0gramm3r101.shared.siren_filled
+import com.pr0gramm3r101.shared.siren_outlined
import org.jetbrains.compose.resources.vectorResource
-import com.pr0gramm3r101.utils.Res
-import com.pr0gramm3r101.utils.license
-import com.pr0gramm3r101.utils.siren_filled
-import com.pr0gramm3r101.utils.siren_outlined
inline val Icons.Outlined.Internet get() = Icons.Outlined.Language
inline val Icons.Filled.Internet get() = Icons.Filled.Language
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/Adaptive.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/Adaptive.kt
similarity index 100%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/Adaptive.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/Adaptive.kt
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/Components.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/Components.kt
similarity index 100%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/Components.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/Components.kt
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/Compose.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/Compose.kt
similarity index 100%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/Compose.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/Compose.kt
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/Utils.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/Utils.kt
similarity index 98%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/Utils.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/Utils.kt
index d7003c4..256a297 100644
--- a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/Utils.kt
+++ b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/Utils.kt
@@ -1,4 +1,4 @@
-@file:Suppress("UnusedReceiverParameter", "unused", "NOTHING_TO_INLINE", "KotlinRedundantDiagnosticSuppress")
+@file:Suppress("unused", "NOTHING_TO_INLINE", "KotlinRedundantDiagnosticSuppress")
package com.pr0gramm3r101.utils
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/UtilsLibrary.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/UtilsLibrary.kt
similarity index 100%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/UtilsLibrary.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/UtilsLibrary.kt
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/crypto/Base64.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/crypto/Base64.kt
similarity index 100%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/crypto/Base64.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/crypto/Base64.kt
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/crypto/Hmac.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/crypto/Hmac.kt
similarity index 100%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/crypto/Hmac.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/crypto/Hmac.kt
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/crypto/PasswordHash.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/crypto/PasswordHash.kt
similarity index 100%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/crypto/PasswordHash.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/crypto/PasswordHash.kt
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.kt
similarity index 100%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.kt
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/Settings.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/Settings.kt
similarity index 100%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/Settings.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/Settings.kt
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.kt
similarity index 100%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.kt
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/AuthStorage.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/AuthStorage.kt
similarity index 100%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/AuthStorage.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/AuthStorage.kt
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/ServerConfigStorage.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/ServerConfigStorage.kt
similarity index 100%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/ServerConfigStorage.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/ServerConfigStorage.kt
diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/Storage.kt b/utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/Storage.kt
similarity index 100%
rename from utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/Storage.kt
rename to utils/shared/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/Storage.kt
diff --git a/utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/Adaptive.ios.kt b/utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/Adaptive.ios.kt
similarity index 100%
rename from utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/Adaptive.ios.kt
rename to utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/Adaptive.ios.kt
diff --git a/utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/Utils.ios.kt b/utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/Utils.ios.kt
similarity index 100%
rename from utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/Utils.ios.kt
rename to utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/Utils.ios.kt
diff --git a/utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/UtilsLibrary.kt b/utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/UtilsLibrary.kt
similarity index 100%
rename from utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/UtilsLibrary.kt
rename to utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/UtilsLibrary.kt
diff --git a/utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/crypto/Base64.ios.kt b/utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/crypto/Base64.ios.kt
similarity index 100%
rename from utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/crypto/Base64.ios.kt
rename to utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/crypto/Base64.ios.kt
diff --git a/utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/crypto/Hmac.ios.kt b/utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/crypto/Hmac.ios.kt
similarity index 100%
rename from utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/crypto/Hmac.ios.kt
rename to utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/crypto/Hmac.ios.kt
diff --git a/utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.ios.kt b/utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.ios.kt
similarity index 100%
rename from utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.ios.kt
rename to utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.ios.kt
diff --git a/utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/IosSettings.kt b/utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/IosSettings.kt
similarity index 100%
rename from utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/IosSettings.kt
rename to utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/IosSettings.kt
diff --git a/utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.ios.kt b/utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.ios.kt
similarity index 100%
rename from utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.ios.kt
rename to utils/shared/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.ios.kt
diff --git a/utils/src/androidMain/res/values-ru/strings.xml b/utils/src/androidMain/res/values-ru/strings.xml
deleted file mode 100644
index 2aaf96d..0000000
--- a/utils/src/androidMain/res/values-ru/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- Показать пароль
- Скрыть пароль
- Что-то пошло не так
-
\ No newline at end of file
diff --git a/utils/src/androidMain/res/values/strings.xml b/utils/src/androidMain/res/values/strings.xml
deleted file mode 100644
index ba4ee06..0000000
--- a/utils/src/androidMain/res/values/strings.xml
+++ /dev/null
@@ -1,6 +0,0 @@
-
-
- Show password
- Hide password
- Something went wrong
-
\ No newline at end of file