mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-27 21:03:54 +01:00
Fixes #4178 Bookmarks not Updated in Picture section after remove
This commit is contained in:
parent
edef23f03d
commit
b58d135b4c
2 changed files with 33 additions and 0 deletions
|
|
@ -19,10 +19,13 @@ import fr.free.nrw.commons.R;
|
|||
import fr.free.nrw.commons.bookmarks.locations.BookmarkLocationsFragment;
|
||||
import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesFragment;
|
||||
import fr.free.nrw.commons.category.CategoryImagesCallback;
|
||||
import fr.free.nrw.commons.category.GridViewAdapter;
|
||||
import fr.free.nrw.commons.contributions.MainActivity;
|
||||
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment;
|
||||
import fr.free.nrw.commons.media.MediaDetailPagerFragment;
|
||||
import fr.free.nrw.commons.navtab.NavTab;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Iterator;
|
||||
|
||||
public class BookmarkListRootFragment extends CommonsDaggerSupportFragment implements
|
||||
FragmentManager.OnBackStackChangedListener,
|
||||
|
|
@ -183,9 +186,19 @@ public class BookmarkListRootFragment extends CommonsDaggerSupportFragment imple
|
|||
if (mediaDetails.isVisible()) {
|
||||
// todo add get list fragment
|
||||
((BookmarkFragment) getParentFragment()).tabLayout.setVisibility(View.VISIBLE);
|
||||
ArrayList<Integer> removed=mediaDetails.getRemovedItems();
|
||||
removeFragment(mediaDetails);
|
||||
setFragment(listFragment, mediaDetails);
|
||||
((MainActivity) getActivity()).showTabs();
|
||||
if(listFragment instanceof BookmarkPicturesFragment){
|
||||
GridViewAdapter adapter=((GridViewAdapter)((BookmarkPicturesFragment)listFragment).getAdapter());
|
||||
Iterator i = removed.iterator();
|
||||
while (i.hasNext()) {
|
||||
adapter.remove(adapter.getItem((int)i.next()));
|
||||
}
|
||||
mediaDetails.clearRemoved();
|
||||
|
||||
}
|
||||
} else {
|
||||
moveToContributionsFragment();
|
||||
}
|
||||
|
|
|
|||
|
|
@ -36,6 +36,7 @@ import fr.free.nrw.commons.utils.ImageUtils;
|
|||
import fr.free.nrw.commons.utils.NetworkUtils;
|
||||
import fr.free.nrw.commons.utils.ViewUtil;
|
||||
import io.reactivex.disposables.CompositeDisposable;
|
||||
import java.util.ArrayList;
|
||||
import java.util.Objects;
|
||||
import javax.inject.Inject;
|
||||
import timber.log.Timber;
|
||||
|
|
@ -62,6 +63,15 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
|||
private boolean isFromFeaturedRootFragment;
|
||||
private int position;
|
||||
|
||||
private ArrayList<Integer> removedItems=new ArrayList<Integer>();
|
||||
|
||||
public void clearRemoved(){
|
||||
removedItems.clear();
|
||||
}
|
||||
public ArrayList<Integer> getRemovedItems() {
|
||||
return removedItems;
|
||||
}
|
||||
|
||||
public MediaDetailPagerFragment() {
|
||||
this(false, false);
|
||||
}
|
||||
|
|
@ -298,6 +308,16 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
|||
|
||||
private void updateBookmarkState(MenuItem item) {
|
||||
boolean isBookmarked = bookmarkDao.findBookmark(bookmark);
|
||||
if(isBookmarked) {
|
||||
if(removedItems.contains(pager.getCurrentItem())) {
|
||||
removedItems.remove(new Integer(pager.getCurrentItem()));
|
||||
}
|
||||
}
|
||||
else {
|
||||
if(!removedItems.contains(pager.getCurrentItem())) {
|
||||
removedItems.add(pager.getCurrentItem());
|
||||
}
|
||||
}
|
||||
int icon = isBookmarked ? R.drawable.menu_ic_round_star_filled_24px : R.drawable.menu_ic_round_star_border_24px;
|
||||
item.setIcon(icon);
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue