Removed return parameter of loadMediaInfo

We return true anyways. The call for actually loading is asynchronous,
so returning anything here does not make sense.

Reduces likelihood of loader being interrupted to just load the same
item again when the state changes.
This commit is contained in:
ByteHamster 2021-02-15 21:56:03 +01:00
parent c0d3a6e3be
commit 339aa936bf
14 changed files with 54 additions and 33 deletions

@ -108,7 +108,12 @@ public class PlaybackTest {
}
private void setupPlaybackController() {
controller = new PlaybackController(activityTestRule.getActivity());
controller = new PlaybackController(activityTestRule.getActivity()) {
@Override
public void loadMediaInfo() {
// Do nothing
}
};
controller.init();
}

@ -73,7 +73,12 @@ public class SpeedChangeTest {
EspressoTestUtils.tryKillPlaybackService();
activityRule.launchActivity(new Intent().putExtra(MainActivityStarter.EXTRA_OPEN_PLAYER, true));
controller = new PlaybackController(activityRule.getActivity());
controller = new PlaybackController(activityRule.getActivity()) {
@Override
public void loadMediaInfo() {
// Do nothing
}
};
controller.init();
controller.getMedia(); // To load media
}

@ -135,8 +135,8 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
}
@Override
public boolean loadMediaInfo() {
return MediaplayerActivity.this.loadMediaInfo();
public void loadMediaInfo() {
MediaplayerActivity.this.loadMediaInfo();
}
@Override
@ -459,16 +459,15 @@ public abstract class MediaplayerActivity extends CastEnabledActivity implements
* to the PlaybackService to ensure that the activity has the right
* FeedMedia object.
*/
boolean loadMediaInfo() {
void loadMediaInfo() {
Log.d(TAG, "loadMediaInfo()");
if(controller == null || controller.getMedia() == null) {
return false;
if (controller == null || controller.getMedia() == null) {
return;
}
showTimeLeft = UserPreferences.shouldShowRemainingTime();
onPositionObserverUpdate();
checkFavorite();
updatePlaybackSpeedButton();
return true;
}
void updatePlaybackSpeedButton() {

@ -132,17 +132,13 @@ public class VideoplayerActivity extends MediaplayerActivity {
}
@Override
protected boolean loadMediaInfo() {
if (!super.loadMediaInfo() || controller == null) {
return false;
}
protected void loadMediaInfo() {
super.loadMediaInfo();
Playable media = controller.getMedia();
if (media != null) {
getSupportActionBar().setSubtitle(media.getEpisodeTitle());
getSupportActionBar().setTitle(media.getFeedTitle());
return true;
}
return false;
}
@Override

@ -45,6 +45,11 @@ public class PlaybackControlsDialog extends DialogFragment {
setupUi();
setupAudioTracks();
}
@Override
public void loadMediaInfo() {
}
};
controller.init();
setupUi();

@ -55,6 +55,11 @@ public class SleepTimerDialog extends DialogFragment {
public void onSleepTimerUpdate() {
updateTime();
}
@Override
public void loadMediaInfo() {
updateTime();
}
};
controller.init();
timeUpdater = Observable.interval(1, TimeUnit.SECONDS)

@ -64,6 +64,11 @@ public class VariableSpeedDialog extends DialogFragment {
public void onPlaybackSpeedChange() {
updateSpeed();
}
@Override
public void loadMediaInfo() {
updateSpeed();
}
};
controller.init();
speedSeekBar.setController(controller);

@ -365,9 +365,8 @@ public class AudioPlayerFragment extends Fragment implements
}
@Override
public boolean loadMediaInfo() {
public void loadMediaInfo() {
AudioPlayerFragment.this.loadMediaInfo();
return true;
}
@Override

@ -72,9 +72,8 @@ public class ChaptersFragment extends Fragment {
super.onStart();
controller = new PlaybackController(getActivity()) {
@Override
public boolean loadMediaInfo() {
public void loadMediaInfo() {
ChaptersFragment.this.loadMediaInfo();
return true;
}
@Override

@ -117,9 +117,8 @@ public class CoverFragment extends Fragment {
super.onStart();
controller = new PlaybackController(getActivity()) {
@Override
public boolean loadMediaInfo() {
public void loadMediaInfo() {
CoverFragment.this.loadMediaInfo();
return true;
}
@Override

@ -108,8 +108,8 @@ public class ExternalPlayerFragment extends Fragment {
}
@Override
public boolean loadMediaInfo() {
return ExternalPlayerFragment.this.loadMediaInfo();
public void loadMediaInfo() {
ExternalPlayerFragment.this.loadMediaInfo();
}
@Override
@ -170,11 +170,11 @@ public class ExternalPlayerFragment extends Fragment {
}
}
private boolean loadMediaInfo() {
private void loadMediaInfo() {
Log.d(TAG, "Loading media info");
if (controller == null) {
Log.w(TAG, "loadMediaInfo was called while PlaybackController was null!");
return false;
return;
}
if (disposable != null) {
@ -186,7 +186,6 @@ public class ExternalPlayerFragment extends Fragment {
.subscribe(this::updateUi,
error -> Log.e(TAG, Log.getStackTraceString(error)),
() -> ((MainActivity) getActivity()).setPlayerVisible(false));
return true;
}
private void updateUi(Playable media) {

@ -140,9 +140,8 @@ public class ItemDescriptionFragment extends Fragment {
super.onStart();
controller = new PlaybackController(getActivity()) {
@Override
public boolean loadMediaInfo() {
public void loadMediaInfo() {
load();
return true;
}
@Override

@ -238,7 +238,12 @@ public class ItemFragment extends Fragment {
public void onStart() {
super.onStart();
EventBus.getDefault().register(this);
controller = new PlaybackController(getActivity());
controller = new PlaybackController(getActivity()) {
@Override
public void loadMediaInfo() {
// Do nothing
}
};
controller.init();
}

@ -51,7 +51,7 @@ import java.util.List;
* Communicates with the playback service. GUI classes should use this class to
* control playback instead of communicating with the PlaybackService directly.
*/
public class PlaybackController {
public abstract class PlaybackController {
private static final String TAG = "PlaybackController";
private static final int INVALID_TIME = -1;
@ -431,7 +431,10 @@ public class PlaybackController {
}
private void checkMediaInfoLoaded() {
mediaInfoLoaded = (mediaInfoLoaded || loadMediaInfo());
if (!mediaInfoLoaded) {
loadMediaInfo();
}
mediaInfoLoaded = true;
}
private void updatePlayButtonAppearance(int resource, CharSequence contentDescription) {
@ -446,9 +449,7 @@ public class PlaybackController {
return null;
}
public boolean loadMediaInfo() {
return false;
}
public abstract void loadMediaInfo();
public void onAwaitingVideoSurface() {}