update package name (big one)

This commit is contained in:
2024-07-16 06:37:37 +03:00
parent ab27ef29b1
commit 4f9e49003b
378 changed files with 1395 additions and 1395 deletions
+2 -2
View File
@@ -10,11 +10,11 @@ plugins {
}
android {
namespace = "com.meloda.app.fast"
namespace = "dev.meloda.fast"
compileSdk = Configs.compileSdk
defaultConfig {
applicationId = "com.meloda.app.fast"
applicationId = "dev.meloda.fast"
minSdk = Configs.minSdk
targetSdk = Configs.targetSdk
versionCode = Configs.appCode
+1 -1
View File
@@ -20,4 +20,4 @@
# hide the original source file name.
#-renamesourcefileattribute SourceFile
-keep class com.meloda.app.fast.**
-keep class dev.meloda.fast.**
+1 -1
View File
@@ -8,7 +8,7 @@
<uses-permission android:name="android.permission.FOREGROUND_SERVICE_DATA_SYNC" />
<application
android:name="com.meloda.app.fast.common.AppGlobal"
android:name="dev.meloda.fast.common.AppGlobal"
android:allowBackup="true"
android:enableOnBackInvokedCallback="true"
android:fullBackupOnly="true"
@@ -1,4 +1,4 @@
package com.meloda.app.fast
package dev.meloda.fast
import android.os.Build
import android.util.Log
@@ -8,18 +8,18 @@ import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope
import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.PermissionStatus
import com.meloda.app.fast.auth.AuthGraph
import com.meloda.app.fast.common.LongPollController
import com.meloda.app.fast.common.UserConfig
import com.meloda.app.fast.common.extensions.ifEmpty
import com.meloda.app.fast.common.extensions.listenValue
import com.meloda.app.fast.common.extensions.setValue
import com.meloda.app.fast.common.model.LongPollState
import com.meloda.app.fast.data.db.GetCurrentAccountUseCase
import com.meloda.app.fast.datastore.AppSettings
import com.meloda.app.fast.datastore.UserSettings
import com.meloda.app.fast.model.BaseError
import com.meloda.app.fast.navigation.Main
import dev.meloda.fast.auth.AuthGraph
import dev.meloda.fast.common.LongPollController
import dev.meloda.fast.common.UserConfig
import dev.meloda.fast.common.extensions.ifEmpty
import dev.meloda.fast.common.extensions.listenValue
import dev.meloda.fast.common.extensions.setValue
import dev.meloda.fast.common.model.LongPollState
import dev.meloda.fast.data.db.GetCurrentAccountUseCase
import dev.meloda.fast.datastore.AppSettings
import dev.meloda.fast.datastore.UserSettings
import dev.meloda.fast.model.BaseError
import dev.meloda.fast.navigation.Main
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
@@ -1,11 +1,11 @@
package com.meloda.app.fast.common
package dev.meloda.fast.common
import android.app.Application
import androidx.preference.PreferenceManager
import coil.ImageLoader
import coil.ImageLoaderFactory
import com.meloda.app.fast.common.di.applicationModule
import com.meloda.app.fast.datastore.AppSettings
import dev.meloda.fast.common.di.applicationModule
import dev.meloda.fast.datastore.AppSettings
import org.koin.android.ext.android.get
import org.koin.android.ext.koin.androidContext
import org.koin.android.ext.koin.androidLogger
@@ -1,23 +1,23 @@
package com.meloda.app.fast.common.di
package dev.meloda.fast.common.di
import android.content.Context
import android.content.res.Resources
import android.os.PowerManager
import androidx.preference.PreferenceManager
import com.meloda.app.fast.MainViewModelImpl
import com.meloda.app.fast.auth.authModule
import com.meloda.app.fast.chatmaterials.di.chatMaterialsModule
import com.meloda.app.fast.common.provider.Provider
import com.meloda.app.fast.conversations.di.conversationsModule
import com.meloda.app.fast.data.di.dataModule
import com.meloda.app.fast.friends.di.friendsModule
import com.meloda.app.fast.languagepicker.di.languagePickerModule
import com.meloda.app.fast.messageshistory.di.messagesHistoryModule
import com.meloda.app.fast.photoviewer.di.photoViewModule
import com.meloda.app.fast.profile.di.profileModule
import com.meloda.app.fast.provider.ApiLanguageProvider
import com.meloda.app.fast.service.longpolling.di.longPollModule
import com.meloda.app.fast.settings.di.settingsModule
import dev.meloda.fast.MainViewModelImpl
import dev.meloda.fast.auth.authModule
import dev.meloda.fast.chatmaterials.di.chatMaterialsModule
import dev.meloda.fast.common.provider.Provider
import dev.meloda.fast.conversations.di.conversationsModule
import dev.meloda.fast.data.di.dataModule
import dev.meloda.fast.friends.di.friendsModule
import dev.meloda.fast.languagepicker.di.languagePickerModule
import dev.meloda.fast.messageshistory.di.messagesHistoryModule
import dev.meloda.fast.photoviewer.di.photoViewModule
import dev.meloda.fast.profile.di.profileModule
import dev.meloda.fast.provider.ApiLanguageProvider
import dev.meloda.fast.service.longpolling.di.longPollModule
import dev.meloda.fast.settings.di.settingsModule
import org.koin.android.ext.koin.androidContext
import org.koin.androidx.viewmodel.dsl.viewModelOf
import org.koin.core.module.dsl.singleOf
@@ -1,4 +1,4 @@
package com.meloda.app.fast.model
package dev.meloda.fast.model
data class BottomNavigationItem(
val titleResId: Int,
@@ -1,15 +1,15 @@
package com.meloda.app.fast.navigation
package dev.meloda.fast.navigation
import androidx.navigation.NavGraphBuilder
import androidx.navigation.compose.composable
import com.meloda.app.fast.conversations.navigation.Conversations
import com.meloda.app.fast.friends.navigation.Friends
import com.meloda.app.fast.model.BaseError
import com.meloda.app.fast.model.BottomNavigationItem
import com.meloda.app.fast.presentation.MainScreen
import com.meloda.app.fast.profile.navigation.Profile
import dev.meloda.fast.conversations.navigation.Conversations
import dev.meloda.fast.friends.navigation.Friends
import dev.meloda.fast.model.BaseError
import dev.meloda.fast.model.BottomNavigationItem
import dev.meloda.fast.presentation.MainScreen
import dev.meloda.fast.profile.navigation.Profile
import kotlinx.serialization.Serializable
import com.meloda.app.fast.ui.R as UiR
import dev.meloda.fast.ui.R as UiR
@Serializable
object MainGraph
@@ -1,4 +1,4 @@
package com.meloda.app.fast.presentation
package dev.meloda.fast.presentation
import android.Manifest
import android.app.NotificationChannel
@@ -30,24 +30,24 @@ import com.conena.nanokt.android.content.pxToDp
import com.google.accompanist.permissions.ExperimentalPermissionsApi
import com.google.accompanist.permissions.isGranted
import com.google.accompanist.permissions.rememberPermissionState
import com.meloda.app.fast.MainViewModel
import com.meloda.app.fast.MainViewModelImpl
import com.meloda.app.fast.common.AppConstants
import com.meloda.app.fast.common.LongPollController
import com.meloda.app.fast.common.extensions.isSdkAtLeast
import com.meloda.app.fast.common.model.LongPollState
import com.meloda.app.fast.datastore.AppSettings
import com.meloda.app.fast.datastore.UserSettings
import com.meloda.app.fast.service.OnlineService
import com.meloda.app.fast.service.longpolling.LongPollingService
import com.meloda.app.fast.ui.model.ThemeConfig
import com.meloda.app.fast.ui.theme.AppTheme
import com.meloda.app.fast.ui.theme.LocalThemeConfig
import com.meloda.app.fast.ui.util.isNeedToEnableDarkMode
import dev.meloda.fast.MainViewModel
import dev.meloda.fast.MainViewModelImpl
import dev.meloda.fast.common.AppConstants
import dev.meloda.fast.common.LongPollController
import dev.meloda.fast.common.extensions.isSdkAtLeast
import dev.meloda.fast.common.model.LongPollState
import dev.meloda.fast.datastore.AppSettings
import dev.meloda.fast.datastore.UserSettings
import dev.meloda.fast.service.OnlineService
import dev.meloda.fast.service.longpolling.LongPollingService
import dev.meloda.fast.ui.model.ThemeConfig
import dev.meloda.fast.ui.theme.AppTheme
import dev.meloda.fast.ui.theme.LocalThemeConfig
import dev.meloda.fast.ui.util.isNeedToEnableDarkMode
import org.koin.androidx.compose.koinViewModel
import org.koin.compose.KoinContext
import org.koin.compose.koinInject
import com.meloda.app.fast.ui.R as UiR
import dev.meloda.fast.ui.R as UiR
class MainActivity : AppCompatActivity() {
@@ -1,4 +1,4 @@
package com.meloda.app.fast.presentation
package dev.meloda.fast.presentation
import androidx.compose.animation.core.tween
import androidx.compose.animation.fadeIn
@@ -25,15 +25,15 @@ import androidx.compose.ui.unit.dp
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.navigation
import androidx.navigation.compose.rememberNavController
import com.meloda.app.fast.conversations.navigation.conversationsScreen
import com.meloda.app.fast.ui.theme.LocalBottomPadding
import com.meloda.app.fast.ui.theme.LocalHazeState
import com.meloda.app.fast.ui.theme.LocalThemeConfig
import com.meloda.app.fast.friends.navigation.friendsScreen
import com.meloda.app.fast.model.BaseError
import com.meloda.app.fast.model.BottomNavigationItem
import com.meloda.app.fast.navigation.MainGraph
import com.meloda.app.fast.profile.navigation.profileScreen
import dev.meloda.fast.conversations.navigation.conversationsScreen
import dev.meloda.fast.ui.theme.LocalBottomPadding
import dev.meloda.fast.ui.theme.LocalHazeState
import dev.meloda.fast.ui.theme.LocalThemeConfig
import dev.meloda.fast.friends.navigation.friendsScreen
import dev.meloda.fast.model.BaseError
import dev.meloda.fast.model.BottomNavigationItem
import dev.meloda.fast.navigation.MainGraph
import dev.meloda.fast.profile.navigation.profileScreen
import dev.chrisbanes.haze.HazeState
import dev.chrisbanes.haze.hazeChild
import dev.chrisbanes.haze.materials.ExperimentalHazeMaterialsApi
@@ -1,4 +1,4 @@
package com.meloda.app.fast.presentation
package dev.meloda.fast.presentation
import android.content.Intent
import android.net.Uri
@@ -20,21 +20,21 @@ import androidx.navigation.NavController
import androidx.navigation.NavHostController
import androidx.navigation.compose.NavHost
import androidx.navigation.compose.rememberNavController
import com.meloda.app.fast.MainViewModel
import com.meloda.app.fast.MainViewModelImpl
import com.meloda.app.fast.auth.authNavGraph
import com.meloda.app.fast.auth.navigateToAuth
import com.meloda.app.fast.chatmaterials.navigation.chatMaterialsScreen
import com.meloda.app.fast.chatmaterials.navigation.navigateToChatMaterials
import com.meloda.app.fast.ui.R
import com.meloda.app.fast.languagepicker.navigation.languagePickerScreen
import com.meloda.app.fast.languagepicker.navigation.navigateToLanguagePicker
import com.meloda.app.fast.messageshistory.navigation.messagesHistoryScreen
import com.meloda.app.fast.messageshistory.navigation.navigateToMessagesHistory
import com.meloda.app.fast.navigation.Main
import com.meloda.app.fast.navigation.mainScreen
import com.meloda.app.fast.settings.navigation.navigateToSettings
import com.meloda.app.fast.settings.navigation.settingsScreen
import dev.meloda.fast.MainViewModel
import dev.meloda.fast.MainViewModelImpl
import dev.meloda.fast.auth.authNavGraph
import dev.meloda.fast.auth.navigateToAuth
import dev.meloda.fast.chatmaterials.navigation.chatMaterialsScreen
import dev.meloda.fast.chatmaterials.navigation.navigateToChatMaterials
import dev.meloda.fast.ui.R
import dev.meloda.fast.languagepicker.navigation.languagePickerScreen
import dev.meloda.fast.languagepicker.navigation.navigateToLanguagePicker
import dev.meloda.fast.messageshistory.navigation.messagesHistoryScreen
import dev.meloda.fast.messageshistory.navigation.navigateToMessagesHistory
import dev.meloda.fast.navigation.Main
import dev.meloda.fast.navigation.mainScreen
import dev.meloda.fast.settings.navigation.navigateToSettings
import dev.meloda.fast.settings.navigation.settingsScreen
import org.koin.androidx.compose.koinViewModel
@Composable
@@ -1,8 +1,8 @@
package com.meloda.app.fast.provider
package dev.meloda.fast.provider
import com.meloda.app.fast.common.model.ApiLanguage
import com.meloda.app.fast.common.provider.Provider
import com.meloda.app.fast.datastore.UserSettings
import dev.meloda.fast.common.model.ApiLanguage
import dev.meloda.fast.common.provider.Provider
import dev.meloda.fast.datastore.UserSettings
class ApiLanguageProvider(private val userSettings: UserSettings) : Provider<ApiLanguage> {
@@ -1,4 +1,4 @@
package com.meloda.app.fast.receiver
package dev.meloda.fast.receiver
import android.content.BroadcastReceiver
import android.content.Context
@@ -1,12 +1,12 @@
package com.meloda.app.fast.service
package dev.meloda.fast.service
import android.app.Service
import android.content.Intent
import android.os.IBinder
import android.util.Log
import com.meloda.app.fast.common.UserConfig
import com.meloda.app.fast.common.extensions.createTimerFlow
import com.meloda.app.fast.data.api.account.AccountUseCase
import dev.meloda.fast.common.UserConfig
import dev.meloda.fast.common.extensions.createTimerFlow
import dev.meloda.fast.data.api.account.AccountUseCase
import kotlinx.coroutines.CoroutineExceptionHandler
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -1,4 +1,4 @@
package com.meloda.app.fast.service.longpolling
package dev.meloda.fast.service.longpolling
import android.app.PendingIntent
import android.app.Service
@@ -11,20 +11,20 @@ import android.util.Log
import androidx.core.app.NotificationCompat
import androidx.core.app.ServiceCompat
import com.conena.nanokt.android.app.stopForegroundCompat
import com.meloda.app.fast.common.AppConstants
import com.meloda.app.fast.common.LongPollController
import com.meloda.app.fast.common.UserConfig
import com.meloda.app.fast.common.VkConstants
import com.meloda.app.fast.common.extensions.listenValue
import com.meloda.app.fast.common.model.LongPollState
import com.meloda.app.fast.data.LongPollUpdatesParser
import com.meloda.app.fast.data.LongPollUseCase
import com.meloda.app.fast.data.processState
import com.meloda.app.fast.datastore.AppSettings
import com.meloda.app.fast.model.api.data.LongPollUpdates
import com.meloda.app.fast.model.api.data.VkLongPollData
import com.meloda.app.fast.ui.R
import com.meloda.app.fast.util.NotificationsUtils
import dev.meloda.fast.common.AppConstants
import dev.meloda.fast.common.LongPollController
import dev.meloda.fast.common.UserConfig
import dev.meloda.fast.common.VkConstants
import dev.meloda.fast.common.extensions.listenValue
import dev.meloda.fast.common.model.LongPollState
import dev.meloda.fast.data.LongPollUpdatesParser
import dev.meloda.fast.data.LongPollUseCase
import dev.meloda.fast.data.processState
import dev.meloda.fast.datastore.AppSettings
import dev.meloda.fast.model.api.data.LongPollUpdates
import dev.meloda.fast.model.api.data.VkLongPollData
import dev.meloda.fast.ui.R
import dev.meloda.fast.util.NotificationsUtils
import kotlinx.coroutines.CoroutineExceptionHandler
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -1,8 +1,8 @@
package com.meloda.app.fast.service.longpolling.di
package dev.meloda.fast.service.longpolling.di
import com.meloda.app.fast.data.LongPollUpdatesParser
import com.meloda.app.fast.data.LongPollUseCase
import com.meloda.app.fast.data.LongPollUseCaseImpl
import dev.meloda.fast.data.LongPollUpdatesParser
import dev.meloda.fast.data.LongPollUseCase
import dev.meloda.fast.data.LongPollUseCaseImpl
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.bind
import org.koin.dsl.module
@@ -1,12 +1,12 @@
package com.meloda.app.fast.util
package dev.meloda.fast.util
import android.annotation.SuppressLint
import android.app.PendingIntent
import android.content.Context
import androidx.core.app.NotificationCompat
import androidx.core.app.NotificationManagerCompat
import com.meloda.app.fast.common.AppConstants
import com.meloda.app.fast.ui.R as UiR
import dev.meloda.fast.common.AppConstants
import dev.meloda.fast.ui.R as UiR
object NotificationsUtils {
+2 -2
View File
@@ -6,10 +6,10 @@ plugins {
alias(libs.plugins.kotlin.compose.compiler)
}
group = "com.meloda.app.fast.common"
group = "dev.meloda.fast.common"
android {
namespace = "com.meloda.app.fast.common"
namespace = "dev.meloda.fast.common"
compileSdk = Configs.compileSdk
defaultConfig {
@@ -1,4 +1,4 @@
package com.meloda.app.fast.common
package dev.meloda.fast.common
object AppConstants {
@@ -1,6 +1,6 @@
package com.meloda.app.fast.common
package dev.meloda.fast.common
import com.meloda.app.fast.common.model.LongPollState
import dev.meloda.fast.common.model.LongPollState
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
@@ -1,4 +1,4 @@
package com.meloda.app.fast.common
package dev.meloda.fast.common
import android.content.SharedPreferences
import androidx.core.content.edit
@@ -1,4 +1,4 @@
package com.meloda.app.fast.common
package dev.meloda.fast.common
object VkConstants {
@@ -1,10 +1,10 @@
package com.meloda.app.fast.common.di
package dev.meloda.fast.common.di
import coil.ImageLoader
import com.meloda.app.fast.common.LongPollController
import com.meloda.app.fast.common.LongPollControllerImpl
import com.meloda.app.fast.common.provider.ResourceProvider
import com.meloda.app.fast.common.provider.ResourceProviderImpl
import dev.meloda.fast.common.LongPollController
import dev.meloda.fast.common.LongPollControllerImpl
import dev.meloda.fast.common.provider.ResourceProvider
import dev.meloda.fast.common.provider.ResourceProviderImpl
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.bind
import org.koin.dsl.module
@@ -1,4 +1,4 @@
package com.meloda.app.fast.common.extensions
package dev.meloda.fast.common.extensions
import android.os.Bundle
import android.os.Parcelable
@@ -1,4 +1,4 @@
package com.meloda.app.fast.common.extensions
package dev.meloda.fast.common.extensions
import android.app.Activity
import android.content.Context
@@ -33,7 +33,7 @@ fun Context.restartApp() {
activity.startActivity(
Intent(
this,
Class.forName("com.meloda.app.fast.MainActivity")
Class.forName("dev.meloda.fast.MainActivity")
)
)
}
@@ -1,4 +1,4 @@
package com.meloda.app.fast.common.extensions
package dev.meloda.fast.common.extensions
inline fun String?.ifEmpty(defaultValue: () -> String?): String? =
if (this?.isEmpty() == true) defaultValue() else this
@@ -1,4 +1,4 @@
package com.meloda.app.fast.common.extensions.navigation
package dev.meloda.fast.common.extensions.navigation
import androidx.compose.runtime.Composable
import androidx.compose.runtime.remember
@@ -1,3 +1,3 @@
package com.meloda.app.fast.common.model
package dev.meloda.fast.common.model
data class ApiLanguage(val value: String)
@@ -1,4 +1,4 @@
package com.meloda.app.fast.common.model
package dev.meloda.fast.common.model
private const val MODE_NIGHT_NO = 1
private const val MODE_NIGHT_YES = 2
@@ -1,4 +1,4 @@
package com.meloda.app.fast.common.model
package dev.meloda.fast.common.model
sealed class LongPollState {
data object Stopped : LongPollState()
@@ -1,4 +1,4 @@
package com.meloda.app.fast.common.model
package dev.meloda.fast.common.model
import android.graphics.drawable.Drawable
import androidx.annotation.ColorInt
@@ -1,4 +1,4 @@
package com.meloda.app.fast.common.model
package dev.meloda.fast.common.model
import android.content.res.Resources
import androidx.annotation.PluralsRes
@@ -1,4 +1,4 @@
package com.meloda.app.fast.common.provider
package dev.meloda.fast.common.provider
interface Provider<T> {
fun provide(): T?
@@ -1,4 +1,4 @@
package com.meloda.app.fast.common.provider
package dev.meloda.fast.common.provider
import android.content.res.Resources
@@ -1,4 +1,4 @@
package com.meloda.app.fast.common.util
package dev.meloda.fast.common.util
import android.content.ClipData
import android.content.ClipboardManager
@@ -15,7 +15,7 @@ import java.io.FileOutputStream
private object BuildConfig {
const val DEBUG = true
const val APPLICATION_ID = "com.meloda.app.fast"
const val APPLICATION_ID = "dev.meloda.fast"
}
object AndroidUtils {
@@ -1,4 +1,4 @@
package com.meloda.app.fast.common.util
package dev.meloda.fast.common.util
import android.content.res.Resources
import com.conena.nanokt.jvm.util.dayOfMonth
@@ -9,7 +9,7 @@ import com.conena.nanokt.jvm.util.minute
import com.conena.nanokt.jvm.util.month
import com.conena.nanokt.jvm.util.second
import com.conena.nanokt.jvm.util.year
import com.meloda.app.fast.common.R
import dev.meloda.fast.common.R
import java.text.SimpleDateFormat
import java.util.Calendar
import java.util.Date
+2 -2
View File
@@ -3,10 +3,10 @@ plugins {
alias(libs.plugins.org.jetbrains.kotlin.android)
}
group = "com.meloda.app.fast.data"
group = "dev.meloda.fast.data"
android {
namespace = "com.meloda.app.fast.data"
namespace = "dev.meloda.fast.data"
compileSdk = Configs.compileSdk
defaultConfig {
@@ -1,15 +1,15 @@
package com.meloda.app.fast.data
package dev.meloda.fast.data
import android.util.Log
import com.meloda.app.fast.common.UserConfig
import com.meloda.app.fast.common.VkConstants
import com.meloda.app.fast.common.extensions.asInt
import com.meloda.app.fast.common.extensions.listenValue
import com.meloda.app.fast.common.extensions.toList
import com.meloda.app.fast.data.api.messages.MessagesUseCase
import com.meloda.app.fast.model.ApiEvent
import com.meloda.app.fast.model.InteractionType
import com.meloda.app.fast.model.LongPollEvent
import dev.meloda.fast.common.UserConfig
import dev.meloda.fast.common.VkConstants
import dev.meloda.fast.common.extensions.asInt
import dev.meloda.fast.common.extensions.listenValue
import dev.meloda.fast.common.extensions.toList
import dev.meloda.fast.data.api.messages.MessagesUseCase
import dev.meloda.fast.model.ApiEvent
import dev.meloda.fast.model.InteractionType
import dev.meloda.fast.model.LongPollEvent
import kotlinx.coroutines.CoroutineExceptionHandler
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.Dispatchers
@@ -1,7 +1,7 @@
package com.meloda.app.fast.data
package dev.meloda.fast.data
import com.meloda.app.fast.model.api.data.LongPollUpdates
import com.meloda.app.fast.model.api.data.VkLongPollData
import dev.meloda.fast.model.api.data.LongPollUpdates
import dev.meloda.fast.model.api.data.VkLongPollData
import kotlinx.coroutines.flow.Flow
interface LongPollUseCase {
@@ -1,8 +1,8 @@
package com.meloda.app.fast.data
package dev.meloda.fast.data
import com.meloda.app.fast.data.api.longpoll.LongPollRepository
import com.meloda.app.fast.model.api.data.LongPollUpdates
import com.meloda.app.fast.model.api.data.VkLongPollData
import dev.meloda.fast.data.api.longpoll.LongPollRepository
import dev.meloda.fast.model.api.data.LongPollUpdates
import dev.meloda.fast.model.api.data.VkLongPollData
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
@@ -1,8 +1,8 @@
package com.meloda.app.fast.data
package dev.meloda.fast.data
import com.meloda.app.fast.network.OAuthErrorDomain
import com.meloda.app.fast.network.RestApiErrorDomain
import com.meloda.app.fast.network.VkErrorCode
import dev.meloda.fast.network.OAuthErrorDomain
import dev.meloda.fast.network.RestApiErrorDomain
import dev.meloda.fast.network.VkErrorCode
import com.slack.eithernet.ApiResult
sealed class State<out T> {
@@ -1,9 +1,9 @@
package com.meloda.app.fast.data
package dev.meloda.fast.data
import com.meloda.app.fast.model.api.data.VkMessageData
import com.meloda.app.fast.model.api.domain.VkConversation
import com.meloda.app.fast.model.api.domain.VkGroupDomain
import com.meloda.app.fast.model.api.domain.VkMessage
import dev.meloda.fast.model.api.data.VkMessageData
import dev.meloda.fast.model.api.domain.VkConversation
import dev.meloda.fast.model.api.domain.VkGroupDomain
import dev.meloda.fast.model.api.domain.VkMessage
import kotlin.math.abs
class VkGroupsMap(
@@ -1,10 +1,10 @@
package com.meloda.app.fast.data
package dev.meloda.fast.data
import com.meloda.app.fast.model.api.domain.VkContactDomain
import com.meloda.app.fast.model.api.domain.VkConversation
import com.meloda.app.fast.model.api.domain.VkGroupDomain
import com.meloda.app.fast.model.api.domain.VkMessage
import com.meloda.app.fast.model.api.domain.VkUser
import dev.meloda.fast.model.api.domain.VkContactDomain
import dev.meloda.fast.model.api.domain.VkConversation
import dev.meloda.fast.model.api.domain.VkGroupDomain
import dev.meloda.fast.model.api.domain.VkMessage
import dev.meloda.fast.model.api.domain.VkUser
import kotlin.math.abs
object VkMemoryCache {
@@ -1,9 +1,9 @@
package com.meloda.app.fast.data
package dev.meloda.fast.data
import com.meloda.app.fast.model.api.data.VkMessageData
import com.meloda.app.fast.model.api.domain.VkConversation
import com.meloda.app.fast.model.api.domain.VkMessage
import com.meloda.app.fast.model.api.domain.VkUser
import dev.meloda.fast.model.api.data.VkMessageData
import dev.meloda.fast.model.api.domain.VkConversation
import dev.meloda.fast.model.api.domain.VkMessage
import dev.meloda.fast.model.api.domain.VkUser
class VkUsersMap(
private val users: List<VkUser>
@@ -1,6 +1,6 @@
package com.meloda.app.fast.data.api.account
package dev.meloda.fast.data.api.account
import com.meloda.app.fast.network.RestApiErrorDomain
import dev.meloda.fast.network.RestApiErrorDomain
import com.slack.eithernet.ApiResult
interface AccountRepository {
@@ -1,10 +1,10 @@
package com.meloda.app.fast.data.api.account
package dev.meloda.fast.data.api.account
import android.os.Build
import com.meloda.app.fast.model.api.asInt
import com.meloda.app.fast.network.RestApiErrorDomain
import com.meloda.app.fast.network.mapApiDefault
import com.meloda.app.fast.network.service.account.AccountService
import dev.meloda.fast.model.api.asInt
import dev.meloda.fast.network.RestApiErrorDomain
import dev.meloda.fast.network.mapApiDefault
import dev.meloda.fast.network.service.account.AccountService
import com.slack.eithernet.ApiResult
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@@ -1,6 +1,6 @@
package com.meloda.app.fast.data.api.account
package dev.meloda.fast.data.api.account
import com.meloda.app.fast.data.State
import dev.meloda.fast.data.State
import kotlinx.coroutines.flow.Flow
interface AccountUseCase {
@@ -1,19 +1,19 @@
package com.meloda.app.fast.data.api.account
package dev.meloda.fast.data.api.account
import com.meloda.app.fast.data.State
import dev.meloda.fast.data.State
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
// TODO: 05/05/2024, Danil Nikolaev: implement
class AccountUseCaseImpl(
private val accountRepository: com.meloda.app.fast.data.api.account.AccountRepository
) : com.meloda.app.fast.data.api.account.AccountUseCase {
private val accountRepository: dev.meloda.fast.data.api.account.AccountRepository
) : dev.meloda.fast.data.api.account.AccountUseCase {
override suspend fun setOnline(
voip: Boolean,
accessToken: String
): Flow<State<Unit>> = flow {
// emit(com.meloda.app.fast.data.State.Loading)
// emit(dev.meloda.fast.data.State.Loading)
//
// val newState = accountRepository.setOnline(
// params = AccountSetOnlineRequest(
@@ -21,9 +21,9 @@ class AccountUseCaseImpl(
// accessToken = accessToken
// )
// ).fold(
// onSuccess = { response -> com.meloda.app.fast.data.State.Success(response) },
// onNetworkFailure = { com.meloda.app.fast.data.State.Error.ConnectionError },
// onUnknownFailure = { com.meloda.app.fast.data.State.UNKNOWN_ERROR },
// 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() }
// )
@@ -32,15 +32,15 @@ class AccountUseCaseImpl(
override suspend fun setOffline(
accessToken: String
): Flow<com.meloda.app.fast.data.State<Unit>> = flow {
emit(com.meloda.app.fast.data.State.Loading)
): Flow<dev.meloda.fast.data.State<Unit>> = flow {
emit(dev.meloda.fast.data.State.Loading)
// val newState = accountRepository.setOffline(
// params = AccountSetOfflineRequest(accessToken = accessToken)
// ).fold(
// onSuccess = { response -> com.meloda.app.fast.data.State.Success(response) },
// onNetworkFailure = { com.meloda.app.fast.data.State.Error.ConnectionError },
// onUnknownFailure = { com.meloda.app.fast.data.State.UNKNOWN_ERROR },
// 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() }
// )
@@ -1,9 +1,9 @@
package com.meloda.app.fast.data.api.audios
package dev.meloda.fast.data.api.audios
import com.meloda.app.fast.model.api.responses.AudiosGetUploadServerResponse
import com.meloda.app.fast.network.ApiResponse
import com.meloda.app.fast.network.RestApiError
import com.meloda.app.fast.network.service.audios.AudiosService
import dev.meloda.fast.model.api.responses.AudiosGetUploadServerResponse
import dev.meloda.fast.network.ApiResponse
import dev.meloda.fast.network.RestApiError
import dev.meloda.fast.network.service.audios.AudiosService
import com.slack.eithernet.ApiResult
import okhttp3.MultipartBody
@@ -1,7 +1,7 @@
package com.meloda.app.fast.data.api.auth
package dev.meloda.fast.data.api.auth
import com.meloda.app.fast.model.api.responses.ValidatePhoneResponse
import com.meloda.app.fast.network.RestApiErrorDomain
import dev.meloda.fast.model.api.responses.ValidatePhoneResponse
import dev.meloda.fast.network.RestApiErrorDomain
import com.slack.eithernet.ApiResult
interface AuthRepository {
@@ -1,9 +1,9 @@
package com.meloda.app.fast.data.api.auth
package dev.meloda.fast.data.api.auth
import com.meloda.app.fast.model.api.responses.ValidatePhoneResponse
import com.meloda.app.fast.network.RestApiErrorDomain
import com.meloda.app.fast.network.mapApiDefault
import com.meloda.app.fast.network.service.auth.AuthService
import dev.meloda.fast.model.api.responses.ValidatePhoneResponse
import dev.meloda.fast.network.RestApiErrorDomain
import dev.meloda.fast.network.mapApiDefault
import dev.meloda.fast.network.service.auth.AuthService
import com.slack.eithernet.ApiResult
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@@ -1,7 +1,7 @@
package com.meloda.app.fast.data.api.conversations
package dev.meloda.fast.data.api.conversations
import com.meloda.app.fast.model.api.domain.VkConversation
import com.meloda.app.fast.network.RestApiErrorDomain
import dev.meloda.fast.model.api.domain.VkConversation
import dev.meloda.fast.network.RestApiErrorDomain
import com.slack.eithernet.ApiResult
interface ConversationsRepository {
@@ -1,24 +1,24 @@
package com.meloda.app.fast.data.api.conversations
package dev.meloda.fast.data.api.conversations
import com.meloda.app.fast.common.VkConstants
import com.meloda.app.fast.data.VkGroupsMap
import com.meloda.app.fast.data.VkMemoryCache
import com.meloda.app.fast.data.VkUsersMap
import com.meloda.app.fast.database.dao.ConversationDao
import com.meloda.app.fast.model.api.data.VkContactData
import com.meloda.app.fast.model.api.data.VkGroupData
import com.meloda.app.fast.model.api.data.VkUserData
import com.meloda.app.fast.model.api.data.asDomain
import com.meloda.app.fast.model.api.domain.VkConversation
import com.meloda.app.fast.model.api.domain.asEntity
import com.meloda.app.fast.model.api.requests.ConversationsDeleteRequest
import com.meloda.app.fast.model.api.requests.ConversationsGetRequest
import com.meloda.app.fast.model.api.requests.ConversationsPinRequest
import com.meloda.app.fast.model.api.requests.ConversationsUnpinRequest
import com.meloda.app.fast.network.RestApiErrorDomain
import com.meloda.app.fast.network.mapApiDefault
import com.meloda.app.fast.network.mapApiResult
import com.meloda.app.fast.network.service.conversations.ConversationsService
import dev.meloda.fast.common.VkConstants
import dev.meloda.fast.data.VkGroupsMap
import dev.meloda.fast.data.VkMemoryCache
import dev.meloda.fast.data.VkUsersMap
import dev.meloda.fast.database.dao.ConversationDao
import dev.meloda.fast.model.api.data.VkContactData
import dev.meloda.fast.model.api.data.VkGroupData
import dev.meloda.fast.model.api.data.VkUserData
import dev.meloda.fast.model.api.data.asDomain
import dev.meloda.fast.model.api.domain.VkConversation
import dev.meloda.fast.model.api.domain.asEntity
import dev.meloda.fast.model.api.requests.ConversationsDeleteRequest
import dev.meloda.fast.model.api.requests.ConversationsGetRequest
import dev.meloda.fast.model.api.requests.ConversationsPinRequest
import dev.meloda.fast.model.api.requests.ConversationsUnpinRequest
import dev.meloda.fast.network.RestApiErrorDomain
import dev.meloda.fast.network.mapApiDefault
import dev.meloda.fast.network.mapApiResult
import dev.meloda.fast.network.service.conversations.ConversationsService
import com.slack.eithernet.ApiResult
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@@ -1,7 +1,7 @@
package com.meloda.app.fast.data.api.conversations
package dev.meloda.fast.data.api.conversations
import com.meloda.app.fast.data.State
import com.meloda.app.fast.model.api.domain.VkConversation
import dev.meloda.fast.data.State
import dev.meloda.fast.model.api.domain.VkConversation
import kotlinx.coroutines.flow.Flow
interface ConversationsUseCase {
@@ -1,6 +1,6 @@
package com.meloda.app.fast.data.api.files
package dev.meloda.fast.data.api.files
import com.meloda.app.fast.network.service.files.FilesService
import dev.meloda.fast.network.service.files.FilesService
import okhttp3.MultipartBody
class FilesRepository(
@@ -1,8 +1,8 @@
package com.meloda.app.fast.data.api.friends
package dev.meloda.fast.data.api.friends
import com.meloda.app.fast.model.FriendsInfo
import com.meloda.app.fast.model.api.domain.VkUser
import com.meloda.app.fast.network.RestApiErrorDomain
import dev.meloda.fast.model.FriendsInfo
import dev.meloda.fast.model.api.domain.VkUser
import dev.meloda.fast.network.RestApiErrorDomain
import com.slack.eithernet.ApiResult
interface FriendsRepository {
@@ -1,18 +1,18 @@
package com.meloda.app.fast.data.api.friends
package dev.meloda.fast.data.api.friends
import com.meloda.app.fast.common.VkConstants
import com.meloda.app.fast.data.VkMemoryCache
import com.meloda.app.fast.database.dao.UsersDao
import com.meloda.app.fast.model.FriendsInfo
import com.meloda.app.fast.model.api.data.VkUserData
import com.meloda.app.fast.model.api.domain.VkUser
import com.meloda.app.fast.model.api.domain.asEntity
import com.meloda.app.fast.model.api.requests.GetFriendsRequest
import com.meloda.app.fast.model.api.requests.GetOnlineFriendsRequest
import com.meloda.app.fast.network.RestApiErrorDomain
import com.meloda.app.fast.network.mapApiDefault
import com.meloda.app.fast.network.mapApiResult
import com.meloda.app.fast.network.service.friends.FriendsService
import dev.meloda.fast.common.VkConstants
import dev.meloda.fast.data.VkMemoryCache
import dev.meloda.fast.database.dao.UsersDao
import dev.meloda.fast.model.FriendsInfo
import dev.meloda.fast.model.api.data.VkUserData
import dev.meloda.fast.model.api.domain.VkUser
import dev.meloda.fast.model.api.domain.asEntity
import dev.meloda.fast.model.api.requests.GetFriendsRequest
import dev.meloda.fast.model.api.requests.GetOnlineFriendsRequest
import dev.meloda.fast.network.RestApiErrorDomain
import dev.meloda.fast.network.mapApiDefault
import dev.meloda.fast.network.mapApiResult
import dev.meloda.fast.network.service.friends.FriendsService
import com.slack.eithernet.ApiResult
import com.slack.eithernet.successOrElse
import kotlinx.coroutines.Dispatchers
@@ -1,8 +1,8 @@
package com.meloda.app.fast.data.api.friends
package dev.meloda.fast.data.api.friends
import com.meloda.app.fast.data.State
import com.meloda.app.fast.model.FriendsInfo
import com.meloda.app.fast.model.api.domain.VkUser
import dev.meloda.fast.data.State
import dev.meloda.fast.model.FriendsInfo
import dev.meloda.fast.model.api.domain.VkUser
import kotlinx.coroutines.flow.Flow
interface FriendsUseCase {
@@ -1,8 +1,8 @@
package com.meloda.app.fast.data.api.longpoll
package dev.meloda.fast.data.api.longpoll
import com.meloda.app.fast.model.api.data.LongPollUpdates
import com.meloda.app.fast.model.api.data.VkLongPollData
import com.meloda.app.fast.network.RestApiErrorDomain
import dev.meloda.fast.model.api.data.LongPollUpdates
import dev.meloda.fast.model.api.data.VkLongPollData
import dev.meloda.fast.network.RestApiErrorDomain
import com.slack.eithernet.ApiResult
interface LongPollRepository {
@@ -1,14 +1,14 @@
package com.meloda.app.fast.data.api.longpoll
package dev.meloda.fast.data.api.longpoll
import com.meloda.app.fast.model.api.data.LongPollUpdates
import com.meloda.app.fast.model.api.data.VkLongPollData
import com.meloda.app.fast.model.api.requests.LongPollGetUpdatesRequest
import com.meloda.app.fast.model.api.requests.MessagesGetLongPollServerRequest
import com.meloda.app.fast.network.RestApiErrorDomain
import com.meloda.app.fast.network.mapApiResult
import com.meloda.app.fast.network.mapDefault
import com.meloda.app.fast.network.service.longpoll.LongPollService
import com.meloda.app.fast.network.service.messages.MessagesService
import dev.meloda.fast.model.api.data.LongPollUpdates
import dev.meloda.fast.model.api.data.VkLongPollData
import dev.meloda.fast.model.api.requests.LongPollGetUpdatesRequest
import dev.meloda.fast.model.api.requests.MessagesGetLongPollServerRequest
import dev.meloda.fast.network.RestApiErrorDomain
import dev.meloda.fast.network.mapApiResult
import dev.meloda.fast.network.mapDefault
import dev.meloda.fast.network.service.longpoll.LongPollService
import dev.meloda.fast.network.service.messages.MessagesService
import com.slack.eithernet.ApiResult
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@@ -1,7 +1,7 @@
package com.meloda.app.fast.data.api.messages
package dev.meloda.fast.data.api.messages
import com.meloda.app.fast.model.api.domain.VkConversation
import com.meloda.app.fast.model.api.domain.VkMessage
import dev.meloda.fast.model.api.domain.VkConversation
import dev.meloda.fast.model.api.domain.VkMessage
data class MessagesHistoryInfo(
val messages: List<VkMessage>,
@@ -1,9 +1,9 @@
package com.meloda.app.fast.data.api.messages
package dev.meloda.fast.data.api.messages
import com.meloda.app.fast.model.api.domain.VkAttachment
import com.meloda.app.fast.model.api.domain.VkAttachmentHistoryMessage
import com.meloda.app.fast.model.api.domain.VkMessage
import com.meloda.app.fast.network.RestApiErrorDomain
import dev.meloda.fast.model.api.domain.VkAttachment
import dev.meloda.fast.model.api.domain.VkAttachmentHistoryMessage
import dev.meloda.fast.model.api.domain.VkMessage
import dev.meloda.fast.network.RestApiErrorDomain
import com.slack.eithernet.ApiResult
interface MessagesRepository {
@@ -1,28 +1,28 @@
package com.meloda.app.fast.data.api.messages
package dev.meloda.fast.data.api.messages
import com.meloda.app.fast.common.VkConstants
import com.meloda.app.fast.data.VkGroupsMap
import com.meloda.app.fast.data.VkMemoryCache
import com.meloda.app.fast.data.VkUsersMap
import com.meloda.app.fast.database.dao.MessageDao
import com.meloda.app.fast.model.api.data.VkAttachmentHistoryMessageData
import com.meloda.app.fast.model.api.data.VkContactData
import com.meloda.app.fast.model.api.data.VkGroupData
import com.meloda.app.fast.model.api.data.VkUserData
import com.meloda.app.fast.model.api.data.asDomain
import com.meloda.app.fast.model.api.domain.VkAttachment
import com.meloda.app.fast.model.api.domain.VkAttachmentHistoryMessage
import com.meloda.app.fast.model.api.domain.VkMessage
import com.meloda.app.fast.model.api.domain.asEntity
import com.meloda.app.fast.model.api.requests.MessagesGetByIdRequest
import com.meloda.app.fast.model.api.requests.MessagesGetHistoryAttachmentsRequest
import com.meloda.app.fast.model.api.requests.MessagesGetHistoryRequest
import com.meloda.app.fast.model.api.requests.MessagesMarkAsReadRequest
import com.meloda.app.fast.model.api.requests.MessagesSendRequest
import com.meloda.app.fast.network.RestApiErrorDomain
import com.meloda.app.fast.network.mapApiDefault
import com.meloda.app.fast.network.mapApiResult
import com.meloda.app.fast.network.service.messages.MessagesService
import dev.meloda.fast.common.VkConstants
import dev.meloda.fast.data.VkGroupsMap
import dev.meloda.fast.data.VkMemoryCache
import dev.meloda.fast.data.VkUsersMap
import dev.meloda.fast.database.dao.MessageDao
import dev.meloda.fast.model.api.data.VkAttachmentHistoryMessageData
import dev.meloda.fast.model.api.data.VkContactData
import dev.meloda.fast.model.api.data.VkGroupData
import dev.meloda.fast.model.api.data.VkUserData
import dev.meloda.fast.model.api.data.asDomain
import dev.meloda.fast.model.api.domain.VkAttachment
import dev.meloda.fast.model.api.domain.VkAttachmentHistoryMessage
import dev.meloda.fast.model.api.domain.VkMessage
import dev.meloda.fast.model.api.domain.asEntity
import dev.meloda.fast.model.api.requests.MessagesGetByIdRequest
import dev.meloda.fast.model.api.requests.MessagesGetHistoryAttachmentsRequest
import dev.meloda.fast.model.api.requests.MessagesGetHistoryRequest
import dev.meloda.fast.model.api.requests.MessagesMarkAsReadRequest
import dev.meloda.fast.model.api.requests.MessagesSendRequest
import dev.meloda.fast.network.RestApiErrorDomain
import dev.meloda.fast.network.mapApiDefault
import dev.meloda.fast.network.mapApiResult
import dev.meloda.fast.network.service.messages.MessagesService
import com.slack.eithernet.ApiResult
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@@ -1,9 +1,9 @@
package com.meloda.app.fast.data.api.messages
package dev.meloda.fast.data.api.messages
import com.meloda.app.fast.data.State
import com.meloda.app.fast.model.api.domain.VkAttachment
import com.meloda.app.fast.model.api.domain.VkAttachmentHistoryMessage
import com.meloda.app.fast.model.api.domain.VkMessage
import dev.meloda.fast.data.State
import dev.meloda.fast.model.api.domain.VkAttachment
import dev.meloda.fast.model.api.domain.VkAttachmentHistoryMessage
import dev.meloda.fast.model.api.domain.VkMessage
import kotlinx.coroutines.flow.Flow
interface MessagesUseCase {
@@ -1,6 +1,6 @@
package com.meloda.app.fast.data.api.oauth
package dev.meloda.fast.data.api.oauth
import com.meloda.app.fast.model.api.responses.AuthDirectResponse
import dev.meloda.fast.model.api.responses.AuthDirectResponse
interface OAuthRepository {
@@ -1,9 +1,9 @@
package com.meloda.app.fast.data.api.oauth
package dev.meloda.fast.data.api.oauth
import com.meloda.app.fast.common.VkConstants
import com.meloda.app.fast.model.api.requests.AuthDirectRequest
import com.meloda.app.fast.model.api.responses.AuthDirectResponse
import com.meloda.app.fast.network.service.oauth.OAuthService
import dev.meloda.fast.common.VkConstants
import dev.meloda.fast.model.api.requests.AuthDirectRequest
import dev.meloda.fast.model.api.responses.AuthDirectResponse
import dev.meloda.fast.network.service.oauth.OAuthService
import com.slack.eithernet.ApiResult
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@@ -1,7 +1,7 @@
package com.meloda.app.fast.data.api.photos
package dev.meloda.fast.data.api.photos
import com.meloda.app.fast.model.api.requests.PhotosSaveMessagePhotoRequest
import com.meloda.app.fast.network.service.photos.PhotosService
import dev.meloda.fast.model.api.requests.PhotosSaveMessagePhotoRequest
import dev.meloda.fast.network.service.photos.PhotosService
import okhttp3.MultipartBody
class PhotosRepository(
@@ -1,7 +1,7 @@
package com.meloda.app.fast.data.api.users
package dev.meloda.fast.data.api.users
import com.meloda.app.fast.model.api.domain.VkUser
import com.meloda.app.fast.network.RestApiErrorDomain
import dev.meloda.fast.model.api.domain.VkUser
import dev.meloda.fast.network.RestApiErrorDomain
import com.slack.eithernet.ApiResult
interface UsersRepository {
@@ -1,16 +1,16 @@
package com.meloda.app.fast.data.api.users
package dev.meloda.fast.data.api.users
import com.meloda.app.fast.data.VkMemoryCache
import com.meloda.app.fast.database.dao.UsersDao
import com.meloda.app.fast.model.api.data.VkUserData
import com.meloda.app.fast.model.api.domain.VkUser
import com.meloda.app.fast.model.api.domain.asEntity
import com.meloda.app.fast.model.api.requests.UsersGetRequest
import com.meloda.app.fast.model.database.VkUserEntity
import com.meloda.app.fast.model.database.asExternalModel
import com.meloda.app.fast.network.RestApiErrorDomain
import com.meloda.app.fast.network.mapApiResult
import com.meloda.app.fast.network.service.users.UsersService
import dev.meloda.fast.data.VkMemoryCache
import dev.meloda.fast.database.dao.UsersDao
import dev.meloda.fast.model.api.data.VkUserData
import dev.meloda.fast.model.api.domain.VkUser
import dev.meloda.fast.model.api.domain.asEntity
import dev.meloda.fast.model.api.requests.UsersGetRequest
import dev.meloda.fast.model.database.VkUserEntity
import dev.meloda.fast.model.database.asExternalModel
import dev.meloda.fast.network.RestApiErrorDomain
import dev.meloda.fast.network.mapApiResult
import dev.meloda.fast.network.service.users.UsersService
import com.slack.eithernet.ApiResult
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
@@ -1,7 +1,7 @@
package com.meloda.app.fast.data.api.users
package dev.meloda.fast.data.api.users
import com.meloda.app.fast.data.State
import com.meloda.app.fast.model.api.domain.VkUser
import dev.meloda.fast.data.State
import dev.meloda.fast.model.api.domain.VkUser
import kotlinx.coroutines.flow.Flow
interface UsersUseCase {
@@ -1,8 +1,8 @@
package com.meloda.app.fast.data.api.users
package dev.meloda.fast.data.api.users
import com.meloda.app.fast.data.State
import com.meloda.app.fast.data.mapToState
import com.meloda.app.fast.model.api.domain.VkUser
import dev.meloda.fast.data.State
import dev.meloda.fast.data.mapToState
import dev.meloda.fast.model.api.domain.VkUser
import kotlinx.coroutines.flow.Flow
import kotlinx.coroutines.flow.flow
@@ -1,6 +1,6 @@
package com.meloda.app.fast.data.api.videos
package dev.meloda.fast.data.api.videos
import com.meloda.app.fast.network.service.videos.VideosService
import dev.meloda.fast.network.service.videos.VideosService
import okhttp3.MultipartBody
class VideosRepository(
@@ -1,6 +1,6 @@
package com.meloda.app.fast.data.db
package dev.meloda.fast.data.db
import com.meloda.app.fast.model.database.AccountEntity
import dev.meloda.fast.model.database.AccountEntity
interface AccountsRepository {
@@ -1,7 +1,7 @@
package com.meloda.app.fast.data.db
package dev.meloda.fast.data.db
import com.meloda.app.fast.database.dao.AccountDao
import com.meloda.app.fast.model.database.AccountEntity
import dev.meloda.fast.database.dao.AccountDao
import dev.meloda.fast.model.database.AccountEntity
class AccountsRepositoryImpl(
private val accountDao: AccountDao
@@ -1,7 +1,7 @@
package com.meloda.app.fast.data.db
package dev.meloda.fast.data.db
import com.meloda.app.fast.common.UserConfig
import com.meloda.app.fast.model.database.AccountEntity
import dev.meloda.fast.common.UserConfig
import dev.meloda.fast.model.database.AccountEntity
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.withContext
@@ -1,36 +1,36 @@
package com.meloda.app.fast.data.di
package dev.meloda.fast.data.di
import com.meloda.app.fast.common.di.commonModule
import com.meloda.app.fast.data.api.account.AccountRepository
import com.meloda.app.fast.data.api.account.AccountRepositoryImpl
import com.meloda.app.fast.data.api.account.AccountUseCase
import com.meloda.app.fast.data.api.account.AccountUseCaseImpl
import com.meloda.app.fast.data.api.audios.AudiosRepository
import com.meloda.app.fast.data.api.auth.AuthRepository
import com.meloda.app.fast.data.api.auth.AuthRepositoryImpl
import com.meloda.app.fast.data.api.conversations.ConversationsRepository
import com.meloda.app.fast.data.api.conversations.ConversationsRepositoryImpl
import com.meloda.app.fast.data.api.files.FilesRepository
import com.meloda.app.fast.data.api.friends.FriendsRepository
import com.meloda.app.fast.data.api.friends.FriendsRepositoryImpl
import com.meloda.app.fast.data.api.longpoll.LongPollRepository
import com.meloda.app.fast.data.api.longpoll.LongPollRepositoryImpl
import com.meloda.app.fast.data.api.messages.MessagesRepository
import com.meloda.app.fast.data.api.messages.MessagesRepositoryImpl
import com.meloda.app.fast.data.api.oauth.OAuthRepository
import com.meloda.app.fast.data.api.oauth.OAuthRepositoryImpl
import com.meloda.app.fast.data.api.photos.PhotosRepository
import com.meloda.app.fast.data.api.users.UsersRepository
import com.meloda.app.fast.data.api.users.UsersRepositoryImpl
import com.meloda.app.fast.data.api.users.UsersUseCase
import com.meloda.app.fast.data.api.users.UsersUseCaseImpl
import com.meloda.app.fast.data.api.videos.VideosRepository
import com.meloda.app.fast.data.db.AccountsRepository
import com.meloda.app.fast.data.db.AccountsRepositoryImpl
import com.meloda.app.fast.data.db.GetCurrentAccountUseCase
import com.meloda.app.fast.database.di.databaseModule
import com.meloda.app.fast.datastore.di.dataStoreModule
import com.meloda.app.fast.network.di.networkModule
import dev.meloda.fast.common.di.commonModule
import dev.meloda.fast.data.api.account.AccountRepository
import dev.meloda.fast.data.api.account.AccountRepositoryImpl
import dev.meloda.fast.data.api.account.AccountUseCase
import dev.meloda.fast.data.api.account.AccountUseCaseImpl
import dev.meloda.fast.data.api.audios.AudiosRepository
import dev.meloda.fast.data.api.auth.AuthRepository
import dev.meloda.fast.data.api.auth.AuthRepositoryImpl
import dev.meloda.fast.data.api.conversations.ConversationsRepository
import dev.meloda.fast.data.api.conversations.ConversationsRepositoryImpl
import dev.meloda.fast.data.api.files.FilesRepository
import dev.meloda.fast.data.api.friends.FriendsRepository
import dev.meloda.fast.data.api.friends.FriendsRepositoryImpl
import dev.meloda.fast.data.api.longpoll.LongPollRepository
import dev.meloda.fast.data.api.longpoll.LongPollRepositoryImpl
import dev.meloda.fast.data.api.messages.MessagesRepository
import dev.meloda.fast.data.api.messages.MessagesRepositoryImpl
import dev.meloda.fast.data.api.oauth.OAuthRepository
import dev.meloda.fast.data.api.oauth.OAuthRepositoryImpl
import dev.meloda.fast.data.api.photos.PhotosRepository
import dev.meloda.fast.data.api.users.UsersRepository
import dev.meloda.fast.data.api.users.UsersRepositoryImpl
import dev.meloda.fast.data.api.users.UsersUseCase
import dev.meloda.fast.data.api.users.UsersUseCaseImpl
import dev.meloda.fast.data.api.videos.VideosRepository
import dev.meloda.fast.data.db.AccountsRepository
import dev.meloda.fast.data.db.AccountsRepositoryImpl
import dev.meloda.fast.data.db.GetCurrentAccountUseCase
import dev.meloda.fast.database.di.databaseModule
import dev.meloda.fast.datastore.di.dataStoreModule
import dev.meloda.fast.network.di.networkModule
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.bind
import org.koin.dsl.module
+2 -2
View File
@@ -4,10 +4,10 @@ plugins {
alias(libs.plugins.com.google.devtools.ksp)
}
group = "com.meloda.app.fast.database"
group = "dev.meloda.fast.database"
android {
namespace = "com.meloda.app.fast.database"
namespace = "dev.meloda.fast.database"
compileSdk = Configs.compileSdk
defaultConfig {
@@ -1,9 +1,9 @@
package com.meloda.app.fast.database
package dev.meloda.fast.database
import androidx.room.Database
import androidx.room.RoomDatabase
import com.meloda.app.fast.database.dao.AccountDao
import com.meloda.app.fast.model.database.AccountEntity
import dev.meloda.fast.database.dao.AccountDao
import dev.meloda.fast.model.database.AccountEntity
@Database(
entities = [AccountEntity::class],
@@ -1,17 +1,17 @@
package com.meloda.app.fast.database
package dev.meloda.fast.database
import androidx.room.Database
import androidx.room.RoomDatabase
import androidx.room.TypeConverters
import com.meloda.app.fast.database.dao.ConversationDao
import com.meloda.app.fast.database.dao.GroupDao
import com.meloda.app.fast.database.dao.MessageDao
import com.meloda.app.fast.database.dao.UsersDao
import com.meloda.app.fast.database.typeconverters.Converters
import com.meloda.app.fast.model.database.VkConversationEntity
import com.meloda.app.fast.model.database.VkGroupEntity
import com.meloda.app.fast.model.database.VkMessageEntity
import com.meloda.app.fast.model.database.VkUserEntity
import dev.meloda.fast.database.dao.ConversationDao
import dev.meloda.fast.database.dao.GroupDao
import dev.meloda.fast.database.dao.MessageDao
import dev.meloda.fast.database.dao.UsersDao
import dev.meloda.fast.database.typeconverters.Converters
import dev.meloda.fast.model.database.VkConversationEntity
import dev.meloda.fast.model.database.VkGroupEntity
import dev.meloda.fast.model.database.VkMessageEntity
import dev.meloda.fast.model.database.VkUserEntity
@Database(
entities = [
@@ -1,8 +1,8 @@
package com.meloda.app.fast.database.dao
package dev.meloda.fast.database.dao
import androidx.room.Dao
import androidx.room.Query
import com.meloda.app.fast.model.database.AccountEntity
import dev.meloda.fast.model.database.AccountEntity
@Dao
abstract class AccountDao : EntityDao<AccountEntity> {
@@ -1,10 +1,10 @@
package com.meloda.app.fast.database.dao
package dev.meloda.fast.database.dao
import androidx.room.Dao
import androidx.room.Query
import androidx.room.Transaction
import com.meloda.app.fast.model.database.ConversationWithMessage
import com.meloda.app.fast.model.database.VkConversationEntity
import dev.meloda.fast.model.database.ConversationWithMessage
import dev.meloda.fast.model.database.VkConversationEntity
@Dao
abstract class ConversationDao : EntityDao<VkConversationEntity> {
@@ -1,4 +1,4 @@
package com.meloda.app.fast.database.dao
package dev.meloda.fast.database.dao
import androidx.room.Delete
import androidx.room.Insert
@@ -1,8 +1,8 @@
package com.meloda.app.fast.database.dao
package dev.meloda.fast.database.dao
import androidx.room.Dao
import androidx.room.Query
import com.meloda.app.fast.model.database.VkGroupEntity
import dev.meloda.fast.model.database.VkGroupEntity
@Dao
abstract class GroupDao : EntityDao<VkGroupEntity> {
@@ -1,8 +1,8 @@
package com.meloda.app.fast.database.dao
package dev.meloda.fast.database.dao
import androidx.room.Dao
import androidx.room.Query
import com.meloda.app.fast.model.database.VkMessageEntity
import dev.meloda.fast.model.database.VkMessageEntity
@Dao
abstract class MessageDao : EntityDao<VkMessageEntity> {
@@ -1,8 +1,8 @@
package com.meloda.app.fast.database.dao
package dev.meloda.fast.database.dao
import androidx.room.Dao
import androidx.room.Query
import com.meloda.app.fast.model.database.VkUserEntity
import dev.meloda.fast.model.database.VkUserEntity
@Dao
abstract class UsersDao : EntityDao<VkUserEntity> {
@@ -1,7 +1,7 @@
package com.meloda.app.fast.database.di
package dev.meloda.fast.database.di
import androidx.room.Room
import com.meloda.app.fast.database.AccountsDatabase
import dev.meloda.fast.database.AccountsDatabase
import org.koin.core.scope.Scope
import org.koin.dsl.module
@@ -12,7 +12,7 @@ val databaseModule = module {
single { get<AccountsDatabase>().accountDao() }
single {
Room.databaseBuilder(get(), com.meloda.app.fast.database.CacheDatabase::class.java, "cache")
Room.databaseBuilder(get(), dev.meloda.fast.database.CacheDatabase::class.java, "cache")
.fallbackToDestructiveMigration()
.build()
}
@@ -22,4 +22,4 @@ val databaseModule = module {
single { cacheDB().conversationDao() }
}
private fun Scope.cacheDB(): com.meloda.app.fast.database.CacheDatabase = get()
private fun Scope.cacheDB(): dev.meloda.fast.database.CacheDatabase = get()
@@ -1,4 +1,4 @@
package com.meloda.app.fast.database.typeconverters
package dev.meloda.fast.database.typeconverters
import androidx.room.TypeConverter
+2 -2
View File
@@ -3,10 +3,10 @@ plugins {
alias(libs.plugins.org.jetbrains.kotlin.android)
}
group = "com.meloda.app.fast.datastore"
group = "dev.meloda.fast.datastore"
android {
namespace = "com.meloda.app.fast.datastore"
namespace = "dev.meloda.fast.datastore"
compileSdk = Configs.compileSdk
defaultConfig {
@@ -1,8 +1,8 @@
package com.meloda.app.fast.datastore
package dev.meloda.fast.datastore
import android.content.SharedPreferences
import androidx.core.content.edit
import com.meloda.app.fast.common.model.DarkMode
import dev.meloda.fast.common.model.DarkMode
import kotlin.properties.Delegates
import kotlin.reflect.KClass
@@ -1,4 +1,4 @@
package com.meloda.app.fast.datastore
package dev.meloda.fast.datastore
import androidx.appcompat.app.AppCompatDelegate
@@ -1,6 +1,6 @@
package com.meloda.app.fast.datastore
package dev.meloda.fast.datastore
import com.meloda.app.fast.common.model.DarkMode
import dev.meloda.fast.common.model.DarkMode
import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow
@@ -1,7 +1,7 @@
package com.meloda.app.fast.datastore.di
package dev.meloda.fast.datastore.di
import com.meloda.app.fast.datastore.UserSettings
import com.meloda.app.fast.datastore.UserSettingsImpl
import dev.meloda.fast.datastore.UserSettings
import dev.meloda.fast.datastore.UserSettingsImpl
import org.koin.core.module.dsl.singleOf
import org.koin.dsl.bind
import org.koin.dsl.module
+2 -2
View File
@@ -4,10 +4,10 @@ plugins {
alias(libs.plugins.kotlin.compose.compiler)
}
group = "com.meloda.app.fast.designsystem"
group = "dev.meloda.fast.designsystem"
android {
namespace = "com.meloda.app.fast.designsystem"
namespace = "dev.meloda.fast.designsystem"
compileSdk = Configs.compileSdk
+2 -2
View File
@@ -4,10 +4,10 @@ plugins {
alias(libs.plugins.com.google.devtools.ksp)
}
group = "com.meloda.app.fast.model"
group = "dev.meloda.fast.model"
android {
namespace = "com.meloda.app.fast.model"
namespace = "dev.meloda.fast.model"
compileSdk = Configs.compileSdk
defaultConfig {
@@ -1,4 +1,4 @@
package com.meloda.app.fast.model;
package dev.meloda.fast.model;
enum class ApiEvent(val value: Int) {
MESSAGE_SET_FLAGS(2),
@@ -1,4 +1,4 @@
package com.meloda.app.fast.model
package dev.meloda.fast.model
import androidx.compose.runtime.Immutable
@@ -1,6 +1,6 @@
package com.meloda.app.fast.model
package dev.meloda.fast.model
import com.meloda.app.fast.model.api.domain.VkUser
import dev.meloda.fast.model.api.domain.VkUser
data class FriendsInfo(
val friends: List<VkUser>,
@@ -1,4 +1,4 @@
package com.meloda.app.fast.model
package dev.meloda.fast.model
sealed class InteractionType(val value: Int) {
data object Typing : InteractionType(1)
@@ -1,6 +1,6 @@
package com.meloda.app.fast.model
package dev.meloda.fast.model
import com.meloda.app.fast.model.api.domain.VkMessage
import dev.meloda.fast.model.api.domain.VkMessage
sealed interface LongPollEvent {
@@ -1,3 +1,3 @@
package com.meloda.app.fast.model.api
package dev.meloda.fast.model.api
fun Boolean.asInt(): Int = if (this) 1 else 0

Some files were not shown because too many files have changed in this diff Show More