next weeks menu & accent color

* the MensaParser can now get the next weeks menus
* it's now possible to select a accent color
This commit is contained in:
Jannik 2019-03-09 22:15:53 +01:00
parent 5a1a07cd42
commit 3e3a80442e
14 changed files with 188 additions and 89 deletions

View File

@ -38,12 +38,14 @@ import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.app_bar_main.* import kotlinx.android.synthetic.main.app_bar_main.*
import org.jetbrains.anko.doAsync import org.jetbrains.anko.doAsync
import org.jetbrains.anko.uiThread import org.jetbrains.anko.uiThread
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cColor import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cColorAccent
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cColorPrimary
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cCourse import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cCourse
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cCourseTTLinkList import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cCourseTTLinkList
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cTimeTableCurrentWeek import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cTimeTableCurrentWeek
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cTimeTableNextWeek import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cTimeTableNextWeek
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cWeekMenus import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cMenusCurrentWeek
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cMenusNextWeek
import org.mosad.seil0.projectlaogai.fragments.* import org.mosad.seil0.projectlaogai.fragments.*
import org.mosad.seil0.projectlaogai.hsoparser.MensaParser import org.mosad.seil0.projectlaogai.hsoparser.MensaParser
import org.mosad.seil0.projectlaogai.hsoparser.TimeTableParser import org.mosad.seil0.projectlaogai.hsoparser.TimeTableParser
@ -70,12 +72,14 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte
Aesthetic.config { Aesthetic.config {
colorPrimary(Color.BLACK) colorPrimary(Color.BLACK)
colorPrimaryDark(Color.BLACK) colorPrimaryDark(Color.BLACK)
colorAccent(Color.parseColor("#FF1744"))
apply() apply()
} }
} else { } else {
Aesthetic.config { Aesthetic.config {
colorPrimary(cColor) colorPrimary(cColorPrimary)
colorPrimaryDark(cColor) colorPrimaryDark(cColorPrimary)
colorAccent(cColorAccent)
apply() apply()
} }
} }
@ -160,6 +164,7 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte
* load the mensa menus of the current week * load the mensa menus of the current week
*/ */
private fun load() { private fun load() {
val menuLinkCurrentWeek = "https://www.swfr.de/de/essen-trinken/speiseplaene/mensa-offenburg/"
// load the settings // load the settings
PreferencesController.load(this) // this must be finished before doing anything else PreferencesController.load(this) // this must be finished before doing anything else
@ -176,8 +181,12 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte
cCourseTTLinkList = timeTableParser.getCourseTTLinks() cCourseTTLinkList = timeTableParser.getCourseTTLinks()
} }
val jobMenus = doAsync { val jobMenusCurrentWeek = doAsync {
cWeekMenus = mensaParser.getMensaMenu() cMenusCurrentWeek = mensaParser.getMensaMenu(menuLinkCurrentWeek)
}
val jobMenusNextWeek = doAsync {
cMenusNextWeek = mensaParser.getMensaMenu(mensaParser.getMenuLinkNextWeek(menuLinkCurrentWeek))
} }
val jobTTCurrentWeek = doAsync { val jobTTCurrentWeek = doAsync {
@ -205,7 +214,8 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte
} }
} }
jobMenus.get() jobMenusCurrentWeek.get()
jobMenusNextWeek.get()
jobTTCurrentWeek.get() jobTTCurrentWeek.get()
jobTTNextWeek.get() jobTTNextWeek.get()
} }

View File

@ -37,15 +37,17 @@ class PreferencesController {
companion object { companion object {
var cCourseTTLinkList = ArrayList<Course>() var cCourseTTLinkList = ArrayList<Course>()
var cWeekMenus = ArrayList<Meal>() var cMenusCurrentWeek = ArrayList<Meal>()
var cMenusNextWeek = ArrayList<Meal>()
var cTimeTableCurrentWeek = TimeTable() var cTimeTableCurrentWeek = TimeTable()
var cTimeTableNextWeek = TimeTable() var cTimeTableNextWeek = TimeTable()
var cColor: Int = Color.BLACK var cColorPrimary: Int = Color.BLACK
var cColorAccent: Int = Color.BLACK
var cCourse = Course("https://www.hs-offenburg.de/index.php?id=6627&class=class&iddV=DA64F6FE-9DDB-429E-A677-05D0D40CB636&week=0", "AI3") var cCourse = Course("https://www.hs-offenburg.de/index.php?id=6627&class=class&iddV=DA64F6FE-9DDB-429E-A677-05D0D40CB636&week=0", "AI3")
// the save function // the save function
fun save(context: Context) { fun save(context: Context) {
println(cCourse.courseLink) //println(cCourse.courseLink)
// save the course // save the course
val sharedPref = context.defaultSharedPreferences val sharedPref = context.defaultSharedPreferences
with (sharedPref.edit()) { with (sharedPref.edit()) {
@ -56,7 +58,13 @@ class PreferencesController {
// save the primary color // save the primary color
with (sharedPref.edit()) { with (sharedPref.edit()) {
putInt(context.getString(R.string.save_key_colorPrimary), cColor) 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() apply()
} }
@ -71,8 +79,9 @@ class PreferencesController {
sharedPref.getString(context.getString(R.string.save_key_course), "AI3")!! sharedPref.getString(context.getString(R.string.save_key_course), "AI3")!!
) )
// load saved color // load saved colors
cColor = sharedPref.getInt(context.getString(R.string.save_key_colorPrimary), Color.BLACK) cColorPrimary = sharedPref.getInt(context.getString(R.string.save_key_colorPrimary), Color.BLACK)
cColorAccent = sharedPref.getInt(context.getString(R.string.save_key_colorAccent), Color.parseColor("#FF1744"))
} }
} }

View File

@ -33,7 +33,7 @@ import kotlinx.android.synthetic.main.fragment_home.*
import org.jetbrains.anko.doAsync import org.jetbrains.anko.doAsync
import org.jetbrains.anko.uiThread import org.jetbrains.anko.uiThread
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cTimeTableCurrentWeek import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cTimeTableCurrentWeek
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cWeekMenus import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cMenusCurrentWeek
import org.mosad.seil0.projectlaogai.R import org.mosad.seil0.projectlaogai.R
import org.mosad.seil0.projectlaogai.hsoparser.* import org.mosad.seil0.projectlaogai.hsoparser.*
import org.mosad.seil0.projectlaogai.uicomponents.LessonCardView import org.mosad.seil0.projectlaogai.uicomponents.LessonCardView
@ -72,9 +72,9 @@ class HomeFragment : Fragment() {
val cal = Calendar.getInstance() val cal = Calendar.getInstance()
if (cal.get(Calendar.HOUR_OF_DAY) < 15) { if (cal.get(Calendar.HOUR_OF_DAY) < 15) {
dayMenus = MensaParser().getMensaMenuDay(cWeekMenus, cal.get(Calendar.DAY_OF_WEEK)) dayMenus = MensaParser().getMensaMenuDay(cMenusCurrentWeek, cal.get(Calendar.DAY_OF_WEEK))
} else { } else {
dayMenus = MensaParser().getMensaMenuDay(cWeekMenus, cal.get(Calendar.DAY_OF_WEEK) + 1) dayMenus = MensaParser().getMensaMenuDay(cMenusCurrentWeek, cal.get(Calendar.DAY_OF_WEEK) + 1)
uiThread { uiThread {
txtView_Menu1Heading.text = resources.getString(R.string.meal_1_tomorrow) txtView_Menu1Heading.text = resources.getString(R.string.meal_1_tomorrow)
txtView_Menu2Heading.text = resources.getString(R.string.meal_2_tomorrow) txtView_Menu2Heading.text = resources.getString(R.string.meal_2_tomorrow)

View File

@ -30,7 +30,7 @@ import android.view.ViewGroup
import android.widget.LinearLayout import android.widget.LinearLayout
import org.jetbrains.anko.doAsync import org.jetbrains.anko.doAsync
import org.jetbrains.anko.uiThread import org.jetbrains.anko.uiThread
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cWeekMenus import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cMenusCurrentWeek
import org.mosad.seil0.projectlaogai.R import org.mosad.seil0.projectlaogai.R
import org.mosad.seil0.projectlaogai.uicomponents.MensaDayCardView import org.mosad.seil0.projectlaogai.uicomponents.MensaDayCardView
import org.mosad.seil0.projectlaogai.uicomponents.MenuCardView import org.mosad.seil0.projectlaogai.uicomponents.MenuCardView
@ -76,7 +76,7 @@ class MensaFragment : Fragment() {
val cardViewMensaDay = MensaDayCardView(context!!, null) val cardViewMensaDay = MensaDayCardView(context!!, null)
var add = false var add = false
for (meal in cWeekMenus) { for (meal in cMenusCurrentWeek) {
//println("Day: " + meal.day) //println("Day: " + meal.day)
if (meal.day.contains(strDay)) { if (meal.day.contains(strDay)) {

View File

@ -38,12 +38,14 @@ import kotlinx.android.synthetic.main.fragment_settings.*
import org.jetbrains.anko.doAsync import org.jetbrains.anko.doAsync
import org.jetbrains.anko.uiThread import org.jetbrains.anko.uiThread
import org.mosad.seil0.projectlaogai.PreferencesController import org.mosad.seil0.projectlaogai.PreferencesController
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cColor import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cColorPrimary
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cColorAccent
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cCourse import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cCourse
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cCourseTTLinkList import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cCourseTTLinkList
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cTimeTableCurrentWeek import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cTimeTableCurrentWeek
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cTimeTableNextWeek import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cTimeTableNextWeek
import org.mosad.seil0.projectlaogai.R import org.mosad.seil0.projectlaogai.R
import org.mosad.seil0.projectlaogai.hsoparser.DataTypes
import org.mosad.seil0.projectlaogai.hsoparser.TimeTableParser import org.mosad.seil0.projectlaogai.hsoparser.TimeTableParser
import java.util.* import java.util.*
@ -56,8 +58,8 @@ class SettingsFragment : Fragment() {
private lateinit var linLayoutUser: LinearLayout private lateinit var linLayoutUser: LinearLayout
private lateinit var linLayoutCourse: LinearLayout private lateinit var linLayoutCourse: LinearLayout
private lateinit var linLayoutInfo: LinearLayout private lateinit var linLayoutInfo: LinearLayout
private lateinit var linLayoutMainColor: LinearLayout private lateinit var linLayoutPrimaryColor: LinearLayout
private lateinit var viewPrimaryColor: View private lateinit var linLayoutAccentColor: LinearLayout
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
@ -66,8 +68,8 @@ class SettingsFragment : Fragment() {
linLayoutUser = view.findViewById(R.id.linLayout_User) linLayoutUser = view.findViewById(R.id.linLayout_User)
linLayoutCourse = view.findViewById(R.id.linLayout_Course) linLayoutCourse = view.findViewById(R.id.linLayout_Course)
linLayoutInfo = view.findViewById(R.id.linLayout_Info) linLayoutInfo = view.findViewById(R.id.linLayout_Info)
linLayoutMainColor = view.findViewById(R.id.linLayout_MainColor) linLayoutPrimaryColor = view.findViewById(R.id.linLayout_PrimaryColor)
viewPrimaryColor = view.findViewById(R.id.view_PrimaryColor) linLayoutAccentColor = view.findViewById(R.id.linLayout_AccentColor)
initActions() initActions()
@ -130,26 +132,44 @@ class SettingsFragment : Fragment() {
.show() .show()
} }
linLayoutMainColor.setOnClickListener { linLayoutPrimaryColor.setOnClickListener {
// open a new color chooser dialog // open a new color chooser dialog
val colors = intArrayOf(Color.BLACK, Color.DKGRAY, Color.RED, Color.GREEN, Color.YELLOW)
MaterialDialog(context!!) MaterialDialog(context!!)
.title(R.string.primary_color) .title(R.string.primary_color)
.colorChooser(colors, allowCustomArgb = true, initialSelection = cColor) { _, color -> .colorChooser(DataTypes().primaryColors, allowCustomArgb = true, initialSelection = cColorPrimary) { _, color ->
viewPrimaryColor.setBackgroundColor(color) view_PrimaryColor.setBackgroundColor(color)
Aesthetic.config { Aesthetic.config {
colorPrimary(color) colorPrimary(color)
colorPrimaryDark(color) colorPrimaryDark(color)
apply() apply()
} }
cColor = color cColorPrimary = color
PreferencesController.save(context!!) PreferencesController.save(context!!)
} }
.positiveButton(R.string.select) .positiveButton(R.string.select)
.show() .show()
} }
linLayoutAccentColor.setOnClickListener {
// open a new color chooser dialog
MaterialDialog(context!!)
.title(R.string.accent_color)
.colorChooser(DataTypes().accentColors, allowCustomArgb = true, initialSelection = cColorAccent) { _, color ->
//viewAccentColor.setBackgroundColor(color)
view_AccentColor.setBackgroundColor(color)
Aesthetic.config {
colorAccent(color)
apply()
}
cColorAccent = color
PreferencesController.save(context!!)
}
.positiveButton(R.string.select)
.show()
}
} }
} }

View File

@ -22,11 +22,54 @@
package org.mosad.seil0.projectlaogai.hsoparser package org.mosad.seil0.projectlaogai.hsoparser
import android.graphics.Color
import java.util.* import java.util.*
class DataTypes { class DataTypes {
val times = arrayOf("8.00 - 9.30", "9.45 - 11.15" ,"11.35 - 13.05", "14.00 -15.30", "15.45 - 17.15", "17.30 - 19.00") val times = arrayOf("8.00 - 9.30", "9.45 - 11.15" ,"11.35 - 13.05", "14.00 -15.30", "15.45 - 17.15", "17.30 - 19.00")
val primaryColors = intArrayOf(
Color.parseColor("#E53935"),
Color.parseColor("#E91E63"),
Color.parseColor("#9C27B0"),
Color.parseColor("#673AB7"),
Color.parseColor("#3F51B5"),
Color.parseColor("#2196F3"),
Color.parseColor("#03A9F4"),
Color.parseColor("#00BCD4"),
Color.parseColor("#009688"),
Color.parseColor("#4CAF50"),
Color.parseColor("#8BC34A"),
Color.parseColor("#CDDC39"),
Color.parseColor("#FDD835"),
Color.parseColor("#FFB300"),
Color.parseColor("#FB8C00"),
Color.parseColor("#FF5722"),
Color.parseColor("#795548"),
Color.parseColor("#9E9E9E"),
Color.parseColor("#607B8B"),
Color.parseColor("#000000")
)
val accentColors = intArrayOf(
Color.parseColor("#FF1744"),
Color.parseColor("#F50057"),
Color.parseColor("#D500F9"),
Color.parseColor("#3F51B5"),
Color.parseColor("#3D5AFE"),
Color.parseColor("#2979FF"),
Color.parseColor("#00B0FF"),
Color.parseColor("#00E5FF"),
Color.parseColor("#1DE9B6"),
Color.parseColor("#00E676"),
Color.parseColor("#C6FF00"),
Color.parseColor("#FFD600"),
Color.parseColor("#FFC400"),
Color.parseColor("#FF9100"),
Color.parseColor("#FF3D00"),
Color.parseColor("#000000")
)
init { init {
// do something // do something
} }

View File

@ -28,11 +28,11 @@ import java.util.*
class MensaParser { class MensaParser {
/** /**
* returns the mensa menu for the whole week * returns the mensa menu for the a week
*/ */
fun getMensaMenu(): ArrayList<Meal> { fun getMensaMenu(menuLink: String): ArrayList<Meal> {
val mealList = ArrayList<Meal>() val mealList = ArrayList<Meal>()
val menuHTML = Jsoup.connect("https://www.swfr.de/de/essen-trinken/speiseplaene/mensa-offenburg/").get() val menuHTML = Jsoup.connect(menuLink).get()
menuHTML.select("#speiseplan-tabs").select("div.tab-content").select("div.menu-tagesplan").forEachIndexed { _, element -> menuHTML.select("#speiseplan-tabs").select("div.tab-content").select("div.menu-tagesplan").forEachIndexed { _, element ->
val day = element.select("h3").text() val day = element.select("h3").text()
@ -44,7 +44,7 @@ class MensaParser {
mealList.add(Meal(day, heading, parts, additives)) mealList.add(Meal(day, heading, parts, additives))
} catch (e: Exception) { } catch (e: Exception) {
// catch //println("Oooups! Something went wrong: ${e.printStackTrace()}")
} }
} }
} }
@ -52,6 +52,15 @@ class MensaParser {
return mealList return mealList
} }
/**
* return the link of the menus of the next week
*/
fun getMenuLinkNextWeek(menuLink: String): String {
val menuHTML = Jsoup.connect(menuLink).get()
return "https://www.swfr.de" + menuHTML.select("#speiseplan-tabs").select("a.next-week").attr("href")
}
/** /**
* return the mensa menu of a given day (Mon - Sat) * return the mensa menu of a given day (Mon - Sat)
*/ */

View File

@ -37,15 +37,6 @@ class TimeTableParser {
var timeTableWeek = TimeTable() // this must be a var! var timeTableWeek = TimeTable() // this must be a var!
val scheduleHTML = Jsoup.connect(courseTTURL).get() val scheduleHTML = Jsoup.connect(courseTTURL).get()
// create the timetable array
/* for (i in 0..5) {
var timeTableDay = arrayOf<Lesson>()
for (j in 0..5) {
timeTableDay += Lesson("", "","","")
}
timeTableWeek += timeTableDay
}*/
//val week = scheduleHTML.select("h1.timetable-caption").text() //val week = scheduleHTML.select("h1.timetable-caption").text()
//println("$week successful!\n") //println("$week successful!\n")
@ -58,11 +49,8 @@ class TimeTableParser {
for ((rowIndex, row) in rows.withIndex()) { for ((rowIndex, row) in rows.withIndex()) {
var day = 0 var day = 0
// elements are now all lessons, including empty ones
row.select("td.lastcol, td[style]").forEach { element -> row.select("td.lastcol, td[style]").forEach { element ->
// elements are now all lessons, including empty ones
//println("-------------> Element (Day.Timeslot: " + day + "." + rowIndex + "): " + element)
//println("Day.Timeslot: " + day + "." + rowIndex + " lesson: " + element.select("div.lesson-subject").text() + ", " + element.select("div.lesson-teacher").text())
// if there is a lecture with rowspan="2", we need to shift everything by one to the left. This is stupid and ugly there needs to bee an API // if there is a lecture with rowspan="2", we need to shift everything by one to the left. This is stupid and ugly there needs to bee an API
if ((sDay > -1 && sRow > -1) && (sDay == day && ((sRow + 1) == rowIndex))) { if ((sDay > -1 && sRow > -1) && (sDay == day && ((sRow + 1) == rowIndex))) {
@ -96,11 +84,6 @@ class TimeTableParser {
printTimeTableWeek(timeTableWeek) printTimeTableWeek(timeTableWeek)
/*scheduleHTML.select("table.timetable").select("td.lastcol").forEachIndexed { index, element ->
//println("Index: " + index + " lesson: " + element.select("div.lesson-subject").text() + ", " + element.select("div.lesson-teacher").text())
timeTableWeek[index % 6][index / 6] = Lesson(element.select("div.lesson-subject").text(), element.select("div.lesson-teacher").text(), element.select("div.lesson-room").text(), element.select("div.lesson-remark").text())
}*/
return timeTableWeek return timeTableWeek
} }
@ -116,27 +99,6 @@ class TimeTableParser {
return courseTTLinkList return courseTTLinkList
} }
@Suppress("unused")
fun printTimeTableWeekOLD (timeTableWeek: Array<Array<Lesson>>) {
for (j in 0..5) print(days[j].padEnd(25 ,' ') + " | ")
println()
for (j in 0..5) print("-".padEnd(26 + (j.toFloat().div(j).toInt()), '-') + "+")
println()
for (i in 0..5) {
for (j in 0..5) print(timeTableWeek[j][i].lessonSubject.padEnd(25 ,' ').substring(0,25) + " | ")
println()
for (j in 0..5) print(timeTableWeek[j][i].lessonTeacher.padEnd(25 ,' ').substring(0,25) + " | ")
println()
for (j in 0..5) print(timeTableWeek[j][i].lessonRoom.padEnd(25 ,' ').substring(0,25) + " | ")
println()
for (j in 0..5) print("-".padEnd(26 + (j.toFloat().div(j).toInt()), '-') + "+")
println()
}
println(" \n")
}
@Suppress("unused") @Suppress("unused")
fun printTimeTableWeek(timetable: TimeTable) { fun printTimeTableWeek(timetable: TimeTable) {
for (j in 0..5) print(days[j].padEnd(75 ,' ') + " | ") for (j in 0..5) print(days[j].padEnd(75 ,' ') + " | ")

View File

@ -21,6 +21,7 @@
android:layout_gravity="start" android:layout_gravity="start"
android:fitsSystemWindows="true" android:fitsSystemWindows="true"
app:headerLayout="@layout/nav_header_main" app:headerLayout="@layout/nav_header_main"
app:itemTextColor="?colorAccent"
app:menu="@menu/activity_main_drawer"/> app:menu="@menu/activity_main_drawer"/>
</androidx.drawerlayout.widget.DrawerLayout> </androidx.drawerlayout.widget.DrawerLayout>

View File

@ -30,7 +30,7 @@
android:layout_height="wrap_content" android:id="@+id/txtView_Info" android:layout_height="wrap_content" android:id="@+id/txtView_Info"
android:typeface="sans" android:typeface="sans"
android:textSize="18sp" android:textStyle="bold" android:fontFamily="sans-serif" android:textSize="18sp" android:textStyle="bold" android:fontFamily="sans-serif"
android:layout_margin="7dp" android:textColor="@color/colorPrimary"/> android:layout_margin="7dp" android:textColor="?colorAccent"/>
<LinearLayout <LinearLayout
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
@ -100,20 +100,20 @@
<LinearLayout <LinearLayout
android:orientation="vertical" android:orientation="vertical"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@+id/linLayout_Settings"> android:layout_height="wrap_content" android:id="@+id/linLayout_Settings" android:padding="7dp">
<TextView <TextView
android:text="@string/settings" android:text="@string/settings"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@+id/txtView_Settings" android:layout_height="wrap_content" android:id="@+id/txtView_Settings"
android:typeface="sans" android:typeface="sans"
android:textSize="18sp" android:textColor="@color/design_default_color_primary" android:textSize="18sp" android:textColor="?colorAccent"
android:textStyle="bold" android:layout_margin="7dp" android:paddingTop="3dp"/> android:textStyle="bold" android:paddingTop="3dp"/>
<LinearLayout <LinearLayout
android:orientation="horizontal" android:orientation="horizontal"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_margin="7dp" android:layout_height="wrap_content"
android:gravity="center_vertical|end" android:gravity="center_vertical|end"
android:clickable="true" android:id="@+id/linLayout_MainColor" android:focusable="true"> android:clickable="true" android:id="@+id/linLayout_PrimaryColor" android:focusable="true">
<LinearLayout <LinearLayout
android:orientation="vertical" android:orientation="vertical"
android:layout_width="wrap_content" android:layout_width="wrap_content"
@ -125,7 +125,7 @@
android:textSize="16sp" android:textStyle="bold" android:textSize="16sp" android:textStyle="bold"
android:textColor="@android:color/primary_text_light"/> android:textColor="@android:color/primary_text_light"/>
<TextView <TextView
android:text="@string/main_color_desc" android:text="@string/primary_color_desc"
android:layout_width="match_parent" android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@+id/txtView_PrimaryColorDesc"/> android:layout_height="wrap_content" android:id="@+id/txtView_PrimaryColorDesc"/>
</LinearLayout> </LinearLayout>
@ -140,6 +140,44 @@
android:background="?colorPrimary"/> android:background="?colorPrimary"/>
</LinearLayout> </LinearLayout>
</LinearLayout> </LinearLayout>
<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical|end"
android:clickable="true" android:id="@+id/linLayout_AccentColor" android:focusable="true">
<LinearLayout
android:orientation="vertical"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<TextView
android:text="@string/accent_color"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@+id/txtView_AccentColor"
android:textSize="16sp" android:textStyle="bold"
android:textColor="@android:color/primary_text_light"/>
<TextView
android:text="@string/accent_color_desc"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@+id/txtView_AccentColorDesc"/>
</LinearLayout>
<LinearLayout
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="wrap_content" android:layout_margin="7dp"
android:gravity="end">
<View
android:layout_width="40dp"
android:layout_height="40dp" android:id="@+id/view_AccentColor"
android:background="?colorAccent"/>
</LinearLayout>
</LinearLayout>
<Switch
android:layout_width="match_parent"
android:layout_height="wrap_content" android:id="@+id/switch_buffet"
android:textSize="16sp"
android:textColor="@android:color/primary_text_light" android:textStyle="bold"
android:text="@string/show_buffet"/>
</LinearLayout> </LinearLayout>
</androidx.cardview.widget.CardView> </androidx.cardview.widget.CardView>
</LinearLayout> </LinearLayout>

View File

@ -4,7 +4,10 @@
tools:showIn="navigation_view"> tools:showIn="navigation_view">
<group android:checkableBehavior="single"> <group android:checkableBehavior="single">
<item android:id="@+id/nav_home" android:title="@string/home" android:icon="@drawable/ic_baseline_home_24dp"/> <item
android:id="@+id/nav_home"
android:title="@string/home"
android:icon="@drawable/ic_baseline_home_24dp"/>
<item <item
android:id="@+id/nav_mensa" android:id="@+id/nav_mensa"
android:icon="@drawable/ic_local_dining_black_24dp" android:icon="@drawable/ic_local_dining_black_24dp"

View File

@ -19,11 +19,14 @@
<string name="info">Info</string> <string name="info">Info</string>
<string name="user">Benutzer</string> <string name="user">Benutzer</string>
<string name="course_desc">Tippen, um den Kurs zu ändern</string> <string name="course_desc">Tippen, um den Kurs zu ändern</string>
<string name="primary_color">Primärfarbe</string> <string name="primary_color">Hauptfarbe</string>
<string name="main_color_desc">Die Primärfarbe, standard ist Schwarz</string> <string name="primary_color_desc">Die Primärfarbe, Standard ist Schwarz.</string>
<string name="accent_color">Akzentfarbe</string>
<string name="accent_color_desc">Die Akzentfarbe, Standard ist indigo</string>
<string name="select">auswählen</string> <string name="select">auswählen</string>
<string name="about">über</string> <string name="about">über</string>
<string name="loading_timetable">lade Stundenplan …</string> <string name="loading_timetable">lade Stundenplan …</string>
<string name="navigation_drawer_close">Navigationsleiste schließen</string> <string name="navigation_drawer_close">Navigationsleiste schließen</string>
<string name="navigation_drawer_open">Navigationsleiste öffnen</string> <string name="navigation_drawer_open">Navigationsleiste öffnen</string>
<string name="show_buffet">Buffet immer anzeigen</string>
</resources> </resources>

View File

@ -2,7 +2,7 @@
<resources> <resources>
<color name="colorPrimary">#000000</color> <color name="colorPrimary">#000000</color>
<color name="colorPrimaryDark">#000000</color> <color name="colorPrimaryDark">#000000</color>
<color name="colorAccent">#d81b60</color> <color name="colorAccent">#3F51B5</color>
<color name="colorMensaDay">#ebe8e9</color> <color name="colorMensaDay">#ebe8e9</color>
<color name="ic_launcher_background">#FFFFFF</color> <color name="ic_launcher_background">#FFFFFF</color>
</resources> </resources>

View File

@ -35,21 +35,22 @@
<string name="user">User</string> <string name="user">User</string>
<string name="course_desc">Tap to change course</string> <string name="course_desc">Tap to change course</string>
<string name="primary_color">primary color</string> <string name="primary_color">primary color</string>
<string name="main_color_desc">The primary color, default is black</string> <string name="primary_color_desc">The primary color, default is black.</string>
<string name="accent_color">accent color</string>
<string name="accent_color_desc">The accent color, default is indigo.</string>
<string name="show_buffet">always show buffet</string>
<string name="select">select</string> <string name="select">select</string>
<string name="version" translatable="false">version 0.3.3</string> <string name="version" translatable="false">version 0.3.3</string>
<string name="about">about</string> <string name="about">about</string>
<string name="about_txtView" translatable="false">hso App by @Seil0</string> <string name="about_txtView" translatable="false">hso App by @Seil0</string>
<string name="about_text" translatable="false">"This software is made by @Seil0 and is published under the terms and <string name="about_text" translatable="false">"This software is made by @Seil0 and is published under the terms and conditions of GPL 3. For further information visit \ngit.mosad.xyz/Seil0/ProjectLaogai \n\n© 2018-2019 seil0@mosad.xyz "</string>
conditions of GPL 3. For further information visit \ngit.mosad.xyz/Seil0/ProjectLaogai \n\n© 2018-2019
seil0@mosad.xyz "
</string>
<string name="loading_timetable">loading timetable …</string> <string name="loading_timetable">loading timetable …</string>
<string name="string_new_line" translatable="false">%1$s\n</string> <string name="string_new_line" translatable="false">%1$s\n</string>
<string name="save_key_course" translatable="false">org.mosad.seil0.projectlaogai.course</string> <string name="save_key_course" translatable="false">org.mosad.seil0.projectlaogai.course</string>
<string name="save_key_courseTTLink" translatable="false">org.mosad.seil0.projectlaogai.courseTTLink</string> <string name="save_key_courseTTLink" translatable="false">org.mosad.seil0.projectlaogai.courseTTLink</string>
<string name="save_key_colorPrimary" translatable="false">org.mosad.seil0.projectlaogai.colorPrimary</string> <string name="save_key_colorPrimary" translatable="false">org.mosad.seil0.projectlaogai.colorPrimary</string>
<string name="save_key_colorAccent" translatable="false">org.mosad.seil0.projectlaogai.colorAccent</string>
</resources> </resources>