/** * ProjectLaogai * * Copyright 2019-2020 * * 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.uicomponents import android.content.Context import android.graphics.Color 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.* class DayCardView(context: Context) : CardView(context) { private val formatter = SimpleDateFormat("E dd.MM", Locale.getDefault()) init { inflate(context, R.layout.cardview_day,this) // workaround to prevent a white border this.setBackgroundColor(Color.TRANSPARENT) } fun getLinLayoutDay() : LinearLayout { return linLayout_Day } fun setDayHeading(heading: String) { txtView_DayHeading.text = heading } /** * 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 } }