diff --git a/app/src/main/java/com/github/swent/echo/compose/event/EventScreen.kt b/app/src/main/java/com/github/swent/echo/compose/event/EventScreen.kt
index 8cfa45f30..611727417 100644
--- a/app/src/main/java/com/github/swent/echo/compose/event/EventScreen.kt
+++ b/app/src/main/java/com/github/swent/echo/compose/event/EventScreen.kt
@@ -94,8 +94,7 @@ fun EventScreen(
) {
if (canDelete) {
DeleteEventButton(enabled = isOnline) {
- // TODO: delete the event in the repository
- onEventDeleted()
+ eventViewModel.deleteEvent(onEventDeleted)
}
}
OutlinedButton(
diff --git a/app/src/main/java/com/github/swent/echo/viewmodels/event/EventViewModel.kt b/app/src/main/java/com/github/swent/echo/viewmodels/event/EventViewModel.kt
index 1d7b8e179..48ce9118e 100644
--- a/app/src/main/java/com/github/swent/echo/viewmodels/event/EventViewModel.kt
+++ b/app/src/main/java/com/github/swent/echo/viewmodels/event/EventViewModel.kt
@@ -148,6 +148,18 @@ constructor(
}
}
+ // delete the current event in the repository
+ fun deleteEvent(onEventDeleted: () -> Unit) {
+ viewModelScope.launch {
+ try {
+ repository.deleteEvent(event.value)
+ onEventDeleted()
+ } catch (e: RepositoryStoreWhileNoInternetException) {
+ _status.value = EventStatus.Error(R.string.event_creation_error_network_failure)
+ }
+ }
+ }
+
/** change event status from error to modified */
fun dismissError() {
if (_status.value is EventStatus.Error) {
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 0b6b8a515..959d04446 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -49,7 +49,7 @@
The end date is before the start date
The title is empty
The maximum number of participants is too low
- Network problem while saving event. Please retry.
+ Network problem while saving or deleting event. Please retry.
EPFL
Section
Class