/** * ProjectLaogai * * Copyright 2019 * * 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 import android.content.Context import android.graphics.Color import org.jetbrains.anko.defaultSharedPreferences import org.mosad.seil0.projectlaogai.R import org.mosad.seil0.projectlaogai.hsoparser.Course /** * The PreferencesController class * contains all preferences and global variables that exist in this app */ class PreferencesController { companion object { var coursesCacheTime: Long = 0 var mensaCacheTime: Long = 0 var timetableCacheTime: Long = 0 var cColorPrimary: Int = Color.BLACK var cColorAccent: Int = Color.parseColor("#3F51B5") 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 // the save function fun save(context: Context) { val sharedPref = context.defaultSharedPreferences // 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 ) apply() } // save the course with (sharedPref.edit()) { putString(context.getString(R.string.save_key_course), cCourse.courseName) putString(context.getString(R.string.save_key_courseTTLink), cCourse.courseLink) apply() } // save the primary color with (sharedPref.edit()) { putInt(context.getString(R.string.save_key_colorPrimary), cColorPrimary ) apply() } // save the accent color with (sharedPref.edit()) { putInt(context.getString(R.string.save_key_colorAccent), cColorAccent ) apply() } // save showBuffet with (sharedPref.edit()) { putBoolean(context.getString(R.string.save_key_showBuffet), cShowBuffet ) apply() } } // the load function fun load(context: Context) { val sharedPref = context.defaultSharedPreferences // load the update times (cache) 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) // 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 cColorPrimary = sharedPref.getInt(context.getString( R.string.save_key_colorPrimary ), Color.BLACK) cColorAccent = sharedPref.getInt(context.getString( R.string.save_key_colorAccent ), Color.parseColor("#3F51B5")) // load showBuffet cShowBuffet = sharedPref.getBoolean(context.getString( R.string.save_key_showBuffet ), true) } } }