Przeglądaj źródła

add week changing

Ethosa 3 lat temu
rodzic
commit
1e06222f63

+ 1 - 1
.idea/misc.xml

@@ -33,7 +33,7 @@
         <entry key="..\:/android projects/KTC/app/src/main/res/layout/fragment_gallery.xml" value="0.371875" />
         <entry key="..\:/android projects/KTC/app/src/main/res/layout/fragment_home.xml" value="0.5" />
         <entry key="..\:/android projects/KTC/app/src/main/res/layout/fragment_news.xml" value="0.3052586575459598" />
-        <entry key="..\:/android projects/KTC/app/src/main/res/layout/fragment_timetable.xml" value="0.371875" />
+        <entry key="..\:/android projects/KTC/app/src/main/res/layout/fragment_timetable.xml" value="0.5" />
         <entry key="..\:/android projects/KTC/app/src/main/res/layout/layout_album_preview.xml" value="0.1573321932449765" />
         <entry key="..\:/android projects/KTC/app/src/main/res/layout/layout_branch.xml" value="0.67" />
         <entry key="..\:/android projects/KTC/app/src/main/res/layout/layout_course.xml" value="0.5" />

+ 30 - 0
app/src/main/java/com/ethosa/ktc/ui/fragments/TimetableFragment.kt

@@ -38,12 +38,14 @@ class TimetableFragment : Fragment() {
     private var state = 0
     var branch: Branch? = null
     var group: Group? = null
+    var week: Int = 0
 
     companion object {
         const val STATE = "state"
         const val BRANCH = "branch"
         const val GROUP = "group"
         const val GROUP_TITLE = "group_title"
+        const val WEEK = "week"
     }
 
     override fun onCreateView(
@@ -65,6 +67,7 @@ class TimetableFragment : Fragment() {
             preferences.getInt(GROUP, 0),
             preferences.getString(GROUP_TITLE, "")!!
         )
+        week = preferences.getInt(WEEK, 0)
         loadState()
 
         // Analog for back button
@@ -73,6 +76,18 @@ class TimetableFragment : Fragment() {
             binding.back.isEnabled = !backState()
         }
 
+        // Next week
+        binding.next.setOnClickListener {
+            if (week < 57)
+                changeWeek(1)
+        }
+
+        // previous week
+        binding.previous.setOnClickListener {
+            if (week > 1)
+                changeWeek(-1)
+        }
+
         return binding.root
     }
 
@@ -96,6 +111,13 @@ class TimetableFragment : Fragment() {
         })
     }
 
+    private fun changeWeek(i: Int) {
+        week += i
+        binding.next.isEnabled = false
+        binding.previous.isEnabled = false
+        fetchTimetable(group!!.id, week)
+    }
+
     private fun loadState() {
         // Fetches timetable from loaded state.
         when (state) {
@@ -154,6 +176,8 @@ class TimetableFragment : Fragment() {
                 requireActivity().runOnUiThread {
                     binding.back.isEnabled = true
                     binding.timetableToolbar.visibility = View.VISIBLE
+                    binding.next.visibility = View.GONE
+                    binding.previous.visibility = View.GONE
                     binding.timetableTitle.text = "Курсы"
                     binding.timetable.adapter = CourseAdapter(this@TimetableFragment, courses)
                     preferences.edit().putInt(STATE, state).apply()
@@ -177,14 +201,20 @@ class TimetableFragment : Fragment() {
                 // Parse JSON
                 val json = response.body?.string()
                 val timetable = Gson().fromJson(json, Week::class.java)
+                this@TimetableFragment.week = timetable.week_number
 
                 requireActivity().runOnUiThread {
                     binding.back.isEnabled = true
+                    binding.next.isEnabled = true
+                    binding.previous.isEnabled = true
                     binding.timetableTitle.text = "${group!!.title}\n${timetable.week_number} неделя"
                     binding.timetableToolbar.visibility = View.VISIBLE
+                    binding.next.visibility = View.VISIBLE
+                    binding.previous.visibility = View.VISIBLE
                     binding.timetable.adapter = TimetableAdapter(this@TimetableFragment, timetable)
                     preferences.edit().putInt(STATE, state).apply()
                     preferences.edit().putInt(GROUP, group!!.id).apply()
+                    preferences.edit().putInt(WEEK, timetable.week_number).apply()
                     preferences.edit().putString(GROUP_TITLE, group!!.title).apply()
                 }
             }

+ 26 - 1
app/src/main/res/layout/fragment_timetable.xml

@@ -38,7 +38,7 @@
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent"
             app:tint="@color/primary"
-            tools:ignore="ContentDescription" />
+            tools:ignore="ContentDescription,ImageContrastCheck" />
 
         <TextView
             android:id="@+id/timetable_title"
@@ -52,6 +52,31 @@
             app:layout_constraintEnd_toEndOf="parent"
             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toTopOf="parent" />
+
+        <ImageView
+            android:id="@+id/previous"
+            android:layout_width="32dp"
+            android:layout_height="0dp"
+            android:scaleType="centerInside"
+            android:src="@drawable/img_arrow"
+            app:layout_constraintBottom_toBottomOf="@+id/timetable_title"
+            app:layout_constraintEnd_toStartOf="@+id/timetable_title"
+            app:layout_constraintTop_toTopOf="@+id/timetable_title"
+            app:tint="@color/text"
+            tools:ignore="ContentDescription" />
+
+        <ImageView
+            android:id="@+id/next"
+            android:layout_width="32dp"
+            android:layout_height="0dp"
+            android:rotation="180"
+            android:scaleType="centerInside"
+            android:src="@drawable/img_arrow"
+            app:layout_constraintBottom_toBottomOf="@+id/timetable_title"
+            app:layout_constraintStart_toEndOf="@+id/timetable_title"
+            app:layout_constraintTop_toTopOf="@+id/timetable_title"
+            app:tint="@color/text"
+            tools:ignore="ContentDescription" />
     </androidx.constraintlayout.widget.ConstraintLayout>
 
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 1 - 1
shared/build/intermediates/incremental/packageDebugResources/compile-file-map.properties

@@ -1 +1 @@
-#Sat Mar 05 14:15:16 NOVT 2022
+#Tue Mar 08 22:48:41 NOVT 2022

BIN
shared/build/kotlin/compileDebugKotlinAndroid/build-history.bin


BIN
shared/build/kotlin/compileDebugKotlinAndroid/last-build.bin