Создал interface. Все перекинул
This commit is contained in:
parent
e96160ad7d
commit
e63c1c1df0
@ -8,19 +8,19 @@ import androidx.compose.runtime.remember
|
|||||||
import androidx.navigation.compose.rememberNavController
|
import androidx.navigation.compose.rememberNavController
|
||||||
import com.example.labwork.database.DAO.BicycleDao
|
import com.example.labwork.database.DAO.BicycleDao
|
||||||
import com.example.labwork.database.DAO.UserDao
|
import com.example.labwork.database.DAO.UserDao
|
||||||
import com.example.labwork.repository.BicycleRepository
|
import com.example.labwork.repository.OfflineBicycleRepository
|
||||||
import com.example.labwork.repository.UserRepository
|
import com.example.labwork.repository.OfflineUserRepository
|
||||||
|
|
||||||
@SuppressLint("UnusedMaterialScaffoldPaddingParameter")
|
@SuppressLint("UnusedMaterialScaffoldPaddingParameter")
|
||||||
@Composable
|
@Composable
|
||||||
fun MainScreen(bicycleDao: BicycleDao, userDao: UserDao) {
|
fun MainScreen(bicycleDao: BicycleDao, userDao: UserDao) {
|
||||||
val navController = rememberNavController()
|
val navController = rememberNavController()
|
||||||
|
|
||||||
val bicycleRepository = remember {
|
val offlineBicycleRepository = remember {
|
||||||
BicycleRepository(bicycleDao)
|
OfflineBicycleRepository(bicycleDao)
|
||||||
}
|
}
|
||||||
val userRepository = remember {
|
val offlineUserRepository = remember {
|
||||||
UserRepository(userDao)
|
OfflineUserRepository(userDao)
|
||||||
}
|
}
|
||||||
|
|
||||||
Scaffold(
|
Scaffold(
|
||||||
@ -30,8 +30,8 @@ fun MainScreen(bicycleDao: BicycleDao, userDao: UserDao) {
|
|||||||
) {
|
) {
|
||||||
SlideGraph(
|
SlideGraph(
|
||||||
navHostController = navController,
|
navHostController = navController,
|
||||||
bicycleRepository = bicycleRepository,
|
offlineBicycleRepository = offlineBicycleRepository,
|
||||||
userRepository = userRepository
|
offlineUserRepository = offlineUserRepository
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
@ -1,13 +1,10 @@
|
|||||||
package com.example.labwork.button_navigation
|
package com.example.labwork.button_navigation
|
||||||
|
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
|
||||||
import androidx.compose.foundation.layout.Column
|
import androidx.compose.foundation.layout.Column
|
||||||
import androidx.compose.foundation.layout.Row
|
|
||||||
import androidx.compose.foundation.layout.Spacer
|
import androidx.compose.foundation.layout.Spacer
|
||||||
import androidx.compose.foundation.layout.fillMaxHeight
|
import androidx.compose.foundation.layout.fillMaxHeight
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
|
||||||
import androidx.compose.foundation.layout.width
|
import androidx.compose.foundation.layout.width
|
||||||
import androidx.compose.foundation.lazy.LazyColumn
|
import androidx.compose.foundation.lazy.LazyColumn
|
||||||
import androidx.compose.foundation.lazy.itemsIndexed
|
import androidx.compose.foundation.lazy.itemsIndexed
|
||||||
@ -29,18 +26,13 @@ import androidx.compose.ui.text.style.TextAlign
|
|||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import com.example.labwork.database.DAO.UserDao
|
|
||||||
import com.example.labwork.models.Bicycle
|
|
||||||
import com.example.labwork.pages.ListInfo
|
import com.example.labwork.pages.ListInfo
|
||||||
import com.example.labwork.pages.product.FormNewProduct
|
import com.example.labwork.pages.product.FormNewProduct
|
||||||
import com.example.labwork.pages.product.ListProduct
|
import com.example.labwork.pages.product.ListProduct
|
||||||
import com.example.labwork.pages.user.RegisteryOrLogin
|
import com.example.labwork.pages.user.RegisteryOrLogin
|
||||||
import com.example.labwork.repository.BicycleRepository
|
|
||||||
import com.example.labwork.ui.theme.LightBluePolitech
|
import com.example.labwork.ui.theme.LightBluePolitech
|
||||||
import com.example.labwork.viewmodel.BicycleViewModel
|
import com.example.labwork.viewmodel.BicycleViewModel
|
||||||
import com.example.labwork.viewmodel.UserViewModel
|
import com.example.labwork.viewmodel.UserViewModel
|
||||||
import kotlinx.coroutines.Dispatchers
|
|
||||||
import kotlinx.coroutines.withContext
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun ScreenInfo() {
|
fun ScreenInfo() {
|
||||||
|
@ -6,10 +6,8 @@ import androidx.lifecycle.viewmodel.compose.viewModel
|
|||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import androidx.navigation.compose.NavHost
|
import androidx.navigation.compose.NavHost
|
||||||
import androidx.navigation.compose.composable
|
import androidx.navigation.compose.composable
|
||||||
import com.example.labwork.database.DAO.BicycleDao
|
import com.example.labwork.repository.OfflineBicycleRepository
|
||||||
import com.example.labwork.database.DAO.UserDao
|
import com.example.labwork.repository.OfflineUserRepository
|
||||||
import com.example.labwork.repository.BicycleRepository
|
|
||||||
import com.example.labwork.repository.UserRepository
|
|
||||||
import com.example.labwork.viewmodel.BicycleViewModel
|
import com.example.labwork.viewmodel.BicycleViewModel
|
||||||
import com.example.labwork.viewmodel.UserViewModel
|
import com.example.labwork.viewmodel.UserViewModel
|
||||||
import com.example.labwork.viewmodel.factory.BicycleViewModelFactory
|
import com.example.labwork.viewmodel.factory.BicycleViewModelFactory
|
||||||
@ -19,14 +17,14 @@ import com.example.labwork.viewmodel.factory.UserViewModelFactory
|
|||||||
@Composable
|
@Composable
|
||||||
fun SlideGraph(
|
fun SlideGraph(
|
||||||
navHostController: NavHostController,
|
navHostController: NavHostController,
|
||||||
bicycleRepository: BicycleRepository,
|
offlineBicycleRepository: OfflineBicycleRepository,
|
||||||
userRepository: UserRepository
|
offlineUserRepository: OfflineUserRepository
|
||||||
) {
|
) {
|
||||||
val bicycleViewModel: BicycleViewModel = viewModel(
|
val bicycleViewModel: BicycleViewModel = viewModel(
|
||||||
factory = BicycleViewModelFactory(bicycleRepository)
|
factory = BicycleViewModelFactory(offlineBicycleRepository)
|
||||||
)
|
)
|
||||||
val userViewModel: UserViewModel = viewModel(
|
val userViewModel: UserViewModel = viewModel(
|
||||||
factory = UserViewModelFactory(userRepository)
|
factory = UserViewModelFactory(offlineUserRepository)
|
||||||
)
|
)
|
||||||
|
|
||||||
NavHost(navController = navHostController, startDestination = "Profile") {
|
NavHost(navController = navHostController, startDestination = "Profile") {
|
||||||
|
@ -37,13 +37,9 @@ import androidx.compose.ui.unit.dp
|
|||||||
import androidx.compose.ui.unit.sp
|
import androidx.compose.ui.unit.sp
|
||||||
import androidx.navigation.NavHostController
|
import androidx.navigation.NavHostController
|
||||||
import com.example.labwork.R
|
import com.example.labwork.R
|
||||||
import com.example.labwork.database.DAO.BicycleDao
|
|
||||||
import com.example.labwork.models.Bicycle
|
import com.example.labwork.models.Bicycle
|
||||||
import com.example.labwork.repository.BicycleRepository
|
|
||||||
import com.example.labwork.ui.theme.LightBluePolitech
|
import com.example.labwork.ui.theme.LightBluePolitech
|
||||||
import com.example.labwork.viewmodel.BicycleViewModel
|
import com.example.labwork.viewmodel.BicycleViewModel
|
||||||
import kotlinx.coroutines.GlobalScope
|
|
||||||
import kotlinx.coroutines.launch
|
|
||||||
|
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
|
@ -1,38 +1,13 @@
|
|||||||
package com.example.labwork.repository
|
package com.example.labwork.repository
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
|
||||||
import androidx.lifecycle.ViewModelProvider
|
|
||||||
import com.example.labwork.database.DAO.BicycleDao
|
|
||||||
import com.example.labwork.models.Bicycle
|
import com.example.labwork.models.Bicycle
|
||||||
import com.example.labwork.viewmodel.BicycleViewModel
|
|
||||||
|
|
||||||
class BicycleRepository(private val bicycleDao: BicycleDao) {
|
interface BicycleRepository {
|
||||||
suspend fun insertBicycle(bicycle: Bicycle) {
|
suspend fun insertBicycle(bicycle: Bicycle)
|
||||||
bicycleDao.insertBicycle(bicycle)
|
suspend fun updateBicycle(bicycle: Bicycle)
|
||||||
}
|
suspend fun deleteBicycle(bicycle: Bicycle)
|
||||||
|
suspend fun getAllBicycles(): List<Bicycle>
|
||||||
suspend fun updateBicycle(bicycle: Bicycle) {
|
suspend fun getBicyclesByUserId(userId: Int): List<Bicycle>
|
||||||
bicycleDao.updateBicycle(bicycle)
|
suspend fun getBicycleById(bicycleId: Int?): Bicycle
|
||||||
}
|
suspend fun getBicyclesByPage(pageNumber: Int, pageSize: Int): List<Bicycle>
|
||||||
|
|
||||||
suspend fun deleteBicycle(bicycle: Bicycle) {
|
|
||||||
bicycleDao.deleteBicycle(bicycle)
|
|
||||||
}
|
|
||||||
|
|
||||||
suspend fun getAllBicycles(): List<Bicycle> {
|
|
||||||
return bicycleDao.getAllBicycles()
|
|
||||||
}
|
|
||||||
|
|
||||||
suspend fun getBicyclesByUserId(userId: Int): List<Bicycle> {
|
|
||||||
return bicycleDao.getBicyclesByUserId(userId)
|
|
||||||
}
|
|
||||||
suspend fun getBicycleById(bicycleId: Int?): Bicycle {
|
|
||||||
return bicycleDao.getBicycleById(bicycleId)
|
|
||||||
}
|
|
||||||
suspend fun getBicyclesByPage(pageNumber: Int, pageSize: Int): List<Bicycle> {
|
|
||||||
val offset = (pageNumber - 1) * pageSize
|
|
||||||
return bicycleDao.getBicyclesByPage(offset, pageSize)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
@ -0,0 +1,38 @@
|
|||||||
|
package com.example.labwork.repository
|
||||||
|
|
||||||
|
import com.example.labwork.database.DAO.BicycleDao
|
||||||
|
import com.example.labwork.models.Bicycle
|
||||||
|
|
||||||
|
class OfflineBicycleRepository(private val bicycleDao: BicycleDao) : BicycleRepository {
|
||||||
|
override suspend fun insertBicycle(bicycle: Bicycle) {
|
||||||
|
bicycleDao.insertBicycle(bicycle)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun updateBicycle(bicycle: Bicycle) {
|
||||||
|
bicycleDao.updateBicycle(bicycle)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun deleteBicycle(bicycle: Bicycle) {
|
||||||
|
bicycleDao.deleteBicycle(bicycle)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun getAllBicycles(): List<Bicycle> {
|
||||||
|
return bicycleDao.getAllBicycles()
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun getBicyclesByUserId(userId: Int): List<Bicycle> {
|
||||||
|
return bicycleDao.getBicyclesByUserId(userId)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun getBicycleById(bicycleId: Int?): Bicycle {
|
||||||
|
return bicycleDao.getBicycleById(bicycleId)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun getBicyclesByPage(pageNumber: Int, pageSize: Int): List<Bicycle> {
|
||||||
|
val offset = (pageNumber - 1) * pageSize
|
||||||
|
return bicycleDao.getBicyclesByPage(offset, pageSize)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -0,0 +1,35 @@
|
|||||||
|
package com.example.labwork.repository
|
||||||
|
|
||||||
|
import com.example.labwork.database.DAO.UserDao
|
||||||
|
import com.example.labwork.models.User
|
||||||
|
|
||||||
|
class OfflineUserRepository(private val userDao: UserDao) : UserRepository {
|
||||||
|
override suspend fun getAllUsers(): List<User> {
|
||||||
|
return userDao.getAllUsers()
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun insertUser(user: User) {
|
||||||
|
userDao.insertUser(user)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun updateUser(user: User) {
|
||||||
|
userDao.updateUser(user)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun deleteUser(user: User) {
|
||||||
|
userDao.deleteUser(user)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun getUserById(userId: Int): User {
|
||||||
|
return userDao.getUserById(userId)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun getUserByEmail(email: String): User {
|
||||||
|
return userDao.getUserByEmail(email)
|
||||||
|
}
|
||||||
|
|
||||||
|
override suspend fun getUserByEmailAndPassword(email: String, password: String): User? {
|
||||||
|
return userDao.getUserByEmailAndPassword(email, password)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -1,38 +1,13 @@
|
|||||||
package com.example.labwork.repository
|
package com.example.labwork.repository
|
||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
|
||||||
import androidx.lifecycle.ViewModelProvider
|
|
||||||
import com.example.labwork.database.DAO.UserDao
|
|
||||||
import com.example.labwork.models.User
|
import com.example.labwork.models.User
|
||||||
import com.example.labwork.viewmodel.UserViewModel
|
|
||||||
|
|
||||||
class UserRepository(private val userDao: UserDao) {
|
interface UserRepository {
|
||||||
suspend fun getAllUsers(): List<User> {
|
suspend fun getAllUsers(): List<User>
|
||||||
return userDao.getAllUsers()
|
suspend fun insertUser(user: User)
|
||||||
}
|
suspend fun updateUser(user: User)
|
||||||
|
suspend fun deleteUser(user: User)
|
||||||
suspend fun insertUser(user: User) {
|
suspend fun getUserById(userId: Int): User
|
||||||
userDao.insertUser(user)
|
suspend fun getUserByEmail(email: String): User
|
||||||
}
|
suspend fun getUserByEmailAndPassword(email: String, password: String): User?
|
||||||
|
|
||||||
suspend fun updateUser(user: User) {
|
|
||||||
userDao.updateUser(user)
|
|
||||||
}
|
|
||||||
|
|
||||||
suspend fun deleteUser(user: User) {
|
|
||||||
userDao.deleteUser(user)
|
|
||||||
}
|
|
||||||
|
|
||||||
suspend fun getUserById(userId: Int): User {
|
|
||||||
return userDao.getUserById(userId)
|
|
||||||
}
|
|
||||||
|
|
||||||
suspend fun getUserByEmail(email: String): User {
|
|
||||||
return userDao.getUserByEmail(email)
|
|
||||||
}
|
|
||||||
|
|
||||||
suspend fun getUserByEmailAndPassword(email: String, password: String): User? {
|
|
||||||
return userDao.getUserByEmailAndPassword(email, password)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1,16 +1,15 @@
|
|||||||
package com.example.labwork.viewmodel
|
package com.example.labwork.viewmodel
|
||||||
|
|
||||||
import androidx.lifecycle.LiveData
|
|
||||||
import androidx.lifecycle.MutableLiveData
|
import androidx.lifecycle.MutableLiveData
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.example.labwork.models.Bicycle
|
import com.example.labwork.models.Bicycle
|
||||||
import com.example.labwork.repository.BicycleRepository
|
import com.example.labwork.repository.OfflineBicycleRepository
|
||||||
import kotlinx.coroutines.flow.MutableStateFlow
|
import kotlinx.coroutines.flow.MutableStateFlow
|
||||||
import kotlinx.coroutines.flow.StateFlow
|
import kotlinx.coroutines.flow.StateFlow
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
class BicycleViewModel(private val bicycleRepository: BicycleRepository) : ViewModel() {
|
class BicycleViewModel(private val offlineBicycleRepository: OfflineBicycleRepository) : ViewModel() {
|
||||||
private val _bicycles = MutableLiveData<List<Bicycle>>()
|
private val _bicycles = MutableLiveData<List<Bicycle>>()
|
||||||
val bicycles: StateFlow<List<Bicycle>> = MutableStateFlow(emptyList())
|
val bicycles: StateFlow<List<Bicycle>> = MutableStateFlow(emptyList())
|
||||||
|
|
||||||
@ -19,7 +18,7 @@ class BicycleViewModel(private val bicycleRepository: BicycleRepository) : ViewM
|
|||||||
|
|
||||||
fun fetchBicyclesByPage(pageNumber: Int, pageSize: Int) {
|
fun fetchBicyclesByPage(pageNumber: Int, pageSize: Int) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
val fetchedBicycles = bicycleRepository.getBicyclesByPage(pageNumber, pageSize)
|
val fetchedBicycles = offlineBicycleRepository.getBicyclesByPage(pageNumber, pageSize)
|
||||||
_bicycles.value = fetchedBicycles
|
_bicycles.value = fetchedBicycles
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -34,37 +33,37 @@ class BicycleViewModel(private val bicycleRepository: BicycleRepository) : ViewM
|
|||||||
|
|
||||||
fun fetchBicycles() {
|
fun fetchBicycles() {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
val fetchedBicycles = bicycleRepository.getAllBicycles()
|
val fetchedBicycles = offlineBicycleRepository.getAllBicycles()
|
||||||
(bicycles as MutableStateFlow).value = fetchedBicycles
|
(bicycles as MutableStateFlow).value = fetchedBicycles
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
fun getAllBicycles() {
|
fun getAllBicycles() {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
_bicycles.value = bicycleRepository.getAllBicycles()
|
_bicycles.value = offlineBicycleRepository.getAllBicycles()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getBicycleById(bicycleId: Int) {
|
fun getBicycleById(bicycleId: Int) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
val bicycle = bicycleRepository.getBicycleById(bicycleId)
|
val bicycle = offlineBicycleRepository.getBicycleById(bicycleId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun insertBicycle(bicycle: Bicycle) {
|
fun insertBicycle(bicycle: Bicycle) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
bicycleRepository.insertBicycle(bicycle)
|
offlineBicycleRepository.insertBicycle(bicycle)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun updateBicycle(bicycle: Bicycle) {
|
fun updateBicycle(bicycle: Bicycle) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
bicycleRepository.updateBicycle(bicycle)
|
offlineBicycleRepository.updateBicycle(bicycle)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun deleteBicycle(bicycle: Bicycle) {
|
fun deleteBicycle(bicycle: Bicycle) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
bicycleRepository.deleteBicycle(bicycle)
|
offlineBicycleRepository.deleteBicycle(bicycle)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,52 +5,52 @@ import androidx.lifecycle.MutableLiveData
|
|||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.viewModelScope
|
import androidx.lifecycle.viewModelScope
|
||||||
import com.example.labwork.models.User
|
import com.example.labwork.models.User
|
||||||
import com.example.labwork.repository.UserRepository
|
import com.example.labwork.repository.OfflineUserRepository
|
||||||
import kotlinx.coroutines.launch
|
import kotlinx.coroutines.launch
|
||||||
|
|
||||||
class UserViewModel(private val userRepository: UserRepository) : ViewModel() {
|
class UserViewModel(private val offlineUserRepository: OfflineUserRepository) : ViewModel() {
|
||||||
private val _users = MutableLiveData<List<User>>()
|
private val _users = MutableLiveData<List<User>>()
|
||||||
val users: LiveData<List<User>> get() = _users
|
val users: LiveData<List<User>> get() = _users
|
||||||
|
|
||||||
fun getAllUsers() {
|
fun getAllUsers() {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
_users.value = userRepository.getAllUsers()
|
_users.value = offlineUserRepository.getAllUsers()
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun getUserById(userId: Int) {
|
fun getUserById(userId: Int) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
val user = userRepository.getUserById(userId)
|
val user = offlineUserRepository.getUserById(userId)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun insertUser(user: User) {
|
fun insertUser(user: User) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
userRepository.insertUser(user)
|
offlineUserRepository.insertUser(user)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun updateUser(user: User) {
|
fun updateUser(user: User) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
userRepository.updateUser(user)
|
offlineUserRepository.updateUser(user)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
fun deleteUser(user: User) {
|
fun deleteUser(user: User) {
|
||||||
viewModelScope.launch {
|
viewModelScope.launch {
|
||||||
userRepository.deleteUser(user)
|
offlineUserRepository.deleteUser(user)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun login(email: String, password: String): Boolean {
|
suspend fun login(email: String, password: String): Boolean {
|
||||||
var isSuccess = false
|
var isSuccess = false
|
||||||
val user = userRepository.getUserByEmail(email)
|
val user = offlineUserRepository.getUserByEmail(email)
|
||||||
isSuccess = user != null && user.password == password
|
isSuccess = user != null && user.password == password
|
||||||
return isSuccess
|
return isSuccess
|
||||||
}
|
}
|
||||||
|
|
||||||
suspend fun getUserByEmail(email: String): User? {
|
suspend fun getUserByEmail(email: String): User? {
|
||||||
return userRepository.getUserByEmail(email)
|
return offlineUserRepository.getUserByEmail(email)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2,13 +2,13 @@ package com.example.labwork.viewmodel.factory
|
|||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import com.example.labwork.repository.BicycleRepository
|
import com.example.labwork.repository.OfflineBicycleRepository
|
||||||
import com.example.labwork.viewmodel.BicycleViewModel
|
import com.example.labwork.viewmodel.BicycleViewModel
|
||||||
|
|
||||||
class BicycleViewModelFactory(private val bicycleRepository: BicycleRepository): ViewModelProvider.Factory {
|
class BicycleViewModelFactory(private val offlineBicycleRepository: OfflineBicycleRepository): ViewModelProvider.Factory {
|
||||||
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||||
if (modelClass.isAssignableFrom(BicycleViewModel::class.java)) {
|
if (modelClass.isAssignableFrom(BicycleViewModel::class.java)) {
|
||||||
return BicycleViewModel(bicycleRepository) as T
|
return BicycleViewModel(offlineBicycleRepository) as T
|
||||||
}
|
}
|
||||||
throw IllegalArgumentException("Unknown ViewModel class")
|
throw IllegalArgumentException("Unknown ViewModel class")
|
||||||
}
|
}
|
||||||
|
@ -2,13 +2,13 @@ package com.example.labwork.viewmodel.factory
|
|||||||
|
|
||||||
import androidx.lifecycle.ViewModel
|
import androidx.lifecycle.ViewModel
|
||||||
import androidx.lifecycle.ViewModelProvider
|
import androidx.lifecycle.ViewModelProvider
|
||||||
import com.example.labwork.repository.UserRepository
|
import com.example.labwork.repository.OfflineUserRepository
|
||||||
import com.example.labwork.viewmodel.UserViewModel
|
import com.example.labwork.viewmodel.UserViewModel
|
||||||
|
|
||||||
class UserViewModelFactory(private val userRepository: UserRepository): ViewModelProvider.Factory {
|
class UserViewModelFactory(private val offlineUserRepository: OfflineUserRepository): ViewModelProvider.Factory {
|
||||||
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||||
if (modelClass.isAssignableFrom(UserViewModel::class.java)) {
|
if (modelClass.isAssignableFrom(UserViewModel::class.java)) {
|
||||||
return UserViewModel(userRepository) as T
|
return UserViewModel(offlineUserRepository) as T
|
||||||
}
|
}
|
||||||
throw IllegalArgumentException("Unknown ViewModel class")
|
throw IllegalArgumentException("Unknown ViewModel class")
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user