From e616c80adb0dd3e1f04ba69a78e50be56a6c269e Mon Sep 17 00:00:00 2001 From: Noah Vendrig Date: Wed, 23 Oct 2024 14:06:15 +1100 Subject: [PATCH] added changes for a possibly working emptyCache implementation (needs testing). --- .../fr/free/nrw/commons/nearby/PlaceDao.java | 20 +++++++++++++++++++ .../commons/nearby/PlacesLocalDataSource.java | 4 ++++ .../nrw/commons/nearby/PlacesRepository.java | 3 +++ .../fragments/NearbyParentFragment.java | 11 +++++++++- 4 files changed, 37 insertions(+), 1 deletion(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/PlaceDao.java b/app/src/main/java/fr/free/nrw/commons/nearby/PlaceDao.java index f18b80004..544a8fe63 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/PlaceDao.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/PlaceDao.java @@ -42,4 +42,24 @@ public abstract class PlaceDao { saveSynchronous(place); }); } + + /** + * Deletes all Place objects from the database. + * + * @return A Completable that completes once the deletion operation is done. + */ + @Query("DELETE FROM place") + public abstract void deleteAllSynchronous(); + + /** + * Deletes all Place objects asynchronously from the database. + * + * @return A Completable that completes once the deletion operation is done. + */ + public Completable deleteAll() { + return Completable + .fromAction(() -> { + deleteAllSynchronous(); + }); + } } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/PlacesLocalDataSource.java b/app/src/main/java/fr/free/nrw/commons/nearby/PlacesLocalDataSource.java index 8de437c82..b4a8f2623 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/PlacesLocalDataSource.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/PlacesLocalDataSource.java @@ -36,4 +36,8 @@ public class PlacesLocalDataSource { public Completable savePlace(Place place) { return placeDao.save(place); } + + public Completable clearCache() { + return placeDao.deleteAll(); + } } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/PlacesRepository.java b/app/src/main/java/fr/free/nrw/commons/nearby/PlacesRepository.java index 85e964ddb..a50fed909 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/PlacesRepository.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/PlacesRepository.java @@ -38,4 +38,7 @@ public class PlacesRepository { return localDataSource.fetchPlace(entityID); } + public Completable clearCache() { + return localDataSource.clearCache(); + } } diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java index 943352d92..06f19fb7d 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java @@ -32,6 +32,7 @@ import android.preference.PreferenceManager; import android.provider.Settings; import android.text.Html; import android.text.method.LinkMovementMethod; +import android.util.Log; import android.view.LayoutInflater; import android.view.Menu; import android.view.MenuInflater; @@ -319,6 +320,7 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment @Override public boolean onMenuItemClick(MenuItem item) { try { + Timber.d("Reload: menuItem"); // REFRESH BUTTON FUNCTIONALITY HERE emptyCache(); reloadMap(); @@ -1130,7 +1132,8 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment } /** - * Reloads the Nearby map + * Reloads the Nearby map. + * This method clears the existing markers, resets the map state, and repopulates the map with the latest data. */ private void reloadMap(){ @@ -1141,7 +1144,13 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment * Empties the Nearby local cache */ private void emptyCache(){ + Timber.d("Reload: emptyCache"); + placesRepository.clearCache(); + + // Optionally, clear any in-memory cache or state + updatedPlacesList.clear(); + updatedLatLng = null; } private void savePlacesAsKML() {