home screen redesign
This commit is contained in:
parent
a4eaea2918
commit
e51a80b78d
|
@ -22,11 +22,13 @@
|
|||
|
||||
package org.mosad.seil0.projectlaogai.fragments
|
||||
|
||||
import android.graphics.Typeface
|
||||
import android.os.Bundle
|
||||
import android.view.LayoutInflater
|
||||
import android.view.View
|
||||
import android.view.ViewGroup
|
||||
import android.widget.LinearLayout
|
||||
import android.widget.TextView
|
||||
import androidx.core.content.ContextCompat
|
||||
import androidx.fragment.app.Fragment
|
||||
import com.afollestad.materialdialogs.MaterialDialog
|
||||
import kotlinx.android.synthetic.main.fragment_home.*
|
||||
|
@ -40,8 +42,9 @@ import org.mosad.seil0.projectlaogai.hsoparser.Meal
|
|||
import org.mosad.seil0.projectlaogai.hsoparser.NotRetardedCalendar
|
||||
import org.mosad.seil0.projectlaogai.uicomponents.DayCardView
|
||||
import org.mosad.seil0.projectlaogai.uicomponents.LessonLinearLayout
|
||||
import org.mosad.seil0.projectlaogai.uicomponents.MealLinearLayout
|
||||
import java.text.SimpleDateFormat
|
||||
import java.util.*
|
||||
import kotlin.collections.ArrayList
|
||||
|
||||
/**
|
||||
* The "home" controller class
|
||||
|
@ -49,18 +52,14 @@ import kotlin.collections.ArrayList
|
|||
*/
|
||||
class HomeFragment : Fragment() {
|
||||
|
||||
private lateinit var linLayoutTimeTable: LinearLayout
|
||||
val formatter = SimpleDateFormat("E dd.MM", Locale.GERMANY)
|
||||
|
||||
override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
|
||||
|
||||
val view: View = inflater.inflate(R.layout.fragment_home, container, false)
|
||||
|
||||
// init UI elements
|
||||
linLayoutTimeTable = view.findViewById(R.id.linLayoutTimeTable)
|
||||
|
||||
//setText()
|
||||
addCurrentMensaMenu()
|
||||
addCurrentTimeTable()
|
||||
addMensaMenu()
|
||||
addTimeTable()
|
||||
|
||||
// Inflate the layout for this fragment
|
||||
return view
|
||||
|
@ -69,54 +68,55 @@ class HomeFragment : Fragment() {
|
|||
/**
|
||||
* add the current mensa meal to the home screens
|
||||
*/
|
||||
private fun addCurrentMensaMenu() {
|
||||
private fun addMensaMenu() {
|
||||
doAsync {
|
||||
val dayMeals: ArrayList<Meal>
|
||||
val cal = Calendar.getInstance()
|
||||
|
||||
var dayMeals: ArrayList<Meal>
|
||||
val cal = Calendar.getInstance()
|
||||
val mensaCardView = DayCardView(context!!)
|
||||
|
||||
uiThread {
|
||||
|
||||
if (cal.get(Calendar.HOUR_OF_DAY) < 15) {
|
||||
dayMeals = mensaCurrentWeek.days[NotRetardedCalendar().getDayOfWeekIndex()].meals
|
||||
mensaCardView.setDayHeading(resources.getString(R.string.today_date, formatter.format(cal.time)))
|
||||
} else {
|
||||
dayMeals = mensaCurrentWeek.days[NotRetardedCalendar().getTomorrowWeekIndex()].meals
|
||||
uiThread {
|
||||
txtView_Menu1Heading.text = resources.getString(R.string.meal_1_tomorrow)
|
||||
txtView_Menu2Heading.text = resources.getString(R.string.meal_2_tomorrow)
|
||||
cal.add(Calendar.DATE, 1)
|
||||
mensaCardView.setDayHeading(resources.getString(R.string.tomorrow_date, formatter.format(cal.time)))
|
||||
}
|
||||
}
|
||||
|
||||
uiThread {
|
||||
|
||||
if (dayMeals.size >= 2) {
|
||||
// get the index of the first meal, not a "Schneller Teller"
|
||||
loop@ for ((i, meal) in dayMeals.withIndex()) {
|
||||
if (meal.heading.contains("Essen")) {
|
||||
|
||||
dayMeals[i].parts.forEachIndexed { index, part ->
|
||||
txtViewMenu1.append(part)
|
||||
if (index < (dayMeals[i].parts.size - 1))
|
||||
txtViewMenu1.append("\n")
|
||||
}
|
||||
val meal1Layout = MealLinearLayout(context)
|
||||
meal1Layout.setMeal(dayMeals[i])
|
||||
mensaCardView.getLinLayoutDay().addView(meal1Layout)
|
||||
|
||||
dayMeals[i + 1].parts.forEachIndexed { index, part ->
|
||||
txtViewMenu2.append(part)
|
||||
if (index < (dayMeals[i + 1].parts.size - 1))
|
||||
txtViewMenu2.append("\n")
|
||||
}
|
||||
val meal2Layout = MealLinearLayout(context)
|
||||
meal2Layout.setMeal(dayMeals[i + 1])
|
||||
meal2Layout.disableDivider()
|
||||
mensaCardView.getLinLayoutDay().addView(meal2Layout)
|
||||
|
||||
break@loop
|
||||
}
|
||||
}
|
||||
|
||||
} else {
|
||||
if (txtView_Menu1Heading.text == resources.getString(R.string.meal_1_tomorrow)) {
|
||||
txtViewMenu1.text = resources.getString(R.string.no_meal_tomorrow)
|
||||
txtViewMenu2.text = resources.getString(R.string.no_meal_tomorrow)
|
||||
} else {
|
||||
txtViewMenu1.text = resources.getString(R.string.no_meal_today)
|
||||
txtViewMenu2.text = resources.getString(R.string.no_meal_today)
|
||||
}
|
||||
val noFood = TextView(context)
|
||||
noFood.text = resources.getString(R.string.mensa_closed)
|
||||
noFood.setTextColor(ContextCompat.getColor(context!!, R.color.textPrimary))
|
||||
noFood.textSize = 18.0F
|
||||
noFood.setTypeface(null, Typeface.BOLD)
|
||||
noFood.textAlignment = View.TEXT_ALIGNMENT_CENTER
|
||||
noFood.setPadding(7,7,7,7)
|
||||
|
||||
mensaCardView.getLinLayoutDay().addView(noFood)
|
||||
}
|
||||
|
||||
linLayout_Home.addView(mensaCardView)
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -125,11 +125,14 @@ class HomeFragment : Fragment() {
|
|||
/**
|
||||
* add the current timetable to the home screen
|
||||
*/
|
||||
private fun addCurrentTimeTable() {
|
||||
private fun addTimeTable() {
|
||||
val dayIndex = NotRetardedCalendar().getDayOfWeekIndex()
|
||||
var helpLesson = LessonLinearLayout(context!!)
|
||||
val dayCardView = DayCardView(context!!)
|
||||
dayCardView.setDayHeading("Heute")
|
||||
dayCardView.setDayHeading(resources.getString(R.string.today_date, formatter.format(Calendar.getInstance().time)))
|
||||
|
||||
doAsync {
|
||||
uiThread {
|
||||
|
||||
if (timetables[0].days.isNotEmpty() && dayIndex < 6) {
|
||||
|
||||
|
@ -155,13 +158,13 @@ class HomeFragment : Fragment() {
|
|||
helpLesson.disableDivider()
|
||||
// if there are no lessons don't show the dayCardView
|
||||
if (dayCardView.getLinLayoutDay().childCount > 1) {
|
||||
linLayoutTimeTable.addView(dayCardView)
|
||||
linLayout_Home.addView(dayCardView)
|
||||
} else {
|
||||
// TODO we could display the next day with a lecture
|
||||
val noLesson = DayCardView(context!!)
|
||||
noLesson.setDayHeading(resources.getString(R.string.no_lesson_today))
|
||||
|
||||
linLayoutTimeTable.addView(noLesson)
|
||||
linLayout_Home.addView(noLesson)
|
||||
}
|
||||
} else {
|
||||
if (dayIndex == 6) {
|
||||
|
@ -169,7 +172,7 @@ class HomeFragment : Fragment() {
|
|||
val noLesson = DayCardView(context!!)
|
||||
noLesson.setDayHeading(resources.getString(R.string.no_lesson_today))
|
||||
|
||||
linLayoutTimeTable.addView(noLesson)
|
||||
linLayout_Home.addView(noLesson)
|
||||
} else {
|
||||
MaterialDialog(context!!)
|
||||
.title(R.string.error)
|
||||
|
@ -179,6 +182,10 @@ class HomeFragment : Fragment() {
|
|||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -26,7 +26,6 @@ import android.content.Context
|
|||
import android.view.View
|
||||
import android.widget.LinearLayout
|
||||
import androidx.cardview.widget.CardView
|
||||
import kotlinx.android.synthetic.main.linearlayout_lesson.view.*
|
||||
import kotlinx.android.synthetic.main.linearlayout_meal.view.*
|
||||
import org.mosad.seil0.projectlaogai.R
|
||||
import org.mosad.seil0.projectlaogai.hsoparser.Meal
|
||||
|
|
|
@ -10,97 +10,13 @@
|
|||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent">
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/cardView"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_marginStart="3dp"
|
||||
android:layout_marginTop="5dp"
|
||||
android:layout_marginEnd="3dp"
|
||||
android:clickable="false"
|
||||
android:maxHeight="125dp"
|
||||
app:cardUseCompatPadding="true"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="1.0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toTopOf="parent" android:elevation="5dp">
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" android:layout_marginBottom="2dp">
|
||||
<TextView
|
||||
android:text="@string/meal_1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" android:id="@+id/txtView_Menu1Heading"
|
||||
android:textStyle="bold" android:textAlignment="center" android:textSize="16sp"
|
||||
android:typeface="sans" android:fontFamily="sans-serif" android:paddingBottom="5dp"/>
|
||||
<TextView
|
||||
android:id="@+id/txtViewMenu1"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif"
|
||||
android:textAlignment="center"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:typeface="sans"
|
||||
android:textIsSelectable="true"/>
|
||||
</LinearLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
|
||||
<androidx.cardview.widget.CardView
|
||||
android:id="@+id/cardView2"
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="wrap_content"
|
||||
app:cardUseCompatPadding="true"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintHorizontal_bias="1.0"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/cardView" android:elevation="5dp"
|
||||
android:layout_marginEnd="3dp" android:layout_marginStart="3dp">
|
||||
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="match_parent" android:layout_marginBottom="2dp">
|
||||
<TextView
|
||||
android:text="@string/meal_2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" android:id="@+id/txtView_Menu2Heading"
|
||||
android:textAlignment="center" android:textStyle="bold" android:textSize="16sp"
|
||||
android:typeface="sans" android:fontFamily="sans-serif" android:paddingBottom="5dp"/>
|
||||
<TextView
|
||||
android:id="@+id/txtViewMenu2"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:fontFamily="sans-serif"
|
||||
android:textAlignment="center"
|
||||
android:textSize="16sp"
|
||||
android:textStyle="bold"
|
||||
android:typeface="sans"
|
||||
android:textIsSelectable="true"/>
|
||||
</LinearLayout>
|
||||
</androidx.cardview.widget.CardView>
|
||||
<ScrollView
|
||||
android:layout_width="0dp"
|
||||
android:layout_height="0dp"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/cardView2" android:id="@+id/scrollViewTimeTable"
|
||||
android:background="@color/md_divider_dark_theme" android:paddingTop="6dp"
|
||||
android:layout_marginTop="5dp">
|
||||
|
||||
<LinearLayout
|
||||
android:id="@+id/linLayoutTimeTable"
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content"
|
||||
android:layout_height="match_parent">
|
||||
<LinearLayout
|
||||
android:orientation="vertical"
|
||||
app:layout_constraintBottom_toBottomOf="parent"
|
||||
app:layout_constraintEnd_toEndOf="parent"
|
||||
app:layout_constraintStart_toStartOf="parent"
|
||||
app:layout_constraintTop_toBottomOf="@+id/cardView2">
|
||||
|
||||
android:layout_width="match_parent"
|
||||
android:layout_height="wrap_content" android:id="@+id/linLayout_Home">
|
||||
</LinearLayout>
|
||||
</ScrollView>
|
||||
|
||||
|
|
|
@ -7,10 +7,9 @@
|
|||
<string name="settings">Einstellungen</string>
|
||||
<string name="meal_1">Essen 1</string>
|
||||
<string name="meal_2">Essen 2</string>
|
||||
<string name="meal_1_tomorrow">Essen 1, Morgen</string>
|
||||
<string name="meal_2_tomorrow">Essen 1, Morgen</string>
|
||||
<string name="no_meal_today">heute keine Essensausgabe</string>
|
||||
<string name="no_meal_tomorrow">morgen keine Essensausgabe</string>
|
||||
<string name="today_date">Heute, %1$s</string>
|
||||
<string name="tomorrow_date">Morgen, %1$s</string>
|
||||
<string name="mensa_closed">keine Essensausgabe</string>
|
||||
<string name="no_more_food">Diese Woche keine weitere Essensausgabe</string>
|
||||
<string name="no_lesson_today">heute keine Vorlesung!</string>
|
||||
<string name="error">Fehler</string>
|
||||
|
|
|
@ -14,10 +14,9 @@
|
|||
|
||||
<string name="meal_1">Meal 1</string>
|
||||
<string name="meal_2">Meal 2</string>
|
||||
<string name="meal_1_tomorrow">Meal 1, tomorrow</string>
|
||||
<string name="meal_2_tomorrow">Meal 2, tomorrow</string>
|
||||
<string name="no_meal_today">Mensa closed today</string>
|
||||
<string name="no_meal_tomorrow">Mensa closed tomorrow</string>
|
||||
<string name="today_date">Today, %1$s</string>
|
||||
<string name="tomorrow_date">Tomorrow, %1$s</string>
|
||||
<string name="mensa_closed">the Mensa is closed</string>
|
||||
<string name="no_more_food">No more Food this week</string>
|
||||
|
||||
<string name="no_lesson_today">"No lecture today!"</string>
|
||||
|
|
Loading…
Reference in New Issue