Bimba.git

commit 2b948f4e23bba5facf231aae48cb1185adacd702

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

deleting elements from favourites

%!v(PANIC=String method: strings: negative Repeat count)


diff --git a/app/src/main/java/ml/adamsprogs/bimba/activities/EditFavouriteActivity.kt b/app/src/main/java/ml/adamsprogs/bimba/activities/EditFavouriteActivity.kt
index d5c8a9bf95ccb2c8fb2c0f4c430455abd585f79f..9a044a18bb4329a09eca5bbf1002070d68f604b5 100644
--- a/app/src/main/java/ml/adamsprogs/bimba/activities/EditFavouriteActivity.kt
+++ b/app/src/main/java/ml/adamsprogs/bimba/activities/EditFavouriteActivity.kt
@@ -41,11 +41,7 @@         nameEdit.setText(favourite!!.name)
     }
 
     override fun onBackPressed() {
-        val oldName = favourite?.name
-        val newName = nameEdit.text.toString()
-        favourites.delete(oldName!!)
-        favourite?.name = newName
-        favourites.add(newName, favourite!!)
+        favourites.rename(favourite?.name!!, nameEdit.text.toString())
         super.onBackPressed()
     }
 }




diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/Favourite.kt b/app/src/main/java/ml/adamsprogs/bimba/models/Favourite.kt
index 2b331637014250caf507c243227817d17a194550..559be852132e6749ac6680bd4896cf6cb88e192b 100644
--- a/app/src/main/java/ml/adamsprogs/bimba/models/Favourite.kt
+++ b/app/src/main/java/ml/adamsprogs/bimba/models/Favourite.kt
@@ -50,6 +50,8 @@         get() = timetables.size
 
     var nextDeparture: Departure? = null
         get() {
+            if (timetables.isEmpty())
+                return null
             val today: String
             val tomorrow: String
             val oneDayDepartures = ArrayList<HashMap<String, ArrayList<Departure>>>()
@@ -103,11 +105,7 @@         private set
 
     fun delete(stop: String, line: String) {
         Log.i("ROW", "Favourite deleting $stop, $line")
-        val element = HashMap<String, String>()
-        element["stop"] = stop
-        element["line"] = line
-        val b = timetables.remove(element)
-        Log.i("ROW", "$b")
+        timetables.remove(timetables.find { it["stop"] == stop && it["line"] == line })
         Log.i("ROW", timetables.toString())
     }
 




diff --git a/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteStorage.kt b/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteStorage.kt
index d6556e360d30fed602f6334c8e9c1c2b1ef488af..1ded07c1fc14ec32817c8902b380efc26edb9f70 100644
--- a/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteStorage.kt
+++ b/app/src/main/java/ml/adamsprogs/bimba/models/FavouriteStorage.kt
@@ -114,4 +114,11 @@         favourites[names[0]] = newFavourite
 
         serialize()
     }
+
+    fun rename(oldName: String, newName: String) {
+        val favourite = favourites[oldName] ?: return
+        favourite.name = newName
+        favourites.remove(oldName)
+        favourites[newName] = favourite
+    }
 }
\ No newline at end of file