2023-04-23 22:06:29 +02:00
|
|
|
package com.denizk0461.studip.viewmodel
|
|
|
|
|
|
|
|
|
|
import android.app.Application
|
2023-04-24 15:43:42 +02:00
|
|
|
import com.denizk0461.studip.model.SettingsPreferences
|
2023-04-23 22:06:29 +02:00
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* View model for [com.denizk0461.studip.fragment.SettingsFragment]
|
|
|
|
|
*
|
|
|
|
|
* @param app reference to the app
|
|
|
|
|
*/
|
|
|
|
|
class SettingsViewModel(app: Application) : AppViewModel(app) {
|
|
|
|
|
|
2023-04-26 18:36:32 +02:00
|
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Deletes everything from the database.
|
|
|
|
|
*/
|
|
|
|
|
fun nukeEverything() {
|
|
|
|
|
nukeEvents()
|
|
|
|
|
nukeOfferItems()
|
|
|
|
|
nukeOfferCategories()
|
|
|
|
|
nukeOfferCanteens()
|
|
|
|
|
nukeOfferDates()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Deletes all Stud.IP events from the database.
|
|
|
|
|
*/
|
|
|
|
|
fun nukeEvents() { doAsync { repo.nukeEvents() } }
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Deletes all canteen items from the database.
|
|
|
|
|
*/
|
|
|
|
|
fun nukeOfferItems() { doAsync { repo.nukeOfferItems() } }
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Deletes all canteen categories from the database.
|
|
|
|
|
*/
|
|
|
|
|
fun nukeOfferCategories() { doAsync { repo.nukeOfferCategories() } }
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Deletes all canteens from the database.
|
|
|
|
|
*/
|
|
|
|
|
fun nukeOfferCanteens() { doAsync { repo.nukeOfferCanteens() } }
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
|
* Deletes all canteen dates from the database.
|
|
|
|
|
*/
|
|
|
|
|
fun nukeOfferDates() { doAsync { repo.nukeOfferDates() } }
|
|
|
|
|
|
2023-04-24 15:43:42 +02:00
|
|
|
/**
|
2023-04-25 15:38:30 +02:00
|
|
|
* This value determines whether the user wants to have the next course in their schedule
|
|
|
|
|
* highlighted.
|
2023-04-24 15:43:42 +02:00
|
|
|
*/
|
|
|
|
|
var preferenceCourseHighlighting: Boolean
|
2023-04-25 15:38:30 +02:00
|
|
|
get() = repo.getBooleanPreference(SettingsPreferences.COURSE_HIGHLIGHTING)
|
|
|
|
|
set(newValue) { repo.setPreference(SettingsPreferences.COURSE_HIGHLIGHTING, newValue) }
|
2023-04-24 15:43:42 +02:00
|
|
|
|
2023-04-23 22:06:29 +02:00
|
|
|
/**
|
|
|
|
|
* This value determines whether the user wants to have allergens marked.
|
|
|
|
|
*/
|
|
|
|
|
var preferenceAllergen: Boolean
|
2023-04-25 15:38:30 +02:00
|
|
|
get() = repo.getBooleanPreference(SettingsPreferences.ALLERGEN)
|
2023-04-24 15:43:42 +02:00
|
|
|
set(newValue) { repo.setPreference(SettingsPreferences.ALLERGEN, newValue) }
|
|
|
|
|
|
2023-04-25 15:38:30 +02:00
|
|
|
/**
|
|
|
|
|
* This value determines whether the user wants the app to launch with the canteen view.
|
|
|
|
|
*/
|
|
|
|
|
var preferenceLaunchCanteen: Boolean
|
|
|
|
|
get() = repo.getBooleanPreference(SettingsPreferences.LAUNCH_CANTEEN_ON_START)
|
|
|
|
|
set(newValue) { repo.setPreference(SettingsPreferences.LAUNCH_CANTEEN_ON_START, newValue) }
|
|
|
|
|
|
2023-04-24 15:43:42 +02:00
|
|
|
/**
|
|
|
|
|
* This value determines whether the user opts into submitting crash reports.
|
|
|
|
|
*/
|
|
|
|
|
var preferenceDataHandling: Boolean
|
2023-04-25 15:38:30 +02:00
|
|
|
get() = repo.getBooleanPreference(SettingsPreferences.DATA_HANDLING)
|
2023-04-24 15:43:42 +02:00
|
|
|
set(newValue) { repo.setPreference(SettingsPreferences.DATA_HANDLING, newValue) }
|
2023-04-23 22:06:29 +02:00
|
|
|
}
|