AchievementsViewModel

class AchievementsViewModel(val application: Application, val network: NetworkObserver, val firebase: FirebaseInstance) : AndroidViewModel

Constructors

Link copied to clipboard
constructor(application: Application, network: NetworkObserver, firebase: FirebaseInstance)

Properties

Link copied to clipboard
private val _leaderboard: MutableStateFlow<LeaderboardState>
Link copied to clipboard
private val _selectedTab: MutableStateFlow<Tab>
Link copied to clipboard
private val _yourAchievements: MutableStateFlow<YourAchievementsState>
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
private val impl: ViewModelImpl?
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
val selectedTab: StateFlow<Tab>
Link copied to clipboard

Functions

Link copied to clipboard
open fun addCloseable(closeable: AutoCloseable)
fun addCloseable(key: String, closeable: AutoCloseable)
Link copied to clipboard
fun <T> ViewModel.async(useMainDispatcher: Boolean = false, start: CoroutineStart = CoroutineStart.DEFAULT, block: suspend CoroutineScope.() -> T): Deferred<T>
Link copied to clipboard
internal fun clear()
Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
open fun <T : Application> getApplication(): T
Link copied to clipboard
Link copied to clipboard
private suspend fun getTopObjects(): List<ObjectDetectionStats>
Link copied to clipboard
private suspend fun getTopUsers(): List<User>
Link copied to clipboard
fun ViewModel.launch(useMainDispatcher: Boolean = false, start: CoroutineStart = CoroutineStart.DEFAULT, block: suspend CoroutineScope.() -> Unit): Job
Link copied to clipboard
fun loadAchievements(onLoaded: () -> Unit)
Link copied to clipboard
protected open fun onCleared()
Link copied to clipboard

This is now done through SQL, which is more correct. Keeping it so I recall how it's done in Kotlin

Link copied to clipboard
Link copied to clipboard
private fun setLeaderboard(currUser: User? = leaderboard.value.currUser, topUsers: List<User> = leaderboard.value.topUsers, topObjects: List<ObjectDetectionStats> = leaderboard.value.topObjects, connectionStatus: ConnectionStatus = leaderboard.value.connectionStatus)

Util to avoid having to do _leaderboard.value = ...

Link copied to clipboard
Link copied to clipboard
Link copied to clipboard
private fun setYourAchievements(achievements: List<Achievement> = yourAchievements.value.achievements, orderOptions: OrderOption = yourAchievements.value.orderOptions)

Util to avoid having to do _yourAchievements.value = ...

Link copied to clipboard

--- FIREBASE ---

Link copied to clipboard
fun signOut()
Link copied to clipboard
fun submitAchievements(onNoNewAchievements: () -> Unit)