Fix: refactor project
This commit is contained in:
parent
6b41efd82e
commit
10b53b7f81
@ -2,10 +2,8 @@ package com.example.android_programming
|
||||
|
||||
import com.example.android_programming.api.repository.RestSneakerRepository
|
||||
import com.example.android_programming.api.repository.RestUserRepository
|
||||
import com.example.android_programming.repository.BasketRepository
|
||||
import com.example.android_programming.repository.OrderRepository
|
||||
import com.example.android_programming.repository.SneakerRepository
|
||||
import com.example.android_programming.repository.UserRepository
|
||||
import com.example.android_programming.businessLogic.repo.BasketRepository
|
||||
import com.example.android_programming.businessLogic.repo.OrderRepository
|
||||
|
||||
interface AppContainer {
|
||||
val sneakerRepo: RestSneakerRepository
|
||||
|
@ -5,15 +5,12 @@ import com.example.android_programming.api.BackendService
|
||||
import com.example.android_programming.api.repository.RestSneakerRepository
|
||||
import com.example.android_programming.api.repository.RestUserRepository
|
||||
import com.example.android_programming.database.AppDatabase
|
||||
import com.example.android_programming.database.remotekeys.repository.RemoteKeysRepositoryImpl
|
||||
import com.example.android_programming.repository.BasketRepoImpl
|
||||
import com.example.android_programming.repository.BasketRepository
|
||||
import com.example.android_programming.repository.OrderRepoImpl
|
||||
import com.example.android_programming.repository.OrderRepository
|
||||
import com.example.android_programming.repository.SneakerRepoImpl
|
||||
import com.example.android_programming.repository.SneakerRepository
|
||||
import com.example.android_programming.repository.UserRepoImpl
|
||||
import com.example.android_programming.repository.UserRepository
|
||||
import com.example.android_programming.database.repository.RemoteKeysRepositoryImpl
|
||||
import com.example.android_programming.database.repository.BasketRepoImpl
|
||||
import com.example.android_programming.businessLogic.repo.BasketRepository
|
||||
import com.example.android_programming.database.repository.OrderRepoImpl
|
||||
import com.example.android_programming.businessLogic.repo.OrderRepository
|
||||
import com.example.android_programming.database.repository.SneakerRepoImpl
|
||||
|
||||
class AppDataContainer(private val context: Context) : AppContainer {
|
||||
override val sneakerRepo: RestSneakerRepository by lazy {
|
||||
|
@ -2,6 +2,7 @@ package com.example.android_programming.api
|
||||
|
||||
import com.example.android_programming.api.model.SneakerRemote
|
||||
import com.example.android_programming.api.model.UserRemote
|
||||
import com.example.android_programming.api.model.UserRemoteSignIn
|
||||
import com.jakewharton.retrofit2.converter.kotlinx.serialization.asConverterFactory
|
||||
import kotlinx.serialization.json.Json
|
||||
import okhttp3.MediaType.Companion.toMediaType
|
||||
@ -34,6 +35,11 @@ interface BackendService {
|
||||
@Body user: UserRemote,
|
||||
): UserRemote
|
||||
|
||||
@POST("user/signin")
|
||||
suspend fun SignIn(
|
||||
@Body user: UserRemoteSignIn
|
||||
): UserRemote
|
||||
|
||||
companion object {
|
||||
private const val BASE_URL = "https://59k4pfj3-8080.euw.devtunnels.ms/api/"
|
||||
|
||||
|
@ -6,15 +6,12 @@ import androidx.paging.PagingState
|
||||
import androidx.paging.RemoteMediator
|
||||
import androidx.room.withTransaction
|
||||
import com.example.android_programming.api.model.toSneaker
|
||||
import com.example.android_programming.api.repository.RestSneakerRepository
|
||||
import com.example.android_programming.database.AppDatabase
|
||||
import com.example.android_programming.database.remotekeys.model.RemoteKeyType
|
||||
import com.example.android_programming.database.remotekeys.model.RemoteKeys
|
||||
import com.example.android_programming.database.remotekeys.repository.RemoteKeyRepository
|
||||
import com.example.android_programming.database.remotekeys.repository.RemoteKeysRepositoryImpl
|
||||
import com.example.android_programming.model.RemoteKeyType
|
||||
import com.example.android_programming.model.RemoteKeys
|
||||
import com.example.android_programming.database.repository.RemoteKeysRepositoryImpl
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.repository.SneakerRepoImpl
|
||||
import com.example.android_programming.repository.SneakerRepository
|
||||
import com.example.android_programming.database.repository.SneakerRepoImpl
|
||||
import retrofit2.HttpException
|
||||
import java.io.IOException
|
||||
|
||||
@ -23,7 +20,7 @@ class SneakerRemoteMediator(
|
||||
private val service: BackendService,
|
||||
private val sneakerRepository: SneakerRepoImpl,
|
||||
private val database: AppDatabase,
|
||||
private val dbRemoteKeyRepository:RemoteKeysRepositoryImpl
|
||||
private val dbRemoteKeyRepository: RemoteKeysRepositoryImpl
|
||||
) : RemoteMediator<Int, Sneaker>() {
|
||||
override suspend fun initialize(): InitializeAction {
|
||||
return InitializeAction.LAUNCH_INITIAL_REFRESH
|
||||
|
@ -14,10 +14,11 @@ data class UserRemote (
|
||||
val surname: String = "",
|
||||
val email: String = "",
|
||||
val password: String = "",
|
||||
val role: RoleEnum = RoleEnum.User,
|
||||
val role: String = "",
|
||||
val photo: Int? = 0,
|
||||
)
|
||||
|
||||
|
||||
fun UserRemote.toUser(): User = User(
|
||||
id,
|
||||
name,
|
||||
|
@ -0,0 +1,9 @@
|
||||
package com.example.android_programming.api.model
|
||||
|
||||
import kotlinx.serialization.Serializable
|
||||
|
||||
@Serializable
|
||||
data class UserRemoteSignIn(
|
||||
val email: String = "",
|
||||
val password: String = "",
|
||||
)
|
@ -1,20 +1,18 @@
|
||||
package com.example.android_programming.api.repository
|
||||
|
||||
import android.util.Log
|
||||
import androidx.paging.ExperimentalPagingApi
|
||||
import androidx.paging.Pager
|
||||
import androidx.paging.PagingConfig
|
||||
import androidx.paging.PagingData
|
||||
import androidx.paging.PagingSource
|
||||
import com.example.android_programming.AppContainer
|
||||
import com.example.android_programming.api.BackendService
|
||||
import com.example.android_programming.api.SneakerRemoteMediator
|
||||
import com.example.android_programming.api.model.toSneaker
|
||||
import com.example.android_programming.database.AppDatabase
|
||||
import com.example.android_programming.database.remotekeys.repository.RemoteKeysRepositoryImpl
|
||||
import com.example.android_programming.database.repository.RemoteKeysRepositoryImpl
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.repository.SneakerRepoImpl
|
||||
import com.example.android_programming.repository.SneakerRepository
|
||||
import com.example.android_programming.database.repository.SneakerRepoImpl
|
||||
import com.example.android_programming.businessLogic.repo.SneakerRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
class RestSneakerRepository(
|
||||
|
@ -1,16 +1,17 @@
|
||||
package com.example.android_programming.api.repository
|
||||
|
||||
import com.example.android_programming.api.BackendService
|
||||
import com.example.android_programming.api.model.UserRemoteSignIn
|
||||
import com.example.android_programming.api.model.toUser
|
||||
import com.example.android_programming.api.model.toUserRemote
|
||||
import com.example.android_programming.model.User
|
||||
import com.example.android_programming.repository.UserRepository
|
||||
import com.example.android_programming.businessLogic.repo.UserRepository
|
||||
|
||||
class RestUserRepository(
|
||||
private var service: BackendService
|
||||
): UserRepository {
|
||||
override suspend fun createUser(user: User) {
|
||||
val user1 = user.toUserRemote()
|
||||
service.SignUp(user1)
|
||||
service.SignUp(user.toUserRemote())
|
||||
}
|
||||
|
||||
override suspend fun updateUser(user: User) {
|
||||
@ -20,5 +21,7 @@ class RestUserRepository(
|
||||
override suspend fun deleteUser(user: User) {
|
||||
println()
|
||||
}
|
||||
|
||||
override suspend fun authUser(user: UserRemoteSignIn): User {
|
||||
return service.SignIn(user).toUser()
|
||||
}
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package com.example.android_programming.repository
|
||||
package com.example.android_programming.businessLogic.repo
|
||||
|
||||
import androidx.room.Delete
|
||||
import androidx.room.Insert
|
@ -1,4 +1,4 @@
|
||||
package com.example.android_programming.repository
|
||||
package com.example.android_programming.businessLogic.repo
|
||||
|
||||
import com.example.android_programming.model.Order
|
||||
import com.example.android_programming.model.OrderSneaker
|
@ -0,0 +1,10 @@
|
||||
package com.example.android_programming.businessLogic.repo
|
||||
|
||||
import com.example.android_programming.model.RemoteKeyType
|
||||
import com.example.android_programming.model.RemoteKeys
|
||||
|
||||
interface RemoteKeyRepository {
|
||||
suspend fun getAllRemoteKeys(id: Int, type: RemoteKeyType): RemoteKeys?
|
||||
suspend fun createRemoteKeys(remoteKeys: List<RemoteKeys>)
|
||||
suspend fun deleteRemoteKey(type: RemoteKeyType)
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package com.example.android_programming.repository
|
||||
package com.example.android_programming.businessLogic.repo
|
||||
|
||||
import androidx.paging.PagingData
|
||||
import androidx.paging.PagingSource
|
@ -1,5 +1,6 @@
|
||||
package com.example.android_programming.repository
|
||||
package com.example.android_programming.businessLogic.repo
|
||||
|
||||
import com.example.android_programming.api.model.UserRemoteSignIn
|
||||
import com.example.android_programming.model.Basket
|
||||
import com.example.android_programming.model.User
|
||||
import com.example.android_programming.model.UserWithOrder
|
||||
@ -9,6 +10,5 @@ interface UserRepository {
|
||||
suspend fun createUser(user: User)
|
||||
suspend fun updateUser(user: User)
|
||||
suspend fun deleteUser(user: User)
|
||||
// suspend fun getUserById(id: Int): User
|
||||
// suspend fun getUserByEmail(email: String): User
|
||||
suspend fun authUser(user: UserRemoteSignIn): User
|
||||
}
|
@ -1,4 +1,4 @@
|
||||
package com.example.android_programming.vmodel
|
||||
package com.example.android_programming.businessLogic.vmodel
|
||||
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.viewmodel.CreationExtras
|
@ -1,15 +1,10 @@
|
||||
package com.example.android_programming.vmodel
|
||||
package com.example.android_programming.businessLogic.vmodel
|
||||
|
||||
import androidx.compose.runtime.State
|
||||
import androidx.compose.runtime.collectAsState
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import com.example.android_programming.model.Basket
|
||||
import com.example.android_programming.model.BasketSneakers
|
||||
import com.example.android_programming.model.BasketWithSneakers
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.repository.BasketRepository
|
||||
import com.example.android_programming.businessLogic.repo.BasketRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
@ -1,26 +1,20 @@
|
||||
package com.example.android_programming.vmodel
|
||||
package com.example.android_programming.businessLogic.vmodel
|
||||
|
||||
import androidx.compose.runtime.State
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import androidx.lifecycle.viewmodel.CreationExtras
|
||||
import com.example.android_programming.App
|
||||
import com.example.android_programming.GlobalUser
|
||||
import com.example.android_programming.database.AppDatabase
|
||||
import com.example.android_programming.model.Order
|
||||
import com.example.android_programming.model.OrderSneaker
|
||||
import com.example.android_programming.model.OrderWithSneakers
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.model.UserWithOrder
|
||||
import com.example.android_programming.repository.BasketRepository
|
||||
import com.example.android_programming.repository.OrderRepository
|
||||
import com.example.android_programming.repository.SneakerRepository
|
||||
import com.example.android_programming.businessLogic.repo.BasketRepository
|
||||
import com.example.android_programming.businessLogic.repo.OrderRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.launch
|
||||
import java.util.Date
|
||||
|
@ -1,30 +1,14 @@
|
||||
package com.example.android_programming.vmodel
|
||||
package com.example.android_programming.businessLogic.vmodel
|
||||
|
||||
import androidx.compose.runtime.MutableState
|
||||
import androidx.compose.runtime.State
|
||||
import androidx.compose.runtime.mutableIntStateOf
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.ViewModelProvider.AndroidViewModelFactory.Companion.APPLICATION_KEY
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import androidx.lifecycle.viewmodel.CreationExtras
|
||||
import androidx.paging.Pager
|
||||
import androidx.paging.PagingConfig
|
||||
import androidx.paging.PagingData
|
||||
import androidx.paging.cachedIn
|
||||
import androidx.paging.map
|
||||
import com.example.android_programming.App
|
||||
import com.example.android_programming.R
|
||||
import com.example.android_programming.api.model.toSneakerRemote
|
||||
import com.example.android_programming.api.repository.RestSneakerRepository
|
||||
import com.example.android_programming.database.AppDatabase
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.repository.SneakerRepository
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
import kotlinx.coroutines.flow.MutableStateFlow
|
||||
import kotlinx.coroutines.flow.StateFlow
|
||||
import kotlinx.coroutines.flow.map
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class SneakerViewModel(private val sneakerRepository: RestSneakerRepository): ViewModel() {
|
@ -1,20 +1,13 @@
|
||||
package com.example.android_programming.vmodel
|
||||
package com.example.android_programming.businessLogic.vmodel
|
||||
|
||||
import androidx.compose.runtime.mutableStateOf
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import androidx.lifecycle.viewmodel.CreationExtras
|
||||
import com.example.android_programming.App
|
||||
import com.example.android_programming.GlobalUser
|
||||
import com.example.android_programming.R
|
||||
import com.example.android_programming.database.AppDatabase
|
||||
import com.example.android_programming.model.Basket
|
||||
import com.example.android_programming.model.RoleEnum
|
||||
import com.example.android_programming.api.model.UserRemoteSignIn
|
||||
import com.example.android_programming.model.User
|
||||
import com.example.android_programming.repository.BasketRepository
|
||||
import com.example.android_programming.repository.SneakerRepository
|
||||
import com.example.android_programming.repository.UserRepository
|
||||
import com.example.android_programming.businessLogic.repo.UserRepository
|
||||
import kotlinx.coroutines.launch
|
||||
|
||||
class UserViewModel(private val userRepository: UserRepository): ViewModel() {
|
||||
@ -29,17 +22,14 @@ class UserViewModel(private val userRepository: UserRepository): ViewModel() {
|
||||
surname = surname.value,
|
||||
email = email.value,
|
||||
password = password.value,
|
||||
role = RoleEnum.User,
|
||||
role = "USER",
|
||||
photo = R.drawable.shailushai
|
||||
)
|
||||
userRepository.createUser(user)
|
||||
}
|
||||
fun authUser() = viewModelScope.launch {
|
||||
// val user = userRepository.getUserByEmail(email.value)
|
||||
// if (password.value != "" && user.password == password.value) {
|
||||
// val globalUser = GlobalUser.getInstance()
|
||||
// globalUser.setUser(user)
|
||||
// }
|
||||
val user = userRepository.authUser(UserRemoteSignIn(email.value, password.value))
|
||||
GlobalUser.getInstance().setUser(user)
|
||||
}
|
||||
|
||||
fun isValidEmail(email: String): Boolean {
|
@ -18,8 +18,8 @@ import com.example.android_programming.composeui.Screens.ProfileScreen.Profile.P
|
||||
import com.example.android_programming.composeui.Screens.ProfileScreen.SignIn.LoginScreen
|
||||
import com.example.android_programming.composeui.Screens.ProfileScreen.SignUp.SignUpScreen
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.vmodel.OrderViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.businessLogic.vmodel.OrderViewModel
|
||||
import com.google.gson.Gson
|
||||
|
||||
@Composable
|
||||
|
@ -35,8 +35,8 @@ import androidx.compose.ui.unit.sp
|
||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import com.example.android_programming.R
|
||||
import com.example.android_programming.model.PhotoManager
|
||||
import com.example.android_programming.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.vmodel.SneakerViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.businessLogic.vmodel.SneakerViewModel
|
||||
|
||||
@Composable
|
||||
fun AddPanel(sneakerViewModel: SneakerViewModel = viewModel(factory = AppViewModelProvider.Factory)){
|
||||
|
@ -23,7 +23,7 @@ import com.example.android_programming.model.RoleEnum
|
||||
fun AdminPanel(navHostController: NavHostController) {
|
||||
var isAddPanelVisible by remember { mutableStateOf(false) }
|
||||
var isChangePanelVisible by remember { mutableStateOf(false) }
|
||||
var showDialog by remember { mutableStateOf(GlobalUser.getInstance().getUser()?.role == RoleEnum.User || GlobalUser.getInstance().getUser()?.role == null) }
|
||||
var showDialog by remember { mutableStateOf(GlobalUser.getInstance().getUser()?.role == "USER" || GlobalUser.getInstance().getUser()?.role == null) }
|
||||
if (!showDialog) {
|
||||
Column(
|
||||
modifier = Modifier
|
||||
|
@ -30,8 +30,8 @@ import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import androidx.navigation.NavHostController
|
||||
import com.example.android_programming.R
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.vmodel.SneakerViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.businessLogic.vmodel.SneakerViewModel
|
||||
import com.google.gson.Gson
|
||||
|
||||
@Composable
|
||||
|
@ -30,8 +30,8 @@ import androidx.paging.LoadState
|
||||
import androidx.paging.compose.collectAsLazyPagingItems
|
||||
import androidx.paging.compose.itemKey
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.vmodel.SneakerViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.businessLogic.vmodel.SneakerViewModel
|
||||
import kotlinx.coroutines.delay
|
||||
|
||||
@Composable
|
||||
|
@ -43,8 +43,8 @@ import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import com.example.android_programming.R
|
||||
import com.example.android_programming.model.PhotoManager
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.vmodel.SneakerViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.businessLogic.vmodel.SneakerViewModel
|
||||
|
||||
@Composable
|
||||
fun ChangeSneaker(sneaker: Sneaker, onBackClick: () -> Unit, sneakerViewModel: SneakerViewModel = viewModel(factory = AppViewModelProvider.Factory)) {
|
||||
|
@ -23,8 +23,8 @@ import com.example.android_programming.composeui.Screens.HomeScreen.FilterByBran
|
||||
import com.example.android_programming.composeui.Screens.HomeScreen.SearchField.SearchField
|
||||
import com.example.android_programming.composeui.Screens.HomeScreen.SneakerRecyclerView.RecyclerView
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.vmodel.OrderViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.businessLogic.vmodel.OrderViewModel
|
||||
|
||||
@Composable
|
||||
fun HomeScreen(navHostController: NavHostController) {
|
||||
|
@ -33,9 +33,9 @@ import com.example.android_programming.GlobalUser
|
||||
import com.example.android_programming.R
|
||||
import com.example.android_programming.model.BasketSneakers
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.vmodel.BasketViewModel
|
||||
import com.example.android_programming.vmodel.SneakerViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.businessLogic.vmodel.BasketViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.SneakerViewModel
|
||||
import com.google.gson.Gson
|
||||
|
||||
@Composable
|
||||
|
@ -20,9 +20,9 @@ import androidx.paging.compose.collectAsLazyPagingItems
|
||||
import androidx.paging.compose.itemKey
|
||||
import com.example.android_programming.R
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.vmodel.OrderViewModel
|
||||
import com.example.android_programming.vmodel.SneakerViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.businessLogic.vmodel.OrderViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.SneakerViewModel
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
|
@ -18,8 +18,8 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import com.example.android_programming.GlobalUser
|
||||
import com.example.android_programming.model.Order
|
||||
import com.example.android_programming.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.vmodel.OrderViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.businessLogic.vmodel.OrderViewModel
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.GlobalScope
|
||||
import kotlinx.coroutines.launch
|
||||
|
@ -34,8 +34,8 @@ import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import com.example.android_programming.R
|
||||
import com.example.android_programming.model.Order
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.vmodel.OrderViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.businessLogic.vmodel.OrderViewModel
|
||||
import java.util.Date
|
||||
|
||||
@Composable
|
||||
|
@ -37,9 +37,9 @@ import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import com.example.android_programming.GlobalUser
|
||||
import com.example.android_programming.R
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.vmodel.BasketViewModel
|
||||
import com.example.android_programming.vmodel.OrderViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.businessLogic.vmodel.BasketViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.OrderViewModel
|
||||
|
||||
@SuppressLint("UnrememberedMutableState")
|
||||
@Composable
|
||||
|
@ -27,7 +27,7 @@ import androidx.compose.ui.text.input.KeyboardType
|
||||
import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.example.android_programming.R
|
||||
import com.example.android_programming.vmodel.OrderViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.OrderViewModel
|
||||
|
||||
@Composable
|
||||
fun DeliveryAddress(orderViewModel: OrderViewModel) {
|
||||
|
@ -23,9 +23,9 @@ import androidx.navigation.NavHostController
|
||||
import com.example.android_programming.GlobalUser
|
||||
import com.example.android_programming.R
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.vmodel.BasketViewModel
|
||||
import com.example.android_programming.vmodel.OrderViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.businessLogic.vmodel.BasketViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.OrderViewModel
|
||||
|
||||
|
||||
@Composable
|
||||
|
@ -4,7 +4,7 @@ import androidx.compose.foundation.layout.Column
|
||||
import androidx.compose.foundation.layout.Row
|
||||
import androidx.compose.runtime.Composable
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.vmodel.OrderViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.OrderViewModel
|
||||
|
||||
@Composable
|
||||
fun ShoppingList(list : List<Sneaker>) {
|
||||
|
@ -17,7 +17,7 @@ import androidx.compose.ui.unit.dp
|
||||
import androidx.compose.ui.unit.sp
|
||||
import com.example.android_programming.GlobalUser
|
||||
import com.example.android_programming.R
|
||||
import com.example.android_programming.vmodel.OrderViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.OrderViewModel
|
||||
|
||||
@Composable
|
||||
fun SubTotal(orderViewModel: OrderViewModel) {
|
||||
|
@ -8,8 +8,8 @@ import androidx.navigation.compose.rememberNavController
|
||||
import com.example.android_programming.GlobalUser
|
||||
import com.example.android_programming.composeui.Screens.ProfileScreen.SignIn.LoginScreen
|
||||
import com.example.android_programming.model.Basket
|
||||
import com.example.android_programming.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.vmodel.BasketViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.businessLogic.vmodel.BasketViewModel
|
||||
|
||||
@Composable
|
||||
fun ProfileScreen(navController: NavHostController) {
|
||||
|
@ -40,9 +40,9 @@ import androidx.navigation.NavHostController
|
||||
import com.example.android_programming.GlobalUser
|
||||
import com.example.android_programming.R
|
||||
import com.example.android_programming.model.Basket
|
||||
import com.example.android_programming.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.vmodel.BasketViewModel
|
||||
import com.example.android_programming.vmodel.UserViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.businessLogic.vmodel.BasketViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.UserViewModel
|
||||
|
||||
@Composable
|
||||
fun SignInCard(navController: NavHostController, userViewModel: UserViewModel = viewModel(factory = AppViewModelProvider.Factory), basketViewModel: BasketViewModel = viewModel(factory = AppViewModelProvider.Factory)) {
|
||||
|
@ -32,8 +32,8 @@ import androidx.compose.ui.unit.sp
|
||||
import androidx.lifecycle.viewmodel.compose.viewModel
|
||||
import androidx.navigation.NavHostController
|
||||
import com.example.android_programming.R
|
||||
import com.example.android_programming.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.vmodel.UserViewModel
|
||||
import com.example.android_programming.businessLogic.vmodel.AppViewModelProvider
|
||||
import com.example.android_programming.businessLogic.vmodel.UserViewModel
|
||||
|
||||
@Composable
|
||||
fun SignUpCard(navHostController: NavHostController, userViewModel: UserViewModel = viewModel(factory = AppViewModelProvider.Factory)) {
|
||||
|
@ -6,17 +6,16 @@ import androidx.room.Room
|
||||
import androidx.room.RoomDatabase
|
||||
import androidx.sqlite.db.SupportSQLiteDatabase
|
||||
import com.example.android_programming.R
|
||||
import com.example.android_programming.dao.BasketDao
|
||||
import com.example.android_programming.dao.OrderDao
|
||||
import com.example.android_programming.dao.SneakerDao
|
||||
import com.example.android_programming.dao.UserDao
|
||||
import com.example.android_programming.database.remotekeys.dao.RemoteKeysDao
|
||||
import com.example.android_programming.database.remotekeys.model.RemoteKeys
|
||||
import com.example.android_programming.database.dao.BasketDao
|
||||
import com.example.android_programming.database.dao.OrderDao
|
||||
import com.example.android_programming.database.dao.SneakerDao
|
||||
import com.example.android_programming.database.dao.UserDao
|
||||
import com.example.android_programming.database.dao.RemoteKeysDao
|
||||
import com.example.android_programming.model.RemoteKeys
|
||||
import com.example.android_programming.model.Basket
|
||||
import com.example.android_programming.model.BasketSneakers
|
||||
import com.example.android_programming.model.Order
|
||||
import com.example.android_programming.model.OrderSneaker
|
||||
import com.example.android_programming.model.RoleEnum
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import com.example.android_programming.model.User
|
||||
import kotlinx.coroutines.CoroutineScope
|
||||
@ -41,9 +40,9 @@ abstract class AppDatabase : RoomDatabase() {
|
||||
INSTANCE?.let { database ->
|
||||
// User
|
||||
val userDao = database.userDao()
|
||||
val user1 = User(null, "Artem", "Emelyanov", "artem@mail.ru", "123", RoleEnum.Admin)
|
||||
val user2 = User(null, "Danil", "Markov", "danil@mail.ru", "123", RoleEnum.User)
|
||||
val user3 = User(null, "Viktoria", "Presnyakova", "vika@mail.ru", "123", RoleEnum.User)
|
||||
val user1 = User(null, "Artem", "Emelyanov", "artem@mail.ru", "123", "ADMIN")
|
||||
val user2 = User(null, "Danil", "Markov", "danil@mail.ru", "123", "USER")
|
||||
val user3 = User(null, "Viktoria", "Presnyakova", "vika@mail.ru", "123", "USER")
|
||||
userDao.createUser(user1)
|
||||
userDao.createUser(user2)
|
||||
userDao.createUser(user3)
|
||||
|
@ -1,4 +1,4 @@
|
||||
package com.example.android_programming.dao
|
||||
package com.example.android_programming.database.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Delete
|
@ -1,4 +1,4 @@
|
||||
package com.example.android_programming.dao
|
||||
package com.example.android_programming.database.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Delete
|
@ -1,11 +1,11 @@
|
||||
package com.example.android_programming.database.remotekeys.dao
|
||||
package com.example.android_programming.database.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Insert
|
||||
import androidx.room.OnConflictStrategy
|
||||
import androidx.room.Query
|
||||
import com.example.android_programming.database.remotekeys.model.RemoteKeyType
|
||||
import com.example.android_programming.database.remotekeys.model.RemoteKeys
|
||||
import com.example.android_programming.model.RemoteKeyType
|
||||
import com.example.android_programming.model.RemoteKeys
|
||||
|
||||
@Dao
|
||||
interface RemoteKeysDao {
|
@ -1,4 +1,4 @@
|
||||
package com.example.android_programming.dao
|
||||
package com.example.android_programming.database.dao
|
||||
|
||||
import androidx.paging.PagingSource
|
||||
import androidx.room.Dao
|
@ -1,4 +1,4 @@
|
||||
package com.example.android_programming.dao
|
||||
package com.example.android_programming.database.dao
|
||||
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Delete
|
@ -1,10 +0,0 @@
|
||||
package com.example.android_programming.database.remotekeys.repository
|
||||
|
||||
import com.example.android_programming.database.remotekeys.model.RemoteKeyType
|
||||
import com.example.android_programming.database.remotekeys.model.RemoteKeys
|
||||
|
||||
interface RemoteKeyRepository {
|
||||
suspend fun getAllRemoteKeys(id: Int, type: RemoteKeyType): RemoteKeys?
|
||||
suspend fun createRemoteKeys(remoteKeys: List<RemoteKeys>)
|
||||
suspend fun deleteRemoteKey(type: RemoteKeyType)
|
||||
}
|
@ -1,6 +1,7 @@
|
||||
package com.example.android_programming.repository
|
||||
package com.example.android_programming.database.repository
|
||||
|
||||
import com.example.android_programming.dao.BasketDao
|
||||
import com.example.android_programming.businessLogic.repo.BasketRepository
|
||||
import com.example.android_programming.database.dao.BasketDao
|
||||
import com.example.android_programming.model.Basket
|
||||
import com.example.android_programming.model.BasketSneakers
|
||||
import com.example.android_programming.model.BasketWithSneakers
|
@ -1,6 +1,7 @@
|
||||
package com.example.android_programming.repository
|
||||
package com.example.android_programming.database.repository
|
||||
|
||||
import com.example.android_programming.dao.OrderDao
|
||||
import com.example.android_programming.businessLogic.repo.OrderRepository
|
||||
import com.example.android_programming.database.dao.OrderDao
|
||||
import com.example.android_programming.model.Order
|
||||
import com.example.android_programming.model.OrderSneaker
|
||||
import com.example.android_programming.model.OrderWithSneakers
|
@ -1,8 +1,9 @@
|
||||
package com.example.android_programming.database.remotekeys.repository
|
||||
package com.example.android_programming.database.repository
|
||||
|
||||
import com.example.android_programming.database.remotekeys.dao.RemoteKeysDao
|
||||
import com.example.android_programming.database.remotekeys.model.RemoteKeyType
|
||||
import com.example.android_programming.database.remotekeys.model.RemoteKeys
|
||||
import com.example.android_programming.businessLogic.repo.RemoteKeyRepository
|
||||
import com.example.android_programming.database.dao.RemoteKeysDao
|
||||
import com.example.android_programming.model.RemoteKeyType
|
||||
import com.example.android_programming.model.RemoteKeys
|
||||
|
||||
class RemoteKeysRepositoryImpl(private val remoteKeysDao: RemoteKeysDao) : RemoteKeyRepository {
|
||||
override suspend fun getAllRemoteKeys(id: Int, type: RemoteKeyType) =
|
@ -1,12 +1,12 @@
|
||||
package com.example.android_programming.repository
|
||||
package com.example.android_programming.database.repository
|
||||
|
||||
import androidx.paging.Pager
|
||||
import androidx.paging.PagingConfig
|
||||
import androidx.paging.PagingData
|
||||
import androidx.paging.PagingSource
|
||||
import androidx.paging.cachedIn
|
||||
import com.example.android_programming.AppContainer
|
||||
import com.example.android_programming.dao.SneakerDao
|
||||
import com.example.android_programming.businessLogic.repo.SneakerRepository
|
||||
import com.example.android_programming.database.dao.SneakerDao
|
||||
import com.example.android_programming.model.Sneaker
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
@ -0,0 +1,17 @@
|
||||
package com.example.android_programming.database.repository
|
||||
|
||||
//class UserRepoImpl(private val userDao: UserDao) : UserRepository {
|
||||
//
|
||||
// override suspend fun createUser(user: User) = userDao.createUser(user)
|
||||
//
|
||||
// override suspend fun updateUser(user: User) = userDao.updateUser(user)
|
||||
//
|
||||
// override suspend fun deleteUser(user: User) = userDao.deleteUser(user)
|
||||
//// override suspend fun authUser(user: UserRemoteSignIn): User {
|
||||
//// println()
|
||||
//// }
|
||||
//
|
||||
//// override suspend fun getUserById(id: Int): User = userDao.getUserById(id)
|
||||
////
|
||||
//// override suspend fun getUserByEmail(email: String): User = userDao.getUserByEmail(email)
|
||||
//}
|
@ -1,10 +1,9 @@
|
||||
package com.example.android_programming.database.remotekeys.model
|
||||
package com.example.android_programming.model
|
||||
|
||||
import androidx.room.Entity
|
||||
import androidx.room.PrimaryKey
|
||||
import androidx.room.TypeConverter
|
||||
import androidx.room.TypeConverters
|
||||
import com.example.android_programming.model.Sneaker
|
||||
|
||||
enum class RemoteKeyType(private val type: String) {
|
||||
SNEAKER(Sneaker::class.simpleName ?: "Sneaker");
|
@ -17,7 +17,7 @@ data class User(
|
||||
@ColumnInfo(name = "Password")
|
||||
val password: String,
|
||||
@ColumnInfo(name = "Role")
|
||||
val role: RoleEnum,
|
||||
val role: String,
|
||||
@ColumnInfo(name = "Photo")
|
||||
val photo: Int? = null,
|
||||
)
|
||||
|
@ -1,19 +0,0 @@
|
||||
package com.example.android_programming.repository
|
||||
|
||||
import com.example.android_programming.dao.UserDao
|
||||
import com.example.android_programming.model.User
|
||||
import com.example.android_programming.model.UserWithOrder
|
||||
import kotlinx.coroutines.flow.Flow
|
||||
|
||||
class UserRepoImpl(private val userDao: UserDao) : UserRepository {
|
||||
|
||||
override suspend fun createUser(user: User) = userDao.createUser(user)
|
||||
|
||||
override suspend fun updateUser(user: User) = userDao.updateUser(user)
|
||||
|
||||
override suspend fun deleteUser(user: User) = userDao.deleteUser(user)
|
||||
|
||||
// override suspend fun getUserById(id: Int): User = userDao.getUserById(id)
|
||||
//
|
||||
// override suspend fun getUserByEmail(email: String): User = userDao.getUserByEmail(email)
|
||||
}
|
Loading…
Reference in New Issue
Block a user