bug fix 5240 (#5292)

* bug fix 5240

Signed-off-by: Zeeshan Alam <zeeshan.alam@fmr.com>

* Incorporated review comments. Remove method MediaDetailPagerFragment.newInstance(false, false, 0) which was called only in unit test

* Added Required empty public constructor

---------

Signed-off-by: Zeeshan Alam <zeeshan.alam@fmr.com>
This commit is contained in:
Zeeshan Alam 2023-09-25 21:42:40 +05:30 committed by GitHub
parent 2282ce3d02
commit 19733b3e69
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
9 changed files with 39 additions and 28 deletions

View file

@ -184,7 +184,7 @@ public class BookmarkListRootFragment extends CommonsDaggerSupportFragment imple
public void refreshNominatedMedia(int index) { public void refreshNominatedMedia(int index) {
if (mediaDetails != null && !listFragment.isVisible()) { if (mediaDetails != null && !listFragment.isVisible()) {
removeFragment(mediaDetails); removeFragment(mediaDetails);
mediaDetails = new MediaDetailPagerFragment(false, true); mediaDetails = MediaDetailPagerFragment.newInstance(false, true);
((BookmarkFragment) getParentFragment()).setScroll(false); ((BookmarkFragment) getParentFragment()).setScroll(false);
setFragment(mediaDetails, listFragment); setFragment(mediaDetails, listFragment);
mediaDetails.showImage(index); mediaDetails.showImage(index);
@ -243,7 +243,7 @@ public class BookmarkListRootFragment extends CommonsDaggerSupportFragment imple
Log.d("deneme8", "on media clicked"); Log.d("deneme8", "on media clicked");
container.setVisibility(View.VISIBLE); container.setVisibility(View.VISIBLE);
((BookmarkFragment) getParentFragment()).tabLayout.setVisibility(View.GONE); ((BookmarkFragment) getParentFragment()).tabLayout.setVisibility(View.GONE);
mediaDetails = new MediaDetailPagerFragment(false, true); mediaDetails = MediaDetailPagerFragment.newInstance(false, true);
((BookmarkFragment) getParentFragment()).setScroll(false); ((BookmarkFragment) getParentFragment()).setScroll(false);
setFragment(mediaDetails, listFragment); setFragment(mediaDetails, listFragment);
mediaDetails.showImage(position); mediaDetails.showImage(position);

View file

@ -115,7 +115,7 @@ public class CategoryDetailsActivity extends BaseActivity
mediaContainer.setVisibility(View.VISIBLE); mediaContainer.setVisibility(View.VISIBLE);
if (mediaDetails == null || !mediaDetails.isVisible()) { if (mediaDetails == null || !mediaDetails.isVisible()) {
// set isFeaturedImage true for featured images, to include author field on media detail // set isFeaturedImage true for featured images, to include author field on media detail
mediaDetails = new MediaDetailPagerFragment(false, true); mediaDetails = MediaDetailPagerFragment.newInstance(false, true);
FragmentManager supportFragmentManager = getSupportFragmentManager(); FragmentManager supportFragmentManager = getSupportFragmentManager();
supportFragmentManager supportFragmentManager
.beginTransaction() .beginTransaction()

View file

@ -668,7 +668,7 @@ public class ContributionsFragment
@Override @Override
public void showDetail(int position, boolean isWikipediaButtonDisplayed) { public void showDetail(int position, boolean isWikipediaButtonDisplayed) {
if (mediaDetailPagerFragment == null || !mediaDetailPagerFragment.isVisible()) { if (mediaDetailPagerFragment == null || !mediaDetailPagerFragment.isVisible()) {
mediaDetailPagerFragment = new MediaDetailPagerFragment(false, true); mediaDetailPagerFragment = MediaDetailPagerFragment.newInstance(false, true);
if(isUserProfile) { if(isUserProfile) {
((ProfileActivity)getActivity()).setScroll(false); ((ProfileActivity)getActivity()).setScroll(false);
} }
@ -749,7 +749,7 @@ public class ContributionsFragment
public void refreshNominatedMedia(int index) { public void refreshNominatedMedia(int index) {
if(mediaDetailPagerFragment != null && !contributionsListFragment.isVisible()) { if(mediaDetailPagerFragment != null && !contributionsListFragment.isVisible()) {
removeFragment(mediaDetailPagerFragment); removeFragment(mediaDetailPagerFragment);
mediaDetailPagerFragment = new MediaDetailPagerFragment(false, true); mediaDetailPagerFragment = MediaDetailPagerFragment.newInstance(false, true);
mediaDetailPagerFragment.showImage(index); mediaDetailPagerFragment.showImage(index);
showMediaDetailPagerFragment(); showMediaDetailPagerFragment();
} }

View file

@ -111,7 +111,7 @@ public class ExploreListRootFragment extends CommonsDaggerSupportFragment implem
public void onMediaClicked(int position) { public void onMediaClicked(int position) {
container.setVisibility(View.VISIBLE); container.setVisibility(View.VISIBLE);
((ExploreFragment) getParentFragment()).tabLayout.setVisibility(View.GONE); ((ExploreFragment) getParentFragment()).tabLayout.setVisibility(View.GONE);
mediaDetails = new MediaDetailPagerFragment(false, true); mediaDetails = MediaDetailPagerFragment.newInstance(false, true);
((ExploreFragment) getParentFragment()).setScroll(false); ((ExploreFragment) getParentFragment()).setScroll(false);
setFragment(mediaDetails, listFragment); setFragment(mediaDetails, listFragment);
mediaDetails.showImage(position); mediaDetails.showImage(position);

View file

@ -118,7 +118,7 @@ public class ExploreMapRootFragment extends CommonsDaggerSupportFragment impleme
public void onMediaClicked(int position) { public void onMediaClicked(int position) {
container.setVisibility(View.VISIBLE); container.setVisibility(View.VISIBLE);
((ExploreFragment) getParentFragment()).tabLayout.setVisibility(View.GONE); ((ExploreFragment) getParentFragment()).tabLayout.setVisibility(View.GONE);
mediaDetails = new MediaDetailPagerFragment(false, true); mediaDetails = MediaDetailPagerFragment.newInstance(false, true);
((ExploreFragment) getParentFragment()).setScroll(false); ((ExploreFragment) getParentFragment()).setScroll(false);
setFragment(mediaDetails, mapFragment); setFragment(mediaDetails, mapFragment);
mediaDetails.showImage(position); mediaDetails.showImage(position);

View file

@ -221,7 +221,7 @@ public class SearchActivity extends BaseActivity
searchView.setVisibility(View.GONE);// to remove searchview when mediaDetails fragment open searchView.setVisibility(View.GONE);// to remove searchview when mediaDetails fragment open
if (mediaDetails == null || !mediaDetails.isVisible()) { if (mediaDetails == null || !mediaDetails.isVisible()) {
// set isFeaturedImage true for featured images, to include author field on media detail // set isFeaturedImage true for featured images, to include author field on media detail
mediaDetails = new MediaDetailPagerFragment(false, true); mediaDetails = MediaDetailPagerFragment.newInstance(false, true);
supportFragmentManager supportFragmentManager
.beginTransaction() .beginTransaction()
.hide(supportFragmentManager.getFragments().get(supportFragmentManager.getBackStackEntryCount())) .hide(supportFragmentManager.getFragments().get(supportFragmentManager.getBackStackEntryCount()))

View file

@ -153,7 +153,7 @@ public class WikidataItemDetailsActivity extends BaseActivity implements MediaDe
mediaContainer.setVisibility(View.VISIBLE); mediaContainer.setVisibility(View.VISIBLE);
if (mediaDetailPagerFragment == null || !mediaDetailPagerFragment.isVisible()) { if (mediaDetailPagerFragment == null || !mediaDetailPagerFragment.isVisible()) {
// set isFeaturedImage true for featured images, to include author field on media detail // set isFeaturedImage true for featured images, to include author field on media detail
mediaDetailPagerFragment = new MediaDetailPagerFragment(false, true); mediaDetailPagerFragment = MediaDetailPagerFragment.newInstance(false, true);
FragmentManager supportFragmentManager = getSupportFragmentManager(); FragmentManager supportFragmentManager = getSupportFragmentManager();
supportFragmentManager supportFragmentManager
.beginTransaction() .beginTransaction()

View file

@ -60,7 +60,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
private static CompositeDisposable compositeDisposable = new CompositeDisposable(); private static CompositeDisposable compositeDisposable = new CompositeDisposable();
@BindView(R.id.mediaDetailsPager) ViewPager pager; @BindView(R.id.mediaDetailsPager) ViewPager pager;
private Boolean editable; private boolean editable;
private boolean isFeaturedImage; private boolean isFeaturedImage;
private boolean isWikipediaButtonDisplayed; private boolean isWikipediaButtonDisplayed;
MediaDetailAdapter adapter; MediaDetailAdapter adapter;
@ -78,21 +78,30 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
return removedItems; return removedItems;
} }
private MediaDetailPagerFragment() {}; // Constructor calls made to be explicit
@SuppressLint("ValidFragment") /**
public MediaDetailPagerFragment(Boolean editable, boolean isFeaturedImage) { * Use this factory method to create a new instance of this fragment using the provided
this.editable = editable; * parameters.
this.isFeaturedImage = isFeaturedImage; *
isFromFeaturedRootFragment = false; * This method will create a new instance of MediaDetailPagerFragment and the arguments will be
* saved to a bundle which will be later available in the {@link #onCreate(Bundle)}
* @param editable
* @param isFeaturedImage
* @return
*/
public static MediaDetailPagerFragment newInstance(boolean editable, boolean isFeaturedImage) {
MediaDetailPagerFragment mediaDetailPagerFragment = new MediaDetailPagerFragment();
Bundle args = new Bundle();
args.putBoolean("is_editable", editable);
args.putBoolean("is_featured_image", isFeaturedImage);
mediaDetailPagerFragment.setArguments(args);
return mediaDetailPagerFragment;
} }
@SuppressLint("ValidFragment") public MediaDetailPagerFragment() {
public MediaDetailPagerFragment(Boolean editable, boolean isFeaturedImage, int position) { // Required empty public constructor
this.editable = editable; };
this.isFeaturedImage = isFeaturedImage;
isFromFeaturedRootFragment = true;
this.position = position;
}
@Override @Override
public View onCreateView(LayoutInflater inflater, public View onCreateView(LayoutInflater inflater,
@ -147,8 +156,11 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
public void onCreate(Bundle savedInstanceState) { public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); super.onCreate(savedInstanceState);
if (savedInstanceState != null) { if (savedInstanceState != null) {
editable = savedInstanceState.getBoolean("editable"); editable = savedInstanceState.getBoolean("editable", false);
isFeaturedImage = savedInstanceState.getBoolean("isFeaturedImage"); isFeaturedImage = savedInstanceState.getBoolean("isFeaturedImage", false);
if(null != pager) {
pager.setCurrentItem(savedInstanceState.getInt("current-page", 0), false);
}
} }
setHasOptionsMenu(true); setHasOptionsMenu(true);
initProvider(); initProvider();

View file

@ -67,9 +67,8 @@ class MediaDetailPagerFragmentUnitTests {
val activity = Robolectric.buildActivity(SearchActivity::class.java).create().get() val activity = Robolectric.buildActivity(SearchActivity::class.java).create().get()
fragment = MediaDetailPagerFragment(false, true) fragment = MediaDetailPagerFragment.newInstance(false, true);
fragment = MediaDetailPagerFragment(false, false) fragment = MediaDetailPagerFragment.newInstance(false, false);
fragment = MediaDetailPagerFragment(false, false, 0)
fragmentManager = activity.supportFragmentManager fragmentManager = activity.supportFragmentManager
val fragmentTransaction: FragmentTransaction = fragmentManager.beginTransaction() val fragmentTransaction: FragmentTransaction = fragmentManager.beginTransaction()
fragmentTransaction.add(fragment, null) fragmentTransaction.add(fragment, null)