Changes made (#4354)

This commit is contained in:
Vinayak Aggarwal 2021-04-15 20:15:10 +05:30 committed by GitHub
parent eea3f821ae
commit bebc4afae2
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 27 additions and 20 deletions

View file

@ -112,9 +112,9 @@ public class ExploreListRootFragment extends CommonsDaggerSupportFragment implem
container.setVisibility(View.VISIBLE);
((ExploreFragment) getParentFragment()).tabLayout.setVisibility(View.GONE);
mediaDetails = new MediaDetailPagerFragment(false, true);
mediaDetails.showImage(position);
((ExploreFragment) getParentFragment()).setScroll(false);
setFragment(mediaDetails, listFragment);
mediaDetails.showImage(position);
}
/**

View file

@ -105,24 +105,13 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
((BaseActivity) getActivity()).getSupportActionBar().setDisplayHomeAsUpEnabled(true);
}
pager.setAdapter(adapter);
if (savedInstanceState != null) {
final int pageNumber = savedInstanceState.getInt("current-page");
// Adapter doesn't seem to be loading immediately.
// Dear God, please forgive us for our sins
view.postDelayed(() -> {
pager.setAdapter(adapter);
pager.setCurrentItem(pageNumber, false);
pager.setCurrentItem(pageNumber, false);
getActivity().invalidateOptionsMenu();
adapter.notifyDataSetChanged();
if (getActivity() == null) {
Timber.d("Returning as activity is destroyed!");
return;
}
getActivity().supportInvalidateOptionsMenu();
adapter.notifyDataSetChanged();
}, 100);
} else {
pager.setAdapter(adapter);
}
if (getActivity() instanceof MainActivity) {
((MainActivity)getActivity()).hideTabs();
@ -332,13 +321,31 @@ public class MediaDetailPagerFragment extends CommonsDaggerSupportFragment imple
public void showImage(int i, boolean isWikipediaButtonDisplayed) {
this.isWikipediaButtonDisplayed = isWikipediaButtonDisplayed;
Handler handler = new Handler();
handler.postDelayed(() -> pager.setCurrentItem(i), 5);
setViewPagerCurrentItem(i);
}
public void showImage(int i) {
Handler handler = new Handler();
handler.postDelayed(() -> pager.setCurrentItem(i), 5);
setViewPagerCurrentItem(i);
}
/**
* This function waits for the item to load then sets the item to current item
* @param position current item that to be shown
*/
private void setViewPagerCurrentItem(int position) {
final Boolean[] currentItemNotShown = {true};
Runnable runnable = new Runnable() {
@Override
public void run() {
while(currentItemNotShown[0]){
if(adapter.getCount() > position){
pager.setCurrentItem(position, false);
currentItemNotShown[0] = false;
}
}
}
};
new Thread(runnable).start();
}
/**