diff --git a/app/build.gradle b/app/build.gradle index e2da65d..a4f47e2 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdkVersion 21 targetSdkVersion 28 versionCode 6 - versionName "0.2.1" + versionName "0.2.2" testInstrumentationRunner "androidx.test.runner.AndroidJUnitRunner" } buildTypes { diff --git a/app/src/main/java/org/mosad/seil0/projectlaogai/MainActivity.kt b/app/src/main/java/org/mosad/seil0/projectlaogai/MainActivity.kt index 1c1ff00..1136863 100644 --- a/app/src/main/java/org/mosad/seil0/projectlaogai/MainActivity.kt +++ b/app/src/main/java/org/mosad/seil0/projectlaogai/MainActivity.kt @@ -50,7 +50,8 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte private var weekMenus = ArrayList() private var courseTTLinkList = ArrayList() - private var timeTableWeek = arrayOf>() + private var timeTableCurrentWeek = arrayOf>() + private var timeTableNextWeek = arrayOf>() private lateinit var course: CourseTTLink @@ -163,7 +164,7 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte apply() } - timeTableWeek = timeTableParser.getTimeTable(course.courseTTLink.replace("http", "https")) + timeTableCurrentWeek = timeTableParser.getTimeTable(course.courseTTLink.replace("http", "https")) } /** @@ -192,13 +193,21 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte courseTTLinkList = timeTableParser.getCourseTTLinks() } + doAsync { + try { + timeTableNextWeek = timeTableParser.getTimeTable(course.courseTTLink.replace("week=0","week=1")) + } catch (e: Exception) { + e.stackTrace + } + } + val t1 = doAsync { weekMenus = mensaParser.getMensaMenu() } val t2 = doAsync { try { - timeTableWeek = timeTableParser.getTimeTable(course.courseTTLink) + timeTableCurrentWeek = timeTableParser.getTimeTable(course.courseTTLink) } catch (e: Exception) { uiThread { @@ -223,8 +232,12 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte return courseTTLinkList } - fun getCurrentTimeTableWeek(): Array> { - return timeTableWeek + fun getTimeTableCurrentWeek(): Array> { + return timeTableCurrentWeek + } + + fun getTimeTableNextWeek(): Array> { + return timeTableNextWeek } fun getWeekMenu(): ArrayList{ diff --git a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/HomeFragment.kt b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/HomeFragment.kt index c82c81d..1349592 100644 --- a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/HomeFragment.kt +++ b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/HomeFragment.kt @@ -95,9 +95,9 @@ class HomeFragment : Fragment() { private fun addCurrentTimeTable() { val dayIndex = NotRetardedCalendar().getDayOfWeekIndex() - if (mainActivity.getCurrentTimeTableWeek().isNotEmpty() && dayIndex < 6) { + if (mainActivity.getTimeTableCurrentWeek().isNotEmpty() && dayIndex < 6) { - val timeTableDay = mainActivity.getCurrentTimeTableWeek()[dayIndex] + val timeTableDay = mainActivity.getTimeTableCurrentWeek()[dayIndex] for (i in 0..5) { val lessonCardView = LessonCardView(context!!, null) diff --git a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/TimeTableFragment.kt b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/TimeTableFragment.kt index de132f6..cd12dab 100644 --- a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/TimeTableFragment.kt +++ b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/TimeTableFragment.kt @@ -62,28 +62,23 @@ class TimeTableFragment : Fragment() { /** * add the remaining days of the current week to the timetable screen - * TODO show the current day and the following 5 days */ private fun addCurrentWeek() { val dayIndex = NotRetardedCalendar().getDayOfWeekIndex() + val formatter = SimpleDateFormat("E dd.MM", Locale.GERMANY) // TODO change to android call when min api is 24 + val calendar = Calendar.getInstance() doAsync { uiThread { - println(dayIndex) + // add current weeks days for(day in dayIndex..5) { - - val formatter = SimpleDateFormat("E dd.MM", Locale.GERMANY) // TODO change to android call when min api is 24 - val calendar = Calendar.getInstance() - calendar.firstDayOfWeek = Calendar.MONDAY - calendar.add(Calendar.DATE,day - Calendar.getInstance().get(Calendar.DAY_OF_WEEK)) - val cardViewTimeTableDay = MensaDayCardView(context!!, null) cardViewTimeTableDay.setDayHeading(formatter.format(calendar.time)) // for each lessen of the day - for((i, lesson) in mainActivity.getCurrentTimeTableWeek()[dayIndex].withIndex()) { + for((i, lesson) in mainActivity.getTimeTableCurrentWeek()[day].withIndex()) { val lessonCardView = LessonCardView(context!!, null) lessonCardView.setBackgroundColor(Color.TRANSPARENT) @@ -96,11 +91,39 @@ class TimeTableFragment : Fragment() { cardViewTimeTableDay.getLinLayoutMensaDay().addView(lessonCardView) } - // TODO if there is no lesson at one day , show a no lesson card - + calendar.add(Calendar.DATE,1) linLayoutTTFragment.addView(cardViewTimeTableDay) } + // add next weeks days, max number = dayIndex, if timetable was loaded + if (mainActivity.getTimeTableNextWeek().isNotEmpty()) { + calendar.add(Calendar.DATE,1) // before this we are at a sunday (no lecture on sundays!) + + for(day in 0..(dayIndex - 1)) { + + val cardViewTimeTableDay = MensaDayCardView(context!!, null) + cardViewTimeTableDay.setDayHeading(formatter.format(calendar.time)) + + // for each lessen of the day + for((i, lesson) in mainActivity.getTimeTableNextWeek()[day].withIndex()) { + val lessonCardView = LessonCardView(context!!, null) + lessonCardView.setBackgroundColor(Color.TRANSPARENT) + + lessonCardView.getTxtViewLesson().text = resources.getString(R.string.string_new_line, lesson.lessonSubject) + lessonCardView.getTxtViewLesson().append(lesson.lessonTeacher + "\n") + lessonCardView.getTxtViewLesson().append(lesson.lessonRoom) + lessonCardView.getTxtViewTime().text = DataTypes().getTime()[i] + + if(lessonCardView.getTxtViewLesson().text.length > 2) + cardViewTimeTableDay.getLinLayoutMensaDay().addView(lessonCardView) + } + + calendar.add(Calendar.DATE,1) + linLayoutTTFragment.addView(cardViewTimeTableDay) + } + } + + // TODO if there is no lesson at one day , show a no lesson card } } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 296f3fb..e363f95 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -2,7 +2,7 @@ Project Laogai Open navigation drawer Close navigation drawer - hso App 0.2.1 + hso App 0.2.2 seil0@mosad.xyz Project Laogai @@ -35,7 +35,7 @@ primary color The primary color, default is indigo select - version 0.2.1 + version 0.2.2 about hso App by @Seil0 "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 seil0@mosad.xyz "