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

View file

@ -115,7 +115,7 @@ public class CategoryDetailsActivity extends BaseActivity
mediaContainer.setVisibility(View.VISIBLE);
if (mediaDetails == null || !mediaDetails.isVisible()) {
// 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();
supportFragmentManager
.beginTransaction()

View file

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

View file

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

View file

@ -118,7 +118,7 @@ public class ExploreMapRootFragment extends CommonsDaggerSupportFragment impleme
public void onMediaClicked(int position) {
container.setVisibility(View.VISIBLE);
((ExploreFragment) getParentFragment()).tabLayout.setVisibility(View.GONE);
mediaDetails = new MediaDetailPagerFragment(false, true);
mediaDetails = MediaDetailPagerFragment.newInstance(false, true);
((ExploreFragment) getParentFragment()).setScroll(false);
setFragment(mediaDetails, mapFragment);
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
if (mediaDetails == null || !mediaDetails.isVisible()) {
// set isFeaturedImage true for featured images, to include author field on media detail
mediaDetails = new MediaDetailPagerFragment(false, true);
mediaDetails = MediaDetailPagerFragment.newInstance(false, true);
supportFragmentManager
.beginTransaction()
.hide(supportFragmentManager.getFragments().get(supportFragmentManager.getBackStackEntryCount()))

View file

@ -153,7 +153,7 @@ public class WikidataItemDetailsActivity extends BaseActivity implements MediaDe
mediaContainer.setVisibility(View.VISIBLE);
if (mediaDetailPagerFragment == null || !mediaDetailPagerFragment.isVisible()) {
// 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();
supportFragmentManager
.beginTransaction()

View file

@ -60,7 +60,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
private static CompositeDisposable compositeDisposable = new CompositeDisposable();
@BindView(R.id.mediaDetailsPager) ViewPager pager;
private Boolean editable;
private boolean editable;
private boolean isFeaturedImage;
private boolean isWikipediaButtonDisplayed;
MediaDetailAdapter adapter;
@ -78,21 +78,30 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
return removedItems;
}
private MediaDetailPagerFragment() {}; // Constructor calls made to be explicit
@SuppressLint("ValidFragment")
public MediaDetailPagerFragment(Boolean editable, boolean isFeaturedImage) {
this.editable = editable;
this.isFeaturedImage = isFeaturedImage;
isFromFeaturedRootFragment = false;
/**
* Use this factory method to create a new instance of this fragment using the provided
* parameters.
*
* 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(Boolean editable, boolean isFeaturedImage, int position) {
this.editable = editable;
this.isFeaturedImage = isFeaturedImage;
isFromFeaturedRootFragment = true;
this.position = position;
}
public MediaDetailPagerFragment() {
// Required empty public constructor
};
@Override
public View onCreateView(LayoutInflater inflater,
@ -147,8 +156,11 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
if (savedInstanceState != null) {
editable = savedInstanceState.getBoolean("editable");
isFeaturedImage = savedInstanceState.getBoolean("isFeaturedImage");
editable = savedInstanceState.getBoolean("editable", false);
isFeaturedImage = savedInstanceState.getBoolean("isFeaturedImage", false);
if(null != pager) {
pager.setCurrentItem(savedInstanceState.getInt("current-page", 0), false);
}
}
setHasOptionsMenu(true);
initProvider();

View file

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