From 97037858a360bd0fd000fdde4ea1592ee766f0ff Mon Sep 17 00:00:00 2001 From: Saifuddin Date: Fri, 17 Jan 2025 18:26:42 +0530 Subject: [PATCH] Toggle bookmark icon in BottomSheetAdapter instead of finding the location each time in the bookmark * Update bookmark button image in `BottomSheetAdapter` * Add new toggle function to `BottomSheetAdapter` * Call the toggle function in `NearbyParentFragment` --- .../nrw/commons/nearby/BottomSheetAdapter.kt | 16 +++++++++++++++- .../nearby/fragments/NearbyParentFragment.java | 8 ++++++-- 2 files changed, 21 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/nearby/BottomSheetAdapter.kt b/app/src/main/java/fr/free/nrw/commons/nearby/BottomSheetAdapter.kt index 8bcc21e40..a83d49f75 100644 --- a/app/src/main/java/fr/free/nrw/commons/nearby/BottomSheetAdapter.kt +++ b/app/src/main/java/fr/free/nrw/commons/nearby/BottomSheetAdapter.kt @@ -68,7 +68,21 @@ class BottomSheetAdapter( item.imageResourceId == R.drawable.ic_round_star_border_24px ) { item.imageResourceId = icon - this.notifyItemChanged(index) + notifyItemChanged(index) + return + } + } + } + + fun toggleBookmarkIcon() { + itemList.forEachIndexed { index, item -> + if(item.imageResourceId == R.drawable.ic_round_star_filled_24px) { + item.imageResourceId = R.drawable.ic_round_star_border_24px + notifyItemChanged(index) + return + } else if(item.imageResourceId == R.drawable.ic_round_star_border_24px){ + item.imageResourceId = R.drawable.ic_round_star_filled_24px + notifyItemChanged(index) return } } 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 bba19b181..05a662c71 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 @@ -2145,6 +2145,10 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment ); } + private void toggleBookmarkButtonImage() { + bottomSheetAdapter.toggleBookmarkIcon(); + } + @Override public void onAttach(final Context context) { super.onAttach(context); @@ -2304,11 +2308,11 @@ public class NearbyParentFragment extends CommonsDaggerSupportFragment switch (item.getImageResourceId()) { case R.drawable.ic_round_star_border_24px: presenter.toggleBookmarkedStatus(selectedPlace, scope); - updateBookmarkButtonImage(selectedPlace); + toggleBookmarkButtonImage(); break; case R.drawable.ic_round_star_filled_24px: presenter.toggleBookmarkedStatus(selectedPlace, scope); - updateBookmarkButtonImage(selectedPlace); + toggleBookmarkButtonImage(); break; case R.drawable.ic_directions_black_24dp: Utils.handleGeoCoordinates(this.getContext(), selectedPlace.getLocation());