diff --git a/app/src/main/kotlin/dev/meloda/fast/presentation/MainActivity.kt b/app/src/main/kotlin/dev/meloda/fast/presentation/MainActivity.kt
index c27d5c6b..49596ac6 100644
--- a/app/src/main/kotlin/dev/meloda/fast/presentation/MainActivity.kt
+++ b/app/src/main/kotlin/dev/meloda/fast/presentation/MainActivity.kt
@@ -1,6 +1,7 @@
package dev.meloda.fast.presentation
import android.Manifest
+import android.annotation.SuppressLint
import android.app.NotificationChannel
import android.app.NotificationManager
import android.content.Context
@@ -18,6 +19,7 @@ import androidx.compose.runtime.CompositionLocalProvider
import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.derivedStateOf
import androidx.compose.runtime.getValue
+import androidx.compose.runtime.mutableStateOf
import androidx.compose.runtime.remember
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.graphics.toArgb
@@ -51,6 +53,7 @@ import dev.meloda.fast.ui.R as UiR
class MainActivity : AppCompatActivity() {
+ @SuppressLint("HardwareIds", "InlinedApi")
@OptIn(ExperimentalPermissionsApi::class)
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@@ -155,15 +158,34 @@ class MainActivity : AppCompatActivity() {
}
}
- val themeConfig = ThemeConfig(
- darkMode = isNeedToEnableDarkMode(userSettings.darkMode.value),
- dynamicColors = userSettings.enableDynamicColors.value,
- selectedColorScheme = 0,
- amoledDark = userSettings.enableAmoledDark.value,
- enableBlur = userSettings.useBlur.value,
- enableMultiline = userSettings.enableMultiline.value,
- isDeviceCompact = isDeviceCompact
- )
+ val darkMode by userSettings.darkMode.collectAsStateWithLifecycle()
+ val dynamicColors by userSettings.enableDynamicColors.collectAsStateWithLifecycle()
+ val amoledDark by userSettings.enableAmoledDark.collectAsStateWithLifecycle()
+ val enableBlur by userSettings.useBlur.collectAsStateWithLifecycle()
+ val enableMultiline by userSettings.enableMultiline.collectAsStateWithLifecycle()
+
+ val setDarkMode = isNeedToEnableDarkMode(darkMode = darkMode)
+
+ val themeConfig by remember(
+ darkMode,
+ dynamicColors,
+ amoledDark,
+ enableBlur,
+ enableMultiline,
+ setDarkMode
+ ) {
+ mutableStateOf(
+ ThemeConfig(
+ darkMode = setDarkMode,
+ dynamicColors = dynamicColors,
+ selectedColorScheme = 0,
+ amoledDark = amoledDark,
+ enableBlur = enableBlur,
+ enableMultiline = enableMultiline,
+ isDeviceCompact = isDeviceCompact
+ )
+ )
+ }
CompositionLocalProvider(LocalThemeConfig provides themeConfig) {
AppTheme(
diff --git a/app/src/main/kotlin/dev/meloda/fast/receiver/DownloadManagerReceiver.kt b/app/src/main/kotlin/dev/meloda/fast/receiver/DownloadManagerReceiver.kt
deleted file mode 100644
index ae682080..00000000
--- a/app/src/main/kotlin/dev/meloda/fast/receiver/DownloadManagerReceiver.kt
+++ /dev/null
@@ -1,15 +0,0 @@
-package dev.meloda.fast.receiver
-
-import android.content.BroadcastReceiver
-import android.content.Context
-import android.content.Intent
-import android.util.Log
-
-class DownloadManagerReceiver : BroadcastReceiver() {
-
- var onReceiveAction: (() -> Unit)? = null
-
- override fun onReceive(context: Context, intent: Intent) {
- onReceiveAction?.invoke()
- }
-}
diff --git a/core/common/src/main/AndroidManifest.xml b/core/common/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/core/common/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/core/common/src/main/kotlin/dev/meloda/fast/common/extensions/Extensions.kt b/core/common/src/main/kotlin/dev/meloda/fast/common/extensions/Extensions.kt
index 87082ffe..a44ac114 100644
--- a/core/common/src/main/kotlin/dev/meloda/fast/common/extensions/Extensions.kt
+++ b/core/common/src/main/kotlin/dev/meloda/fast/common/extensions/Extensions.kt
@@ -8,11 +8,9 @@ import androidx.annotation.ChecksSdkIntAtLeast
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import kotlinx.coroutines.CoroutineScope
-import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.Job
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.Flow
-import kotlinx.coroutines.flow.MutableSharedFlow
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.asFlow
import kotlinx.coroutines.flow.flow
@@ -20,10 +18,6 @@ import kotlinx.coroutines.flow.launchIn
import kotlinx.coroutines.flow.onEach
import kotlinx.coroutines.flow.onStart
import kotlinx.coroutines.flow.update
-import kotlinx.coroutines.launch
-import kotlinx.coroutines.withContext
-import kotlin.coroutines.CoroutineContext
-import kotlin.coroutines.EmptyCoroutineContext
import kotlin.time.Duration
import kotlin.time.Duration.Companion.seconds
@@ -98,26 +92,6 @@ fun createTimerFlow(
}
}
-context(ViewModel)
-fun MutableSharedFlow.emitOnMainScope(value: T) = emitOnScope(Dispatchers.Main) { value }
-
-context(ViewModel)
-fun MutableSharedFlow.emitOnScope(
- coroutineContext: CoroutineContext = EmptyCoroutineContext,
- value: () -> T,
-) {
- viewModelScope.launch(coroutineContext) {
- emit(value())
- }
-}
-
-context(CoroutineScope)
-suspend fun MutableSharedFlow.emitWithMain(value: T) {
- withContext(Dispatchers.Main) {
- emit(value)
- }
-}
-
context(ViewModel)
fun MutableStateFlow.updateValue(newValue: T) = this.update { newValue }
diff --git a/core/common/src/main/kotlin/dev/meloda/fast/common/util/AndroidUtils.kt b/core/common/src/main/kotlin/dev/meloda/fast/common/util/AndroidUtils.kt
index e5849f8d..74fd128e 100644
--- a/core/common/src/main/kotlin/dev/meloda/fast/common/util/AndroidUtils.kt
+++ b/core/common/src/main/kotlin/dev/meloda/fast/common/util/AndroidUtils.kt
@@ -13,11 +13,6 @@ import androidx.core.content.FileProvider
import java.io.File
import java.io.FileOutputStream
-private object BuildConfig {
- const val DEBUG = true
- const val APPLICATION_ID = "dev.meloda.fast"
-}
-
object AndroidUtils {
fun copyText(
@@ -95,7 +90,7 @@ object AndroidUtils {
action = if (Build.VERSION.SDK_INT < Build.VERSION_CODES.O) {
Settings.ACTION_SECURITY_SETTINGS
} else {
- data = Uri.parse("package:${BuildConfig.APPLICATION_ID}")
+ data = Uri.parse("package:dev.meloda.fast")
Settings.ACTION_MANAGE_UNKNOWN_APP_SOURCES
}
})
@@ -113,7 +108,7 @@ object AndroidUtils {
intent.putExtra(Intent.EXTRA_NOT_UNKNOWN_SOURCE, true)
intent.data = FileProvider.getUriForFile(
context,
- BuildConfig.APPLICATION_ID + providerPath,
+ "dev.meloda.fast$providerPath",
fileToRead
)
@@ -132,7 +127,7 @@ object AndroidUtils {
}
val file = existingFile.copyTo(copyToFile)
- FileProvider.getUriForFile(context, "${BuildConfig.APPLICATION_ID}.provider", file)
+ FileProvider.getUriForFile(context, "dev.meloda.fast.provider", file)
} catch (e: Exception) {
e.printStackTrace()
null
@@ -150,7 +145,7 @@ object AndroidUtils {
bitmap.compress(Bitmap.CompressFormat.PNG, 90, outputStream)
outputStream.flush()
outputStream.close()
- FileProvider.getUriForFile(context, "${BuildConfig.APPLICATION_ID}.fileprovider", file)
+ FileProvider.getUriForFile(context, "dev.meloda.fast.fileprovider", file)
} catch (e: Exception) {
e.printStackTrace()
null
@@ -188,7 +183,6 @@ object AndroidUtils {
}
val chooserIntent = Intent.createChooser(intent, "Share $contentType")
-
context.startActivity(chooserIntent)
}
}
diff --git a/core/data/src/main/kotlin/dev/meloda/fast/data/api/account/AccountUseCase.kt b/core/data/src/main/kotlin/dev/meloda/fast/data/api/account/AccountUseCase.kt
index c6284e63..5712e1d3 100644
--- a/core/data/src/main/kotlin/dev/meloda/fast/data/api/account/AccountUseCase.kt
+++ b/core/data/src/main/kotlin/dev/meloda/fast/data/api/account/AccountUseCase.kt
@@ -8,9 +8,9 @@ interface AccountUseCase {
suspend fun setOnline(
voip: Boolean,
accessToken: String
- ): Flow>
+ ): Flow>
suspend fun setOffline(
accessToken: String
- ): Flow>
+ ): Flow>
}
diff --git a/core/data/src/main/kotlin/dev/meloda/fast/data/api/account/AccountUseCaseImpl.kt b/core/data/src/main/kotlin/dev/meloda/fast/data/api/account/AccountUseCaseImpl.kt
index 6af97538..6500c6e9 100644
--- a/core/data/src/main/kotlin/dev/meloda/fast/data/api/account/AccountUseCaseImpl.kt
+++ b/core/data/src/main/kotlin/dev/meloda/fast/data/api/account/AccountUseCaseImpl.kt
@@ -1,49 +1,30 @@
package dev.meloda.fast.data.api.account
import dev.meloda.fast.data.State
+import dev.meloda.fast.data.mapToState
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
-// TODO: 05/05/2024, Danil Nikolaev: implement
class AccountUseCaseImpl(
- private val accountRepository: dev.meloda.fast.data.api.account.AccountRepository
-) : dev.meloda.fast.data.api.account.AccountUseCase {
+ private val repository: AccountRepository
+) : AccountUseCase {
override suspend fun setOnline(
voip: Boolean,
accessToken: String
- ): Flow> = flow {
-// emit(dev.meloda.fast.data.State.Loading)
-//
-// val newState = accountRepository.setOnline(
-// params = AccountSetOnlineRequest(
-// voip = voip,
-// accessToken = accessToken
-// )
-// ).fold(
-// onSuccess = { response -> dev.meloda.fast.data.State.Success(response) },
-// onNetworkFailure = { dev.meloda.fast.data.State.Error.ConnectionError },
-// onUnknownFailure = { dev.meloda.fast.data.State.UNKNOWN_ERROR },
-// onHttpFailure = { result -> result.error.toStateApiError() },
-// onApiFailure = { result -> result.error.toStateApiError() }
-// )
-// emit(newState)
+ ): Flow> = flow {
+ emit(State.Loading)
+
+ val newState = repository.setOnline(voip = voip).mapToState()
+ emit(newState)
}
override suspend fun setOffline(
accessToken: String
- ): Flow> = flow {
- emit(dev.meloda.fast.data.State.Loading)
+ ): Flow> = flow {
+ emit(State.Loading)
-// val newState = accountRepository.setOffline(
-// params = AccountSetOfflineRequest(accessToken = accessToken)
-// ).fold(
-// onSuccess = { response -> dev.meloda.fast.data.State.Success(response) },
-// onNetworkFailure = { dev.meloda.fast.data.State.Error.ConnectionError },
-// onUnknownFailure = { dev.meloda.fast.data.State.UNKNOWN_ERROR },
-// onHttpFailure = { result -> result.error.toStateApiError() },
-// onApiFailure = { result -> result.error.toStateApiError() }
-// )
-// emit(newState)
+ val newState = repository.setOffline().mapToState()
+ emit(newState)
}
}
diff --git a/core/database/src/main/AndroidManifest.xml b/core/database/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/core/database/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/core/datastore/src/main/AndroidManifest.xml b/core/datastore/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/core/datastore/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/core/model/src/main/AndroidManifest.xml b/core/model/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/core/model/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/core/model/src/main/kotlin/dev/meloda/fast/model/ApiEvent.kt b/core/model/src/main/kotlin/dev/meloda/fast/model/ApiEvent.kt
index 286b47f5..2fce295e 100644
--- a/core/model/src/main/kotlin/dev/meloda/fast/model/ApiEvent.kt
+++ b/core/model/src/main/kotlin/dev/meloda/fast/model/ApiEvent.kt
@@ -1,4 +1,4 @@
-package dev.meloda.fast.model;
+package dev.meloda.fast.model
enum class ApiEvent(val value: Int) {
MESSAGE_SET_FLAGS(2),
diff --git a/core/model/src/main/kotlin/dev/meloda/fast/model/api/PeerType.kt b/core/model/src/main/kotlin/dev/meloda/fast/model/api/PeerType.kt
index 4789e59b..07a7487d 100644
--- a/core/model/src/main/kotlin/dev/meloda/fast/model/api/PeerType.kt
+++ b/core/model/src/main/kotlin/dev/meloda/fast/model/api/PeerType.kt
@@ -1,4 +1,4 @@
-package dev.meloda.fast.model.api;
+package dev.meloda.fast.model.api
enum class PeerType(val value: String) {
USER("user"),
diff --git a/core/network/src/main/AndroidManifest.xml b/core/network/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/core/network/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/core/network/src/main/kotlin/dev/meloda/fast/network/ApiResponse.kt b/core/network/src/main/kotlin/dev/meloda/fast/network/ApiResponse.kt
index d77f9e8d..486b005d 100644
--- a/core/network/src/main/kotlin/dev/meloda/fast/network/ApiResponse.kt
+++ b/core/network/src/main/kotlin/dev/meloda/fast/network/ApiResponse.kt
@@ -11,5 +11,4 @@ data class ApiResponse(
val isSuccessful get() = error == null && response != null
fun requireResponse(): T = requireNotNull(response)
- fun requireError(): RestApiError = requireNotNull(error)
}
diff --git a/core/network/src/main/kotlin/dev/meloda/fast/network/ValidationType.kt b/core/network/src/main/kotlin/dev/meloda/fast/network/ValidationType.kt
index d8b260b5..50a6c4a1 100644
--- a/core/network/src/main/kotlin/dev/meloda/fast/network/ValidationType.kt
+++ b/core/network/src/main/kotlin/dev/meloda/fast/network/ValidationType.kt
@@ -1,4 +1,4 @@
-package dev.meloda.fast.network;
+package dev.meloda.fast.network
enum class ValidationType(val value: String) {
APP("2fa_app"),
diff --git a/core/network/src/main/kotlin/dev/meloda/fast/network/VkOAuthErrorType.kt b/core/network/src/main/kotlin/dev/meloda/fast/network/VkOAuthErrorType.kt
index ff90b9b3..488b38a5 100644
--- a/core/network/src/main/kotlin/dev/meloda/fast/network/VkOAuthErrorType.kt
+++ b/core/network/src/main/kotlin/dev/meloda/fast/network/VkOAuthErrorType.kt
@@ -1,4 +1,4 @@
-package dev.meloda.fast.network;
+package dev.meloda.fast.network
enum class VkOAuthErrorType(val value: String) {
WRONG_OTP_FORMAT("otp_format_is_incorrect"),
diff --git a/core/ui/src/main/AndroidManifest.xml b/core/ui/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/core/ui/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/feature/auth/captcha/src/main/AndroidManifest.xml b/feature/auth/captcha/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/feature/auth/captcha/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/feature/auth/login/src/androidTest/kotlin/com/meloda/fast/auth/login/LoginScreenTest.kt b/feature/auth/login/src/androidTest/kotlin/dev/meloda/fast/auth/login/LoginScreenTest.kt
similarity index 84%
rename from feature/auth/login/src/androidTest/kotlin/com/meloda/fast/auth/login/LoginScreenTest.kt
rename to feature/auth/login/src/androidTest/kotlin/dev/meloda/fast/auth/login/LoginScreenTest.kt
index 79363455..580181b2 100644
--- a/feature/auth/login/src/androidTest/kotlin/com/meloda/fast/auth/login/LoginScreenTest.kt
+++ b/feature/auth/login/src/androidTest/kotlin/dev/meloda/fast/auth/login/LoginScreenTest.kt
@@ -1,9 +1,9 @@
-package com.meloda.fast.auth.login
+package dev.meloda.fast.auth.login
import androidx.compose.ui.test.assertHasClickAction
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithTag
-import com.meloda.fast.auth.login.presentation.LoginScreen
+import dev.meloda.fast.auth.login.presentation.LoginScreen
import org.junit.Rule
import org.junit.Test
diff --git a/feature/auth/login/src/androidTest/kotlin/com/meloda/fast/auth/login/LogoScreenTest.kt b/feature/auth/login/src/androidTest/kotlin/dev/meloda/fast/auth/login/LogoScreenTest.kt
similarity index 84%
rename from feature/auth/login/src/androidTest/kotlin/com/meloda/fast/auth/login/LogoScreenTest.kt
rename to feature/auth/login/src/androidTest/kotlin/dev/meloda/fast/auth/login/LogoScreenTest.kt
index f0e3deb7..053293a7 100644
--- a/feature/auth/login/src/androidTest/kotlin/com/meloda/fast/auth/login/LogoScreenTest.kt
+++ b/feature/auth/login/src/androidTest/kotlin/dev/meloda/fast/auth/login/LogoScreenTest.kt
@@ -1,9 +1,9 @@
-package com.meloda.fast.auth.login
+package dev.meloda.fast.auth.login
import androidx.compose.ui.test.assertHasClickAction
import androidx.compose.ui.test.junit4.createComposeRule
import androidx.compose.ui.test.onNodeWithTag
-import com.meloda.fast.auth.login.presentation.LogoScreen
+import dev.meloda.fast.auth.login.presentation.LogoScreen
import org.junit.Rule
import org.junit.Test
diff --git a/feature/auth/login/src/main/AndroidManifest.xml b/feature/auth/login/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/feature/auth/login/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/LoginViewModel.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/LoginViewModel.kt
index a9fa32fd..d79892f3 100644
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/LoginViewModel.kt
+++ b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/LoginViewModel.kt
@@ -1,9 +1,8 @@
-package com.meloda.fast.auth.login
+package dev.meloda.fast.auth.login
import android.util.Log
import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
-import dev.meloda.fast.auth.login.BuildConfig
import dev.meloda.fast.common.LongPollController
import dev.meloda.fast.common.UserConfig
import dev.meloda.fast.common.VkConstants
@@ -16,16 +15,15 @@ import dev.meloda.fast.data.api.users.UsersUseCase
import dev.meloda.fast.data.db.AccountsRepository
import dev.meloda.fast.data.processState
import dev.meloda.fast.datastore.AppSettings
-import dev.meloda.fast.datastore.UserSettings
import dev.meloda.fast.model.database.AccountEntity
import dev.meloda.fast.network.OAuthErrorDomain
-import com.meloda.fast.auth.login.model.CaptchaArguments
-import com.meloda.fast.auth.login.model.LoginError
-import com.meloda.fast.auth.login.model.LoginScreenState
-import com.meloda.fast.auth.login.model.LoginUserBannedArguments
-import com.meloda.fast.auth.login.model.LoginValidationArguments
-import com.meloda.fast.auth.login.model.LoginValidationResult
-import com.meloda.fast.auth.login.validation.LoginValidator
+import dev.meloda.fast.auth.login.model.CaptchaArguments
+import dev.meloda.fast.auth.login.model.LoginError
+import dev.meloda.fast.auth.login.model.LoginScreenState
+import dev.meloda.fast.auth.login.model.LoginUserBannedArguments
+import dev.meloda.fast.auth.login.model.LoginValidationArguments
+import dev.meloda.fast.auth.login.model.LoginValidationResult
+import dev.meloda.fast.auth.login.validation.LoginValidator
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.delay
import kotlinx.coroutines.flow.MutableStateFlow
@@ -72,7 +70,6 @@ class LoginViewModelImpl(
private val usersUseCase: UsersUseCase,
private val accountsRepository: AccountsRepository,
private val loginValidator: LoginValidator,
- private val userSettings: UserSettings,
private val longPollController: LongPollController
) : ViewModel(), LoginViewModel {
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/OAuthUseCase.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/OAuthUseCase.kt
index 692feb62..37d1b282 100644
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/OAuthUseCase.kt
+++ b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/OAuthUseCase.kt
@@ -1,7 +1,7 @@
-package com.meloda.fast.auth.login
+package dev.meloda.fast.auth.login
import dev.meloda.fast.data.State
-import com.meloda.fast.auth.login.model.AuthInfo
+import dev.meloda.fast.auth.login.model.AuthInfo
import kotlinx.coroutines.flow.Flow
interface OAuthUseCase {
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/OAuthUseCaseImpl.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/OAuthUseCaseImpl.kt
index 1283f3a0..e9d984d1 100644
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/OAuthUseCaseImpl.kt
+++ b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/OAuthUseCaseImpl.kt
@@ -1,4 +1,4 @@
-package com.meloda.fast.auth.login
+package dev.meloda.fast.auth.login
import dev.meloda.fast.data.State
import dev.meloda.fast.data.api.oauth.OAuthRepository
@@ -6,7 +6,7 @@ import dev.meloda.fast.network.OAuthErrorDomain
import dev.meloda.fast.network.ValidationType
import dev.meloda.fast.network.VkOAuthError
import dev.meloda.fast.network.VkOAuthErrorType
-import com.meloda.fast.auth.login.model.AuthInfo
+import dev.meloda.fast.auth.login.model.AuthInfo
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/di/LoginModule.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/di/LoginModule.kt
index d92f6e23..e218dba1 100644
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/di/LoginModule.kt
+++ b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/di/LoginModule.kt
@@ -1,10 +1,10 @@
-package com.meloda.fast.auth.login.di
+package dev.meloda.fast.auth.login.di
-import com.meloda.fast.auth.login.LoginViewModel
-import com.meloda.fast.auth.login.LoginViewModelImpl
-import com.meloda.fast.auth.login.OAuthUseCase
-import com.meloda.fast.auth.login.OAuthUseCaseImpl
-import com.meloda.fast.auth.login.validation.LoginValidator
+import dev.meloda.fast.auth.login.LoginViewModel
+import dev.meloda.fast.auth.login.LoginViewModelImpl
+import dev.meloda.fast.auth.login.OAuthUseCase
+import dev.meloda.fast.auth.login.OAuthUseCaseImpl
+import dev.meloda.fast.auth.login.validation.LoginValidator
import org.koin.androidx.viewmodel.dsl.viewModelOf
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.bind
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/AuthInfo.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/AuthInfo.kt
index c4f93a97..f5503ecb 100644
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/AuthInfo.kt
+++ b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/AuthInfo.kt
@@ -1,4 +1,4 @@
-package com.meloda.fast.auth.login.model
+package dev.meloda.fast.auth.login.model
data class AuthInfo(
val userId: Int?,
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/CaptchaArguments.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/CaptchaArguments.kt
index b83a7860..2737ed7d 100644
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/CaptchaArguments.kt
+++ b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/CaptchaArguments.kt
@@ -1,4 +1,4 @@
-package com.meloda.fast.auth.login.model
+package dev.meloda.fast.auth.login.model
import android.os.Parcelable
import kotlinx.parcelize.Parcelize
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginArguments.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginArguments.kt
deleted file mode 100644
index a51eaa88..00000000
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginArguments.kt
+++ /dev/null
@@ -1,8 +0,0 @@
-package com.meloda.fast.auth.login.model
-
-data class LoginArguments(val code: String) {
-
- companion object {
- val EMPTY: LoginArguments = LoginArguments(code = "")
- }
-}
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginError.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginError.kt
index 340914d9..d6b5fd78 100644
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginError.kt
+++ b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginError.kt
@@ -1,4 +1,4 @@
-package com.meloda.fast.auth.login.model
+package dev.meloda.fast.auth.login.model
import androidx.compose.runtime.Immutable
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginScreenState.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginScreenState.kt
index 2cc6cc8d..cdad4e06 100644
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginScreenState.kt
+++ b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginScreenState.kt
@@ -1,4 +1,4 @@
-package com.meloda.fast.auth.login.model
+package dev.meloda.fast.auth.login.model
import androidx.compose.runtime.Immutable
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginUserBannedArguments.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginUserBannedArguments.kt
index b8b986d8..7da19d46 100644
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginUserBannedArguments.kt
+++ b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginUserBannedArguments.kt
@@ -1,4 +1,4 @@
-package com.meloda.fast.auth.login.model
+package dev.meloda.fast.auth.login.model
import android.os.Parcelable
import kotlinx.parcelize.Parcelize
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginValidationArguments.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginValidationArguments.kt
index f41cf592..f1ffdf78 100644
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginValidationArguments.kt
+++ b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginValidationArguments.kt
@@ -1,4 +1,4 @@
-package com.meloda.fast.auth.login.model
+package dev.meloda.fast.auth.login.model
import android.os.Parcelable
import kotlinx.parcelize.Parcelize
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginValidationResult.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginValidationResult.kt
index 0466fb28..685b5b2a 100644
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginValidationResult.kt
+++ b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/model/LoginValidationResult.kt
@@ -1,4 +1,4 @@
-package com.meloda.fast.auth.login.model
+package dev.meloda.fast.auth.login.model
sealed class LoginValidationResult {
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/navigation/LoginNavigation.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/navigation/LoginNavigation.kt
index 1c077e1d..ca06c374 100644
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/navigation/LoginNavigation.kt
+++ b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/navigation/LoginNavigation.kt
@@ -1,17 +1,17 @@
-package com.meloda.fast.auth.login.navigation
+package dev.meloda.fast.auth.login.navigation
import androidx.navigation.NavBackStackEntry
import androidx.navigation.NavController
import androidx.navigation.NavGraphBuilder
import androidx.navigation.compose.composable
import dev.meloda.fast.common.extensions.navigation.sharedViewModel
-import com.meloda.fast.auth.login.LoginViewModel
-import com.meloda.fast.auth.login.LoginViewModelImpl
-import com.meloda.fast.auth.login.model.CaptchaArguments
-import com.meloda.fast.auth.login.model.LoginValidationArguments
-import com.meloda.fast.auth.login.model.LoginUserBannedArguments
-import com.meloda.fast.auth.login.presentation.LoginRoute
-import com.meloda.fast.auth.login.presentation.LogoRoute
+import dev.meloda.fast.auth.login.LoginViewModel
+import dev.meloda.fast.auth.login.LoginViewModelImpl
+import dev.meloda.fast.auth.login.model.CaptchaArguments
+import dev.meloda.fast.auth.login.model.LoginValidationArguments
+import dev.meloda.fast.auth.login.model.LoginUserBannedArguments
+import dev.meloda.fast.auth.login.presentation.LoginRoute
+import dev.meloda.fast.auth.login.presentation.LogoRoute
import kotlinx.serialization.Serializable
@Serializable
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/presentation/LoginScreen.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/presentation/LoginScreen.kt
index 465d9c07..cc6d86ef 100644
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/presentation/LoginScreen.kt
+++ b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/presentation/LoginScreen.kt
@@ -1,4 +1,4 @@
-package com.meloda.fast.auth.login.presentation
+package dev.meloda.fast.auth.login.presentation
import androidx.compose.animation.AnimatedVisibility
import androidx.compose.animation.fadeIn
@@ -58,13 +58,13 @@ import dev.meloda.fast.ui.components.TextFieldErrorText
import dev.meloda.fast.ui.theme.LocalThemeConfig
import dev.meloda.fast.ui.util.handleEnterKey
import dev.meloda.fast.ui.util.handleTabKey
-import com.meloda.fast.auth.login.LoginViewModel
-import com.meloda.fast.auth.login.LoginViewModelImpl
-import com.meloda.fast.auth.login.model.CaptchaArguments
-import com.meloda.fast.auth.login.model.LoginError
-import com.meloda.fast.auth.login.model.LoginScreenState
-import com.meloda.fast.auth.login.model.LoginUserBannedArguments
-import com.meloda.fast.auth.login.model.LoginValidationArguments
+import dev.meloda.fast.auth.login.LoginViewModel
+import dev.meloda.fast.auth.login.LoginViewModelImpl
+import dev.meloda.fast.auth.login.model.CaptchaArguments
+import dev.meloda.fast.auth.login.model.LoginError
+import dev.meloda.fast.auth.login.model.LoginScreenState
+import dev.meloda.fast.auth.login.model.LoginUserBannedArguments
+import dev.meloda.fast.auth.login.model.LoginValidationArguments
import org.koin.androidx.compose.koinViewModel
import dev.meloda.fast.ui.R as UiR
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/presentation/LogoScreen.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/presentation/LogoScreen.kt
index 63ea9808..6901f335 100644
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/presentation/LogoScreen.kt
+++ b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/presentation/LogoScreen.kt
@@ -1,4 +1,4 @@
-package com.meloda.fast.auth.login.presentation
+package dev.meloda.fast.auth.login.presentation
import androidx.compose.animation.core.animateDpAsState
import androidx.compose.foundation.ExperimentalFoundationApi
@@ -32,8 +32,8 @@ import androidx.compose.ui.unit.LayoutDirection
import androidx.compose.ui.unit.dp
import androidx.lifecycle.compose.collectAsStateWithLifecycle
import dev.meloda.fast.ui.theme.LocalThemeConfig
-import com.meloda.fast.auth.login.LoginViewModel
-import com.meloda.fast.auth.login.LoginViewModelImpl
+import dev.meloda.fast.auth.login.LoginViewModel
+import dev.meloda.fast.auth.login.LoginViewModelImpl
import org.koin.androidx.compose.koinViewModel
import dev.meloda.fast.ui.R as UiR
diff --git a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/validation/LoginValidator.kt b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/validation/LoginValidator.kt
index 7cb6e264..b1c00f79 100644
--- a/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/validation/LoginValidator.kt
+++ b/feature/auth/login/src/main/kotlin/dev/meloda/fast/auth/login/validation/LoginValidator.kt
@@ -1,8 +1,8 @@
-package com.meloda.fast.auth.login.validation
+package dev.meloda.fast.auth.login.validation
import dev.meloda.fast.common.extensions.addIf
-import com.meloda.fast.auth.login.model.LoginScreenState
-import com.meloda.fast.auth.login.model.LoginValidationResult
+import dev.meloda.fast.auth.login.model.LoginScreenState
+import dev.meloda.fast.auth.login.model.LoginValidationResult
class LoginValidator {
diff --git a/feature/auth/src/main/AndroidManifest.xml b/feature/auth/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/feature/auth/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/feature/auth/src/main/kotlin/dev/meloda/fast/auth/AuthGraph.kt b/feature/auth/src/main/kotlin/dev/meloda/fast/auth/AuthGraph.kt
index c96bdb67..cfc4e43a 100644
--- a/feature/auth/src/main/kotlin/dev/meloda/fast/auth/AuthGraph.kt
+++ b/feature/auth/src/main/kotlin/dev/meloda/fast/auth/AuthGraph.kt
@@ -13,9 +13,9 @@ import dev.meloda.fast.auth.validation.navigation.validationScreen
import dev.meloda.fast.auth.userbanned.model.UserBannedArguments
import dev.meloda.fast.auth.userbanned.navigation.navigateToUserBanned
import dev.meloda.fast.auth.userbanned.navigation.userBannedRoute
-import com.meloda.fast.auth.login.navigation.Logo
-import com.meloda.fast.auth.login.navigation.loginScreen
-import com.meloda.fast.auth.login.navigation.navigateToLogin
+import dev.meloda.fast.auth.login.navigation.Logo
+import dev.meloda.fast.auth.login.navigation.loginScreen
+import dev.meloda.fast.auth.login.navigation.navigateToLogin
import kotlinx.serialization.Serializable
import java.net.URLEncoder
diff --git a/feature/auth/src/main/kotlin/dev/meloda/fast/auth/AuthModule.kt b/feature/auth/src/main/kotlin/dev/meloda/fast/auth/AuthModule.kt
index fb920ed1..92adc9c9 100644
--- a/feature/auth/src/main/kotlin/dev/meloda/fast/auth/AuthModule.kt
+++ b/feature/auth/src/main/kotlin/dev/meloda/fast/auth/AuthModule.kt
@@ -2,7 +2,7 @@ package dev.meloda.fast.auth
import dev.meloda.fast.auth.captcha.di.captchaModule
import dev.meloda.fast.auth.validation.di.validationModule
-import com.meloda.fast.auth.login.di.loginModule
+import dev.meloda.fast.auth.login.di.loginModule
import org.koin.dsl.module
val authModule = module {
diff --git a/feature/chatmaterials/src/main/AndroidManifest.xml b/feature/chatmaterials/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/feature/chatmaterials/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/feature/conversations/src/main/AndroidManifest.xml b/feature/conversations/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/feature/conversations/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/feature/friends/src/main/AndroidManifest.xml b/feature/friends/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/feature/friends/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/feature/friends/src/main/kotlin/dev/meloda/fast/friends/model/OnlineState.kt b/feature/friends/src/main/kotlin/dev/meloda/fast/friends/model/OnlineState.kt
deleted file mode 100644
index 99ed01c3..00000000
--- a/feature/friends/src/main/kotlin/dev/meloda/fast/friends/model/OnlineState.kt
+++ /dev/null
@@ -1,5 +0,0 @@
-package dev.meloda.fast.friends.model
-
-enum class OnlineState {
- OFFLINE, ONLINE, ONLINE_MOBILE
-}
diff --git a/feature/languagepicker/src/main/AndroidManifest.xml b/feature/languagepicker/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/feature/languagepicker/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/feature/messageshistory/src/main/AndroidManifest.xml b/feature/messageshistory/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/feature/messageshistory/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/feature/photoviewer/src/main/AndroidManifest.xml b/feature/photoviewer/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/feature/photoviewer/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/feature/photoviewer/src/main/kotlin/dev/meloda/fast/photoviewer/presentation/PhotoViewScreenContent.kt b/feature/photoviewer/src/main/kotlin/dev/meloda/fast/photoviewer/presentation/PhotoViewScreenContent.kt
index 3454fb16..da8955d4 100644
--- a/feature/photoviewer/src/main/kotlin/dev/meloda/fast/photoviewer/presentation/PhotoViewScreenContent.kt
+++ b/feature/photoviewer/src/main/kotlin/dev/meloda/fast/photoviewer/presentation/PhotoViewScreenContent.kt
@@ -48,9 +48,6 @@ import dev.meloda.fast.common.model.UiImage
import dev.meloda.fast.photoviewer.PhotoViewViewModel
import dev.meloda.fast.photoviewer.model.PhotoViewState
-@OptIn(
- ExperimentalFoundationApi::class,
-)
@Composable
fun PhotoViewScreenContent(
onBackClick: () -> Unit,
diff --git a/feature/profile/src/main/AndroidManifest.xml b/feature/profile/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/feature/profile/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/feature/settings/src/main/AndroidManifest.xml b/feature/settings/src/main/AndroidManifest.xml
deleted file mode 100644
index 8bdb7e14..00000000
--- a/feature/settings/src/main/AndroidManifest.xml
+++ /dev/null
@@ -1,4 +0,0 @@
-
-
-
-
diff --git a/feature/settings/src/main/kotlin/dev/meloda/fast/settings/SettingsViewModel.kt b/feature/settings/src/main/kotlin/dev/meloda/fast/settings/SettingsViewModel.kt
index b12f3737..45275873 100644
--- a/feature/settings/src/main/kotlin/dev/meloda/fast/settings/SettingsViewModel.kt
+++ b/feature/settings/src/main/kotlin/dev/meloda/fast/settings/SettingsViewModel.kt
@@ -104,10 +104,10 @@ class SettingsViewModelImpl(
}
SettingsKeys.KEY_DEBUG_HIDE_DEBUG_LIST -> {
- val showDebugCategory = AppSettings.Debug.showDebugCategory
- if (!showDebugCategory) return
+ if (!AppSettings.Debug.showDebugCategory) return
- onSettingsItemChanged(key, false)
+ AppSettings.Debug.showDebugCategory = false
+ userSettings.onShowDebugCategoryChanged(false)
createSettings()
@@ -122,7 +122,8 @@ class SettingsViewModelImpl(
SettingsKeys.KEY_ACTIVITY_SEND_ONLINE_STATUS -> {
if (AppSettings.Debug.showDebugCategory) return
- onSettingsItemChanged(key, true)
+ AppSettings.Debug.showDebugCategory = true
+ userSettings.onShowDebugCategoryChanged(true)
createSettings()
diff --git a/feature/settings/src/main/kotlin/dev/meloda/fast/settings/model/TitleProvider.kt b/feature/settings/src/main/kotlin/dev/meloda/fast/settings/model/TitleProvider.kt
deleted file mode 100644
index 002de840..00000000
--- a/feature/settings/src/main/kotlin/dev/meloda/fast/settings/model/TitleProvider.kt
+++ /dev/null
@@ -1,7 +0,0 @@
-package dev.meloda.fast.settings.model
-
-import dev.meloda.fast.common.model.UiText
-
-fun interface TitleProvider> {
- fun provideTitle(item: S): UiText?
-}