From 71343de95a75a431b05d47d59c4ba9af7698e635 Mon Sep 17 00:00:00 2001 From: rtsketo Date: Fri, 16 Aug 2019 02:31:41 +0300 Subject: [PATCH 1/3] Issue: #3091 Created an interface for methods viewPagerNotifyDataSetChanged() and requestMoreImages() commonly used by some Activities. https://github.com/commons-app/apps-android-commons/issues/3091 --- .../commons/RequestAndNotifyInterface.java | 8 ++++++ .../commons/bookmarks/BookmarksActivity.java | 9 +++++-- .../pictures/BookmarkPicturesFragment.java | 19 +++++--------- .../category/CategoryDetailsActivity.java | 6 +++-- .../category/CategoryImagesActivity.java | 5 +++- .../category/CategoryImagesListFragment.java | 22 ++++------------ .../nrw/commons/explore/SearchActivity.java | 7 +++-- .../explore/categories/ExploreActivity.java | 5 +++- .../explore/images/SearchImageFragment.java | 2 +- .../media/MediaDetailPagerFragment.java | 26 +++---------------- build.gradle | 2 +- 11 files changed, 49 insertions(+), 62 deletions(-) create mode 100644 app/src/main/java/fr/free/nrw/commons/RequestAndNotifyInterface.java diff --git a/app/src/main/java/fr/free/nrw/commons/RequestAndNotifyInterface.java b/app/src/main/java/fr/free/nrw/commons/RequestAndNotifyInterface.java new file mode 100644 index 0000000000..28e4dcebba --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/RequestAndNotifyInterface.java @@ -0,0 +1,8 @@ +package fr.free.nrw.commons; + +public interface RequestAndNotifyInterface { + void viewPagerNotifyDataSetChanged(); + void requestMoreImages(); +} + + diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarksActivity.java b/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarksActivity.java index 5160dc496a..d307300c4b 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarksActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarksActivity.java @@ -2,7 +2,6 @@ import android.content.Context; import android.content.Intent; -import android.database.DataSetObserver; import android.os.Bundle; import com.google.android.material.tabs.TabLayout; import androidx.fragment.app.FragmentManager; @@ -16,6 +15,7 @@ import butterknife.ButterKnife; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.RequestAndNotifyInterface; import fr.free.nrw.commons.contributions.ContributionController; import fr.free.nrw.commons.media.MediaDetailPagerFragment; import fr.free.nrw.commons.theme.NavigationBaseActivity; @@ -23,7 +23,7 @@ public class BookmarksActivity extends NavigationBaseActivity implements FragmentManager.OnBackStackChangedListener, MediaDetailPagerFragment.MediaDetailProvider, - AdapterView.OnItemClickListener { + AdapterView.OnItemClickListener, RequestAndNotifyInterface { private FragmentManager supportFragmentManager; private BookmarksPagerAdapter adapter; @@ -101,12 +101,14 @@ public void onItemClick(AdapterView adapterView, View view, int i, long l) { * 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 @@ -135,4 +137,7 @@ public int getTotalMediaCount() { } return adapter.getMediaAdapter().getCount(); } + + @Override + public void requestMoreImages() { } } diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java b/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java index 10ac722fa4..ca264412f0 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java @@ -12,19 +12,20 @@ import android.widget.RelativeLayout; import android.widget.TextView; +import androidx.annotation.NonNull; +import androidx.annotation.Nullable; + import java.util.List; import java.util.concurrent.TimeUnit; import javax.inject.Inject; -import androidx.annotation.NonNull; -import androidx.annotation.Nullable; import butterknife.BindView; 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.bookmarks.BookmarksActivity; +import fr.free.nrw.commons.RequestAndNotifyInterface; import fr.free.nrw.commons.category.GridViewAdapter; import fr.free.nrw.commons.utils.NetworkUtils; import fr.free.nrw.commons.utils.ViewUtil; @@ -96,11 +97,7 @@ public void onResume() { gridView.setVisibility(GONE); if (gridAdapter != null) { gridAdapter.clear(); - try { - ((BookmarksActivity) getContext()).viewPagerNotifyDataSetChanged(); - }catch (Exception e){ - e.printStackTrace(); - } + ((RequestAndNotifyInterface) getContext()).viewPagerNotifyDataSetChanged(); } initList(); } @@ -202,11 +199,7 @@ private void handleSuccess(List collection) { return; } gridAdapter.addItems(collection); - try { - ((BookmarksActivity) getContext()).viewPagerNotifyDataSetChanged(); - }catch (Exception e){ - e.printStackTrace(); - } + ((RequestAndNotifyInterface) getContext()).viewPagerNotifyDataSetChanged(); } progressBar.setVisibility(GONE); statusTextView.setVisibility(GONE); diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java b/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java index 22b5a662be..0ab6d470aa 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java @@ -2,7 +2,6 @@ import android.content.Context; import android.content.Intent; -import android.database.DataSetObserver; import android.net.Uri; import android.os.Bundle; import android.view.Menu; @@ -24,6 +23,7 @@ import butterknife.ButterKnife; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.RequestAndNotifyInterface; import fr.free.nrw.commons.Utils; import fr.free.nrw.commons.explore.ViewPagerAdapter; import fr.free.nrw.commons.media.MediaDetailPagerFragment; @@ -37,7 +37,7 @@ public class CategoryDetailsActivity extends NavigationBaseActivity implements MediaDetailPagerFragment.MediaDetailProvider, - AdapterView.OnItemClickListener{ + AdapterView.OnItemClickListener, RequestAndNotifyInterface { private FragmentManager supportFragmentManager; @@ -219,6 +219,7 @@ public void onBackPressed() { * 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 void viewPagerNotifyDataSetChanged() { * 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(); diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesActivity.java b/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesActivity.java index 9006745d4d..e079a71f4d 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesActivity.java @@ -15,6 +15,7 @@ import butterknife.ButterKnife; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.RequestAndNotifyInterface; import fr.free.nrw.commons.explore.SearchActivity; import fr.free.nrw.commons.media.MediaDetailPagerFragment; import fr.free.nrw.commons.theme.NavigationBaseActivity; @@ -30,7 +31,7 @@ public class CategoryImagesActivity extends NavigationBaseActivity implements FragmentManager.OnBackStackChangedListener, MediaDetailPagerFragment.MediaDetailProvider, - AdapterView.OnItemClickListener{ + AdapterView.OnItemClickListener, RequestAndNotifyInterface { private FragmentManager supportFragmentManager; @@ -149,6 +150,7 @@ public Media getMediaAtPosition(int i) { * 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 +201,7 @@ public boolean onOptionsItemSelected(MenuItem item) { * 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(); diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesListFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesListFragment.java index 2e4f6e0a13..8fcdb1edf3 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesListFragment.java @@ -13,19 +13,20 @@ import android.widget.RelativeLayout; import android.widget.TextView; +import androidx.annotation.Nullable; + import java.util.List; import java.util.concurrent.TimeUnit; import javax.inject.Inject; import javax.inject.Named; -import androidx.annotation.Nullable; import butterknife.BindView; 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.RequestAndNotifyInterface; import fr.free.nrw.commons.kvstore.JsonKvStore; import fr.free.nrw.commons.media.MediaClient; import fr.free.nrw.commons.utils.NetworkUtils; @@ -250,22 +251,9 @@ private void handleSuccess(List collection) { 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(); - } + ((RequestAndNotifyInterface) getContext()).viewPagerNotifyDataSetChanged(); } + progressBar.setVisibility(GONE); isLoading = false; statusTextView.setVisibility(GONE); diff --git a/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java b/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java index 8af1663afb..3d1dfb864e 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java @@ -1,6 +1,5 @@ package fr.free.nrw.commons.explore; -import android.database.DataSetObserver; import android.os.Bundle; import android.text.TextUtils; import android.view.View; @@ -18,6 +17,7 @@ import com.jakewharton.rxbinding2.widget.RxSearchView; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.RequestAndNotifyInterface; import fr.free.nrw.commons.explore.categories.SearchCategoryFragment; import fr.free.nrw.commons.explore.images.SearchImageFragment; import fr.free.nrw.commons.explore.recentsearches.RecentSearchesFragment; @@ -34,7 +34,8 @@ * Represents search screen of this app */ -public class SearchActivity extends NavigationBaseActivity implements MediaDetailPagerFragment.MediaDetailProvider{ +public class SearchActivity extends NavigationBaseActivity + implements MediaDetailPagerFragment.MediaDetailProvider, RequestAndNotifyInterface { @BindView(R.id.toolbar_search) Toolbar toolbar; @BindView(R.id.searchHistoryContainer) FrameLayout searchHistoryContainer; @@ -147,6 +148,7 @@ public int getTotalMediaCount() { * 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(); @@ -233,6 +235,7 @@ public void updateText(String query) { * 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); diff --git a/app/src/main/java/fr/free/nrw/commons/explore/categories/ExploreActivity.java b/app/src/main/java/fr/free/nrw/commons/explore/categories/ExploreActivity.java index f734de9457..9e14488b0f 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/categories/ExploreActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/categories/ExploreActivity.java @@ -23,6 +23,7 @@ import butterknife.ButterKnife; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.RequestAndNotifyInterface; 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 @@ public class ExploreActivity extends NavigationBaseActivity implements MediaDetailPagerFragment.MediaDetailProvider, - AdapterView.OnItemClickListener { + AdapterView.OnItemClickListener, RequestAndNotifyInterface { 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 int getTotalMediaCount() { * 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 void onBackPressed() { * 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(); diff --git a/app/src/main/java/fr/free/nrw/commons/explore/images/SearchImageFragment.java b/app/src/main/java/fr/free/nrw/commons/explore/images/SearchImageFragment.java index 895b2ff139..48aca1fcb8 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/images/SearchImageFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/images/SearchImageFragment.java @@ -197,7 +197,7 @@ private void handleSuccess(List mediaList) { progressBar.setVisibility(GONE); imagesAdapter.addAll(mediaList); imagesAdapter.notifyDataSetChanged(); - ((SearchActivity)getContext()).viewPagerNotifyDataSetChanged(); + ((SearchActivity) getContext()).viewPagerNotifyDataSetChanged(); } } diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java index dafef06946..755897d589 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java @@ -26,6 +26,7 @@ import butterknife.ButterKnife; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; +import fr.free.nrw.commons.RequestAndNotifyInterface; import fr.free.nrw.commons.auth.SessionManager; import fr.free.nrw.commons.bookmarks.Bookmark; import fr.free.nrw.commons.bookmarks.pictures.BookmarkPicturesContentProvider; @@ -314,28 +315,9 @@ public void onPageScrolled(int i, float v, int i2) { 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()) + ((RequestAndNotifyInterface) getContext()).requestMoreImages(); + getActivity().invalidateOptionsMenu(); } diff --git a/build.gradle b/build.gradle index c9ab38f759..c0ac80a2a1 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:3.4.1' + classpath 'com.android.tools.build:gradle:3.4.2' classpath 'com.dicedmelon.gradle:jacoco-android:0.1.4' classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$KOTLIN_VERSION" From 300ab45e6b9664211df96558c421b87dc899c8e0 Mon Sep 17 00:00:00 2001 From: rtsketo Date: Fri, 16 Aug 2019 23:02:44 +0300 Subject: [PATCH 2/3] Fixes: #3091 Created an interface for methods viewPagerNotifyDataSetChanged() and requestMoreImages() commonly used by some Activities. --- .../fr/free/nrw/commons/RequestAndNotifyInterface.java | 8 -------- .../fr/free/nrw/commons/bookmarks/BookmarksActivity.java | 4 ++-- .../bookmarks/pictures/BookmarkPicturesFragment.java | 6 +++--- .../nrw/commons/category/CategoryDetailsActivity.java | 3 +-- .../free/nrw/commons/category/CategoryImagesActivity.java | 4 +--- .../free/nrw/commons/category/CategoryImagesCallback.java | 8 ++++++++ .../nrw/commons/category/CategoryImagesListFragment.java | 3 +-- .../java/fr/free/nrw/commons/explore/SearchActivity.java | 4 ++-- .../nrw/commons/explore/categories/ExploreActivity.java | 5 ++--- .../free/nrw/commons/media/MediaDetailPagerFragment.java | 8 ++------ build.gradle | 2 +- 11 files changed, 23 insertions(+), 32 deletions(-) delete mode 100644 app/src/main/java/fr/free/nrw/commons/RequestAndNotifyInterface.java create mode 100644 app/src/main/java/fr/free/nrw/commons/category/CategoryImagesCallback.java diff --git a/app/src/main/java/fr/free/nrw/commons/RequestAndNotifyInterface.java b/app/src/main/java/fr/free/nrw/commons/RequestAndNotifyInterface.java deleted file mode 100644 index 28e4dcebba..0000000000 --- a/app/src/main/java/fr/free/nrw/commons/RequestAndNotifyInterface.java +++ /dev/null @@ -1,8 +0,0 @@ -package fr.free.nrw.commons; - -public interface RequestAndNotifyInterface { - void viewPagerNotifyDataSetChanged(); - void requestMoreImages(); -} - - diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarksActivity.java b/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarksActivity.java index d307300c4b..ffef7d2d44 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarksActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/BookmarksActivity.java @@ -15,7 +15,7 @@ import butterknife.ButterKnife; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; -import fr.free.nrw.commons.RequestAndNotifyInterface; +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; @@ -23,7 +23,7 @@ public class BookmarksActivity extends NavigationBaseActivity implements FragmentManager.OnBackStackChangedListener, MediaDetailPagerFragment.MediaDetailProvider, - AdapterView.OnItemClickListener, RequestAndNotifyInterface { + AdapterView.OnItemClickListener, CategoryImagesCallback { private FragmentManager supportFragmentManager; private BookmarksPagerAdapter adapter; diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java b/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java index ca264412f0..d289fbe83e 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java @@ -25,7 +25,7 @@ import dagger.android.support.DaggerFragment; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; -import fr.free.nrw.commons.RequestAndNotifyInterface; +import fr.free.nrw.commons.category.CategoryImagesCallback; import fr.free.nrw.commons.category.GridViewAdapter; import fr.free.nrw.commons.utils.NetworkUtils; import fr.free.nrw.commons.utils.ViewUtil; @@ -97,7 +97,7 @@ public void onResume() { gridView.setVisibility(GONE); if (gridAdapter != null) { gridAdapter.clear(); - ((RequestAndNotifyInterface) getContext()).viewPagerNotifyDataSetChanged(); + ((CategoryImagesCallback) getContext()).viewPagerNotifyDataSetChanged(); } initList(); } @@ -199,7 +199,7 @@ private void handleSuccess(List collection) { return; } gridAdapter.addItems(collection); - ((RequestAndNotifyInterface) getContext()).viewPagerNotifyDataSetChanged(); + ((CategoryImagesCallback) getContext()).viewPagerNotifyDataSetChanged(); } progressBar.setVisibility(GONE); statusTextView.setVisibility(GONE); diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java b/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java index 0ab6d470aa..55b09d332e 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryDetailsActivity.java @@ -23,7 +23,6 @@ import butterknife.ButterKnife; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; -import fr.free.nrw.commons.RequestAndNotifyInterface; import fr.free.nrw.commons.Utils; import fr.free.nrw.commons.explore.ViewPagerAdapter; import fr.free.nrw.commons.media.MediaDetailPagerFragment; @@ -37,7 +36,7 @@ public class CategoryDetailsActivity extends NavigationBaseActivity implements MediaDetailPagerFragment.MediaDetailProvider, - AdapterView.OnItemClickListener, RequestAndNotifyInterface { + AdapterView.OnItemClickListener, CategoryImagesCallback { private FragmentManager supportFragmentManager; diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesActivity.java b/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesActivity.java index 60c0f96942..fb4bcab968 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesActivity.java @@ -2,7 +2,6 @@ import android.content.Context; import android.content.Intent; -import android.database.DataSetObserver; import android.os.Bundle; import androidx.fragment.app.FragmentManager; import androidx.fragment.app.FragmentTransaction; @@ -15,7 +14,6 @@ import butterknife.ButterKnife; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; -import fr.free.nrw.commons.RequestAndNotifyInterface; import fr.free.nrw.commons.auth.AuthenticatedActivity; import fr.free.nrw.commons.explore.SearchActivity; import fr.free.nrw.commons.media.MediaDetailPagerFragment; @@ -32,7 +30,7 @@ public class CategoryImagesActivity extends AuthenticatedActivity implements FragmentManager.OnBackStackChangedListener, MediaDetailPagerFragment.MediaDetailProvider, - AdapterView.OnItemClickListener, RequestAndNotifyInterface { + AdapterView.OnItemClickListener, CategoryImagesCallback { private FragmentManager supportFragmentManager; diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesCallback.java b/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesCallback.java new file mode 100644 index 0000000000..7160780016 --- /dev/null +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesCallback.java @@ -0,0 +1,8 @@ +package fr.free.nrw.commons.category; + +public interface CategoryImagesCallback { + void viewPagerNotifyDataSetChanged(); + void requestMoreImages(); +} + + diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesListFragment.java b/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesListFragment.java index abe0f55162..c4df069d46 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesListFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesListFragment.java @@ -26,7 +26,6 @@ import dagger.android.support.DaggerFragment; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; -import fr.free.nrw.commons.RequestAndNotifyInterface; import fr.free.nrw.commons.kvstore.JsonKvStore; import fr.free.nrw.commons.utils.NetworkUtils; import fr.free.nrw.commons.utils.ViewUtil; @@ -250,7 +249,7 @@ private void handleSuccess(List collection) { return; } gridAdapter.addItems(collection); - ((RequestAndNotifyInterface) getContext()).viewPagerNotifyDataSetChanged(); + ((CategoryImagesCallback) getContext()).viewPagerNotifyDataSetChanged(); } progressBar.setVisibility(GONE); diff --git a/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java b/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java index 3d1dfb864e..e96400aa9e 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/SearchActivity.java @@ -17,7 +17,7 @@ import com.jakewharton.rxbinding2.widget.RxSearchView; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; -import fr.free.nrw.commons.RequestAndNotifyInterface; +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; @@ -35,7 +35,7 @@ */ public class SearchActivity extends NavigationBaseActivity - implements MediaDetailPagerFragment.MediaDetailProvider, RequestAndNotifyInterface { + implements MediaDetailPagerFragment.MediaDetailProvider, CategoryImagesCallback { @BindView(R.id.toolbar_search) Toolbar toolbar; @BindView(R.id.searchHistoryContainer) FrameLayout searchHistoryContainer; diff --git a/app/src/main/java/fr/free/nrw/commons/explore/categories/ExploreActivity.java b/app/src/main/java/fr/free/nrw/commons/explore/categories/ExploreActivity.java index 9e14488b0f..49f4a5b220 100644 --- a/app/src/main/java/fr/free/nrw/commons/explore/categories/ExploreActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/explore/categories/ExploreActivity.java @@ -2,7 +2,6 @@ import android.content.Context; import android.content.Intent; -import android.database.DataSetObserver; import android.os.Bundle; import android.view.Menu; import android.view.MenuInflater; @@ -23,7 +22,7 @@ import butterknife.ButterKnife; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; -import fr.free.nrw.commons.RequestAndNotifyInterface; +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; @@ -38,7 +37,7 @@ public class ExploreActivity extends NavigationBaseActivity implements MediaDetailPagerFragment.MediaDetailProvider, - AdapterView.OnItemClickListener, RequestAndNotifyInterface { + 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"; diff --git a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java index 755897d589..0d96ae8aa7 100644 --- a/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/media/MediaDetailPagerFragment.java @@ -26,17 +26,13 @@ import butterknife.ButterKnife; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; -import fr.free.nrw.commons.RequestAndNotifyInterface; +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.mwapi.MediaWikiApi; import fr.free.nrw.commons.utils.ImageUtils; @@ -316,7 +312,7 @@ public void onPageScrolled(int i, float v, int i2) { return; } if (i+1 >= adapter.getCount()) - ((RequestAndNotifyInterface) getContext()).requestMoreImages(); + ((CategoryImagesCallback) getContext()).requestMoreImages(); getActivity().invalidateOptionsMenu(); } diff --git a/build.gradle b/build.gradle index c0ac80a2a1..c9ab38f759 100644 --- a/build.gradle +++ b/build.gradle @@ -6,7 +6,7 @@ buildscript { mavenCentral() } dependencies { - classpath 'com.android.tools.build:gradle:3.4.2' + classpath 'com.android.tools.build:gradle:3.4.1' classpath 'com.dicedmelon.gradle:jacoco-android:0.1.4' classpath 'com.getkeepsafe.dexcount:dexcount-gradle-plugin:0.8.2' classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$KOTLIN_VERSION" From a0b2cf6ee4369ad303770603dfbf9a722c4b91e0 Mon Sep 17 00:00:00 2001 From: rtsketo Date: Thu, 31 Oct 2019 11:41:49 +0200 Subject: [PATCH 3/3] Fixes: #3091 Added javadoc and changed wrong cast in BookmarkPicturesFragment --- .../bookmarks/pictures/BookmarkPicturesFragment.java | 6 +++--- .../free/nrw/commons/category/CategoryImagesCallback.java | 5 +++++ 2 files changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java b/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java index d289fbe83e..d6a6a55fb9 100644 --- a/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java +++ b/app/src/main/java/fr/free/nrw/commons/bookmarks/pictures/BookmarkPicturesFragment.java @@ -25,7 +25,7 @@ import dagger.android.support.DaggerFragment; import fr.free.nrw.commons.Media; import fr.free.nrw.commons.R; -import fr.free.nrw.commons.category.CategoryImagesCallback; +import fr.free.nrw.commons.bookmarks.BookmarksActivity; import fr.free.nrw.commons.category.GridViewAdapter; import fr.free.nrw.commons.utils.NetworkUtils; import fr.free.nrw.commons.utils.ViewUtil; @@ -97,7 +97,7 @@ public void onResume() { gridView.setVisibility(GONE); if (gridAdapter != null) { gridAdapter.clear(); - ((CategoryImagesCallback) getContext()).viewPagerNotifyDataSetChanged(); + ((BookmarksActivity) getContext()).viewPagerNotifyDataSetChanged(); } initList(); } @@ -199,7 +199,7 @@ private void handleSuccess(List collection) { return; } gridAdapter.addItems(collection); - ((CategoryImagesCallback) getContext()).viewPagerNotifyDataSetChanged(); + ((BookmarksActivity) getContext()).viewPagerNotifyDataSetChanged(); } progressBar.setVisibility(GONE); statusTextView.setVisibility(GONE); diff --git a/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesCallback.java b/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesCallback.java index 7160780016..e93e74fdf3 100644 --- a/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesCallback.java +++ b/app/src/main/java/fr/free/nrw/commons/category/CategoryImagesCallback.java @@ -1,5 +1,10 @@ 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();