89 lines
2.8 KiB
Kotlin
89 lines
2.8 KiB
Kotlin
/**
|
|
* ProjectLaogai
|
|
*
|
|
* Copyright 2019-2020 <seil0@mosad.xyz>
|
|
*
|
|
* 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.util.DataTypes
|
|
import org.mosad.seil0.projectlaogai.util.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().times[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
|
|
}
|
|
|
|
} |