added a loading diaolg, when you change the course & code cleanup

This commit is contained in:
2018-11-05 20:59:41 +01:00
parent a58d6436b3
commit 2d525c394b
14 changed files with 64 additions and 39 deletions

View File

@ -23,13 +23,13 @@
package org.mosad.seil0.projectlaogai
import android.os.Bundle
import com.google.android.material.navigation.NavigationView
import androidx.core.view.GravityCompat
import androidx.appcompat.app.ActionBarDrawerToggle
import androidx.appcompat.app.AppCompatActivity
import android.view.Menu
import android.view.MenuItem
import androidx.appcompat.app.ActionBarDrawerToggle
import androidx.appcompat.app.AppCompatActivity
import androidx.core.view.GravityCompat
import androidx.fragment.app.FragmentTransaction
import com.google.android.material.navigation.NavigationView
import kotlinx.android.synthetic.main.activity_main.*
import kotlinx.android.synthetic.main.app_bar_main.*
import org.jetbrains.anko.doAsync
@ -38,7 +38,6 @@ import org.mosad.seil0.projectlaogai.fragments.MensaFragment
import org.mosad.seil0.projectlaogai.fragments.SettingsFragment
import org.mosad.seil0.projectlaogai.fragments.TimeTableFragment
import org.mosad.seil0.projectlaogai.hsoparser.*
import kotlin.collections.ArrayList
import kotlin.system.measureTimeMillis
class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelectedListener {
@ -48,8 +47,8 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte
private val timeTableParser = TimeTableParser()
private var weekMenus = ArrayList<Meal>()
private lateinit var timeTableWeek: Array<Array<Lesson>>
private var courseTTLinkList = ArrayList<CourseTTLink>()
private lateinit var timeTableWeek: Array<Array<Lesson>>
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
@ -150,10 +149,7 @@ class MainActivity : AppCompatActivity(), NavigationView.OnNavigationItemSelecte
println(course.course)
println(course.courseTTLink)
// the app is hanging here TODO show loading dialog
doAsync {
timeTableWeek = timeTableParser.getTimeTable(course.courseTTLink.replace("http", "https"))
}.get()
timeTableWeek = timeTableParser.getTimeTable(course.courseTTLink.replace("http", "https"))
}
/**

View File

@ -63,18 +63,22 @@ class HomeFragment : Fragment() {
return view
}
/**
* add the current mensa meal to the home screens
* TODO show meals of the next day if its later than 1500
*/
private fun addCurrentMensaMenu() {
doAsync {
doAsync {
val dayMenus: ArrayList<Meal> = MensaParser().getMensaMenuDay(mainActivity.getWeekMenu(), Calendar.getInstance().get(Calendar.DAY_OF_WEEK))
uiThread {
if (dayMenus.size >= 2) {
for(part in dayMenus[0].parts) {
for (part in dayMenus[0].parts) {
txtViewMenu1.append(part)
}
for(part in dayMenus[1].parts) {
for (part in dayMenus[1].parts) {
txtViewMenu2.append(part)
}
} else {
@ -86,6 +90,9 @@ class HomeFragment : Fragment() {
}
/**
* add the current timetable to the home screen
*/
private fun addCurrentTimeTable() {
val timeTableDay = mainActivity.getCurrentTimeTableWeek()[Calendar.getInstance().get(Calendar.DAY_OF_WEEK) -2]

View File

@ -31,8 +31,11 @@ import android.view.ViewGroup
import android.widget.LinearLayout
import com.afollestad.materialdialogs.MaterialDialog
import com.afollestad.materialdialogs.color.colorChooser
import com.afollestad.materialdialogs.customview.customView
import com.afollestad.materialdialogs.list.listItems
import kotlinx.android.synthetic.main.fragment_settings.*
import org.jetbrains.anko.doAsync
import org.jetbrains.anko.uiThread
import org.mosad.seil0.projectlaogai.MainActivity
import org.mosad.seil0.projectlaogai.R
import org.mosad.seil0.projectlaogai.hsoparser.CourseTTLink
@ -86,12 +89,22 @@ class SettingsFragment : Fragment() {
courseList.add(course)
}
MaterialDialog(context!!)
.listItems(items = courseList){ _, index, text ->
// update txtView
txtView_Course.text = text
MaterialDialog(context!!).listItems(items = courseList){ _, index, text ->
txtView_Course.text = text // update txtView
val dialog = MaterialDialog(context!!).cancelable(false)
.cancelOnTouchOutside(false)
.customView(R.layout.dialog_loading)
dialog.show()
doAsync {
mainActivity.updateCourse(courseTTLinkList[index])
uiThread {
dialog.dismiss()
}
}
mainActivity.updateCourse(courseTTLinkList[index])
}
.show()
}

View File

@ -52,7 +52,6 @@ class MensaParser {
}
}
}
return mealList
}
@ -61,7 +60,7 @@ class MensaParser {
*/
fun getMensaMenuDay(mealList: ArrayList<Meal>, day: Int): ArrayList<Meal> {
val dayMenus = ArrayList<Meal>()
val strDay: String = when(day) {
val strDay: String = when (day) {
Calendar.MONDAY -> "Mon"
Calendar.TUESDAY -> "Die"
Calendar.WEDNESDAY -> "Mit"

View File

@ -21,10 +21,6 @@ class MenuCardView @JvmOverloads constructor(context: Context, attrs: AttributeS
this.setBackgroundColor(Color.TRANSPARENT)
}
fun getTxtViewMenuHeading(): TextView {
return txtViewMenuHeading
}
fun setMenuHeading(heading: String) {
txtViewMenuHeading.text = heading
}