Курсовая: Вот теперь наверняка готова

This commit is contained in:
Amon 2023-12-28 05:16:32 +04:00
parent 50f3d5bf55
commit 40ca46846e
19 changed files with 21 additions and 86 deletions

View File

@ -1,4 +1,4 @@
package com.example.dtf package com.example.dtf.data
import android.content.Context import android.content.Context
import android.content.SharedPreferences import android.content.SharedPreferences

View File

@ -25,7 +25,6 @@ import com.example.dtf.data.models.User
version = 4, version = 4,
exportSchema = false exportSchema = false
) )
@TypeConverters(Converter::class)
abstract class AppDatabase : RoomDatabase() { abstract class AppDatabase : RoomDatabase() {
abstract fun userDao() : UserDao abstract fun userDao() : UserDao
abstract fun categoryDao() : CategoryDao abstract fun categoryDao() : CategoryDao

View File

@ -1,16 +0,0 @@
package com.example.dtf.data.db
import androidx.room.TypeConverter
import java.util.Date
class Converter {
@TypeConverter
fun fromTimestamp(value: Long?): Date? {
return value?.let { Date(it) }
}
@TypeConverter
fun dateToTimestamp(date: Date?): Long? {
return date?.time?.toLong()
}
}

View File

@ -5,59 +5,6 @@ import androidx.room.Entity
import androidx.room.PrimaryKey import androidx.room.PrimaryKey
import kotlinx.serialization.Serializable import kotlinx.serialization.Serializable
//private val posts = listOf(
// Post(
// 1,
// "Что не так с half-life 2",
// "Да всё не так",
// 1,
// mutableVectorOf(
// Comment(1, 2, "Пост бред. Начнём с того, что вот эта твоя манера речи клоунская...", Date(2023, 10, 20)),
// Comment(2, 1, "Да какой бред, чел, я всё по факту сказал", Date(2023, 10, 20))
// ),
// Date(2023, 10, 22)
// ),
// Post(
// 2,
// "Я действительно ненавижу фильм про титаник",
// "Пруфов не будет",
// 2,
// mutableVectorOf(Comment(1, 2, "Очередной бред от автора", Date(2023, 9, 20))),
// Date(2023, 9, 22)
// ),
// Post(
// 3,
// "\"Госпожа Кагуя\" это переоценённый тайтл",
// "Я, конечно, не смотрел, но мне так кажется. А всё потому, что там происходит такое, что даже Аристотелю не снилось. А может даже Платону. Об этом можно рассуждать тысячи лет, но я смогу уложиться всего в пару слов. И первое слово - этот тайтл полное днище. Ладно, не слово",
// 3,
// mutableVectorOf(Comment(1, 2, "Автора на увольнение", Date(2023, 9, 20))),
// Date(2023, 9, 22)
// ),
// Post(
// 4,
// "\"Восхождение в тени\" это переоценённый тайтл",
// "Я, конечно, не смотрел, но мне так кажется. А всё потому, что там происходит такое, что даже Аристотелю не снилось. А может даже Платону. Об этом можно рассуждать тысячи лет, но я смогу уложиться всего в пару слов. И первое слово - этот тайтл полное днище. Ладно, не слово",
// 3,
// mutableVectorOf(Comment(1, 2, "Автора на увольнение", Date(2023, 9, 20))),
// Date(2023, 9, 22)
// ),
// Post(
// 5,
// "\"Тетрадь смерти\" это переоценённый тайтл",
// "Я, конечно, не смотрел, но мне так кажется. А всё потому, что там происходит такое, что даже Аристотелю не снилось. А может даже Платону. Об этом можно рассуждать тысячи лет, но я смогу уложиться всего в пару слов. И первое слово - этот тайтл полное днище. Ладно, не слово",
// 3,
// mutableVectorOf(Comment(1, 2, "Автора на увольнение", Date(2023, 9, 20))),
// Date(2023, 9, 22)
// ),
// Post(
// 6,
// "\"Бакуман\" это переоценённый тайтл",
// "Я, конечно, не смотрел, но мне так кажется. А всё потому, что там происходит такое, что даже Аристотелю не снилось. А может даже Платону. Об этом можно рассуждать тысячи лет, но я смогу уложиться всего в пару слов. И первое слово - этот тайтл полное днище. Ладно, не слово",
// 3,
// mutableVectorOf(Comment(1, 2, "Автора на увольнение", Date(2023, 9, 20))),
// Date(2023, 9, 22)
// )
//)
@Entity( @Entity(
tableName = "post" tableName = "post"

View File

@ -31,7 +31,7 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavHostController import androidx.navigation.NavHostController
import com.example.dtf.PreferencesManager import com.example.dtf.data.PreferencesManager
import com.example.dtf.ui.utils.ScreenPaths import com.example.dtf.ui.utils.ScreenPaths
import com.example.dtf.ui.viewmodels.EditPostViewModel import com.example.dtf.ui.viewmodels.EditPostViewModel
import com.example.dtf.ui.widgets.MyTextField import com.example.dtf.ui.widgets.MyTextField

View File

@ -31,7 +31,7 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavHostController import androidx.navigation.NavHostController
import com.example.dtf.PreferencesManager import com.example.dtf.data.PreferencesManager
import com.example.dtf.ui.utils.ScreenPaths import com.example.dtf.ui.utils.ScreenPaths
import com.example.dtf.ui.viewmodels.LoginViewModel import com.example.dtf.ui.viewmodels.LoginViewModel
import com.example.dtf.ui.widgets.MyTextField import com.example.dtf.ui.widgets.MyTextField

View File

@ -35,7 +35,7 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavHostController import androidx.navigation.NavHostController
import com.example.dtf.PreferencesManager import com.example.dtf.data.PreferencesManager
import com.example.dtf.data.models.Category import com.example.dtf.data.models.Category
import com.example.dtf.ui.utils.ScreenPaths import com.example.dtf.ui.utils.ScreenPaths
import com.example.dtf.ui.viewmodels.NewPostViewModel import com.example.dtf.ui.viewmodels.NewPostViewModel

View File

@ -41,7 +41,7 @@ import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavHostController import androidx.navigation.NavHostController
import androidx.paging.compose.collectAsLazyPagingItems import androidx.paging.compose.collectAsLazyPagingItems
import androidx.paging.compose.itemKey import androidx.paging.compose.itemKey
import com.example.dtf.PreferencesManager import com.example.dtf.data.PreferencesManager
import com.example.dtf.data.models.Comment import com.example.dtf.data.models.Comment
import com.example.dtf.ui.utils.ScreenPaths import com.example.dtf.ui.utils.ScreenPaths
import com.example.dtf.ui.viewmodels.PostViewModel import com.example.dtf.ui.viewmodels.PostViewModel

View File

@ -39,7 +39,7 @@ import androidx.navigation.NavHostController
import androidx.paging.PagingData import androidx.paging.PagingData
import androidx.paging.compose.collectAsLazyPagingItems import androidx.paging.compose.collectAsLazyPagingItems
import androidx.paging.compose.itemKey import androidx.paging.compose.itemKey
import com.example.dtf.PreferencesManager import com.example.dtf.data.PreferencesManager
import com.example.dtf.data.models.Category import com.example.dtf.data.models.Category
import com.example.dtf.data.models.Post import com.example.dtf.data.models.Post
import com.example.dtf.ui.utils.ScreenPaths import com.example.dtf.ui.utils.ScreenPaths

View File

@ -25,7 +25,7 @@ import androidx.compose.ui.unit.dp
import androidx.compose.ui.unit.sp import androidx.compose.ui.unit.sp
import androidx.hilt.navigation.compose.hiltViewModel import androidx.hilt.navigation.compose.hiltViewModel
import androidx.navigation.NavHostController import androidx.navigation.NavHostController
import com.example.dtf.PreferencesManager import com.example.dtf.data.PreferencesManager
import com.example.dtf.ui.utils.ScreenPaths import com.example.dtf.ui.utils.ScreenPaths
import com.example.dtf.ui.viewmodels.ProfileViewModel import com.example.dtf.ui.viewmodels.ProfileViewModel

View File

@ -42,7 +42,7 @@ import androidx.navigation.NavHostController
import androidx.paging.compose.LazyPagingItems import androidx.paging.compose.LazyPagingItems
import androidx.paging.compose.collectAsLazyPagingItems import androidx.paging.compose.collectAsLazyPagingItems
import androidx.paging.compose.itemKey import androidx.paging.compose.itemKey
import com.example.dtf.PreferencesManager import com.example.dtf.data.PreferencesManager
import com.example.dtf.data.models.Category import com.example.dtf.data.models.Category
import com.example.dtf.data.models.Post import com.example.dtf.data.models.Post
import com.example.dtf.ui.utils.ScreenPaths import com.example.dtf.ui.utils.ScreenPaths

View File

@ -4,7 +4,7 @@ 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.dtf.PreferencesManager import com.example.dtf.data.PreferencesManager
import com.example.dtf.data.models.Post import com.example.dtf.data.models.Post
import com.example.dtf.data.repositories.IPostRepository import com.example.dtf.data.repositories.IPostRepository
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel

View File

@ -4,7 +4,7 @@ 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.dtf.PreferencesManager import com.example.dtf.data.PreferencesManager
import com.example.dtf.data.api.ServerService import com.example.dtf.data.api.ServerService
import com.example.dtf.data.dto.Credentials import com.example.dtf.data.dto.Credentials
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel
@ -24,6 +24,11 @@ class LoginViewModel @Inject constructor(
} }
fun login(sharedPref: PreferencesManager, username: String, password: String) { fun login(sharedPref: PreferencesManager, username: String, password: String) {
if (username.isEmpty() || password.isEmpty()) {
_successState.postValue(false)
return
}
viewModelScope.launch { viewModelScope.launch {
val token = serverService.login(Credentials(username, password)) val token = serverService.login(Credentials(username, password))

View File

@ -4,7 +4,7 @@ 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.dtf.PreferencesManager import com.example.dtf.data.PreferencesManager
import com.example.dtf.data.models.Post import com.example.dtf.data.models.Post
import com.example.dtf.data.repositories.ICategoryRepository import com.example.dtf.data.repositories.ICategoryRepository
import com.example.dtf.data.repositories.IPostRepository import com.example.dtf.data.repositories.IPostRepository

View File

@ -5,7 +5,7 @@ import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import androidx.paging.PagingData import androidx.paging.PagingData
import com.example.dtf.PreferencesManager import com.example.dtf.data.PreferencesManager
import com.example.dtf.data.models.Comment import com.example.dtf.data.models.Comment
import com.example.dtf.data.models.Like import com.example.dtf.data.models.Like
import com.example.dtf.data.models.Post import com.example.dtf.data.models.Post

View File

@ -2,7 +2,7 @@ package com.example.dtf.ui.viewmodels
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import androidx.lifecycle.viewModelScope import androidx.lifecycle.viewModelScope
import com.example.dtf.PreferencesManager import com.example.dtf.data.PreferencesManager
import com.example.dtf.data.models.Like import com.example.dtf.data.models.Like
import com.example.dtf.data.repositories.ICategoryRepository import com.example.dtf.data.repositories.ICategoryRepository
import com.example.dtf.data.repositories.ILikeRepository import com.example.dtf.data.repositories.ILikeRepository

View File

@ -3,7 +3,7 @@ package com.example.dtf.ui.viewmodels
import androidx.lifecycle.LiveData import androidx.lifecycle.LiveData
import androidx.lifecycle.MutableLiveData import androidx.lifecycle.MutableLiveData
import androidx.lifecycle.ViewModel import androidx.lifecycle.ViewModel
import com.example.dtf.PreferencesManager import com.example.dtf.data.PreferencesManager
import com.example.dtf.data.models.User import com.example.dtf.data.models.User
import com.example.dtf.data.repositories.offline.OfflineUserRepository import com.example.dtf.data.repositories.offline.OfflineUserRepository
import dagger.hilt.android.lifecycle.HiltViewModel import dagger.hilt.android.lifecycle.HiltViewModel

View File

@ -4,7 +4,7 @@ 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.dtf.PreferencesManager import com.example.dtf.data.PreferencesManager
import com.example.dtf.data.models.Like import com.example.dtf.data.models.Like
import com.example.dtf.data.models.Post import com.example.dtf.data.models.Post
import com.example.dtf.data.repositories.ICategoryRepository import com.example.dtf.data.repositories.ICategoryRepository

View File

@ -19,7 +19,7 @@ import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.dp
import androidx.navigation.NavController import androidx.navigation.NavController
import androidx.navigation.compose.currentBackStackEntryAsState import androidx.navigation.compose.currentBackStackEntryAsState
import com.example.dtf.PreferencesManager import com.example.dtf.data.PreferencesManager
import com.example.dtf.ui.utils.ScreenPaths import com.example.dtf.ui.utils.ScreenPaths
@Composable @Composable