Fix some bugs

pull/3/head
FongMi 4 years ago
parent 5725e1f4fe
commit 916e3b2be7
  1. 6
      app/src/main/java/com/fongmi/bear/player/Players.java
  2. 11
      app/src/main/java/com/fongmi/bear/ui/activity/DetailActivity.java
  3. 27
      app/src/main/java/com/fongmi/bear/ui/activity/PlayActivity.java

@ -35,7 +35,7 @@ public class Players implements Player.Listener {
exoPlayer.addListener(this); exoPlayer.addListener(this);
} }
public Players callback(Activity activity) { public Players activity(Activity activity) {
this.activity = activity; this.activity = activity;
return this; return this;
} }
@ -54,6 +54,10 @@ public class Players implements Player.Listener {
return String.valueOf(speed); return String.valueOf(speed);
} }
public boolean isIdle() {
return exoPlayer.getPlaybackState() == Player.STATE_IDLE;
}
public void setMediaSource(JsonObject object) { public void setMediaSource(JsonObject object) {
HashMap<String, String> headers = new HashMap<>(); HashMap<String, String> headers = new HashMap<>();
String parse = object.get("parse").getAsString(); String parse = object.get("parse").getAsString();

@ -68,7 +68,7 @@ public class DetailActivity extends BaseActivity {
@Override @Override
protected void initView() { protected void initView() {
mBinding.progressLayout.showProgress(); mBinding.progressLayout.showProgress();
mBinding.video.setPlayer(Players.get().callback(this).exo()); mBinding.video.setPlayer(Players.get().activity(this).exo());
mBinding.video.setResizeMode(Prefers.getScale()); mBinding.video.setResizeMode(Prefers.getScale());
setRecyclerView(); setRecyclerView();
setViewModel(); setViewModel();
@ -191,7 +191,14 @@ public class DetailActivity extends BaseActivity {
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
mBinding.video.setResizeMode(Prefers.getScale()); mBinding.video.setResizeMode(Prefers.getScale());
mBinding.video.setPlayer(Players.get().exo()); mBinding.video.setPlayer(Players.get().activity(this).exo());
if (data != null) checkResult(data);
}
private void checkResult(Intent data) {
int current = data.getIntExtra("current", 0);
setEpisodeActivated((Vod.Flag.Episode) mEpisodeAdapter.get(current));
mBinding.episode.setSelectedPosition(current);
} }
@Override @Override

@ -57,11 +57,12 @@ public class PlayActivity extends BaseActivity implements KeyDownImpl {
mVodFlag = Vod.Flag.objectFrom(getFlag()); mVodFlag = Vod.Flag.objectFrom(getFlag());
mControl = ViewControllerBinding.bind(mBinding.video.findViewById(R.id.control)); mControl = ViewControllerBinding.bind(mBinding.video.findViewById(R.id.control));
mControl.scale.setText(ResUtil.getStringArray(R.array.select_scale)[Prefers.getScale()]); mControl.scale.setText(ResUtil.getStringArray(R.array.select_scale)[Prefers.getScale()]);
mBinding.video.setPlayer(Players.get().callback(this).exo()); mBinding.video.setPlayer(Players.get().activity(this).exo());
mBinding.video.setControllerHideOnTouch(false); mBinding.video.setControllerHideOnTouch(false);
mBinding.video.setControllerShowTimeoutMs(0); mBinding.video.setControllerShowTimeoutMs(0);
mBinding.video.setResizeMode(Prefers.getScale()); mBinding.video.setResizeMode(Prefers.getScale());
mControl.speed.setText(Players.get().getSpeed()); mControl.speed.setText(Players.get().getSpeed());
if (Players.get().isIdle()) showProgress();
setViewModel(); setViewModel();
findCurrent(); findCurrent();
} }
@ -92,12 +93,24 @@ public class PlayActivity extends BaseActivity implements KeyDownImpl {
} }
} }
private void showProgress() {
if (mBinding.progress.getRoot().getVisibility() == View.GONE) {
mBinding.progress.getRoot().setVisibility(View.VISIBLE);
}
}
private void hideProgress() {
if (mBinding.progress.getRoot().getVisibility() == View.VISIBLE) {
mBinding.progress.getRoot().setVisibility(View.GONE);
}
}
private void getPlayer() { private void getPlayer() {
mBinding.progress.getRoot().setVisibility(View.VISIBLE);
Vod.Flag.Episode episode = mVodFlag.getEpisodes().get(mCurrent); Vod.Flag.Episode episode = mVodFlag.getEpisodes().get(mCurrent);
mSiteViewModel.playerContent(mVodFlag.getFlag(), episode.getUrl()); mSiteViewModel.playerContent(mVodFlag.getFlag(), episode.getUrl());
Notify.show(ResUtil.getString(R.string.play_ready, episode.getName())); Notify.show(ResUtil.getString(R.string.play_ready, episode.getName()));
mVodFlag.setActivated(episode); mVodFlag.setActivated(episode);
showProgress();
} }
private void onNext() { private void onNext() {
@ -122,7 +135,8 @@ public class PlayActivity extends BaseActivity implements KeyDownImpl {
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)
public void onPlaybackStateChanged(PlayerEvent event) { public void onPlaybackStateChanged(PlayerEvent event) {
mBinding.progress.getRoot().setVisibility(event.getState() == Player.STATE_BUFFERING ? View.VISIBLE : View.GONE); if (event.getState() == Player.STATE_BUFFERING) showProgress();
else hideProgress();
} }
@Override @Override
@ -176,11 +190,18 @@ public class PlayActivity extends BaseActivity implements KeyDownImpl {
} }
private void setResult() {
Intent intent = new Intent();
intent.putExtra("current", mCurrent);
setResult(RESULT_OK, intent);
}
@Override @Override
public void onBackPressed() { public void onBackPressed() {
if (mBinding.video.isControllerFullyVisible()) { if (mBinding.video.isControllerFullyVisible()) {
mBinding.video.hideController(); mBinding.video.hideController();
} else { } else {
setResult();
super.onBackPressed(); super.onBackPressed();
} }
} }

Loading…
Cancel
Save