Only load chapters when actually needed
This commit is contained in:
parent
4855f2386d
commit
5a53966250
@ -102,7 +102,7 @@ public class AudioPlayerFragment extends Fragment implements
|
||||
toolbar.setOnMenuItemClickListener(this);
|
||||
|
||||
ExternalPlayerFragment externalPlayerFragment = new ExternalPlayerFragment();
|
||||
getFragmentManager().beginTransaction()
|
||||
getChildFragmentManager().beginTransaction()
|
||||
.replace(R.id.playerFragment, externalPlayerFragment, ExternalPlayerFragment.TAG)
|
||||
.commit();
|
||||
|
||||
@ -127,7 +127,7 @@ public class AudioPlayerFragment extends Fragment implements
|
||||
sbPosition.setOnSeekBarChangeListener(this);
|
||||
|
||||
pager = root.findViewById(R.id.pager);
|
||||
AudioPlayerPagerAdapter pagerAdapter = new AudioPlayerPagerAdapter(getFragmentManager());
|
||||
AudioPlayerPagerAdapter pagerAdapter = new AudioPlayerPagerAdapter(getChildFragmentManager());
|
||||
pager.setAdapter(pagerAdapter);
|
||||
// Required for getChildAt(int) in ViewPagerBottomSheetBehavior to return the correct page
|
||||
pager.setOffscreenPageLimit(NUM_CONTENT_FRAGMENTS);
|
||||
@ -355,12 +355,10 @@ public class AudioPlayerFragment extends Fragment implements
|
||||
updatePosition(new PlaybackPositionEvent(controller.getPosition(), controller.getDuration()));
|
||||
updatePlaybackSpeedButton(media);
|
||||
setupOptionsMenu(media);
|
||||
}
|
||||
|
||||
if (media != null) {
|
||||
List<Chapter> chapters = controller.getMedia().getChapters();
|
||||
boolean hasChapters = chapters != null && !chapters.isEmpty();
|
||||
pageIndicator.setDisabledPage(hasChapters ? -1 : 2);
|
||||
}
|
||||
public void setHasChapters(boolean hasChapters) {
|
||||
pageIndicator.setDisabledPage(hasChapters ? -1 : 2);
|
||||
}
|
||||
|
||||
@Override
|
||||
|
@ -128,6 +128,7 @@ public class ChaptersFragment extends Fragment {
|
||||
disposable = Maybe.create(emitter -> {
|
||||
Playable media = controller.getMedia();
|
||||
if (media != null) {
|
||||
media.loadChapterMarks();
|
||||
emitter.onSuccess(media);
|
||||
} else {
|
||||
emitter.onComplete();
|
||||
@ -146,6 +147,7 @@ public class ChaptersFragment extends Fragment {
|
||||
return;
|
||||
}
|
||||
adapter.setMedia(media);
|
||||
((AudioPlayerFragment) getParentFragment()).setHasChapters(adapter.getItemCount() > 0);
|
||||
int positionOfCurrentChapter = getCurrentChapter(media);
|
||||
updateChapterSelection(positionOfCurrentChapter);
|
||||
}
|
||||
|
@ -590,9 +590,6 @@ public final class DBReader {
|
||||
if (!list.isEmpty()) {
|
||||
item = list.get(0);
|
||||
loadAdditionalFeedItemListData(list);
|
||||
if (item.hasChapters()) {
|
||||
loadChaptersOfFeedItem(adapter, item);
|
||||
}
|
||||
}
|
||||
}
|
||||
return item;
|
||||
@ -608,8 +605,7 @@ public final class DBReader {
|
||||
* than one FeedItem because this method might query the database several times for each item.
|
||||
*
|
||||
* @param itemId The ID of the FeedItem
|
||||
* @return The FeedItem or null if the FeedItem could not be found. All FeedComponent-attributes
|
||||
* as well as chapter marks of the FeedItem will also be loaded from the database.
|
||||
* @return The FeedItem or null if the FeedItem could not be found.
|
||||
*/
|
||||
@Nullable
|
||||
public static FeedItem getFeedItem(final long itemId) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user