From 54a5e2da8e651ee153a23a7f65bdfbb835732455 Mon Sep 17 00:00:00 2001 From: Seil0 Date: Wed, 7 Nov 2018 14:17:33 +0100 Subject: [PATCH] version 0.2.0 * the selected course is saved now --- app/build.gradle | 2 +- .../mosad/seil0/projectlaogai/MainActivity.kt | 34 +++++++++++++++++-- .../fragments/SettingsFragment.kt | 6 ++++ .../hsoparser/TimeTableParser.kt | 6 ++-- app/src/main/res/values/strings.xml | 7 ++-- 5 files changed, 47 insertions(+), 8 deletions(-) diff --git a/app/build.gradle b/app/build.gradle index 08c11c8..4d56b33 100644 --- a/app/build.gradle +++ b/app/build.gradle @@ -11,7 +11,7 @@ android { minSdkVersion 21 targetSdkVersion 28 versionCode 5 - versionName "0.1.4" + versionName "0.2.0" 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 1c6af63..1ac6462 100644 --- a/app/src/main/java/org/mosad/seil0/projectlaogai/MainActivity.kt +++ b/app/src/main/java/org/mosad/seil0/projectlaogai/MainActivity.kt @@ -50,6 +50,8 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte private var courseTTLinkList = ArrayList() private var timeTableWeek = arrayOf>() + private lateinit var course: CourseTTLink + override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) @@ -143,13 +145,22 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte } /** - * update the gui with the data of the new selected course TODO - * save selected course and courseTTLink TODO + * update the gui with the data of the new selected course + * save selected course and courseTTLink */ fun updateCourse(course: CourseTTLink) { println(course.course) println(course.courseTTLink) + this.course = course + // save new selected course + val sharedPref = getPreferences(MODE_PRIVATE) ?: return + with (sharedPref.edit()) { + putString(getString(R.string.save_key_course), course.course) + putString(getString(R.string.save_key_courseTTLink), course.courseTTLink.replace("http", "https")) + apply() + } + timeTableWeek = timeTableParser.getTimeTable(course.courseTTLink.replace("http", "https")) } @@ -158,6 +169,19 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte * TODO evaluate if we should use a timeout here */ private fun load() { + + // load saved course + val sharedPref = getPreferences(MODE_PRIVATE) ?: return + course = CourseTTLink( + sharedPref.getString(getString(R.string.save_key_courseTTLink), + "https://www.hs-offenburg.de/index.php?id=6627&class=class&iddV=DA64F6FE-9DDB-429E-A677-05D0D40CB636&week=0")!!, + sharedPref.getString(getString(R.string.save_key_course), "AI3")!! + ) + + /** + * load mensa, course timetable and courselist from the swfr/hso website + * TODO make an API see https://git.mosad.xyz/Seil0/TheCitadelofRicks + */ val time = measureTimeMillis { /* getting the course list should be faster than the timetable, * we need have time until the user opens the dialog @@ -172,7 +196,7 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte val t2 = doAsync { try { - timeTableWeek = timeTableParser.getTimeTable("https://www.hs-offenburg.de/index.php?id=6627&class=class&iddV=DA64F6FE-9DDB-429E-A677-05D0D40CB636&week=0") + timeTableWeek = timeTableParser.getTimeTable(course.courseTTLink) }catch (e: Exception) { e.stackTrace } @@ -197,4 +221,8 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte return weekMenus } + fun getCourse(): CourseTTLink { + return course + } + } diff --git a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/SettingsFragment.kt b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/SettingsFragment.kt index a0176cd..b662bfa 100644 --- a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/SettingsFragment.kt +++ b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/SettingsFragment.kt @@ -72,6 +72,12 @@ class SettingsFragment : Fragment() { return view } + override fun onViewCreated(view: View, savedInstanceState: Bundle?) { + super.onViewCreated(view, savedInstanceState) + + txtView_Course.text = mainActivity.getCourse().course + } + /** * initialize some actions for SettingsFragment elements */ diff --git a/app/src/main/java/org/mosad/seil0/projectlaogai/hsoparser/TimeTableParser.kt b/app/src/main/java/org/mosad/seil0/projectlaogai/hsoparser/TimeTableParser.kt index a8bb55d..755c14e 100644 --- a/app/src/main/java/org/mosad/seil0/projectlaogai/hsoparser/TimeTableParser.kt +++ b/app/src/main/java/org/mosad/seil0/projectlaogai/hsoparser/TimeTableParser.kt @@ -48,12 +48,13 @@ class TimeTableParser { fun getTimeTable(courseTTURL: String): Array> { val scheduleHTML = Jsoup.connect(courseTTURL).get() -// val week = scheduleHTML.select("h1.timetable-caption").text() -// println("$week successful!\n") + //val week = scheduleHTML.select("h1.timetable-caption").text() + //println("$week successful!\n") scheduleHTML.select("table.timetable").select("td.lastcol").forEachIndexed { index, element -> timeTableWeek[index % 6][index / 6] = Lesson(element.select("div.lesson-subject").text(), element.select("div.lesson-teacher").text(), element.select("div.lesson-room").text(), element.select("div.lesson-remark").text()) } + return timeTableWeek } @@ -69,6 +70,7 @@ class TimeTableParser { return courseTTLinkList } + fun printTimeTableWeek (timeTableWeek: Array>) { for (j in 0..5) print(days[j].padEnd(25 ,' ') + " | ") diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 3fdc62d..ca52857 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.1.4 + hso App 0.2.0 seil0@mosad.xyz Project Laogai @@ -34,7 +34,7 @@ primary color The primary color, default is indigo select - version 0.1.4 + version 0.2.0 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 " @@ -43,4 +43,7 @@ soon ™ %1$s\n + + org.mosag.seil0.projectlaogai.couse + org.mosag.seil0.projectlaogai.couseTTLink