diff --git a/app/src/main/java/net/vonforst/evmap/fragment/SettingsFragment.kt b/app/src/main/java/net/vonforst/evmap/fragment/SettingsFragment.kt index a42bbdf1..7d404a4f 100644 --- a/app/src/main/java/net/vonforst/evmap/fragment/SettingsFragment.kt +++ b/app/src/main/java/net/vonforst/evmap/fragment/SettingsFragment.kt @@ -102,6 +102,12 @@ class SettingsFragment : PreferenceFragmentCompat(), override fun onPreferenceTreeClick(preference: Preference?): Boolean { return when (preference?.key) { + "search_delete_recent" -> { + Toast.makeText(context, R.string.deleted_recent_search_results, Toast.LENGTH_LONG) + .show() + vm.deleteRecentSearchResults() + true + } else -> super.onPreferenceTreeClick(preference) } } diff --git a/app/src/main/java/net/vonforst/evmap/storage/RecentAutocompletePlaceDao.kt b/app/src/main/java/net/vonforst/evmap/storage/RecentAutocompletePlaceDao.kt index e78ffbd1..28cee446 100644 --- a/app/src/main/java/net/vonforst/evmap/storage/RecentAutocompletePlaceDao.kt +++ b/app/src/main/java/net/vonforst/evmap/storage/RecentAutocompletePlaceDao.kt @@ -56,7 +56,7 @@ abstract class RecentAutocompletePlaceDao { abstract suspend fun insert(vararg places: RecentAutocompletePlace) @Query("DELETE FROM recentautocompleteplace") - abstract fun deleteAll() + abstract suspend fun deleteAll() @Query("SELECT * FROM recentautocompleteplace WHERE dataSource = :dataSource AND primaryText LIKE '%' || :query || '%' ORDER BY timestamp DESC LIMIT :limit") abstract fun search( diff --git a/app/src/main/java/net/vonforst/evmap/viewmodel/SettingsViewModel.kt b/app/src/main/java/net/vonforst/evmap/viewmodel/SettingsViewModel.kt index 5369e4ba..2f935549 100644 --- a/app/src/main/java/net/vonforst/evmap/viewmodel/SettingsViewModel.kt +++ b/app/src/main/java/net/vonforst/evmap/viewmodel/SettingsViewModel.kt @@ -8,11 +8,13 @@ import kotlinx.coroutines.launch import net.vonforst.evmap.api.chargeprice.ChargepriceApi import net.vonforst.evmap.api.chargeprice.ChargepriceCar import net.vonforst.evmap.api.chargeprice.ChargepriceTariff +import net.vonforst.evmap.storage.AppDatabase import java.io.IOException class SettingsViewModel(application: Application, chargepriceApiKey: String) : AndroidViewModel(application) { private var api = ChargepriceApi.create(chargepriceApiKey) + private var db = AppDatabase.getInstance(application) val vehicles: MutableLiveData>> by lazy { MutableLiveData>>().apply { @@ -49,4 +51,10 @@ class SettingsViewModel(application: Application, chargepriceApiKey: String) : } } } + + fun deleteRecentSearchResults() { + viewModelScope.launch { + db.recentAutocompletePlaceDao().deleteAll() + } + } } \ No newline at end of file diff --git a/app/src/main/res/values-de/strings.xml b/app/src/main/res/values-de/strings.xml index 9ddf56f7..d1648108 100644 --- a/app/src/main/res/values-de/strings.xml +++ b/app/src/main/res/values-de/strings.xml @@ -242,4 +242,6 @@ https://evmap.vonforst.net/de/faq.html erforderlich „%s“ bearbeiten + Suchverlauf löschen + Suchverlauf wurde gelöscht diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8f0c817f..08b75d89 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -227,4 +227,6 @@ https://evmap.vonforst.net/en/faq.html required Edit “%s” + Delete recent search results + Recent search results have been deleted diff --git a/app/src/main/res/xml/settings.xml b/app/src/main/res/xml/settings.xml index 7ed57267..8c0271aa 100644 --- a/app/src/main/res/xml/settings.xml +++ b/app/src/main/res/xml/settings.xml @@ -47,6 +47,10 @@ android:defaultValue="@string/pref_search_provider_default" android:summary="%s" /> + +