From d6eb1ff1e5d9debd9f04867a4b2e48578ad1f848 Mon Sep 17 00:00:00 2001 From: Jannik Seiler Date: Fri, 28 Aug 2020 23:21:17 +0200 Subject: [PATCH] add refresh gesture to GradesFragment --- .../projectlaogai/fragments/GradesFragment.kt | 25 +++++++++++++------ .../projectlaogai/fragments/MensaFragment.kt | 15 +++++------ .../fragments/TimeTableFragment.kt | 2 +- .../fragments/layout/fragment_grades.xml | 4 +-- 4 files changed, 27 insertions(+), 19 deletions(-) diff --git a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/GradesFragment.kt b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/GradesFragment.kt index 7bdd378..4b505d4 100644 --- a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/GradesFragment.kt +++ b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/GradesFragment.kt @@ -30,7 +30,6 @@ import android.view.ViewGroup import android.widget.TextView import androidx.core.content.res.ResourcesCompat import androidx.fragment.app.Fragment -import androidx.swiperefreshlayout.widget.SwipeRefreshLayout import kotlinx.android.synthetic.main.fragment_grades.* import kotlinx.coroutines.* import org.mosad.seil0.projectlaogai.R @@ -49,8 +48,6 @@ import kotlin.system.measureTimeMillis */ class GradesFragment : Fragment() { - private lateinit var refreshLayoutGrades: SwipeRefreshLayout - private lateinit var parser: QISPOSParser override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? { @@ -60,9 +57,8 @@ class GradesFragment : Fragment() { override fun onViewCreated(view: View, savedInstanceState: Bundle?) { super.onViewCreated(view, savedInstanceState) - refreshLayoutGrades = view.findViewById(R.id.refreshLayout_Grades) - refreshLayoutGrades.isEnabled = false // disable swipe - refreshLayoutGrades.setProgressBackgroundColorSchemeColor(Preferences.themeSecondary) + refreshLayout_Grades.setProgressBackgroundColorSchemeColor(Preferences.themeSecondary) + initActions() parser = QISPOSParser(context!!)// init the parser @@ -74,6 +70,21 @@ class GradesFragment : Fragment() { } } + /** + * initialize the actions + */ + private fun initActions() = GlobalScope.launch(Dispatchers.Default) { + refreshLayout_Grades.setOnRefreshListener { + linLayout_Grades.removeAllViews() // clear layout + // TODO add loading textView + + GlobalScope.launch(Dispatchers.Default) { + CacheController.updateGrades(context!!).join() + addGrades() + } + } + } + /** * check if the credentials are set, if not show a login dialog */ @@ -210,7 +221,7 @@ class GradesFragment : Fragment() { } } - println("startup completed in $addGradesTime ms") + println("added grades in $addGradesTime ms") } } \ No newline at end of file diff --git a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/MensaFragment.kt b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/MensaFragment.kt index 4d83cea..920d416 100644 --- a/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/MensaFragment.kt +++ b/app/src/main/java/org/mosad/seil0/projectlaogai/fragments/MensaFragment.kt @@ -58,7 +58,7 @@ class MensaFragment : Fragment() { refreshLayout_Mensa.setProgressBackgroundColorSchemeColor(Preferences.themeSecondary) - refreshAction() // init actions + initActions() // init actions GlobalScope.launch(Dispatchers.Default) { val dayCurrent = if(NotRetardedCalendar.getDayOfWeekIndex() == 6) 0 else NotRetardedCalendar.getDayOfWeekIndex() @@ -113,15 +113,12 @@ class MensaFragment : Fragment() { } /** - * initialize the refresh action + * initialize the actions */ - private fun refreshAction() = GlobalScope.launch(Dispatchers.Default) { - withContext(Dispatchers.Main) { - // set the refresh listener - refreshLayout_Mensa.setOnRefreshListener { - updateMensaScreen() - } - + private fun initActions() { + // set the refresh listener + refreshLayout_Mensa.setOnRefreshListener { + updateMensaScreen() } } 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 e1c21d6..2ddf4a6 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 @@ -75,7 +75,7 @@ class TimeTableFragment : Fragment() { /** * initialize the actions */ - private fun initActions() = GlobalScope.launch(Dispatchers.Main) { + private fun initActions() { refreshLayout_Timetable.setOnRefreshListener { runBlocking { TimetableController.update(context!!).joinAll() } diff --git a/app/src/main/res/layouts/fragments/layout/fragment_grades.xml b/app/src/main/res/layouts/fragments/layout/fragment_grades.xml index ae133f4..67ec69b 100644 --- a/app/src/main/res/layouts/fragments/layout/fragment_grades.xml +++ b/app/src/main/res/layouts/fragments/layout/fragment_grades.xml @@ -3,13 +3,13 @@ xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" + android:background="?themePrimary" tools:context=".fragments.GradesFragment"> + android:layout_height="match_parent">