Compare commits
8 Commits
master
...
For_Me_Tea
Author | SHA1 | Date |
---|---|---|
|
6ec4c2bd60 | 2 years ago |
|
cdd2647b5e | 2 years ago |
|
5538851920 | 2 years ago |
|
e0d5e666f3 | 2 years ago |
|
4e195b5115 | 2 years ago |
|
630ab5ef1e | 2 years ago |
|
7c9a7b2090 | 2 years ago |
|
2905584410 | 2 years ago |
Binary file not shown.
@ -0,0 +1,10 @@
|
||||
package uca.iut.clermont.application
|
||||
|
||||
import android.app.Application
|
||||
import uca.iut.clermont.data.BDD
|
||||
|
||||
class ScorItApplication: Application() {
|
||||
|
||||
val db: BDD by lazy { BDD.getInstance(this) }
|
||||
|
||||
}
|
@ -0,0 +1,30 @@
|
||||
package uca.iut.clermont.converters
|
||||
|
||||
import androidx.room.TypeConverter
|
||||
import com.google.gson.Gson
|
||||
import uca.iut.clermont.model.Area
|
||||
import uca.iut.clermont.model.Season
|
||||
|
||||
class Converters {
|
||||
|
||||
@TypeConverter
|
||||
fun fromJson(json: String): Season {
|
||||
return Gson().fromJson(json, Season::class.java)
|
||||
}
|
||||
|
||||
@TypeConverter
|
||||
fun toJson(season: Season): String {
|
||||
return Gson().toJson(season)
|
||||
}
|
||||
|
||||
@TypeConverter
|
||||
fun fromJsonArea(json: String): Area {
|
||||
return Gson().fromJson(json, Area::class.java)
|
||||
}
|
||||
|
||||
@TypeConverter
|
||||
fun toJson(area: Area): String {
|
||||
return Gson().toJson(area)
|
||||
}
|
||||
|
||||
}
|
@ -1,45 +1,69 @@
|
||||
package uca.iut.clermont.view.viewModel
|
||||
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.asLiveData
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import kotlinx.coroutines.Dispatchers
|
||||
import kotlinx.coroutines.launch
|
||||
import retrofit2.HttpException
|
||||
import uca.iut.clermont.api.ApiManager
|
||||
import uca.iut.clermont.data.dao.CompetitionDao
|
||||
import uca.iut.clermont.model.Competition
|
||||
import uca.iut.clermont.model.Match
|
||||
import java.util.*
|
||||
|
||||
class DetailViewModel(
|
||||
//val dao: CompetitionDao
|
||||
val dao: CompetitionDao
|
||||
) : ViewModel() {
|
||||
|
||||
val ERROR = "too many requests"
|
||||
val manager = ApiManager()
|
||||
val competition = MutableLiveData<Competition?>()
|
||||
val competitionMatches = MutableLiveData<List<Match>>()
|
||||
val nbCompetitionMatches = MutableLiveData<Int>()
|
||||
val isFavorite = MutableLiveData<Boolean>()
|
||||
|
||||
/*fun insertCompetition(competition: Competition) =
|
||||
viewModelScope.launch {
|
||||
fun insertCompetition(competition: Competition) =
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
dao.insertCompetition(competition)
|
||||
}
|
||||
*/
|
||||
|
||||
fun deleteCompetition(competition: Competition) =
|
||||
viewModelScope.launch(Dispatchers.IO) {
|
||||
dao.deleteCompetition(competition)
|
||||
}
|
||||
|
||||
fun check(id: Int) = dao.getCompetitionById(id).asLiveData()
|
||||
|
||||
fun loadCurrentCompetition(id: Int) = viewModelScope.launch {
|
||||
val result = manager.competitionsMgr.getItemById(id)
|
||||
competition.value = result
|
||||
try {
|
||||
val result = manager.competitionsMgr.getItemById(id)
|
||||
competition.value = result
|
||||
} catch (e: HttpException) {
|
||||
Log.d(e.toString(), ERROR)
|
||||
}
|
||||
}
|
||||
|
||||
fun loadMatches(id: Int) = viewModelScope.launch {
|
||||
|
||||
val matchResults = manager.matchesMgr.getItemsByCompetition(id)
|
||||
competitionMatches.value =
|
||||
matchResults.filter { it.status != "TIMED" && it.status != "SCHEDULED" && it.status != "POSTPONED" }
|
||||
.apply { forEach { it.date.add(Calendar.HOUR_OF_DAY, 2) } }
|
||||
.sortedBy { it.competition.name }
|
||||
.sortedByDescending { it.date }
|
||||
try {
|
||||
val matchResults = manager.matchesMgr.getItemsByCompetition(id)
|
||||
competitionMatches.value =
|
||||
matchResults.filter { it.status != "TIMED" && it.status != "SCHEDULED" && it.status != "POSTPONED" }
|
||||
.apply { forEach { it.date.add(Calendar.HOUR_OF_DAY, 2) } }
|
||||
.sortedBy { it.competition.name }
|
||||
.sortedByDescending { it.date }
|
||||
} catch (e: HttpException) {
|
||||
Log.d(e.toString(), ERROR)
|
||||
}
|
||||
}
|
||||
|
||||
fun loadNumberMatches() = viewModelScope.launch {
|
||||
nbCompetitionMatches.value = competitionMatches.value?.size
|
||||
try {
|
||||
nbCompetitionMatches.value = competitionMatches.value?.size
|
||||
} catch (e: HttpException) {
|
||||
Log.d(e.toString(), ERROR)
|
||||
}
|
||||
}
|
||||
}
|
@ -1,25 +1,11 @@
|
||||
package uca.iut.clermont.view.viewModel
|
||||
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import kotlinx.coroutines.launch
|
||||
import uca.iut.clermont.api.ApiManager
|
||||
import uca.iut.clermont.model.Competition
|
||||
import androidx.lifecycle.asLiveData
|
||||
import uca.iut.clermont.data.dao.CompetitionDao
|
||||
|
||||
class FavoriteViewModel(
|
||||
//val dao: CompetitionDao
|
||||
val dao: CompetitionDao
|
||||
) : ViewModel() {
|
||||
|
||||
val manager = ApiManager()
|
||||
val competitions = MutableLiveData<List<Competition>>()
|
||||
|
||||
//fun getAllCompetitions() = dao.getAllCompetitions()
|
||||
//.isLiveDate()
|
||||
|
||||
fun loadCompetitions() = viewModelScope.launch {
|
||||
val result = manager.competitionsMgr.getItems()
|
||||
competitions.value = result
|
||||
}
|
||||
|
||||
fun getAllCompetitions() = dao.getAllCompetitions().asLiveData()
|
||||
}
|
@ -1,24 +1,42 @@
|
||||
package uca.iut.clermont.view.viewModel
|
||||
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.MutableLiveData
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.viewModelScope
|
||||
import kotlinx.coroutines.launch
|
||||
import retrofit2.HttpException
|
||||
import uca.iut.clermont.api.ApiManager
|
||||
import uca.iut.clermont.model.Competition
|
||||
import uca.iut.clermont.model.Match
|
||||
import java.util.*
|
||||
|
||||
class HomeViewModel : ViewModel() {
|
||||
|
||||
val ERROR = "too many requests"
|
||||
val manager = ApiManager()
|
||||
val matches = MutableLiveData<List<Match>?>()
|
||||
val competitions = MutableLiveData<List<Competition>>()
|
||||
|
||||
fun loadMatches() = viewModelScope.launch {
|
||||
val matchResults = manager.matchesMgr.getItems()
|
||||
matches.value = matchResults.filter { it.status != "TIMED" }
|
||||
.apply { forEach { it.date.add(Calendar.HOUR_OF_DAY, 2) } }
|
||||
.sortedBy { it.competition.name }
|
||||
.sortedByDescending { it.date }
|
||||
try {
|
||||
val matchResults = manager.matchesMgr.getItems()
|
||||
matches.value = matchResults.filter { it.status != "TIMED" }
|
||||
.apply { forEach { it.date.add(Calendar.HOUR_OF_DAY, 2) } }
|
||||
.sortedBy { it.competition.name }
|
||||
.sortedByDescending { it.date }
|
||||
} catch (e: HttpException) {
|
||||
Log.d(e.toString(),ERROR)
|
||||
}
|
||||
}
|
||||
|
||||
fun loadCompetitions() = viewModelScope.launch {
|
||||
try {
|
||||
val result = manager.competitionsMgr.getItems()
|
||||
competitions.value = result
|
||||
} catch (e: HttpException) {
|
||||
Log.d(e.toString(),ERROR)
|
||||
}
|
||||
}
|
||||
|
||||
}
|
@ -0,0 +1,19 @@
|
||||
package uca.iut.clermont.view.viewModel
|
||||
|
||||
import androidx.lifecycle.ViewModel
|
||||
import androidx.lifecycle.ViewModelProvider
|
||||
import uca.iut.clermont.data.dao.CompetitionDao
|
||||
|
||||
class ViewModelFactory(private val dao: CompetitionDao): ViewModelProvider.Factory {
|
||||
|
||||
override fun <T : ViewModel> create(modelClass: Class<T>): T {
|
||||
if (modelClass.isAssignableFrom(FavoriteViewModel::class.java)){
|
||||
return FavoriteViewModel(dao) as T
|
||||
}
|
||||
if (modelClass.isAssignableFrom(DetailViewModel::class.java)){
|
||||
return DetailViewModel(dao) as T
|
||||
}
|
||||
throw IllegalArgumentException("Unknown viewModel class")
|
||||
}
|
||||
|
||||
}
|
Loading…
Reference in new issue