Bimba.git

commit 2d6c51b4fe40d662028c396279313b952443595d

Author: Adam Pioterek <adam.pioterek@protonmail.ch>

bug fixes in favourites

 app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt | 18 
 app/src/main/res/layout/row_favourite.xml | 22 
 app/src/main/res/values-pl/strings.xml | 1 
 app/src/main/res/values/strings.xml | 1 


diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt b/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt
index 78c540a87e9d72773b8f849b3ddb092bcc2205a9..3ed685e237d97f6e6d15c33d89c0281cbd16b601 100644
--- a/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt
+++ b/app/src/main/java/ml/adamsprogs/bimba/models/FavouritesAdapter.kt
@@ -51,7 +51,12 @@
         thread {
             val favourite = favourites[position]
             holder?.nameTextView?.text = favourite.name
-            val nextDeparture = favourite.nextDeparture
+            val nextDeparture: Departure?
+            try {
+                nextDeparture = favourite.nextDeparture
+            } catch (e: ConcurrentModificationException) {
+                return@thread
+            }
             val nextDepartureText: String
             val nextDepartureLineText: String
             if (nextDeparture != null) {
@@ -94,13 +99,22 @@         }
     }
 
     fun toggleSelected(view: CardView, position: Int) {
+        growSelected(position)
+
         if (selected[position])
             unSelect(view, position)
         else
             select(view, position)
     }
 
+    private fun growSelected(position: Int) {
+        while (position >= selected.size)
+            selected.add(false)
+    }
+
     fun select(view: CardView, position: Int) {
+        growSelected(position)
+
         @Suppress("DEPRECATION")
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M)
             view.setCardBackgroundColor(context.resources.getColor(R.color.colorAccent, null))
@@ -111,6 +125,8 @@         setSelecting()
     }
 
     fun unSelect(view: CardView, position: Int) {
+        growSelected(position)
+
         val colour = TypedValue()
         context.theme.resolveAttribute(R.attr.cardBackgroundColor, colour, true)
         view.setCardBackgroundColor(colour.data)




diff --git a/app/src/main/res/layout/row_favourite.xml b/app/src/main/res/layout/row_favourite.xml
index 2064150f864e7113664e5d804079bfa3f9a787a5..e2cae1cdc02502bde3c53a7f88fe934c64c36796 100644
--- a/app/src/main/res/layout/row_favourite.xml
+++ b/app/src/main/res/layout/row_favourite.xml
@@ -26,6 +26,17 @@             tools:layout_editor_absoluteX="16dp"
             tools:layout_editor_absoluteY="21dp" />
 
         <TextView
+            android:id="@+id/favourite_time"
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:text="@string/calculating"
+            android:textAppearance="@style/TextAppearance.AppCompat.Headline"
+            app:layout_constraintStart_toStartOf="@+id/favourite_line"
+            app:layout_constraintTop_toBottomOf="@+id/favourite_name"
+            tools:layout_editor_absoluteX="16dp"
+            tools:layout_editor_absoluteY="46dp" />
+
+        <TextView
             android:id="@+id/favourite_line"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
@@ -38,17 +49,6 @@             app:layout_constraintStart_toStartOf="parent"
             app:layout_constraintTop_toBottomOf="@+id/favourite_time"
             tools:layout_editor_absoluteX="16dp"
             tools:layout_editor_absoluteY="78dp" />
-
-        <TextView
-            android:id="@+id/favourite_time"
-            android:layout_width="wrap_content"
-            android:layout_height="wrap_content"
-            android:text=""
-            android:textAppearance="@style/TextAppearance.AppCompat.Headline"
-            app:layout_constraintStart_toStartOf="@+id/favourite_line"
-            app:layout_constraintTop_toBottomOf="@+id/favourite_name"
-            tools:layout_editor_absoluteX="16dp"
-            tools:layout_editor_absoluteY="46dp" />
 
         <ImageView
             android:id="@+id/favourite_more_button"




diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 4cb75f7401f3c1dd4edbd096fbe53e8728b2a17f..6e37f6e97479e45c21c82d72d7d839d13b33ce5a 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -35,4 +35,5 @@     favourite element split button
     <string name="no_next_departure">No next departure</string>
     <string name="action_merge">Merge</string>
     <string name="merge_favourites">Merge favourites</string>
+    <string name="calculating">Calculating…</string>
 </resources>




diff --git a/app/src/main/res/values-pl/strings.xml b/app/src/main/res/values-pl/strings.xml
index f930b6bd9f6b1b5ae5302629fa927bce24834e8f..9e1de01797f8bd0ba0a78b30af233250cf301f66 100644
--- a/app/src/main/res/values-pl/strings.xml
+++ b/app/src/main/res/values-pl/strings.xml
@@ -29,4 +29,5 @@     Nazwa ulubionego
     <string name="no_next_departure">Brak następnego odjazdu</string>
     <string name="action_merge">Połącz</string>
     <string name="merge_favourites">Połącz ulubione</string>
+    <string name="calculating">Obliczam…</string>
 </resources>
\ No newline at end of file