don't use the faBtn in MensaFragment, use it in TimetableFragment
This commit is contained in:
parent
4838c9406c
commit
01db6bb451
|
@ -22,15 +22,11 @@
|
||||||
|
|
||||||
package org.mosad.seil0.projectlaogai.fragments
|
package org.mosad.seil0.projectlaogai.fragments
|
||||||
|
|
||||||
import android.os.Build
|
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
import android.widget.ScrollView
|
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import com.afollestad.materialdialogs.MaterialDialog
|
|
||||||
import com.google.android.material.floatingactionbutton.FloatingActionButton
|
|
||||||
import kotlinx.android.synthetic.main.fragment_mensa.*
|
import kotlinx.android.synthetic.main.fragment_mensa.*
|
||||||
import org.jetbrains.anko.doAsync
|
import org.jetbrains.anko.doAsync
|
||||||
import org.jetbrains.anko.uiThread
|
import org.jetbrains.anko.uiThread
|
||||||
|
@ -47,21 +43,16 @@ import org.mosad.seil0.projectlaogai.uicomponents.MealLinearLayout
|
||||||
/**
|
/**
|
||||||
* The mensa controller class
|
* The mensa controller class
|
||||||
* contains all needed parts to display and the mensa detail screen
|
* contains all needed parts to display and the mensa detail screen
|
||||||
|
* TODO investigate reading the mensa card value via nfc in a background task, show value if card detected
|
||||||
*/
|
*/
|
||||||
class MensaFragment : Fragment() {
|
class MensaFragment : Fragment() {
|
||||||
|
|
||||||
private lateinit var btnCardValue: FloatingActionButton
|
|
||||||
private lateinit var scrollViewMensa: ScrollView
|
|
||||||
|
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||||
|
|
||||||
val view: View = inflater.inflate(R.layout.fragment_mensa, container, false)
|
val view: View = inflater.inflate(R.layout.fragment_mensa, container, false)
|
||||||
|
|
||||||
btnCardValue = view.findViewById(R.id.btnCardValue)
|
|
||||||
scrollViewMensa = view.findViewById(R.id.scrollView_Mensa)
|
|
||||||
|
|
||||||
// init actions
|
// init actions
|
||||||
initActions()
|
refreshAction()
|
||||||
|
|
||||||
// add the current week (week starts on sunday)
|
// add the current week (week starts on sunday)
|
||||||
val dayCurrent = if(NotRetardedCalendar().getDayOfWeekIndex() == 6) 0 else NotRetardedCalendar().getDayOfWeekIndex()
|
val dayCurrent = if(NotRetardedCalendar().getDayOfWeekIndex() == 6) 0 else NotRetardedCalendar().getDayOfWeekIndex()
|
||||||
|
@ -75,32 +66,6 @@ class MensaFragment : Fragment() {
|
||||||
return view
|
return view
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun initActions() {
|
|
||||||
refreshAction() // must be async
|
|
||||||
|
|
||||||
btnCardValue.setOnClickListener {
|
|
||||||
MaterialDialog(context!!)
|
|
||||||
.title(text = "Mensa-Karte")
|
|
||||||
.message(text = "das aktuelle Guthaben beträgt\n\n13,70€")
|
|
||||||
.show()
|
|
||||||
}
|
|
||||||
|
|
||||||
// TODO only works with android m(23) or higher
|
|
||||||
// hide the btnCardValue if the user is scrolling down
|
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
|
||||||
scrollViewMensa.setOnScrollChangeListener(object: View.OnScrollChangeListener {
|
|
||||||
override fun onScrollChange(v: View?, scrollX: Int, scrollY: Int, oldScrollX: Int, oldScrollY: Int) {
|
|
||||||
if (scrollY > oldScrollY) {
|
|
||||||
btnCardValue.hide()
|
|
||||||
} else {
|
|
||||||
btnCardValue.show()
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* add all menus from dayStart to Friday for a given week
|
* add all menus from dayStart to Friday for a given week
|
||||||
* @param menusWeek menu of type MensaWeek you want to add
|
* @param menusWeek menu of type MensaWeek you want to add
|
||||||
|
|
|
@ -22,12 +22,15 @@
|
||||||
|
|
||||||
package org.mosad.seil0.projectlaogai.fragments
|
package org.mosad.seil0.projectlaogai.fragments
|
||||||
|
|
||||||
|
import android.os.Build
|
||||||
import android.os.Bundle
|
import android.os.Bundle
|
||||||
import android.view.LayoutInflater
|
import android.view.LayoutInflater
|
||||||
import android.view.View
|
import android.view.View
|
||||||
import android.view.ViewGroup
|
import android.view.ViewGroup
|
||||||
|
import android.widget.ScrollView
|
||||||
import androidx.fragment.app.Fragment
|
import androidx.fragment.app.Fragment
|
||||||
import com.afollestad.materialdialogs.MaterialDialog
|
import com.afollestad.materialdialogs.MaterialDialog
|
||||||
|
import com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
import kotlinx.android.synthetic.main.fragment_timetable.*
|
import kotlinx.android.synthetic.main.fragment_timetable.*
|
||||||
import org.jetbrains.anko.doAsync
|
import org.jetbrains.anko.doAsync
|
||||||
import org.jetbrains.anko.uiThread
|
import org.jetbrains.anko.uiThread
|
||||||
|
@ -50,13 +53,17 @@ import java.util.*
|
||||||
class TimeTableFragment : Fragment() {
|
class TimeTableFragment : Fragment() {
|
||||||
|
|
||||||
private val formatter = SimpleDateFormat("E dd.MM", Locale.getDefault())
|
private val formatter = SimpleDateFormat("E dd.MM", Locale.getDefault())
|
||||||
|
private lateinit var scrollViewTimetable: ScrollView
|
||||||
|
private lateinit var faBtnAddLesson: FloatingActionButton
|
||||||
|
|
||||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||||
|
|
||||||
val view: View = inflater.inflate(R.layout.fragment_timetable, container, false)
|
val view: View = inflater.inflate(R.layout.fragment_timetable, container, false)
|
||||||
|
scrollViewTimetable = view.findViewById(R.id.scrollView_Timetable)
|
||||||
|
faBtnAddLesson = view.findViewById(R.id.faBtnAddLesson)
|
||||||
|
|
||||||
// init actions
|
// init actions
|
||||||
refreshAction()
|
initActions()
|
||||||
|
|
||||||
if (timetables[0].days.isNotEmpty() && timetables[1].days.isNotEmpty()) {
|
if (timetables[0].days.isNotEmpty() && timetables[1].days.isNotEmpty()) {
|
||||||
addInitWeeks()
|
addInitWeeks()
|
||||||
|
@ -70,6 +77,38 @@ class TimeTableFragment : Fragment() {
|
||||||
return view
|
return view
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* initialize the actions
|
||||||
|
*/
|
||||||
|
private fun initActions() = doAsync {
|
||||||
|
|
||||||
|
uiThread {
|
||||||
|
refreshLayout_Timetable.setOnRefreshListener {
|
||||||
|
updateTimetableScreen()
|
||||||
|
}
|
||||||
|
|
||||||
|
faBtnAddLesson.setOnClickListener {
|
||||||
|
MaterialDialog(context!!)
|
||||||
|
.title(text = "Vorlesung hinzufügen")
|
||||||
|
.message(text = "wähle einen Studiengang aus:\n\nWähle eine Vorlesung aus: \n\n Diese Funktion ist noch nicht verfügbar")
|
||||||
|
.show()
|
||||||
|
}
|
||||||
|
|
||||||
|
// TODO only works with android m(23) or higher
|
||||||
|
// hide the btnCardValue if the user is scrolling down
|
||||||
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
|
||||||
|
scrollViewTimetable.setOnScrollChangeListener { v, scrollX, scrollY, oldScrollX, oldScrollY ->
|
||||||
|
if (scrollY > oldScrollY) {
|
||||||
|
faBtnAddLesson.hide()
|
||||||
|
} else {
|
||||||
|
faBtnAddLesson.show()
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* add the current and next weeks lessons
|
* add the current and next weeks lessons
|
||||||
*/
|
*/
|
||||||
|
@ -124,19 +163,6 @@ class TimeTableFragment : Fragment() {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
|
||||||
* initialize the refresh action
|
|
||||||
*/
|
|
||||||
private fun refreshAction() = doAsync {
|
|
||||||
uiThread {
|
|
||||||
// set the refresh listener
|
|
||||||
refreshLayout_Timetable.setOnRefreshListener {
|
|
||||||
updateTimetableScreen()
|
|
||||||
}
|
|
||||||
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
private fun updateTimetableScreen() = doAsync {
|
private fun updateTimetableScreen() = doAsync {
|
||||||
// update the cache
|
// update the cache
|
||||||
TCoRAPIController.getTimetable(cCourse.courseName, 0, context!!).get() // blocking since we want the new data
|
TCoRAPIController.getTimetable(cCourse.courseName, 0, context!!).get() // blocking since we want the new data
|
||||||
|
|
|
@ -23,13 +23,5 @@
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||||
|
|
||||||
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
|
||||||
android:src="@drawable/ic_local_dining_black_24dp"
|
|
||||||
android:layout_width="wrap_content"
|
|
||||||
android:layout_height="wrap_content"
|
|
||||||
android:clickable="true" android:id="@+id/btnCardValue" android:visibility="visible"
|
|
||||||
android:layout_gravity="bottom|center|end" android:elevation="7dp" android:focusable="true"
|
|
||||||
android:layout_marginEnd="7dp" android:layout_marginBottom="7dp"/>
|
|
||||||
|
|
||||||
|
|
||||||
</FrameLayout>
|
</FrameLayout>
|
|
@ -1,6 +1,6 @@
|
||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
|
||||||
xmlns:tools="http://schemas.android.com/tools"
|
xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent"
|
android:layout_height="match_parent"
|
||||||
tools:context=".fragments.TimeTableFragment">
|
tools:context=".fragments.TimeTableFragment">
|
||||||
|
@ -12,7 +12,7 @@
|
||||||
|
|
||||||
<ScrollView
|
<ScrollView
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="match_parent">
|
android:layout_height="match_parent" android:id="@+id/scrollView_Timetable">
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
android:orientation="vertical"
|
android:orientation="vertical"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
|
@ -22,4 +22,11 @@
|
||||||
android:id="@+id/linLayout_Timetable"/>
|
android:id="@+id/linLayout_Timetable"/>
|
||||||
</ScrollView>
|
</ScrollView>
|
||||||
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
</androidx.swiperefreshlayout.widget.SwipeRefreshLayout>
|
||||||
|
<com.google.android.material.floatingactionbutton.FloatingActionButton
|
||||||
|
android:src="@drawable/icon_custom_black"
|
||||||
|
android:layout_width="wrap_content"
|
||||||
|
android:layout_height="wrap_content"
|
||||||
|
android:clickable="true" android:id="@+id/faBtnAddLesson" android:elevation="7dp"
|
||||||
|
android:visibility="visible" android:layout_gravity="bottom|center|end" android:layout_marginEnd="7dp"
|
||||||
|
android:layout_marginBottom="11dp" android:focusable="true"/>
|
||||||
</FrameLayout>
|
</FrameLayout>
|
|
@ -1,4 +1,4 @@
|
||||||
ProjectLaogai ist eine App um den Vorlesungsplan und den Mensa Speiseplan der Hochschule Offenburg anzuzeigen.
|
ProjectLaogai ist eine App um den Vorlesungsplan und den Mensa-Speiseplan der Hochschule Offenburg anzuzeigen.
|
||||||
|
|
||||||
Features:
|
Features:
|
||||||
* schaue was es diese und nächste Woche in der Mensa zu Essen gibt
|
* schaue was es diese und nächste Woche in der Mensa zu Essen gibt
|
||||||
|
|
Loading…
Reference in New Issue