diff --git a/app/src/main/java/com/ethosa/ktc/ui/adapters/TimetableAdapter.kt b/app/src/main/java/com/ethosa/ktc/ui/adapters/TimetableAdapter.kt index eb98013..2eb9b41 100644 --- a/app/src/main/java/com/ethosa/ktc/ui/adapters/TimetableAdapter.kt +++ b/app/src/main/java/com/ethosa/ktc/ui/adapters/TimetableAdapter.kt @@ -37,8 +37,7 @@ class TimetableAdapter( init { val calendar = Calendar.getInstance() var day = calendar.get(Calendar.DAY_OF_WEEK) - val firstDay = calendar.firstDayOfWeek - if (firstDay == Calendar.SUNDAY) { + if (calendar.firstDayOfWeek == Calendar.SUNDAY) { if (day == 1) day = 7 else diff --git a/app/src/main/java/com/ethosa/ktc/ui/widgets/TeacherTimetableWidget.kt b/app/src/main/java/com/ethosa/ktc/ui/widgets/TeacherTimetableWidget.kt index ec94520..6ab12fa 100644 --- a/app/src/main/java/com/ethosa/ktc/ui/widgets/TeacherTimetableWidget.kt +++ b/app/src/main/java/com/ethosa/ktc/ui/widgets/TeacherTimetableWidget.kt @@ -13,6 +13,7 @@ import com.ethosa.ktc.Preferences import com.ethosa.ktc.R import com.ethosa.ktc.college.CollegeApi import com.ethosa.ktc.college.CollegeCallback +import com.ethosa.ktc.college.teacher.TeacherDay import com.ethosa.ktc.college.teacher.TeacherTimetable import com.ethosa.ktc.ui.activities.MainActivity import com.google.gson.Gson @@ -104,7 +105,13 @@ class TeacherTimetableWidget : AppWidgetProvider() { val teacherId = Preferences.teacherId val branchId = Preferences.branch.id val calendar = Calendar.getInstance() - val weekday = calendar.get(Calendar.DAY_OF_WEEK) + var weekday = calendar.get(Calendar.DAY_OF_WEEK) + if (calendar.firstDayOfWeek == Calendar.SUNDAY) { + if (weekday == 1) + weekday = 7 + else + weekday-- + } CollegeApi.fetchTeacherTimetable(branchId, teacherId, object : CollegeCallback { @SuppressLint("SetTextI18n") @@ -118,24 +125,31 @@ class TeacherTimetableWidget : AppWidgetProvider() { views.setTextViewText( R.id.timetable_widget_title, "Ошибка расписания" ) + appWidgetManager.updateAppWidget(appWidgetId, views) return } catch (e: Exception) { views.setTextViewText( R.id.timetable_widget_title, "Неизвестная ошибка" ) + appWidgetManager.updateAppWidget(appWidgetId, views) return } - println(weekday) // Get current day timetable - val day = - when { - weekday >= 2 -> timetable.week[weekday-2] - weekday > 1 -> timetable.week[1] - else -> timetable.week[0] - } + val day: TeacherDay? = when (weekday) { + 7 -> null + 1 -> timetable.week[0] + else -> timetable.week[weekday-1] + } + if (day == null) { + views.setTextViewText(R.id.timetable_widget_title, "Выходной") + appWidgetManager.updateAppWidget(appWidgetId, views) + return + } // Setup widget - views.setTextViewText(R.id.timetable_widget_title, "${timetable.teacher} - ${day.title}") + views.setTextViewText( + R.id.timetable_widget_title, "${timetable.teacher} - ${day.title}" + ) views.removeAllViews(R.id.timetable_widget_lessons) // Setup views diff --git a/app/src/main/java/com/ethosa/ktc/ui/widgets/TimetableWidget.kt b/app/src/main/java/com/ethosa/ktc/ui/widgets/TimetableWidget.kt index 38d6c53..f61e653 100644 --- a/app/src/main/java/com/ethosa/ktc/ui/widgets/TimetableWidget.kt +++ b/app/src/main/java/com/ethosa/ktc/ui/widgets/TimetableWidget.kt @@ -13,6 +13,7 @@ import com.ethosa.ktc.Preferences import com.ethosa.ktc.R import com.ethosa.ktc.college.CollegeApi import com.ethosa.ktc.college.CollegeCallback +import com.ethosa.ktc.college.timetable.Day import com.ethosa.ktc.college.timetable.Week import com.ethosa.ktc.ui.activities.MainActivity import com.google.gson.Gson @@ -104,7 +105,13 @@ class TimetableWidget : AppWidgetProvider() { // Load last group ID val groupId = Preferences.group.id val calendar = Calendar.getInstance() - val weekday = calendar.get(Calendar.DAY_OF_WEEK) + var weekday = calendar.get(Calendar.DAY_OF_WEEK) + if (calendar.firstDayOfWeek == Calendar.SUNDAY) { + if (weekday == 1) + weekday = 7 + else + weekday-- + } val now = "${calendar.get(Calendar.HOUR_OF_DAY)}:${Calendar.MINUTE}" val dateFormat = SimpleDateFormat("mm:ss") @@ -121,21 +128,26 @@ class TimetableWidget : AppWidgetProvider() { views.setTextViewText( R.id.timetable_widget_title, "Ошибка расписания" ) + appWidgetManager.updateAppWidget(appWidgetId, views) return } catch (e: Exception) { views.setTextViewText( R.id.timetable_widget_title, "Неизвестная ошибка" ) + appWidgetManager.updateAppWidget(appWidgetId, views) return } - println(weekday) // Get current day timetable - val day = - when { - weekday >= 2 -> timetable.days[weekday-2] - weekday > 1 -> timetable.days[1] - else -> timetable.days[0] - } + val day: Day? = when (weekday) { + 7 -> null + 1 -> timetable.days[0] + else -> timetable.days[weekday-1] + } + if (day == null) { + views.setTextViewText(R.id.timetable_widget_title, "Выходной") + appWidgetManager.updateAppWidget(appWidgetId, views) + return + } // Setup widget views.setTextViewText(R.id.timetable_widget_title, day.title) diff --git a/app/src/main/res/xml/timetable_widget_info.xml b/app/src/main/res/xml/timetable_widget_info.xml index da19141..c3f702f 100644 --- a/app/src/main/res/xml/timetable_widget_info.xml +++ b/app/src/main/res/xml/timetable_widget_info.xml @@ -1,16 +1,16 @@ - \ No newline at end of file