Fix #3091: Remove odd code in CategoryImagesListFragment (#3133)

This commit is contained in:
Aristos Pasalidis 2020-03-01 17:30:58 +02:00 committed by GitHub
parent 7da5d130b7
commit 78057b6a8a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
10 changed files with 44 additions and 58 deletions

View file

@ -17,6 +17,7 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import fr.free.nrw.commons.Media;
import fr.free.nrw.commons.R;
import fr.free.nrw.commons.category.CategoryImagesCallback;
import fr.free.nrw.commons.contributions.ContributionController;
import fr.free.nrw.commons.media.MediaDetailPagerFragment;
import fr.free.nrw.commons.theme.NavigationBaseActivity;
@ -24,7 +25,7 @@ import fr.free.nrw.commons.theme.NavigationBaseActivity;
public class BookmarksActivity extends NavigationBaseActivity
implements FragmentManager.OnBackStackChangedListener,
MediaDetailPagerFragment.MediaDetailProvider,
AdapterView.OnItemClickListener {
AdapterView.OnItemClickListener, CategoryImagesCallback {
private FragmentManager supportFragmentManager;
private BookmarksPagerAdapter adapter;
@ -102,12 +103,14 @@ public class BookmarksActivity extends NavigationBaseActivity
* This method is called on success of API call for featured Images.
* The viewpager will notified that number of items have changed.
*/
@Override
public void viewPagerNotifyDataSetChanged() {
if (mediaDetails!=null){
mediaDetails.notifyDataSetChanged();
}
}
/**
* This method is called mediaDetailPagerFragment. It returns the Media Object at that Index
* @param i It is the index of which media object is to be returned which is same as
@ -136,4 +139,7 @@ public class BookmarksActivity extends NavigationBaseActivity
}
return adapter.getMediaAdapter().getCount();
}
@Override
public void requestMoreImages() { }
}

View file

@ -97,11 +97,7 @@ public class BookmarkPicturesFragment extends DaggerFragment {
gridView.setVisibility(GONE);
if (gridAdapter != null) {
gridAdapter.clear();
try {
((BookmarksActivity) getContext()).viewPagerNotifyDataSetChanged();
}catch (Exception e){
e.printStackTrace();
}
((BookmarksActivity) getContext()).viewPagerNotifyDataSetChanged();
}
initList();
}
@ -203,11 +199,7 @@ public class BookmarkPicturesFragment extends DaggerFragment {
return;
}
gridAdapter.addItems(collection);
try {
((BookmarksActivity) getContext()).viewPagerNotifyDataSetChanged();
}catch (Exception e){
e.printStackTrace();
}
((BookmarksActivity) getContext()).viewPagerNotifyDataSetChanged();
}
progressBar.setVisibility(GONE);
statusTextView.setVisibility(GONE);

View file

@ -37,7 +37,7 @@ import fr.free.nrw.commons.theme.NavigationBaseActivity;
public class CategoryDetailsActivity extends NavigationBaseActivity
implements MediaDetailPagerFragment.MediaDetailProvider,
AdapterView.OnItemClickListener{
AdapterView.OnItemClickListener, CategoryImagesCallback {
private FragmentManager supportFragmentManager;
@ -219,6 +219,7 @@ public class CategoryDetailsActivity extends NavigationBaseActivity
* This method is called on success of API call for Images inside a category.
* The viewpager will notified that number of items have changed.
*/
@Override
public void viewPagerNotifyDataSetChanged() {
if (mediaDetails!=null){
mediaDetails.notifyDataSetChanged();
@ -229,6 +230,7 @@ public class CategoryDetailsActivity extends NavigationBaseActivity
* This method is called when viewPager has reached its end.
* Fetches more images using search query and adds it to the grid view and viewpager adapter
*/
@Override
public void requestMoreImages() {
if (categoryImagesListFragment!=null){
categoryImagesListFragment.fetchMoreImagesViewPager();

View file

@ -30,7 +30,7 @@ public class CategoryImagesActivity
extends NavigationBaseActivity
implements FragmentManager.OnBackStackChangedListener,
MediaDetailPagerFragment.MediaDetailProvider,
AdapterView.OnItemClickListener{
AdapterView.OnItemClickListener, CategoryImagesCallback {
private FragmentManager supportFragmentManager;
@ -149,6 +149,7 @@ public class CategoryImagesActivity
* This method is called on success of API call for featured Images.
* The viewpager will notified that number of items have changed.
*/
@Override
public void viewPagerNotifyDataSetChanged() {
if (mediaDetails!=null){
mediaDetails.notifyDataSetChanged();
@ -199,6 +200,7 @@ public class CategoryImagesActivity
* This method is called when viewPager has reached its end.
* Fetches more images using search query and adds it to the gridView and viewpager adapter
*/
@Override
public void requestMoreImages() {
if (categoryImagesListFragment!=null){
categoryImagesListFragment.fetchMoreImagesViewPager();

View file

@ -0,0 +1,13 @@
package fr.free.nrw.commons.category;
/**
* Callback for notifying the viewpager that the number of items have changed
* and for requesting more images when the viewpager has been scrolled to its end.
*/
public interface CategoryImagesCallback {
void viewPagerNotifyDataSetChanged();
void requestMoreImages();
}

View file

@ -26,7 +26,6 @@ import butterknife.ButterKnife;
import dagger.android.support.DaggerFragment;
import fr.free.nrw.commons.Media;
import fr.free.nrw.commons.R;
import fr.free.nrw.commons.explore.categories.ExploreActivity;
import fr.free.nrw.commons.kvstore.JsonKvStore;
import fr.free.nrw.commons.media.MediaClient;
import fr.free.nrw.commons.utils.NetworkUtils;
@ -251,22 +250,9 @@ public class CategoryImagesListFragment extends DaggerFragment {
return;
}
gridAdapter.addItems(collection);
try {
((CategoryImagesActivity) getContext()).viewPagerNotifyDataSetChanged();
}catch (Exception e){
e.printStackTrace();
}
try {
((CategoryDetailsActivity) getContext()).viewPagerNotifyDataSetChanged();
}catch (Exception e){
e.printStackTrace();
}
try {
((ExploreActivity) getContext()).viewPagerNotifyDataSetChanged();
}catch (Exception e){
e.printStackTrace();
}
((CategoryImagesCallback) getContext()).viewPagerNotifyDataSetChanged();
}
progressBar.setVisibility(GONE);
isLoading = false;
statusTextView.setVisibility(GONE);

View file

@ -24,6 +24,7 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import fr.free.nrw.commons.Media;
import fr.free.nrw.commons.R;
import fr.free.nrw.commons.category.CategoryImagesCallback;
import fr.free.nrw.commons.explore.categories.SearchCategoryFragment;
import fr.free.nrw.commons.explore.images.SearchImageFragment;
import fr.free.nrw.commons.explore.recentsearches.RecentSearchesFragment;
@ -37,7 +38,8 @@ import io.reactivex.android.schedulers.AndroidSchedulers;
* Represents search screen of this app
*/
public class SearchActivity extends NavigationBaseActivity implements MediaDetailPagerFragment.MediaDetailProvider{
public class SearchActivity extends NavigationBaseActivity
implements MediaDetailPagerFragment.MediaDetailProvider, CategoryImagesCallback {
@BindView(R.id.toolbar_search) Toolbar toolbar;
@BindView(R.id.searchHistoryContainer) FrameLayout searchHistoryContainer;
@ -150,6 +152,7 @@ public class SearchActivity extends NavigationBaseActivity implements MediaDetai
* This method is called on success of API call for image Search.
* The viewpager will notified that number of items have changed.
*/
@Override
public void viewPagerNotifyDataSetChanged() {
if (mediaDetails!=null){
mediaDetails.notifyDataSetChanged();
@ -236,6 +239,7 @@ public class SearchActivity extends NavigationBaseActivity implements MediaDetai
* This method is called when viewPager has reached its end.
* Fetches more images using search query and adds it to the recycler view and viewpager adapter
*/
@Override
public void requestMoreImages() {
if (searchImageFragment!=null){
searchImageFragment.addImagesToList(query);

View file

@ -23,6 +23,7 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import fr.free.nrw.commons.Media;
import fr.free.nrw.commons.R;
import fr.free.nrw.commons.category.CategoryImagesCallback;
import fr.free.nrw.commons.category.CategoryImagesListFragment;
import fr.free.nrw.commons.explore.SearchActivity;
import fr.free.nrw.commons.explore.ViewPagerAdapter;
@ -37,7 +38,7 @@ import fr.free.nrw.commons.theme.NavigationBaseActivity;
public class ExploreActivity
extends NavigationBaseActivity
implements MediaDetailPagerFragment.MediaDetailProvider,
AdapterView.OnItemClickListener {
AdapterView.OnItemClickListener, CategoryImagesCallback {
private static final String FEATURED_IMAGES_CATEGORY = "Category:Featured_pictures_on_Wikimedia_Commons";
private static final String MOBILE_UPLOADS_CATEGORY = "Category:Uploaded_with_Mobile/Android";
@ -145,6 +146,7 @@ public class ExploreActivity
* This method is called on success of API call for featured images or mobile uploads.
* The viewpager will notified that number of items have changed.
*/
@Override
public void viewPagerNotifyDataSetChanged() {
if (mediaDetails != null) {
mediaDetails.notifyDataSetChanged();
@ -172,6 +174,7 @@ public class ExploreActivity
* This method is called when viewPager has reached its end.
* Fetches more images and adds them to the recycler view and viewpager adapter
*/
@Override
public void requestMoreImages() {
if (mobileImagesListFragment != null && tabLayout.getSelectedTabPosition() == 1) {
mobileImagesListFragment.fetchMoreImagesViewPager();

View file

@ -198,7 +198,7 @@ public class SearchImageFragment extends CommonsDaggerSupportFragment {
progressBar.setVisibility(GONE);
imagesAdapter.addAll(mediaList);
imagesAdapter.notifyDataSetChanged();
((SearchActivity)getContext()).viewPagerNotifyDataSetChanged();
((SearchActivity) getContext()).viewPagerNotifyDataSetChanged();
}
}

View file

@ -29,16 +29,13 @@ import butterknife.BindView;
import butterknife.ButterKnife;
import fr.free.nrw.commons.Media;
import fr.free.nrw.commons.R;
import fr.free.nrw.commons.category.CategoryImagesCallback;
import fr.free.nrw.commons.auth.SessionManager;
import fr.free.nrw.commons.bookmarks.Bookmark;
import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesContentProvider;
import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesDao;
import fr.free.nrw.commons.category.CategoryDetailsActivity;
import fr.free.nrw.commons.category.CategoryImagesActivity;
import fr.free.nrw.commons.contributions.Contribution;
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment;
import fr.free.nrw.commons.explore.SearchActivity;
import fr.free.nrw.commons.explore.categories.ExploreActivity;
import fr.free.nrw.commons.kvstore.JsonKvStore;
import fr.free.nrw.commons.utils.ImageUtils;
import fr.free.nrw.commons.utils.NetworkUtils;
@ -332,28 +329,9 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
Timber.d("Returning as activity is destroyed!");
return;
}
if (i+1 >= adapter.getCount()){
try{
((CategoryImagesActivity) getContext()).requestMoreImages();
}catch (Exception e){
e.printStackTrace();
}
try{
((CategoryDetailsActivity) getContext()).requestMoreImages();
}catch (Exception e){
e.printStackTrace();
}
try{
((SearchActivity) getContext()).requestMoreImages();
}catch (Exception e){
e.printStackTrace();
}
try{
((ExploreActivity) getContext()).requestMoreImages();
}catch (Exception e){
e.printStackTrace();
}
}
if (i+1 >= adapter.getCount())
((CategoryImagesCallback) getContext()).requestMoreImages();
getActivity().invalidateOptionsMenu();
}