fix:click on skip button in Peer Review after orientation change then app is crashed (#4176)

* #fixes-4143
In ReviewActivity overrides two function-> onResume() and onPause()

* Fixed the Bug-#4143

* reformed the codechange

* reformed the codechange

* Add javadoc

* Add javadoc
This commit is contained in:
Prince kushwaha 2021-02-21 07:28:07 +05:30 committed by GitHub
parent 9075b65ddf
commit 4f130e4dd0
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 29 additions and 23 deletions

View file

@ -55,6 +55,11 @@ public class ReviewActivity extends BaseActivity {
ReviewHelper reviewHelper;
@Inject
DeleteHelper deleteHelper;
/**
* Represent fragment for ReviewImage
* Use to call some methods of ReviewImage fragment
*/
private ReviewImageFragment reviewImageFragment;
final String SAVED_MEDIA = "saved_media";
private Media media;
@ -98,7 +103,6 @@ public class ReviewActivity extends BaseActivity {
reviewPagerAdapter = new ReviewPagerAdapter(getSupportFragmentManager());
reviewPager.setAdapter(reviewPagerAdapter);
reviewPagerAdapter.getItem(0);
pagerIndicator.setViewPager(reviewPager);
progressBar.setVisibility(View.VISIBLE);
@ -113,7 +117,8 @@ public class ReviewActivity extends BaseActivity {
}
btnSkipImage.setOnClickListener(view -> {
reviewPagerAdapter.disableButtons();
reviewImageFragment = getInstanceOfReviewImageFragment();
reviewImageFragment.disableButtons();
runRandomizer();
});
@ -142,7 +147,8 @@ public class ReviewActivity extends BaseActivity {
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread())
.subscribe(media -> {
reviewPagerAdapter.disableButtons();
reviewImageFragment = getInstanceOfReviewImageFragment();
reviewImageFragment.disableButtons();
updateImage(media);
}));
return true;
@ -169,7 +175,8 @@ public class ReviewActivity extends BaseActivity {
String caption = String.format(getString(R.string.review_is_uploaded_by), fileName, revision.getUser());
imageCaption.setText(caption);
progressBar.setVisibility(View.GONE);
reviewPagerAdapter.enableButtons();
reviewImageFragment = getInstanceOfReviewImageFragment();
reviewImageFragment.enableButtons();
}));
reviewPager.setCurrentItem(0);
}
@ -226,4 +233,13 @@ public class ReviewActivity extends BaseActivity {
}
return super.onOptionsItemSelected(item);
}
/**
* this function return the instance of reviewImageFragment
*/
public ReviewImageFragment getInstanceOfReviewImageFragment(){
int currentItemOfReviewPager = reviewPager.getCurrentItem();
reviewImageFragment = (ReviewImageFragment) reviewPagerAdapter.instantiateItem(reviewPager, currentItemOfReviewPager);
return reviewImageFragment;
}
}

View file

@ -2,6 +2,8 @@ package fr.free.nrw.commons.review;
import android.os.Bundle;
import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.fragment.app.Fragment;
import androidx.fragment.app.FragmentManager;
import androidx.fragment.app.FragmentStatePagerAdapter;
@ -9,6 +11,13 @@ import androidx.fragment.app.FragmentStatePagerAdapter;
public class ReviewPagerAdapter extends FragmentStatePagerAdapter {
private ReviewImageFragment[] reviewImageFragments;
/**
* this function return the instance of ReviewviewPage current item
*/
@Override
public Object instantiateItem(@NonNull ViewGroup container, int position) {
return super.instantiateItem(container, position);
}
ReviewPagerAdapter(FragmentManager fm) {
super(fm);
@ -32,25 +41,6 @@ public class ReviewPagerAdapter extends FragmentStatePagerAdapter {
}
}
/**
* This function is called when an image has
* been loaded to enable the review buttons.
*/
public void enableButtons() {
if (reviewImageFragments != null){
reviewImageFragments[0].enableButtons();
}
}
/**
* This function is called when an image is being loaded
* to disable the review buttons
*/
public void disableButtons() {
if (reviewImageFragments != null){
reviewImageFragments[0].disableButtons();
}
}
@Override
public Fragment getItem(int position) {