Merge branch '2.9-release'

This commit is contained in:
maskara 2018-11-27 22:38:20 +05:30
commit 4a2cdb70b9
21 changed files with 552 additions and 172 deletions

View file

@ -157,8 +157,11 @@ public class MediaDetailFragment extends CommonsDaggerSupportFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
detailProvider = (MediaDetailPagerFragment.MediaDetailProvider) (getParentFragment().getParentFragment());
if (getParentFragment() != null
&& getParentFragment() instanceof MediaDetailPagerFragment) {
detailProvider =
((MediaDetailPagerFragment) getParentFragment()).getMediaDetailProvider();
}
if (savedInstanceState != null) {
editable = savedInstanceState.getBoolean("editable");
isCategoryImage = savedInstanceState.getBoolean("isCategoryImage");
@ -230,7 +233,12 @@ public class MediaDetailFragment extends CommonsDaggerSupportFragment {
@Override
public void onResume() {
super.onResume();
((ContributionsFragment)(getParentFragment().getParentFragment())).nearbyNoificationCardView.setVisibility(View.GONE);
if(getParentFragment()!=null && getParentFragment().getParentFragment()!=null) {
//Added a check because, not necessarily, the parent fragment will have a parent fragment, say
// in the case when MediaDetailPagerFragment is directly started by the CategoryImagesActivity
((ContributionsFragment) (getParentFragment().getParentFragment())).nearbyNoificationCardView
.setVisibility(View.GONE);
}
media = detailProvider.getMediaAtPosition(index);
if (media == null) {
// Ask the detail provider to ping us when we're ready

View file

@ -69,6 +69,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
private boolean isFeaturedImage;
MediaDetailAdapter adapter;
private Bookmark bookmark;
private MediaDetailProvider provider;
public MediaDetailPagerFragment() {
this(false, false);
@ -128,6 +129,23 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
isFeaturedImage = savedInstanceState.getBoolean("isFeaturedImage");
}
setHasOptionsMenu(true);
initProvider();
}
/**
* initialise the provider, based on from where the fragment was started, as in from an activity
* or a fragment
*/
private void initProvider() {
if (getParentFragment() != null) {
provider = (MediaDetailProvider) getParentFragment();
} else {
provider = (MediaDetailProvider) getActivity();
}
}
public MediaDetailProvider getMediaDetailProvider() {
return provider;
}
@Override
@ -136,7 +154,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
Timber.d("Returning as activity is destroyed!");
return true;
}
MediaDetailProvider provider = (MediaDetailProvider) getParentFragment();
Media m = provider.getMediaAtPosition(pager.getCurrentItem());
switch (item.getItemId()) {
case R.id.menu_bookmark_current_image:
@ -346,7 +364,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
e.printStackTrace();
}
}
getParentFragment().getActivity().supportInvalidateOptionsMenu();
getActivity().invalidateOptionsMenu();
}
@Override
@ -384,7 +402,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
Timber.d("Skipping getItem. Returning as activity is destroyed!");
return null;
}
pager.postDelayed(() -> getParentFragment().getActivity().supportInvalidateOptionsMenu(), 5);
pager.postDelayed(() -> getActivity().invalidateOptionsMenu(), 5);
}
return MediaDetailFragment.forMedia(i, editable, isFeaturedImage);
}
@ -395,7 +413,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
Timber.d("Skipping getCount. Returning as activity is destroyed!");
return 0;
}
return ((MediaDetailProvider) getParentFragment()).getTotalMediaCount();
return provider.getTotalMediaCount();
}
}
}