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.locations.BookmarkLocationsFragment;
|
||||||
import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesFragment;
|
import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesFragment;
|
||||||
import fr.free.nrw.commons.category.CategoryImagesCallback;
|
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.contributions.MainActivity;
|
||||||
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment;
|
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment;
|
||||||
import fr.free.nrw.commons.media.MediaDetailPagerFragment;
|
import fr.free.nrw.commons.media.MediaDetailPagerFragment;
|
||||||
import fr.free.nrw.commons.navtab.NavTab;
|
import fr.free.nrw.commons.navtab.NavTab;
|
||||||
|
import java.util.ArrayList;
|
||||||
|
import java.util.Iterator;
|
||||||
|
|
||||||
public class BookmarkListRootFragment extends CommonsDaggerSupportFragment implements
|
public class BookmarkListRootFragment extends CommonsDaggerSupportFragment implements
|
||||||
FragmentManager.OnBackStackChangedListener,
|
FragmentManager.OnBackStackChangedListener,
|
||||||
|
|
@ -183,9 +186,19 @@ public class BookmarkListRootFragment extends CommonsDaggerSupportFragment imple
|
||||||
if (mediaDetails.isVisible()) {
|
if (mediaDetails.isVisible()) {
|
||||||
// todo add get list fragment
|
// todo add get list fragment
|
||||||
((BookmarkFragment) getParentFragment()).tabLayout.setVisibility(View.VISIBLE);
|
((BookmarkFragment) getParentFragment()).tabLayout.setVisibility(View.VISIBLE);
|
||||||
|
ArrayList<Integer> removed=mediaDetails.getRemovedItems();
|
||||||
removeFragment(mediaDetails);
|
removeFragment(mediaDetails);
|
||||||
setFragment(listFragment, mediaDetails);
|
setFragment(listFragment, mediaDetails);
|
||||||
((MainActivity) getActivity()).showTabs();
|
((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 {
|
} else {
|
||||||
moveToContributionsFragment();
|
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.NetworkUtils;
|
||||||
import fr.free.nrw.commons.utils.ViewUtil;
|
import fr.free.nrw.commons.utils.ViewUtil;
|
||||||
import io.reactivex.disposables.CompositeDisposable;
|
import io.reactivex.disposables.CompositeDisposable;
|
||||||
|
import java.util.ArrayList;
|
||||||
import java.util.Objects;
|
import java.util.Objects;
|
||||||
import javax.inject.Inject;
|
import javax.inject.Inject;
|
||||||
import timber.log.Timber;
|
import timber.log.Timber;
|
||||||
|
|
@ -62,6 +63,15 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
||||||
private boolean isFromFeaturedRootFragment;
|
private boolean isFromFeaturedRootFragment;
|
||||||
private int position;
|
private int position;
|
||||||
|
|
||||||
|
private ArrayList<Integer> removedItems=new ArrayList<Integer>();
|
||||||
|
|
||||||
|
public void clearRemoved(){
|
||||||
|
removedItems.clear();
|
||||||
|
}
|
||||||
|
public ArrayList<Integer> getRemovedItems() {
|
||||||
|
return removedItems;
|
||||||
|
}
|
||||||
|
|
||||||
public MediaDetailPagerFragment() {
|
public MediaDetailPagerFragment() {
|
||||||
this(false, false);
|
this(false, false);
|
||||||
}
|
}
|
||||||
|
|
@ -298,6 +308,16 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
||||||
|
|
||||||
private void updateBookmarkState(MenuItem item) {
|
private void updateBookmarkState(MenuItem item) {
|
||||||
boolean isBookmarked = bookmarkDao.findBookmark(bookmark);
|
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;
|
int icon = isBookmarked ? R.drawable.menu_ic_round_star_filled_24px : R.drawable.menu_ic_round_star_border_24px;
|
||||||
item.setIcon(icon);
|
item.setIcon(icon);
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue