From dd4f6f5552ce28a816022bf51d257818e6aae347 Mon Sep 17 00:00:00 2001 From: denis0001-dev Date: Tue, 16 Dec 2025 21:22:50 +0300 Subject: [PATCH] Fix errors --- .idea/inspectionProfiles/Project_Default.xml | 8 ++++++++ composeApp/proguard-rules.pro | 13 +------------ composeApp/src/androidMain/res/drawable/logo.xml | 4 ++-- .../src/androidMain/res/values-night/colors.xml | 5 ----- composeApp/src/androidMain/res/values/colors.xml | 11 ----------- .../commonMain/kotlin/ru/fromchat/ui/chat/Avatar.kt | 7 ------- .../kotlin/ru/fromchat/ui/chat/ChatGradients.kt | 1 - .../ru/fromchat/ui/chat/MessageContextMenu.kt | 1 + .../kotlin/ru/fromchat/ui/chat/MessageItem.kt | 3 +-- .../kotlin/ru/fromchat/ui/main/MainScreen.kt | 3 --- .../src/commonMain/kotlin/ru/fromchat/utils/Ktor.kt | 2 +- gradle/libs.versions.toml | 6 ++---- .../kotlin/com/pr0gramm3r101/utils/Utils.android.kt | 4 ++-- .../pr0gramm3r101/utils/settings/AndroidSettings.kt | 5 ++--- .../utils/settings/AsyncSettings.android.kt | 1 - .../utils/settings/SettingsFactory.android.kt | 4 +--- .../kotlin/com/pr0gramm3r101/utils/Utils.kt | 1 + .../utils/storage/ServerConfigStorage.kt | 2 +- .../utils/settings/AsyncSettings.ios.kt | 8 +++----- 19 files changed, 26 insertions(+), 63 deletions(-) delete mode 100644 composeApp/src/androidMain/res/values-night/colors.xml delete mode 100644 composeApp/src/androidMain/res/values/colors.xml diff --git a/.idea/inspectionProfiles/Project_Default.xml b/.idea/inspectionProfiles/Project_Default.xml index 7d11553..c0374ed 100644 --- a/.idea/inspectionProfiles/Project_Default.xml +++ b/.idea/inspectionProfiles/Project_Default.xml @@ -29,6 +29,7 @@ + + + + + \ No newline at end of file diff --git a/composeApp/proguard-rules.pro b/composeApp/proguard-rules.pro index e0d9994..cdc313f 100644 --- a/composeApp/proguard-rules.pro +++ b/composeApp/proguard-rules.pro @@ -18,15 +18,4 @@ # If you keep the line number information, uncomment this to # hide the original source file name. -#-renamesourcefileattribute SourceFile - -# Keep Ktor classes --keep class io.ktor.** { *; } --keep class kotlinx.coroutines.** { *; } --dontwarn io.ktor.** - -# Keep HttpTimeout plugin specifically --keep class io.ktor.client.plugins.HttpTimeout { *; } --keep class io.ktor.client.plugins.HttpTimeout$* { *; } --keep class io.ktor.client.plugins.HttpTimeout$Plugin { *; } --keep class io.ktor.client.plugins.HttpTimeout$Config { *; } \ No newline at end of file +#-renamesourcefileattribute SourceFile \ No newline at end of file diff --git a/composeApp/src/androidMain/res/drawable/logo.xml b/composeApp/src/androidMain/res/drawable/logo.xml index a06e55b..d76c3a9 100644 --- a/composeApp/src/androidMain/res/drawable/logo.xml +++ b/composeApp/src/androidMain/res/drawable/logo.xml @@ -1,7 +1,7 @@ - - #141218 - - diff --git a/composeApp/src/androidMain/res/values/colors.xml b/composeApp/src/androidMain/res/values/colors.xml deleted file mode 100644 index 327cb56..0000000 --- a/composeApp/src/androidMain/res/values/colors.xml +++ /dev/null @@ -1,11 +0,0 @@ - - - #FFBB86FC - #FF6200EE - #FF3700B3 - #FF03DAC5 - #FF018786 - #FF000000 - #FFFFFFFF - #FEF7FF - \ No newline at end of file diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/Avatar.kt b/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/Avatar.kt index 4923de0..140f0fd 100644 --- a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/Avatar.kt +++ b/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/Avatar.kt @@ -1,7 +1,5 @@ package ru.fromchat.ui.chat -import androidx.compose.animation.core.animateFloatAsState -import androidx.compose.animation.core.tween import androidx.compose.foundation.background import androidx.compose.foundation.layout.Box import androidx.compose.foundation.layout.size @@ -32,11 +30,6 @@ fun Avatar( modifier: Modifier = Modifier ) { var imageLoadFailed by remember { mutableStateOf(false) } - val alpha by animateFloatAsState( - targetValue = if (imageLoadFailed) 0f else 1f, - animationSpec = tween(300), - label = "avatar_fade" - ) val gradient = remember(displayName) { generateGradientFromName(displayName) } val initials = remember(displayName) { getInitials(displayName) } diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatGradients.kt b/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatGradients.kt index 371a747..496dbe0 100644 --- a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatGradients.kt +++ b/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/ChatGradients.kt @@ -2,7 +2,6 @@ package ru.fromchat.ui.chat import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color -import androidx.compose.material3.MaterialTheme import kotlin.math.abs /** diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageContextMenu.kt b/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageContextMenu.kt index 671920f..9b7c621 100644 --- a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageContextMenu.kt +++ b/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageContextMenu.kt @@ -48,6 +48,7 @@ data class ContextMenuState( val position: IntOffset = IntOffset(0, 0) ) +@Suppress("AssignedValueIsNeverRead") @Composable fun MessageContextMenu( state: ContextMenuState, diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageItem.kt b/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageItem.kt index 8b46cee..b123455 100644 --- a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageItem.kt +++ b/composeApp/src/commonMain/kotlin/ru/fromchat/ui/chat/MessageItem.kt @@ -26,12 +26,11 @@ import androidx.compose.ui.Alignment import androidx.compose.ui.Modifier import androidx.compose.ui.draw.clip import androidx.compose.ui.draw.shadow +import androidx.compose.ui.geometry.Offset import androidx.compose.ui.graphics.Brush import androidx.compose.ui.graphics.Color import androidx.compose.ui.input.pointer.pointerInput import androidx.compose.ui.text.font.FontWeight -import androidx.compose.ui.geometry.Offset -import androidx.compose.ui.unit.IntOffset import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import kotlinx.datetime.TimeZone diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/main/MainScreen.kt b/composeApp/src/commonMain/kotlin/ru/fromchat/ui/main/MainScreen.kt index b0afdfc..4e5a902 100644 --- a/composeApp/src/commonMain/kotlin/ru/fromchat/ui/main/MainScreen.kt +++ b/composeApp/src/commonMain/kotlin/ru/fromchat/ui/main/MainScreen.kt @@ -20,7 +20,6 @@ import androidx.compose.material3.Text import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf -import androidx.compose.runtime.remember import androidx.compose.runtime.saveable.rememberSaveable import androidx.compose.runtime.setValue import androidx.compose.ui.Modifier @@ -31,14 +30,12 @@ import ru.fromchat.coming_soon import ru.fromchat.contacts import ru.fromchat.dms import ru.fromchat.settings -import ru.fromchat.ui.LocalNavController import ru.fromchat.utils.exclude @Suppress("AssignedValueIsNeverRead") @Composable fun MainScreen(onLogout: () -> Unit = {}) { var selectedTab by rememberSaveable { mutableStateOf("chats") } - val navController = LocalNavController.current Scaffold( bottomBar = { diff --git a/composeApp/src/commonMain/kotlin/ru/fromchat/utils/Ktor.kt b/composeApp/src/commonMain/kotlin/ru/fromchat/utils/Ktor.kt index 05c5149..3aef0f5 100644 --- a/composeApp/src/commonMain/kotlin/ru/fromchat/utils/Ktor.kt +++ b/composeApp/src/commonMain/kotlin/ru/fromchat/utils/Ktor.kt @@ -56,7 +56,7 @@ inline fun HttpClientConfig<*>.defaultRequest( /** * Installs [Logging] in a Ktor client config. - * @param settings Lambda to configure the [Logging.Config]. + * @param settings Lambda to configure the [LoggingConfig]. */ inline fun HttpClientConfig<*>.logging( crossinline settings: LoggingConfig.() -> Unit diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 31cc2f2..733ddaf 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -1,11 +1,12 @@ [versions] -agp = "8.13.1" +agp = "8.13.2" androidx-activityCompose = "1.12.1" androidx-appcompat = "1.7.1" androidx-core-ktx = "1.17.0" androidx-lifecycle = "2.9.6" coilCompose = "3.3.0" compose-multiplatform = "1.9.3" +#noinspection NewerVersionAvailable constraintlayout = "0.6.1-shaded" coreSplashscreen = "1.2.0" haze = "1.7.1" @@ -31,8 +32,6 @@ androidx-core-splashscreen = { module = "androidx.core:core-splashscreen", versi androidx-core-ktx = { group = "androidx.core", name = "core-ktx", version.ref = "androidx-core-ktx" } androidx-appcompat = { group = "androidx.appcompat", name = "appcompat", version.ref = "androidx-appcompat" } androidx-activity-compose = { module = "androidx.activity:activity-compose", version.ref = "androidx-activityCompose" } -androidx-lifecycle-viewmodel = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-viewmodel", version.ref = "androidx-lifecycle" } -androidx-lifecycle-runtime-compose = { group = "org.jetbrains.androidx.lifecycle", name = "lifecycle-runtime-compose", version.ref = "androidx-lifecycle" } coil-compose = { module = "io.coil-kt.coil3:coil-compose", version.ref = "coilCompose" } coil-network-ktor3 = { module = "io.coil-kt.coil3:coil-network-ktor3", version.ref = "coilCompose" } constraintlayout = { module = "tech.annexflow.compose:constraintlayout-compose-multiplatform", version.ref = "constraintlayout" } @@ -56,7 +55,6 @@ ktor-client-content-negotiation = { module = "io.ktor:ktor-client-content-negoti ktor-client-serialization-kotlinx-json = { module = "io.ktor:ktor-serialization-kotlinx-json", version.ref = "ktor" } ktor-client-websockets = { module = "io.ktor:ktor-client-websockets", version.ref = "ktor" } ktor-client-logging = { module = "io.ktor:ktor-client-logging", version.ref = "ktor" } -ktor-client-android = { module = "io.ktor:ktor-client-android", version.ref = "ktor" } ktor-client-okhttp = { module = "io.ktor:ktor-client-okhttp", version.ref = "ktor" } ktor-client-darwin = { module = "io.ktor:ktor-client-darwin", version.ref = "ktor" } slf4j-android = { module = "org.slf4j:slf4j-android", version.ref = "slf4j" } diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/Utils.android.kt b/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/Utils.android.kt index 8870977..b93c4a9 100644 --- a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/Utils.android.kt +++ b/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/Utils.android.kt @@ -86,7 +86,6 @@ import javax.crypto.Cipher import javax.crypto.SecretKeyFactory import javax.crypto.spec.IvParameterSpec import javax.crypto.spec.PBEKeySpec -import kotlin.collections.iterator import kotlin.random.Random import kotlin.random.nextInt import kotlin.reflect.KClass @@ -291,12 +290,13 @@ fun Activity.resolveAttr(@AttrRes id: Int): Int? { } } -@Suppress("UNUSED_PARAMETER", "unused", "MemberVisibilityCanBePrivate") +@Suppress("unused", "MemberVisibilityCanBePrivate") class QuickAlertDialogBuilder(context: Context): MaterialAlertDialogBuilder(context) { fun title(title: CharSequence): QuickAlertDialogBuilder { setTitle(title) return this } + fun title(@StringRes titleRes: Int): QuickAlertDialogBuilder { setTitle(titleRes) return this diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AndroidSettings.kt b/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AndroidSettings.kt index 0221f8d..5f23d9b 100644 --- a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AndroidSettings.kt +++ b/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AndroidSettings.kt @@ -1,6 +1,5 @@ package com.pr0gramm3r101.utils.settings -import android.content.Context import androidx.datastore.core.DataStore import androidx.datastore.preferences.core.Preferences import androidx.datastore.preferences.core.booleanPreferencesKey @@ -13,11 +12,11 @@ import androidx.datastore.preferences.core.stringSetPreferencesKey import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.map import kotlinx.coroutines.runBlocking -import com.pr0gramm3r101.utils.settings.DataStoreSingleton -class AndroidSettings(private val context: Context): Settings { +class AndroidSettings(): Settings { private val dataStore: DataStore get() = DataStoreSingleton.dataStore + override fun putString(key: String, value: String) { runBlocking { dataStore.edit { preferences -> diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.android.kt b/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.android.kt index 749b4a9..7e5858f 100644 --- a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.android.kt +++ b/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.android.kt @@ -9,7 +9,6 @@ import androidx.datastore.preferences.core.intPreferencesKey import androidx.datastore.preferences.core.longPreferencesKey import androidx.datastore.preferences.core.stringPreferencesKey import androidx.datastore.preferences.core.stringSetPreferencesKey -import com.pr0gramm3r101.utils.settings.DataStoreSingleton import kotlinx.coroutines.flow.first import kotlinx.coroutines.flow.map diff --git a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.android.kt b/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.android.kt index fc36384..b8bed87 100644 --- a/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.android.kt +++ b/utils/src/androidMain/kotlin/com/pr0gramm3r101/utils/settings/SettingsFactory.android.kt @@ -1,5 +1,3 @@ package com.pr0gramm3r101.utils.settings -import com.pr0gramm3r101.utils.UtilsLibrary - -actual val settings: Settings get() = AndroidSettings(UtilsLibrary.context) \ No newline at end of file +actual val settings: Settings get() = AndroidSettings() \ No newline at end of file diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/Utils.kt b/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/Utils.kt index e1b8ec7..d7003c4 100644 --- a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/Utils.kt +++ b/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/Utils.kt @@ -26,6 +26,7 @@ import tech.annexflow.constraintlayout.compose.ConstraintLayoutBaseScope import tech.annexflow.constraintlayout.compose.HorizontalAnchorable import tech.annexflow.constraintlayout.compose.VerticalAnchorable +@Suppress("ComposableNaming") @Composable fun Typography(fontRes: FontResource) = Typography().let { val font = FontFamily(Font(fontRes)) diff --git a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/ServerConfigStorage.kt b/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/ServerConfigStorage.kt index bcc6fa9..0a1a907 100644 --- a/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/ServerConfigStorage.kt +++ b/utils/src/commonMain/kotlin/com/pr0gramm3r101/utils/storage/ServerConfigStorage.kt @@ -19,7 +19,7 @@ object ServerConfigStorage { suspend fun getServerUrl(): String? { val url = storage.getString(SERVER_URL_KEY) - return if (url.isEmpty()) null else url + return url.ifEmpty { null } } suspend fun setServerUrl(url: String) { diff --git a/utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.ios.kt b/utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.ios.kt index 473922a..228a897 100644 --- a/utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.ios.kt +++ b/utils/src/iosMain/kotlin/com/pr0gramm3r101/utils/settings/AsyncSettings.ios.kt @@ -2,8 +2,8 @@ package com.pr0gramm3r101.utils.settings import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.withContext -import platform.Foundation.NSUserDefaults import platform.Foundation.NSBundle +import platform.Foundation.NSUserDefaults class IosAsyncSettings : AsyncSettings { private val defaults: NSUserDefaults = NSUserDefaults.standardUserDefaults @@ -23,8 +23,7 @@ class IosAsyncSettings : AsyncSettings { } override suspend fun getInt(key: String, default: Int): Int = withContext(Dispatchers.Default) { - val value = defaults.integerForKey(key) - if (value != null) value.toInt() else default + defaults.integerForKey(key).toInt() } override suspend fun putLong(key: String, value: Long): Unit = withContext(Dispatchers.Default) { @@ -42,8 +41,7 @@ class IosAsyncSettings : AsyncSettings { } override suspend fun getFloat(key: String, default: Float): Float = withContext(Dispatchers.Default) { - val value = defaults.floatForKey(key) - if (value != null) value.toFloat() else default + defaults.floatForKey(key) } override suspend fun putBoolean(key: String, value: Boolean): Unit = withContext(Dispatchers.Default) {