mirror of
https://github.com/commons-app/apps-android-commons.git
synced 2025-10-26 12:23:58 +01:00
* Initialise MediaDetailProvider in based on its type as in activity or fragment
This commit is contained in:
parent
a248e6114c
commit
48812c7c13
2 changed files with 35 additions and 9 deletions
|
|
@ -146,8 +146,11 @@ public class MediaDetailFragment extends CommonsDaggerSupportFragment {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
|
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) {
|
if (savedInstanceState != null) {
|
||||||
editable = savedInstanceState.getBoolean("editable");
|
editable = savedInstanceState.getBoolean("editable");
|
||||||
isCategoryImage = savedInstanceState.getBoolean("isCategoryImage");
|
isCategoryImage = savedInstanceState.getBoolean("isCategoryImage");
|
||||||
|
|
@ -212,7 +215,12 @@ public class MediaDetailFragment extends CommonsDaggerSupportFragment {
|
||||||
@Override
|
@Override
|
||||||
public void onResume() {
|
public void onResume() {
|
||||||
super.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);
|
media = detailProvider.getMediaAtPosition(index);
|
||||||
if (media == null) {
|
if (media == null) {
|
||||||
// Ask the detail provider to ping us when we're ready
|
// Ask the detail provider to ping us when we're ready
|
||||||
|
|
|
||||||
|
|
@ -69,6 +69,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
||||||
private boolean isFeaturedImage;
|
private boolean isFeaturedImage;
|
||||||
MediaDetailAdapter adapter;
|
MediaDetailAdapter adapter;
|
||||||
private Bookmark bookmark;
|
private Bookmark bookmark;
|
||||||
|
private MediaDetailProvider provider;
|
||||||
|
|
||||||
public MediaDetailPagerFragment() {
|
public MediaDetailPagerFragment() {
|
||||||
this(false, false);
|
this(false, false);
|
||||||
|
|
@ -128,6 +129,23 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
||||||
isFeaturedImage = savedInstanceState.getBoolean("isFeaturedImage");
|
isFeaturedImage = savedInstanceState.getBoolean("isFeaturedImage");
|
||||||
}
|
}
|
||||||
setHasOptionsMenu(true);
|
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
|
@Override
|
||||||
|
|
@ -136,7 +154,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
||||||
Timber.d("Returning as activity is destroyed!");
|
Timber.d("Returning as activity is destroyed!");
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
MediaDetailProvider provider = (MediaDetailProvider) getParentFragment();
|
|
||||||
Media m = provider.getMediaAtPosition(pager.getCurrentItem());
|
Media m = provider.getMediaAtPosition(pager.getCurrentItem());
|
||||||
switch (item.getItemId()) {
|
switch (item.getItemId()) {
|
||||||
case R.id.menu_bookmark_current_image:
|
case R.id.menu_bookmark_current_image:
|
||||||
|
|
@ -325,7 +343,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void onPageScrolled(int i, float v, int i2) {
|
public void onPageScrolled(int i, float v, int i2) {
|
||||||
if(getParentFragment().getActivity() == null) {
|
if (getActivity() == null) {
|
||||||
Timber.d("Returning as activity is destroyed!");
|
Timber.d("Returning as activity is destroyed!");
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
@ -346,7 +364,7 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
getParentFragment().getActivity().supportInvalidateOptionsMenu();
|
getActivity().invalidateOptionsMenu();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|
@ -380,11 +398,11 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
|
||||||
public Fragment getItem(int i) {
|
public Fragment getItem(int i) {
|
||||||
if (i == 0) {
|
if (i == 0) {
|
||||||
// See bug https://code.google.com/p/android/issues/detail?id=27526
|
// See bug https://code.google.com/p/android/issues/detail?id=27526
|
||||||
if(getParentFragment().getActivity() == null) {
|
if (getActivity() == null) {
|
||||||
Timber.d("Skipping getItem. Returning as activity is destroyed!");
|
Timber.d("Skipping getItem. Returning as activity is destroyed!");
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
pager.postDelayed(() -> getParentFragment().getActivity().supportInvalidateOptionsMenu(), 5);
|
pager.postDelayed(() -> getActivity().invalidateOptionsMenu(), 5);
|
||||||
}
|
}
|
||||||
return MediaDetailFragment.forMedia(i, editable, isFeaturedImage);
|
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!");
|
Timber.d("Skipping getCount. Returning as activity is destroyed!");
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
return ((MediaDetailProvider) getParentFragment()).getTotalMediaCount();
|
return provider.getTotalMediaCount();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue