@ -31,10 +31,13 @@ import android.widget.LinearLayout
import org.jetbrains.anko.doAsync
import org.jetbrains.anko.uiThread
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cMenusCurrentWeek
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cMenusNextWeek
import org.mosad.seil0.projectlaogai.PreferencesController.Companion.cShowBuffet
import org.mosad.seil0.projectlaogai.R
import org.mosad.seil0.projectlaogai.hsoparser.MealWeek
import org.mosad.seil0.projectlaogai.hsoparser.NotRetardedCalendar
import org.mosad.seil0.projectlaogai.uicomponents.MensaDayCardView
import org.mosad.seil0.projectlaogai.uicomponents.MenuCardView
import java.util.*
/ * *
* The mensa controller class
@ -50,54 +53,50 @@ class MensaFragment : Fragment() {
linLayoutMensaFragment = view . findViewById ( R . id . linLayout _MensaFragment )
addCurrentWeek ( )
// add the current week (week starts on sunday)
val dayCurrent = if ( NotRetardedCalendar ( ) . getDayOfWeekIndex ( ) == 6 ) 0 else NotRetardedCalendar ( ) . getDayOfWeekIndex ( )
addWeek ( cMenusCurrentWeek , dayCurrent )
// add the next week
addWeek ( cMenusNextWeek , 0 )
return view
}
private fun addCurrentWeek ( ) {
/ * *
* add all menus from dayStart to Friday for a given week
* /
private fun addWeek ( menusWeek : MealWeek , dayStart : Int ) {
doAsync {
uiThread {
for ( day in Calendar . getInstance ( ) . get ( Calendar . DAY _OF _WEEK ) .. 7 ) {
val strDay : String = when ( day ) {
Calendar . MONDAY -> " Mon "
Calendar . TUESDAY -> " Die "
Calendar . WEDNESDAY -> " Mit "
Calendar . THURSDAY -> " Don "
Calendar . FRIDAY -> " Fre "
Calendar . SATURDAY -> " Sam "
else -> " TODAY " // the app will likely crash here
}
// only add the days dayStart to Fri since the mensa is closed on Sat/Sun
for ( dayIndex in dayStart .. 4 ) {
val cardViewMensaDay = MensaDayCardView ( context !! , null )
var add = false
for ( meal in cMenusCurrentWeek ) {
//println("Day: " + meal.day )
if ( meal . day . contains ( strDay ) ) {
for ( meal in menusWeek . day [ dayIndex ] ) {
val menuViewMenu = MenuCardView ( context !! , null )
menuViewMenu . setMenuHeading ( meal . heading )
val menuViewMenu = MenuCardView ( context !! , null )
menuViewMenu . setMenuHeading ( meal . heading )
meal . parts . forEachIndexed { partIndex , part ->
menuViewMenu . getTxtViewMenu ( ) . append ( part )
if ( partIndex < ( meal . parts . size - 2 ) )
menuViewMenu . getTxtViewMenu ( ) . append ( " \n " )
}
for ( ( i , part ) in meal . parts . withIndex ( ) ) {
menuViewMenu . getTxtViewMenu ( ) . append ( part )
if ( i < ( meal . parts . size - 2 ) )
menuViewMenu . getTxtViewMenu ( ) . append ( " \n " )
}
cardViewMensaDay . setDayHeading ( meal . day )
cardViewMensaDay . setDayHeading ( meal . day )
if ( meal . heading != " Buffet " || cShowBuffet )
cardViewMensaDay . getLinLayoutMensaDay ( ) . addView ( menuViewMenu )
add = true
}
}
println ( " $dayIndex : " + cardViewMensaDay . getLinLayoutMensaDay ( ) . childCount ) // remove
if ( add )
if ( c ar dViewMensaDay . getLinLayoutMensaDay ( ) . chil dCount > 1 )
linLayoutMensaFragment . addView ( cardViewMensaDay )
}
// add a card if there are no more meals in this week
@ -107,8 +106,8 @@ class MensaFragment : Fragment() {
linLayoutMensaFragment . addView ( cardViewNoMoreFood )
}
}
}
}
}