ProjectLaogai/app/src/main/java/org/mosad/seil0/projectlaogai/uicomponents/DayCardView.kt

89 lines
2.9 KiB
Kotlin
Raw Normal View History

2018-10-25 16:44:36 +02:00
/**
* ProjectLaogai
*
* Copyright 2019-2020 <seil0@mosad.xyz>
2018-10-25 16:44:36 +02:00
*
* 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.
*
*/
2018-10-29 13:04:20 +01:00
package org.mosad.seil0.projectlaogai.uicomponents
2018-10-24 18:22:05 +02:00
import android.content.Context
import android.graphics.Color
2018-10-29 13:04:20 +01:00
import android.widget.LinearLayout
import androidx.cardview.widget.CardView
import kotlinx.android.synthetic.main.cardview_day.view.*
import org.mosad.seil0.projectlaogai.R
import org.mosad.seil0.projectlaogai.hsoparser.DataTypes
import org.mosad.seil0.projectlaogai.hsoparser.TimetableDay
import java.text.SimpleDateFormat
import java.util.*
2018-10-25 16:44:36 +02:00
class DayCardView(context: Context) : CardView(context) {
2018-10-24 18:22:05 +02:00
private val formatter = SimpleDateFormat("E dd.MM", Locale.getDefault())
2018-10-24 18:22:05 +02:00
init {
inflate(context, R.layout.cardview_day,this)
2018-10-25 16:44:36 +02:00
// workaround to prevent a white border
this.setBackgroundColor(Color.TRANSPARENT)
2018-10-25 16:44:36 +02:00
}
fun getLinLayoutDay() : LinearLayout {
return linLayout_Day
2018-10-25 16:44:36 +02:00
}
2018-10-24 18:22:05 +02:00
2018-10-29 13:04:20 +01:00
fun setDayHeading(heading: String) {
txtView_DayHeading.text = heading
2018-10-24 18:22:05 +02:00
}
2018-10-29 13:04:20 +01:00
/**
* add the lessons of one day to the dayCardView
* @param timetable a timetable containing the day (and it's lessons) to be added
*/
fun addTimetableDay(timetable: TimetableDay, daysToAdd: Int) {
var lastLesson = LessonLinearLayout(context)
// set the heading
val cal = Calendar.getInstance()
cal.add(Calendar.DATE, daysToAdd)
txtView_DayHeading.text = formatter.format(cal.time)
// for every timeslot of that timetable
for ((tsIndex, timeslot) in timetable.timeslots.withIndex()) {
for (lesson in timeslot) {
if (lesson.lessonSubject.isNotEmpty()) {
val lessonLayout = LessonLinearLayout(context)
lessonLayout.setLesson(lesson, DataTypes().getTime()[tsIndex])
linLayout_Day.addView(lessonLayout)
if (lesson != timeslot.last()) {
lessonLayout.disableDivider()
}
lastLesson = lessonLayout
}
}
}
lastLesson.disableDivider() // disable the divider for the last lesson of the day
}
2018-10-24 18:22:05 +02:00
}