Skip to content

Commit 78057b6

Browse files
authored
Fix #3091: Remove odd code in CategoryImagesListFragment (#3133)
1 parent 7da5d13 commit 78057b6

10 files changed

+44
-58
lines changed

app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarksActivity.java

+7-1
Original file line numberDiff line numberDiff line change
@@ -17,14 +17,15 @@
1717
import butterknife.ButterKnife;
1818
import fr.free.nrw.commons.Media;
1919
import fr.free.nrw.commons.R;
20+
import fr.free.nrw.commons.category.CategoryImagesCallback;
2021
import fr.free.nrw.commons.contributions.ContributionController;
2122
import fr.free.nrw.commons.media.MediaDetailPagerFragment;
2223
import fr.free.nrw.commons.theme.NavigationBaseActivity;
2324

2425
public class BookmarksActivity extends NavigationBaseActivity
2526
implements FragmentManager.OnBackStackChangedListener,
2627
MediaDetailPagerFragment.MediaDetailProvider,
27-
AdapterView.OnItemClickListener {
28+
AdapterView.OnItemClickListener, CategoryImagesCallback {
2829

2930
private FragmentManager supportFragmentManager;
3031
private BookmarksPagerAdapter adapter;
@@ -102,12 +103,14 @@ public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
102103
* This method is called on success of API call for featured Images.
103104
* The viewpager will notified that number of items have changed.
104105
*/
106+
@Override
105107
public void viewPagerNotifyDataSetChanged() {
106108
if (mediaDetails!=null){
107109
mediaDetails.notifyDataSetChanged();
108110
}
109111
}
110112

113+
111114
/**
112115
* This method is called mediaDetailPagerFragment. It returns the Media Object at that Index
113116
* @param i It is the index of which media object is to be returned which is same as
@@ -136,4 +139,7 @@ public int getTotalMediaCount() {
136139
}
137140
return adapter.getMediaAdapter().getCount();
138141
}
142+
143+
@Override
144+
public void requestMoreImages() { }
139145
}

app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java

+2-10
Original file line numberDiff line numberDiff line change
@@ -97,11 +97,7 @@ public void onResume() {
9797
gridView.setVisibility(GONE);
9898
if (gridAdapter != null) {
9999
gridAdapter.clear();
100-
try {
101-
((BookmarksActivity) getContext()).viewPagerNotifyDataSetChanged();
102-
}catch (Exception e){
103-
e.printStackTrace();
104-
}
100+
((BookmarksActivity) getContext()).viewPagerNotifyDataSetChanged();
105101
}
106102
initList();
107103
}
@@ -203,11 +199,7 @@ private void handleSuccess(List<Media> collection) {
203199
return;
204200
}
205201
gridAdapter.addItems(collection);
206-
try {
207-
((BookmarksActivity) getContext()).viewPagerNotifyDataSetChanged();
208-
}catch (Exception e){
209-
e.printStackTrace();
210-
}
202+
((BookmarksActivity) getContext()).viewPagerNotifyDataSetChanged();
211203
}
212204
progressBar.setVisibility(GONE);
213205
statusTextView.setVisibility(GONE);

app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@
3737

3838
public class CategoryDetailsActivity extends NavigationBaseActivity
3939
implements MediaDetailPagerFragment.MediaDetailProvider,
40-
AdapterView.OnItemClickListener{
40+
AdapterView.OnItemClickListener, CategoryImagesCallback {
4141

4242

4343
private FragmentManager supportFragmentManager;
@@ -219,6 +219,7 @@ public void onBackPressed() {
219219
* This method is called on success of API call for Images inside a category.
220220
* The viewpager will notified that number of items have changed.
221221
*/
222+
@Override
222223
public void viewPagerNotifyDataSetChanged() {
223224
if (mediaDetails!=null){
224225
mediaDetails.notifyDataSetChanged();
@@ -229,6 +230,7 @@ public void viewPagerNotifyDataSetChanged() {
229230
* This method is called when viewPager has reached its end.
230231
* Fetches more images using search query and adds it to the grid view and viewpager adapter
231232
*/
233+
@Override
232234
public void requestMoreImages() {
233235
if (categoryImagesListFragment!=null){
234236
categoryImagesListFragment.fetchMoreImagesViewPager();

app/src/main/java/fr/free/nrw/commons/category/CategoryImagesActivity.java

+3-1
Original file line numberDiff line numberDiff line change
@@ -30,7 +30,7 @@ public class CategoryImagesActivity
3030
extends NavigationBaseActivity
3131
implements FragmentManager.OnBackStackChangedListener,
3232
MediaDetailPagerFragment.MediaDetailProvider,
33-
AdapterView.OnItemClickListener{
33+
AdapterView.OnItemClickListener, CategoryImagesCallback {
3434

3535

3636
private FragmentManager supportFragmentManager;
@@ -149,6 +149,7 @@ public Media getMediaAtPosition(int i) {
149149
* This method is called on success of API call for featured Images.
150150
* The viewpager will notified that number of items have changed.
151151
*/
152+
@Override
152153
public void viewPagerNotifyDataSetChanged() {
153154
if (mediaDetails!=null){
154155
mediaDetails.notifyDataSetChanged();
@@ -199,6 +200,7 @@ public boolean onOptionsItemSelected(MenuItem item) {
199200
* This method is called when viewPager has reached its end.
200201
* Fetches more images using search query and adds it to the gridView and viewpager adapter
201202
*/
203+
@Override
202204
public void requestMoreImages() {
203205
if (categoryImagesListFragment!=null){
204206
categoryImagesListFragment.fetchMoreImagesViewPager();
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,13 @@
1+
package fr.free.nrw.commons.category;
2+
3+
/**
4+
* Callback for notifying the viewpager that the number of items have changed
5+
* and for requesting more images when the viewpager has been scrolled to its end.
6+
*/
7+
8+
public interface CategoryImagesCallback {
9+
void viewPagerNotifyDataSetChanged();
10+
void requestMoreImages();
11+
}
12+
13+

app/src/main/java/fr/free/nrw/commons/category/CategoryImagesListFragment.java

+2-16
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,6 @@
2626
import dagger.android.support.DaggerFragment;
2727
import fr.free.nrw.commons.Media;
2828
import fr.free.nrw.commons.R;
29-
import fr.free.nrw.commons.explore.categories.ExploreActivity;
3029
import fr.free.nrw.commons.kvstore.JsonKvStore;
3130
import fr.free.nrw.commons.media.MediaClient;
3231
import fr.free.nrw.commons.utils.NetworkUtils;
@@ -251,22 +250,9 @@ private void handleSuccess(List<Media> collection) {
251250
return;
252251
}
253252
gridAdapter.addItems(collection);
254-
try {
255-
((CategoryImagesActivity) getContext()).viewPagerNotifyDataSetChanged();
256-
}catch (Exception e){
257-
e.printStackTrace();
258-
}
259-
try {
260-
((CategoryDetailsActivity) getContext()).viewPagerNotifyDataSetChanged();
261-
}catch (Exception e){
262-
e.printStackTrace();
263-
}
264-
try {
265-
((ExploreActivity) getContext()).viewPagerNotifyDataSetChanged();
266-
}catch (Exception e){
267-
e.printStackTrace();
268-
}
253+
((CategoryImagesCallback) getContext()).viewPagerNotifyDataSetChanged();
269254
}
255+
270256
progressBar.setVisibility(GONE);
271257
isLoading = false;
272258
statusTextView.setVisibility(GONE);

app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java

+5-1
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,7 @@
2424
import butterknife.ButterKnife;
2525
import fr.free.nrw.commons.Media;
2626
import fr.free.nrw.commons.R;
27+
import fr.free.nrw.commons.category.CategoryImagesCallback;
2728
import fr.free.nrw.commons.explore.categories.SearchCategoryFragment;
2829
import fr.free.nrw.commons.explore.images.SearchImageFragment;
2930
import fr.free.nrw.commons.explore.recentsearches.RecentSearchesFragment;
@@ -37,7 +38,8 @@
3738
* Represents search screen of this app
3839
*/
3940

40-
public class SearchActivity extends NavigationBaseActivity implements MediaDetailPagerFragment.MediaDetailProvider{
41+
public class SearchActivity extends NavigationBaseActivity
42+
implements MediaDetailPagerFragment.MediaDetailProvider, CategoryImagesCallback {
4143

4244
@BindView(R.id.toolbar_search) Toolbar toolbar;
4345
@BindView(R.id.searchHistoryContainer) FrameLayout searchHistoryContainer;
@@ -150,6 +152,7 @@ public int getTotalMediaCount() {
150152
* This method is called on success of API call for image Search.
151153
* The viewpager will notified that number of items have changed.
152154
*/
155+
@Override
153156
public void viewPagerNotifyDataSetChanged() {
154157
if (mediaDetails!=null){
155158
mediaDetails.notifyDataSetChanged();
@@ -236,6 +239,7 @@ public void updateText(String query) {
236239
* This method is called when viewPager has reached its end.
237240
* Fetches more images using search query and adds it to the recycler view and viewpager adapter
238241
*/
242+
@Override
239243
public void requestMoreImages() {
240244
if (searchImageFragment!=null){
241245
searchImageFragment.addImagesToList(query);

app/src/main/java/fr/free/nrw/commons/explore/categories/ExploreActivity.java

+4-1
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323
import butterknife.ButterKnife;
2424
import fr.free.nrw.commons.Media;
2525
import fr.free.nrw.commons.R;
26+
import fr.free.nrw.commons.category.CategoryImagesCallback;
2627
import fr.free.nrw.commons.category.CategoryImagesListFragment;
2728
import fr.free.nrw.commons.explore.SearchActivity;
2829
import fr.free.nrw.commons.explore.ViewPagerAdapter;
@@ -37,7 +38,7 @@
3738
public class ExploreActivity
3839
extends NavigationBaseActivity
3940
implements MediaDetailPagerFragment.MediaDetailProvider,
40-
AdapterView.OnItemClickListener {
41+
AdapterView.OnItemClickListener, CategoryImagesCallback {
4142

4243
private static final String FEATURED_IMAGES_CATEGORY = "Category:Featured_pictures_on_Wikimedia_Commons";
4344
private static final String MOBILE_UPLOADS_CATEGORY = "Category:Uploaded_with_Mobile/Android";
@@ -145,6 +146,7 @@ public int getTotalMediaCount() {
145146
* This method is called on success of API call for featured images or mobile uploads.
146147
* The viewpager will notified that number of items have changed.
147148
*/
149+
@Override
148150
public void viewPagerNotifyDataSetChanged() {
149151
if (mediaDetails != null) {
150152
mediaDetails.notifyDataSetChanged();
@@ -172,6 +174,7 @@ public void onBackPressed() {
172174
* This method is called when viewPager has reached its end.
173175
* Fetches more images and adds them to the recycler view and viewpager adapter
174176
*/
177+
@Override
175178
public void requestMoreImages() {
176179
if (mobileImagesListFragment != null && tabLayout.getSelectedTabPosition() == 1) {
177180
mobileImagesListFragment.fetchMoreImagesViewPager();

app/src/main/java/fr/free/nrw/commons/explore/images/SearchImageFragment.java

+1-1
Original file line numberDiff line numberDiff line change
@@ -198,7 +198,7 @@ private void handleSuccess(List<Media> mediaList) {
198198
progressBar.setVisibility(GONE);
199199
imagesAdapter.addAll(mediaList);
200200
imagesAdapter.notifyDataSetChanged();
201-
((SearchActivity)getContext()).viewPagerNotifyDataSetChanged();
201+
((SearchActivity) getContext()).viewPagerNotifyDataSetChanged();
202202
}
203203
}
204204

app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java

+4-26
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,13 @@
2929
import butterknife.ButterKnife;
3030
import fr.free.nrw.commons.Media;
3131
import fr.free.nrw.commons.R;
32+
import fr.free.nrw.commons.category.CategoryImagesCallback;
3233
import fr.free.nrw.commons.auth.SessionManager;
3334
import fr.free.nrw.commons.bookmarks.Bookmark;
3435
import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesContentProvider;
3536
import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesDao;
36-
import fr.free.nrw.commons.category.CategoryDetailsActivity;
37-
import fr.free.nrw.commons.category.CategoryImagesActivity;
3837
import fr.free.nrw.commons.contributions.Contribution;
3938
import fr.free.nrw.commons.di.CommonsDaggerSupportFragment;
40-
import fr.free.nrw.commons.explore.SearchActivity;
41-
import fr.free.nrw.commons.explore.categories.ExploreActivity;
4239
import fr.free.nrw.commons.kvstore.JsonKvStore;
4340
import fr.free.nrw.commons.utils.ImageUtils;
4441
import fr.free.nrw.commons.utils.NetworkUtils;
@@ -332,28 +329,9 @@ public void onPageScrolled(int i, float v, int i2) {
332329
Timber.d("Returning as activity is destroyed!");
333330
return;
334331
}
335-
if (i+1 >= adapter.getCount()){
336-
try{
337-
((CategoryImagesActivity) getContext()).requestMoreImages();
338-
}catch (Exception e){
339-
e.printStackTrace();
340-
}
341-
try{
342-
((CategoryDetailsActivity) getContext()).requestMoreImages();
343-
}catch (Exception e){
344-
e.printStackTrace();
345-
}
346-
try{
347-
((SearchActivity) getContext()).requestMoreImages();
348-
}catch (Exception e){
349-
e.printStackTrace();
350-
}
351-
try{
352-
((ExploreActivity) getContext()).requestMoreImages();
353-
}catch (Exception e){
354-
e.printStackTrace();
355-
}
356-
}
332+
if (i+1 >= adapter.getCount())
333+
((CategoryImagesCallback) getContext()).requestMoreImages();
334+
357335
getActivity().invalidateOptionsMenu();
358336
}
359337

0 commit comments

Comments
 (0)