From 8789879f1068d04759e38a189c1c096d3f98d964 Mon Sep 17 00:00:00 2001 From: Shashank Kumar <126143257+shashankiitbhu@users.noreply.github.com> Date: Fri, 26 Jan 2024 19:13:07 +0530 Subject: [PATCH] Fix Multi-Upload Wizard only asks Metadata for one picture (#5478) * Fix Multi-Upload Wizard only asks Metadata for one picture * javadoc * typo --------- Co-authored-by: shashankkumar Co-authored-by: Nicolas Raoul --- .../free/nrw/commons/upload/UploadActivity.java | 16 +++++++++++----- 1 file changed, 11 insertions(+), 5 deletions(-) diff --git a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java index 4459b9a16..f7798e165 100644 --- a/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java +++ b/app/src/main/java/fr/free/nrw/commons/upload/UploadActivity.java @@ -167,6 +167,11 @@ public class UploadActivity extends BaseActivity implements UploadContract.View, */ private boolean showPermissionsDialog = true; + /** + * Whether fragments have been saved. + */ + private boolean isFragmentsSaved = false; + @SuppressLint("CheckResult") @Override protected void onCreate(Bundle savedInstanceState) { @@ -179,6 +184,7 @@ public class UploadActivity extends BaseActivity implements UploadContract.View, created by the system and populate the fragments ArrayList */ if (savedInstanceState != null) { + isFragmentsSaved = true; List fragmentList = getSupportFragmentManager().getFragments(); fragments = new ArrayList<>(); for (Fragment fragment : fragmentList) { @@ -597,18 +603,18 @@ public class UploadActivity extends BaseActivity implements UploadContract.View, } }; - if(fragments.size()==0){ + if(isFragmentsSaved){ + UploadMediaDetailFragment fragment = (UploadMediaDetailFragment) fragments.get(0); + fragment.setCallback(uploadMediaDetailFragmentCallback); + }else{ uploadMediaDetailFragment.setCallback(uploadMediaDetailFragmentCallback); fragments.add(uploadMediaDetailFragment); - }else{ - UploadMediaDetailFragment fragment = (UploadMediaDetailFragment) fragments.get(0); - fragment.setCallback(uploadMediaDetailFragmentCallback); } } //If fragments are not created, create them and add them to the fragments ArrayList - if(!(fragments.size()>1)){ + if(!isFragmentsSaved){ uploadCategoriesFragment = new UploadCategoriesFragment(); if (place != null) { Bundle categoryBundle = new Bundle();