diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaFragment.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaFragment.kt index 0718f7c7..0201418a 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaFragment.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaFragment.kt @@ -1,6 +1,9 @@ package com.dongyang.android.youdongknowme.ui.view.cafeteria +import android.annotation.SuppressLint +import android.view.MotionEvent import android.view.View +import androidx.recyclerview.widget.RecyclerView import androidx.window.layout.WindowMetricsCalculator import com.dongyang.android.youdongknowme.R import com.dongyang.android.youdongknowme.databinding.FragmentCafeteriaBinding @@ -16,6 +19,7 @@ import org.koin.androidx.viewmodel.ext.android.viewModel import java.time.DayOfWeek import java.time.LocalDate import java.time.YearMonth +import java.time.temporal.TemporalAdjusters class CafeteriaFragment : BaseFragment(), @@ -24,19 +28,19 @@ class CafeteriaFragment : BaseFragment + when (event.actionMasked) { + MotionEvent.ACTION_DOWN, MotionEvent.ACTION_MOVE -> { + true + } + + else -> false + } + } + } + + private fun findNearestMonday(currentDate: LocalDate): LocalDate { + return when (currentDate.dayOfWeek) { + DayOfWeek.SATURDAY, DayOfWeek.SUNDAY -> { + currentDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY)) + } + + DayOfWeek.MONDAY -> { + currentDate + } + + else -> { + currentDate.with(TemporalAdjusters.previous(DayOfWeek.MONDAY)) + } + } } override fun onPause() { diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaViewModel.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaViewModel.kt index 0bd1b832..d4606ccd 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaViewModel.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CafeteriaViewModel.kt @@ -50,7 +50,7 @@ class CafeteriaViewModel( val menuList = result.data _cafeteriaList.value = menuList _selectedDate.value = LocalDate.now() - updateMenuList(selectedDate.toString()) + selectedDate.value?.let { updateMenuList(it) } _isError.postValue(false) _isLoading.postValue(false) } @@ -64,8 +64,11 @@ class CafeteriaViewModel( } } - fun updateMenuList(selectedDate: String) { + fun updateMenuList(selectedDate: LocalDate) { val cafeteriaList = _cafeteriaList.value ?: emptyList() - _menus.postValue(cafeteriaList.find { it.date == selectedDate }?.menus ?: emptyMenu) + _selectedDate.value = selectedDate + _menus.postValue( + cafeteriaList.find { it.date == selectedDate.toString() }?.menus ?: emptyMenu + ) } } diff --git a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CalendarInterface.kt b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CalendarInterface.kt index 8fc24bd6..a71cf464 100644 --- a/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CalendarInterface.kt +++ b/app/src/main/java/com/dongyang/android/youdongknowme/ui/view/cafeteria/CalendarInterface.kt @@ -10,7 +10,7 @@ interface CalendarInterface { oldDate: LocalDate?, selectedDate: LocalDate ) { - viewModel.updateMenuList(selectedDate.toString()) + viewModel.updateMenuList(selectedDate) calendarView.notifyDateChanged(selectedDate) oldDate?.let { calendarView.notifyDateChanged(it) } } diff --git a/app/src/main/res/layout/fragment_cafeteria.xml b/app/src/main/res/layout/fragment_cafeteria.xml index 46b4c457..73f25c17 100644 --- a/app/src/main/res/layout/fragment_cafeteria.xml +++ b/app/src/main/res/layout/fragment_cafeteria.xml @@ -34,6 +34,7 @@ android:id="@+id/cv_cafeteria_calendar" android:layout_width="0dp" android:layout_height="wrap_content" + android:scrollbars="none" app:cv_dayViewResource="@layout/item_calendar_day" app:cv_hasBoundaries="false" app:cv_inDateStyle="none" @@ -51,7 +52,7 @@ android:layout_height="wrap_content" android:gravity="center" android:orientation="horizontal" - android:paddingVertical="16dp" + android:paddingVertical="12dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" app:layout_constraintTop_toBottomOf="@id/cv_cafeteria_calendar"> @@ -63,27 +64,27 @@ @@ -107,6 +108,21 @@ android:layout_gravity="center" /> + + + app:layout_constraintTop_toBottomOf="@id/cafeteria_info_container" + app:strokeColor="@color/blue300" + app:strokeWidth="2dp"> + android:orientation="vertical" + android:padding="8dp" > @@ -154,20 +171,21 @@ android:layout_height="wrap_content" android:layout_marginHorizontal="16dp" android:layout_marginTop="20dp" - android:outlineSpotShadowColor="@color/blue300" app:cardCornerRadius="16dp" - app:cardElevation="8dp" app:layout_constraintEnd_toEndOf="parent" app:layout_constraintStart_toStartOf="parent" - app:layout_constraintTop_toBottomOf="@id/mv_cafeteria_menu"> + app:layout_constraintTop_toBottomOf="@id/mv_cafeteria_menu" + app:strokeColor="@color/blue300" + app:strokeWidth="2dp"> + android:orientation="vertical" + android:padding="8dp" > diff --git a/app/src/main/res/layout/item_calendar_day.xml b/app/src/main/res/layout/item_calendar_day.xml index a53af55b..3c9057e5 100644 --- a/app/src/main/res/layout/item_calendar_day.xml +++ b/app/src/main/res/layout/item_calendar_day.xml @@ -6,7 +6,6 @@ diff --git a/app/src/main/res/values/styles.xml b/app/src/main/res/values/styles.xml index f040ac27..106c403b 100644 --- a/app/src/main/res/values/styles.xml +++ b/app/src/main/res/values/styles.xml @@ -19,7 +19,7 @@