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 cb154c8192..3821344724 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 @@ -119,7 +119,9 @@ public void onItemClick(AdapterView adapterView, View view, int i, long l) { .add(R.id.fragmentContainer, mediaDetails) .addToBackStack(null) .commit(); - supportFragmentManager.executePendingTransactions(); + // Reason for using hide, add instead of replace is to maintain scroll position after + // coming back to the search activity. See https://github.com/commons-app/apps-android-commons/issues/1631 + // https://stackoverflow.com/questions/11353075/how-can-i-maintain-fragment-state-when-added-to-the-back-stack/19022550#19022550 supportFragmentManager.executePendingTransactions(); } mediaDetails.showImage(i); forceInitBackButton(); 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 7fb36542c3..385662a054 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 @@ -52,7 +52,7 @@ public class CategoryImagesListFragment extends DaggerFragment { @BindView(R.id.categoryImagesList) GridView gridView; @BindView(R.id.parentLayout) RelativeLayout parentLayout; private boolean hasMoreImages = true; - private boolean isLoading=true; + private boolean isLoading = true; private String categoryName = null; @Inject CategoryImageController controller; @@ -223,7 +223,7 @@ private void handleSuccess(List collection) { if(gridAdapter == null) { setAdapter(collection); } else { - if (gridAdapter.containsAll(collection)){ + if (gridAdapter.containsAll(collection)) { hasMoreImages = false; return; } 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 24df6be5fa..f28065eb5e 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 @@ -186,6 +186,9 @@ public void onSearchImageClicked(int index) { .add(R.id.mediaContainer, mediaDetails) .addToBackStack(null) .commit(); + // Reason for using hide, add instead of replace is to maintain scroll position after + // coming back to the search activity. See https://github.com/commons-app/apps-android-commons/issues/1631 + // https://stackoverflow.com/questions/11353075/how-can-i-maintain-fragment-state-when-added-to-the-back-stack/19022550#19022550 supportFragmentManager.executePendingTransactions(); } mediaDetails.showImage(index);