Archived
Fully documented all Kotlin files and added TODOs to functions that need to be updated in some way
This commit is contained in:
@@ -0,0 +1,137 @@
|
||||
package com.denizk0461.studip.db
|
||||
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Insert
|
||||
import androidx.room.Query
|
||||
import com.denizk0461.studip.model.*
|
||||
|
||||
/**
|
||||
* Database access object used for all database transactions in the app. Can be accessed through an
|
||||
* instance of AppRepository.kt.
|
||||
*/
|
||||
@Dao
|
||||
interface AppDAO {
|
||||
|
||||
/* --- Stud.IP schedule events --- */
|
||||
|
||||
/**
|
||||
* Retrieves all Stud.IP events.
|
||||
*
|
||||
* @return all Stud.IP events exposed through a LiveData object
|
||||
*/
|
||||
@get:Query("SELECT * FROM events ORDER BY id")
|
||||
val allEvents: LiveData<List<StudIPEvent>>
|
||||
|
||||
/**
|
||||
* Inserts a Stud.IP event into the database.
|
||||
*
|
||||
* @param event object to be saved to the database
|
||||
*/
|
||||
@Insert fun insert(event: StudIPEvent)
|
||||
|
||||
/**
|
||||
* Inserts a list of Stud.IP events into the database.
|
||||
*
|
||||
* @param events objects to be saved to the database
|
||||
*/
|
||||
@Insert fun insert(events: List<StudIPEvent>)
|
||||
|
||||
/**
|
||||
* Deletes all Stud.IP events from the database.
|
||||
*/
|
||||
@Query("DELETE FROM events")
|
||||
fun nukeEvents()
|
||||
|
||||
/* --- canteen offers --- */
|
||||
|
||||
/**
|
||||
* Retrieves all canteen offers. Objects will be joined through their primary/foreign keys from
|
||||
* instances of OfferDate.kt, OfferCanteen.kt, OfferCategory.kt, and OfferItem.kt.
|
||||
*
|
||||
* @return all canteen offers exposed through a LiveData object
|
||||
*/
|
||||
@get:Query(
|
||||
"SELECT * FROM offer_item " +
|
||||
"JOIN offer_category ON offer_item.categoryId = offer_category.id " +
|
||||
"JOIN offer_canteen ON offer_category.canteenId = offer_canteen.id " +
|
||||
"JOIN offer_date ON offer_category.dateId = offer_date.id"
|
||||
)
|
||||
val allOffers: LiveData<List<CanteenOffer>>
|
||||
|
||||
/**
|
||||
* Retrieves all canteen offers that match given dietary preferences. Objects will be joined
|
||||
* through their primary/foreign keys from instances of OfferDate.kt, OfferCanteen.kt,
|
||||
* OfferCategory.kt, and OfferItem.kt.
|
||||
*
|
||||
* @return all canteen offers matching the given preference exposed through a LiveData object
|
||||
*/
|
||||
@Query(
|
||||
"SELECT * FROM offer_item " +
|
||||
"JOIN offer_category ON offer_item.categoryId = offer_category.id " +
|
||||
"JOIN offer_canteen ON offer_category.canteenId = offer_canteen.id " +
|
||||
"JOIN offer_date ON offer_category.dateId = offer_date.id " +
|
||||
"WHERE dietary_preferences = :prefs "
|
||||
)
|
||||
fun getOffersByPreference(prefs: String): LiveData<List<CanteenOffer>>
|
||||
|
||||
/**
|
||||
* Retrieves all canteen offer date objects.
|
||||
*
|
||||
* @return a list of instances of canteen offer dates
|
||||
*/
|
||||
@Query("SELECT * FROM offer_date ORDER BY id")
|
||||
fun getDates(): List<OfferDate>
|
||||
|
||||
/**
|
||||
* Deletes all dates from the database.
|
||||
*/
|
||||
@Query("DELETE FROM offer_date")
|
||||
fun nukeOfferDates()
|
||||
|
||||
/**
|
||||
* Deletes all canteens from the database.
|
||||
*/
|
||||
@Query("DELETE FROM offer_canteen")
|
||||
fun nukeOfferCanteens()
|
||||
|
||||
/**
|
||||
* Deletes all canteen offer categories from the database.
|
||||
*/
|
||||
@Query("DELETE FROM offer_category")
|
||||
fun nukeOfferCategories()
|
||||
|
||||
/**
|
||||
* Deletes all canteen offer items from the database.
|
||||
*/
|
||||
@Query("DELETE FROM offer_item")
|
||||
fun nukeOfferItems()
|
||||
|
||||
/**
|
||||
* Inserts a date into the database.
|
||||
*
|
||||
* @param date object to be saved to the database
|
||||
*/
|
||||
@Insert fun insert(date: OfferDate)
|
||||
|
||||
/**
|
||||
* Inserts a canteen into the database.
|
||||
*
|
||||
* @param canteen object to be saved to the database
|
||||
*/
|
||||
@Insert fun insert(canteen: OfferCanteen)
|
||||
|
||||
/**
|
||||
* Inserts a canteen offer category into the database.
|
||||
*
|
||||
* @param category object to be saved to the database
|
||||
*/
|
||||
@Insert fun insert(category: OfferCategory)
|
||||
|
||||
/**
|
||||
* Inserts a canteen offer item into the database.
|
||||
*
|
||||
* @param item object to be saved to the database
|
||||
*/
|
||||
@Insert fun insert(item: OfferItem)
|
||||
}
|
||||
@@ -0,0 +1,55 @@
|
||||
package com.denizk0461.studip.db
|
||||
|
||||
import android.content.Context
|
||||
import androidx.room.Database
|
||||
import androidx.room.Room
|
||||
import androidx.room.RoomDatabase
|
||||
import com.denizk0461.studip.model.*
|
||||
|
||||
/**
|
||||
* Room database that holds all objects that need to be saved to persistent storage.
|
||||
*/
|
||||
@Database(
|
||||
entities = [
|
||||
StudIPEvent::class,
|
||||
OfferDate::class,
|
||||
OfferCanteen::class,
|
||||
OfferCategory::class,
|
||||
OfferItem::class
|
||||
],
|
||||
version = 10,
|
||||
)
|
||||
abstract class AppDatabase : RoomDatabase() {
|
||||
|
||||
// The database access object
|
||||
abstract fun dao(): AppDAO
|
||||
|
||||
companion object {
|
||||
// The singular instance of this database
|
||||
private var instance: AppDatabase? = null
|
||||
|
||||
/**
|
||||
* Retrieve the instance of the database.
|
||||
*
|
||||
* @param context used to resolve the object
|
||||
* @return the database
|
||||
*/
|
||||
fun getInstance(context: Context): AppDatabase {
|
||||
/*
|
||||
* Check if an object has already been instantiated. Only create a new instance if none
|
||||
* exists.
|
||||
*/
|
||||
if (instance == null) {
|
||||
synchronized(AppDatabase::class) {
|
||||
instance = Room.databaseBuilder(
|
||||
context.applicationContext,
|
||||
AppDatabase::class.java,
|
||||
"event_db"
|
||||
).fallbackToDestructiveMigration().build()
|
||||
}
|
||||
}
|
||||
// Instance can never be null at this point
|
||||
return instance!!
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,171 @@
|
||||
package com.denizk0461.studip.db
|
||||
|
||||
import android.app.Application
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.preference.PreferenceManager
|
||||
import com.denizk0461.studip.model.*
|
||||
|
||||
/**
|
||||
* Repository objects that acts as a mediator between view models and the database to retrieve data
|
||||
* without being bound to a view lifecycle.
|
||||
*
|
||||
* @param app reference to the application
|
||||
*/
|
||||
class AppRepository(app: Application) {
|
||||
|
||||
// Reference to the database access object used to handle database transactions
|
||||
private val dao: AppDAO = AppDatabase.getInstance(app.applicationContext).dao()
|
||||
|
||||
// Shared preferences used to store small values
|
||||
private val prefs = PreferenceManager.getDefaultSharedPreferences(app)
|
||||
|
||||
// Tag used to store the user's dietary preferences in persistent storage (shared preferences)
|
||||
private val dietaryPrefString = "prefs_obj"
|
||||
|
||||
// Blank dietary preference regular expression
|
||||
private val blankDietaryPrefs: String = DietaryPrefObject.C_FALSE.toString().repeat(10)
|
||||
|
||||
/**
|
||||
* Retrieves all Stud.IP events.
|
||||
*
|
||||
* @return all Stud.IP events exposed through a LiveData object
|
||||
*/
|
||||
val allEvents: LiveData<List<StudIPEvent>> = dao.allEvents
|
||||
|
||||
/**
|
||||
* Inserts a list of Stud.IP events into the database.
|
||||
*
|
||||
* @param events objects to be saved to the database
|
||||
*/
|
||||
fun insertEvents(events: List<StudIPEvent>) { dao.insert(events) }
|
||||
|
||||
/**
|
||||
* Deletes all Stud.IP events from the database.
|
||||
*/
|
||||
fun nukeEvents() { dao.nukeEvents() }
|
||||
|
||||
/**
|
||||
* Retrieves all canteen offers.
|
||||
*
|
||||
* @return all canteen offers exposed through a LiveData object
|
||||
*/
|
||||
val allOffers: LiveData<List<CanteenOffer>> = dao.allOffers
|
||||
|
||||
/**
|
||||
* Retrieves all canteen offer date objects.
|
||||
*
|
||||
* @return a list of instances of canteen offer dates
|
||||
*/
|
||||
fun getDates(): List<OfferDate> = dao.getDates()
|
||||
|
||||
/**
|
||||
* Retrieves the regex string used to determine the user's dietary preferences, or, if no
|
||||
* preference has been set, a 'blank' expression denoting such.
|
||||
*
|
||||
* @return dietary preferences as a regular expression string
|
||||
*/
|
||||
private fun getDietaryPrefs(): String {
|
||||
return prefs.getString(dietaryPrefString, blankDietaryPrefs) ?: blankDietaryPrefs
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieve the user's dietary preferences as a DietaryPrefObject.
|
||||
*
|
||||
* @return dietary preferences as an instance of DietaryPrefObject.kt
|
||||
*/
|
||||
fun getDietaryPrefsAsObj(): DietaryPrefObject = DietaryPrefObject.construct(getDietaryPrefs())
|
||||
|
||||
/**
|
||||
* Updates a given dietary preference to a new value.
|
||||
*
|
||||
* @param pref preference to be updated
|
||||
* @param newValue value to set the preference to
|
||||
*/
|
||||
fun setPreference(pref: DietaryPreferences, newValue: Boolean) {
|
||||
val oldString = getDietaryPrefs().toMutableList()
|
||||
|
||||
oldString[pref.ordinal] = newValue.toChar()
|
||||
// when (pref) {
|
||||
// DietaryPreferences.FAIR -> oldString[0] = newValue.toChar()
|
||||
// DietaryPreferences.FISH -> oldString[1] = newValue.toChar()
|
||||
// DietaryPreferences.POULTRY -> oldString[2] = newValue.toChar()
|
||||
// DietaryPreferences.LAMB -> oldString[3] = newValue.toChar()
|
||||
// DietaryPreferences.VITAL -> oldString[4] = newValue.toChar()
|
||||
// DietaryPreferences.BEEF -> oldString[5] = newValue.toChar()
|
||||
// DietaryPreferences.PORK -> oldString[6] = newValue.toChar()
|
||||
// DietaryPreferences.VEGAN -> oldString[7] = newValue.toChar()
|
||||
// DietaryPreferences.VEGETARIAN -> oldString[8] = newValue.toChar()
|
||||
// DietaryPreferences.GAME -> oldString[9] = newValue.toChar()
|
||||
// }
|
||||
val newString = oldString.joinToString("")
|
||||
prefs.edit().putString(dietaryPrefString, newString).apply()
|
||||
}
|
||||
|
||||
/**
|
||||
* Converts a boolean value to the corresponding value used to construct a regular expression
|
||||
* for determining whether a dietary preference is met.
|
||||
*
|
||||
* @return char denoting whether a preference needs to be met
|
||||
*/
|
||||
private fun Boolean.toChar() = if (this) DietaryPrefObject.C_TRUE else DietaryPrefObject.C_FALSE
|
||||
|
||||
/**
|
||||
* Retrieves a single user-specified dietary preference.
|
||||
*
|
||||
* @param pref the dietary preference that should be retrieved
|
||||
* @return whether the preference needs to be met1
|
||||
*/
|
||||
fun getPreference(pref: DietaryPreferences): Boolean =
|
||||
getDietaryPrefs()[pref.ordinal] == DietaryPrefObject.C_TRUE
|
||||
// val prefString = getDietaryPrefs().toList()
|
||||
// return when (pref) {
|
||||
// DietaryPreferences.FAIR -> prefString[0] == 't'
|
||||
// DietaryPreferences.FISH -> prefString[1] == 't'
|
||||
// DietaryPreferences.POULTRY -> prefString[2] == 't'
|
||||
// DietaryPreferences.LAMB -> prefString[3] == 't'
|
||||
// DietaryPreferences.VITAL -> prefString[4] == 't'
|
||||
// DietaryPreferences.BEEF -> prefString[5] == 't'
|
||||
// DietaryPreferences.PORK -> prefString[6] == 't'
|
||||
// DietaryPreferences.VEGAN -> prefString[7] == 't'
|
||||
// DietaryPreferences.VEGETARIAN -> prefString[8] == 't'
|
||||
// DietaryPreferences.GAME -> prefString[9] == 't'
|
||||
// }
|
||||
|
||||
/**
|
||||
* Deletes all canteen offers from the database.
|
||||
*/
|
||||
fun nukeOffers() {
|
||||
dao.nukeOfferItems()
|
||||
dao.nukeOfferCategories()
|
||||
dao.nukeOfferCanteens()
|
||||
dao.nukeOfferDates()
|
||||
}
|
||||
|
||||
/**
|
||||
* Inserts a date into the database.
|
||||
*
|
||||
* @param date object to be saved to the database
|
||||
*/
|
||||
fun insert(date: OfferDate) { dao.insert(date) }
|
||||
|
||||
/**
|
||||
* Inserts a canteen into the database.
|
||||
*
|
||||
* @param canteen object to be saved to the database
|
||||
*/
|
||||
fun insert(canteen: OfferCanteen) { dao.insert(canteen) }
|
||||
|
||||
/**
|
||||
* Inserts a canteen offer category into the database.
|
||||
*
|
||||
* @param category object to be saved to the database
|
||||
*/
|
||||
fun insert(category: OfferCategory) { dao.insert(category) }
|
||||
|
||||
/**
|
||||
* Inserts a canteen offer item into the database.
|
||||
*
|
||||
* @param item object to be saved to the database
|
||||
*/
|
||||
fun insert(item: OfferItem) { dao.insert(item) }
|
||||
}
|
||||
@@ -1,88 +0,0 @@
|
||||
package com.denizk0461.studip.db
|
||||
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.room.Dao
|
||||
import androidx.room.Insert
|
||||
import androidx.room.Query
|
||||
import com.denizk0461.studip.model.*
|
||||
|
||||
@Dao
|
||||
interface EventDAO {
|
||||
|
||||
// Stud.IP schedule events
|
||||
@get:Query("SELECT * FROM events ORDER BY id")
|
||||
val allEvents: LiveData<List<StudIPEvent>>
|
||||
|
||||
@Insert
|
||||
fun insertEvent(event: StudIPEvent)
|
||||
|
||||
@Insert
|
||||
fun insertEvents(event: List<StudIPEvent>)
|
||||
|
||||
@Query("DELETE FROM events")
|
||||
fun nukeEvents()
|
||||
|
||||
// @get:Query("SELECT * FROM offers ORDER BY id")
|
||||
// val allOffers: LiveData<List<CanteenOffer>>
|
||||
//
|
||||
// @Insert
|
||||
// fun insertOffers(offers: List<CanteenOffer>)
|
||||
//
|
||||
// @Query("DELETE from offers")
|
||||
// fun nukeOffers()
|
||||
|
||||
// canteen offers
|
||||
// get all offers
|
||||
@get:Query(
|
||||
"SELECT * FROM offer_item " +
|
||||
"JOIN offer_category ON offer_item.categoryId = offer_category.id " +
|
||||
"JOIN offer_canteen ON offer_category.canteenId = offer_canteen.id " +
|
||||
"JOIN offer_date ON offer_category.dateId = offer_date.id"
|
||||
)
|
||||
val allOffers: LiveData<List<CanteenOffer>>
|
||||
|
||||
@Query(
|
||||
"SELECT * FROM offer_item " +
|
||||
"JOIN offer_category ON offer_item.categoryId = offer_category.id " +
|
||||
"JOIN offer_canteen ON offer_category.canteenId = offer_canteen.id " +
|
||||
"JOIN offer_date ON offer_category.dateId = offer_date.id " +
|
||||
"WHERE dietary_preferences = :prefs "
|
||||
// "WHERE isFair = :isFair " +
|
||||
// "OR isFish = :isFish " +
|
||||
// "OR isPoultry = :isPoultry " +
|
||||
// "OR isLamb = :isLamb " +
|
||||
// "OR isVital = :isVital " +
|
||||
// "OR isBeef = :isBeef " +
|
||||
// "OR isPork = :isPork " +
|
||||
// "OR isVegan = :isVegan " +
|
||||
// "OR isVegetarian = :isVegetarian " +
|
||||
// "OR isGame = :isGame "
|
||||
)
|
||||
fun getOffersByPreference(prefs: String
|
||||
// isFair: Boolean, isFish: Boolean, isPoultry: Boolean, isLamb: Boolean, isVital: Boolean,
|
||||
// isBeef: Boolean, isPork: Boolean, isVegan: Boolean, isVegetarian: Boolean, isGame: Boolean
|
||||
): LiveData<List<CanteenOffer>>
|
||||
|
||||
@get:Query("SELECT id FROM offer_date")
|
||||
val updateObserver: LiveData<List<Int>>
|
||||
|
||||
@Query("SELECT * FROM offer_date ORDER BY id")
|
||||
fun getDates(): List<OfferDate>
|
||||
|
||||
@Query("DELETE FROM offer_date")
|
||||
fun nukeOfferDates()
|
||||
|
||||
@Query("DELETE FROM offer_category")
|
||||
fun nukeOfferCategories()
|
||||
|
||||
@Query("DELETE FROM offer_canteen")
|
||||
fun nukeOfferCanteens()
|
||||
|
||||
@Query("DELETE FROM offer_item")
|
||||
fun nukeOfferItems()
|
||||
|
||||
@Insert fun insert(date: OfferDate)
|
||||
@Insert fun insert(canteen: OfferCanteen)
|
||||
@Insert fun insert(category: OfferCategory)
|
||||
@Insert fun insert(item: OfferItem)
|
||||
}
|
||||
@@ -1,39 +0,0 @@
|
||||
package com.denizk0461.studip.db
|
||||
|
||||
import android.content.Context
|
||||
import androidx.room.Database
|
||||
import androidx.room.Room
|
||||
import androidx.room.RoomDatabase
|
||||
import com.denizk0461.studip.model.*
|
||||
|
||||
@Database(
|
||||
entities = [
|
||||
StudIPEvent::class,
|
||||
OfferDate::class,
|
||||
OfferCanteen::class,
|
||||
OfferCategory::class,
|
||||
OfferItem::class
|
||||
],
|
||||
version = 10,
|
||||
)
|
||||
abstract class EventDatabase : RoomDatabase() {
|
||||
|
||||
abstract fun dao(): EventDAO
|
||||
|
||||
companion object {
|
||||
private var instance: EventDatabase? = null
|
||||
|
||||
fun getInstance(context: Context): EventDatabase {
|
||||
if (instance == null) {
|
||||
synchronized(EventDatabase::class) {
|
||||
instance = Room.databaseBuilder(
|
||||
context.applicationContext,
|
||||
EventDatabase::class.java,
|
||||
"event_db"
|
||||
).fallbackToDestructiveMigration().build()
|
||||
}
|
||||
}
|
||||
return instance!!
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -1,111 +0,0 @@
|
||||
package com.denizk0461.studip.db
|
||||
|
||||
import android.app.Application
|
||||
import android.util.Log
|
||||
import androidx.lifecycle.LiveData
|
||||
import androidx.preference.PreferenceManager
|
||||
import com.denizk0461.studip.model.*
|
||||
|
||||
class EventRepository(app: Application) {
|
||||
|
||||
private val dao: EventDAO = EventDatabase.getInstance(app.applicationContext).dao()
|
||||
private val prefs = PreferenceManager.getDefaultSharedPreferences(app)
|
||||
|
||||
val allEvents: LiveData<List<StudIPEvent>> = dao.allEvents
|
||||
|
||||
private val dietaryPrefString = "prefs_obj"
|
||||
|
||||
fun insertEvent(event: StudIPEvent) { dao.insertEvent(event) }
|
||||
fun insertEvents(events: List<StudIPEvent>) { dao.insertEvents(events) }
|
||||
fun nukeEvents() { dao.nukeEvents() }
|
||||
|
||||
val allOffers: LiveData<List<CanteenOffer>> = dao.allOffers
|
||||
|
||||
fun getDates(): List<OfferDate> = dao.getDates()
|
||||
|
||||
fun getDietaryPrefs(): String {
|
||||
return prefs.getString(dietaryPrefString, "..........") ?: ".........."
|
||||
// return DietaryPrefObject(
|
||||
// isFair = prefs.getBoolean(DietaryPreferences.FAIR.value, false),
|
||||
// isFish = prefs.getBoolean(DietaryPreferences.FISH.value, false),
|
||||
// isPoultry = prefs.getBoolean(DietaryPreferences.POULTRY.value, false),
|
||||
// isLamb = prefs.getBoolean(DietaryPreferences.LAMB.value, false),
|
||||
// isVital = prefs.getBoolean(DietaryPreferences.VITAL.value, false),
|
||||
// isBeef = prefs.getBoolean(DietaryPreferences.BEEF.value, false),
|
||||
// isPork = prefs.getBoolean(DietaryPreferences.PORK.value, false),
|
||||
// isVegan = prefs.getBoolean(DietaryPreferences.VEGAN.value, false),
|
||||
// isVegetarian = prefs.getBoolean(DietaryPreferences.VEGETARIAN.value, false),
|
||||
// isGame = prefs.getBoolean(DietaryPreferences.GAME.value, false),
|
||||
// )
|
||||
}
|
||||
|
||||
fun getDietaryPrefsAsObj(): DietaryPrefObject = DietaryPrefObject.construct(getDietaryPrefs())
|
||||
|
||||
// private fun isPreferenceSet(): Boolean {
|
||||
// getDietaryPrefs().also { p ->
|
||||
// if (p.isFair) return true
|
||||
// if (p.isFish) return true
|
||||
// if (p.isPoultry) return true
|
||||
// if (p.isLamb) return true
|
||||
// if (p.isVital) return true
|
||||
// if (p.isBeef) return true
|
||||
// if (p.isPork) return true
|
||||
// if (p.isVegan) return true
|
||||
// if (p.isVegetarian) return true
|
||||
// if (p.isGame) return true
|
||||
// }
|
||||
// return false
|
||||
// }
|
||||
|
||||
fun setPreference(pref: DietaryPreferences, newValue: Boolean) {
|
||||
// prefs.edit().putBoolean(pref.value, newValue).apply()
|
||||
val oldString = getDietaryPrefs().toMutableList()
|
||||
when (pref) {
|
||||
DietaryPreferences.FAIR -> oldString[0] = newValue.toChar()
|
||||
DietaryPreferences.FISH -> oldString[1] = newValue.toChar()
|
||||
DietaryPreferences.POULTRY -> oldString[2] = newValue.toChar()
|
||||
DietaryPreferences.LAMB -> oldString[3] = newValue.toChar()
|
||||
DietaryPreferences.VITAL -> oldString[4] = newValue.toChar()
|
||||
DietaryPreferences.BEEF -> oldString[5] = newValue.toChar()
|
||||
DietaryPreferences.PORK -> oldString[6] = newValue.toChar()
|
||||
DietaryPreferences.VEGAN -> oldString[7] = newValue.toChar()
|
||||
DietaryPreferences.VEGETARIAN -> oldString[8] = newValue.toChar()
|
||||
DietaryPreferences.GAME -> oldString[9] = newValue.toChar()
|
||||
}
|
||||
val newString = oldString.joinToString("")
|
||||
Log.d("eek!4", newString)
|
||||
prefs.edit().putString(dietaryPrefString, newString).apply()
|
||||
}
|
||||
|
||||
private fun Boolean.toChar() = if (this) 't' else '.'
|
||||
|
||||
fun getPreference(pref: DietaryPreferences): Boolean {
|
||||
val prefString = getDietaryPrefs().toList()
|
||||
return when (pref) {
|
||||
DietaryPreferences.FAIR -> prefString[0] == 't'
|
||||
DietaryPreferences.FISH -> prefString[1] == 't'
|
||||
DietaryPreferences.POULTRY -> prefString[2] == 't'
|
||||
DietaryPreferences.LAMB -> prefString[3] == 't'
|
||||
DietaryPreferences.VITAL -> prefString[4] == 't'
|
||||
DietaryPreferences.BEEF -> prefString[5] == 't'
|
||||
DietaryPreferences.PORK -> prefString[6] == 't'
|
||||
DietaryPreferences.VEGAN -> prefString[7] == 't'
|
||||
DietaryPreferences.VEGETARIAN -> prefString[8] == 't'
|
||||
DietaryPreferences.GAME -> prefString[9] == 't'
|
||||
}
|
||||
}
|
||||
// prefs.getBoolean(pref.value, false)
|
||||
|
||||
// fun insertOffers(offers: List<CanteenOffer>) { dao.insertOffers(offers) }
|
||||
fun nukeOffers() {
|
||||
dao.nukeOfferItems()
|
||||
dao.nukeOfferCategories()
|
||||
dao.nukeOfferCanteens()
|
||||
dao.nukeOfferDates()
|
||||
}
|
||||
|
||||
fun insert(date: OfferDate) { dao.insert(date) }
|
||||
fun insert(canteen: OfferCanteen) { dao.insert(canteen) }
|
||||
fun insert(category: OfferCategory) { dao.insert(category) }
|
||||
fun insert(item: OfferItem) { dao.insert(item) }
|
||||
}
|
||||
Reference in New Issue
Block a user