2020-08-13 21:01:21 +02:00
/ * *
* ProjectLaogai
*
* Copyright 2019 - 2020 < seil0 @mosad . xyz >
*
* This program is free software ; you can redistribute it and / or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation ; either version 3 of the License , or
* ( at your option ) any later version .
*
* This program is distributed in the hope that it will be useful ,
* but WITHOUT ANY WARRANTY ; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE . See the
* GNU General Public License for more details .
*
* You should have received a copy of the GNU General Public License
* along with this program ; if not , write to the Free Software
* Foundation , Inc . , 51 Franklin Street , Fifth Floor , Boston ,
* MA 02110 - 1301 , USA .
*
* /
package org.mosad.seil0.projectlaogai.controller.preferences
import android.content.Context
import android.graphics.Color
import org.mosad.seil0.projectlaogai.R
import org.mosad.seil0.projectlaogai.util.Course
/ * *
* The PreferencesController class
* contains all preferences and global variables that exist in this app
* /
object Preferences {
var coursesCacheTime : Long = 0
var mensaCacheTime : Long = 0
var timetableCacheTime : Long = 0
2020-08-28 21:38:44 +02:00
var gradesCacheTime : Long = 0
2020-08-13 21:01:21 +02:00
var cColorPrimary : Int = Color . parseColor ( " #009688 " )
var cColorAccent : Int = Color . parseColor ( " #0096ff " )
2020-08-31 23:03:58 +02:00
var gradesSyncInterval = 0
2020-08-13 21:01:21 +02:00
var cCourse = Course (
" https://www.hs-offenburg.de/index.php?id=6627&class=class&iddV=DA64F6FE-9DDB-429E-A677-05D0D40CB636&week=0 " ,
" AI3 "
)
var cShowBuffet = true
var oGiants = false
2020-08-17 22:30:12 +02:00
// TODO move!
var themePrimary = 0
var themeSecondary = 0
2020-08-13 21:01:21 +02:00
// the save function
fun save ( context : Context ) {
val sharedPref = context . getSharedPreferences (
context . getString ( R . string . preference _file _key ) ,
Context . MODE _PRIVATE
)
// save the update times (cache)
with ( sharedPref . edit ( ) ) {
putLong ( context . getString ( R . string . save _key _coursesCacheTime ) ,
coursesCacheTime
)
putLong ( context . getString ( R . string . save _key _mensaCacheTime ) ,
mensaCacheTime
)
putLong ( context . getString ( R . string . save _key _timetableCacheTime ) ,
timetableCacheTime
)
2020-08-28 21:38:44 +02:00
putLong ( context . getString ( R . string . save _key _gradesCacheTime ) ,
gradesCacheTime
)
2020-08-13 21:01:21 +02:00
apply ( )
}
}
/ * *
* save the course locally
* /
fun saveCourse ( context : Context , course : Course ) {
val sharedPref = context . getSharedPreferences (
context . getString ( R . string . preference _file _key ) ,
Context . MODE _PRIVATE
)
with ( sharedPref . edit ( ) ) {
putString ( context . getString ( R . string . save _key _course ) , course . courseName )
putString ( context . getString ( R . string . save _key _courseTTLink ) , course . courseLink )
apply ( )
}
cCourse = course
}
/ * *
* save the primary color
* /
fun saveColorPrimary ( context : Context , colorPrimary : Int ) {
val sharedPref = context . getSharedPreferences (
context . getString ( R . string . preference _file _key ) ,
Context . MODE _PRIVATE
)
with ( sharedPref . edit ( ) ) {
putInt ( context . getString ( R . string . save _key _colorPrimary ) ,
colorPrimary
)
apply ( )
}
cColorPrimary = colorPrimary
}
/ * *
* save the accent color
* /
fun saveColorAccent ( context : Context , colorAccent : Int ) {
val sharedPref = context . getSharedPreferences (
context . getString ( R . string . preference _file _key ) ,
Context . MODE _PRIVATE
)
with ( sharedPref . edit ( ) ) {
putInt ( context . getString ( R . string . save _key _colorAccent ) ,
colorAccent
)
apply ( )
}
cColorAccent = colorAccent
}
2020-08-31 23:03:58 +02:00
fun saveGradesSync ( context : Context , interval : Int ) {
val sharedPref = context . getSharedPreferences (
context . getString ( R . string . preference _file _key ) ,
Context . MODE _PRIVATE
)
with ( sharedPref . edit ( ) ) {
putInt ( context . getString ( R . string . save _key _gradesSyncInterval ) ,
interval
)
apply ( )
}
gradesSyncInterval = interval
}
2020-08-13 21:01:21 +02:00
/ * *
* save showBuffet
* /
fun saveShowBuffet ( context : Context , showBuffet : Boolean ) {
val sharedPref = context . getSharedPreferences (
context . getString ( R . string . preference _file _key ) ,
Context . MODE _PRIVATE
)
with ( sharedPref . edit ( ) ) {
putBoolean ( context . getString ( R . string . save _key _showBuffet ) ,
showBuffet
)
apply ( )
}
cShowBuffet = showBuffet
}
/ * *
* initially load the stored values
* /
fun load ( context : Context ) {
val sharedPref = context . getSharedPreferences (
context . getString ( R . string . preference _file _key ) ,
Context . MODE _PRIVATE
)
// load the update times (cache)
2020-08-31 23:03:58 +02:00
coursesCacheTime = sharedPref . getLong (
context . getString ( R . string . save _key _coursesCacheTime ) , 0
)
mensaCacheTime = sharedPref . getLong (
context . getString ( R . string . save _key _mensaCacheTime ) , 0
)
timetableCacheTime = sharedPref . getLong (
context . getString ( R . string . save _key _timetableCacheTime ) , 0
)
gradesCacheTime = sharedPref . getLong (
context . getString ( R . string . save _key _gradesCacheTime ) , 0
)
2020-08-13 21:01:21 +02:00
// load saved course
cCourse = Course (
sharedPref . getString ( context . getString ( R . string . save _key _courseTTLink ) ,
" https://www.hs-offenburg.de/index.php?id=6627&class=class&iddV=DA64F6FE-9DDB-429E-A677-05D0D40CB636&week=0 "
) !! ,
sharedPref . getString ( context . getString ( R . string . save _key _course ) , " AI3 " ) !!
)
// load saved colors
2020-08-31 23:03:58 +02:00
cColorPrimary = sharedPref . getInt (
context . getString ( R . string . save _key _colorPrimary ) , cColorPrimary
)
cColorAccent = sharedPref . getInt (
context . getString ( R . string . save _key _colorAccent ) , cColorAccent
)
// load grades sync interval
gradesSyncInterval = sharedPref . getInt (
context . getString ( R . string . save _key _gradesSyncInterval ) , gradesSyncInterval
)
2020-08-13 21:01:21 +02:00
// load showBuffet
2020-08-31 23:03:58 +02:00
cShowBuffet = sharedPref . getBoolean (
context . getString ( R . string . save _key _showBuffet ) , true
)
2020-08-13 21:01:21 +02:00
}
}