|
|
|
|
@ -118,7 +118,7 @@ import master.flame.danmaku.danmaku.model.IDisplay; |
|
|
|
|
import master.flame.danmaku.danmaku.model.android.DanmakuContext; |
|
|
|
|
import tv.danmaku.ijk.media.player.ui.IjkVideoView; |
|
|
|
|
|
|
|
|
|
public class VideoActivity extends BaseActivity implements Clock.Callback, CustomKeyDownVod.Listener, TrackDialog.Listener, ControlDialog.Listener, FlagAdapter.OnClickListener, EpisodeAdapter.OnClickListener, QualityAdapter.OnClickListener, QuickAdapter.OnClickListener, ParseAdapter.OnClickListener, SubtitleCallback, CastDialog.Listener { |
|
|
|
|
public class VideoActivity extends BaseActivity implements Clock.Callback, CustomKeyDownVod.Listener, TrackDialog.Listener, ControlDialog.Listener, FlagAdapter.OnClickListener, EpisodeAdapter.OnClickListener, QualityAdapter.OnClickListener, QuickAdapter.OnClickListener, ParseAdapter.OnClickListener, SubtitleCallback, CastDialog.Listener, InfoDialog.Listener { |
|
|
|
|
|
|
|
|
|
private ActivityVideoBinding mBinding; |
|
|
|
|
private ViewGroup.LayoutParams mFrameParams; |
|
|
|
|
@ -607,8 +607,14 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onItemClick(Result result) { |
|
|
|
|
mPlayers.start(result, isUseParse(), getSite().isChangeable() ? getSite().getTimeout() : -1); |
|
|
|
|
mBinding.danmaku.hide(); |
|
|
|
|
try { |
|
|
|
|
result.setUrl(Source.get().fetch(result)); |
|
|
|
|
mPlayers.start(result, isUseParse(), getSite().isChangeable() ? getSite().getTimeout() : -1); |
|
|
|
|
mBinding.danmaku.hide(); |
|
|
|
|
} catch (Exception e) { |
|
|
|
|
ErrorEvent.extract(e.getMessage()); |
|
|
|
|
e.printStackTrace(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
@ -698,7 +704,6 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo |
|
|
|
|
|
|
|
|
|
private void onInfo() { |
|
|
|
|
InfoDialog.create(this).title(mBinding.control.title.getText()).headers(mPlayers.getHeaders()).url(mPlayers.getUrl()).show(); |
|
|
|
|
setRedirect(true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void onFull() { |
|
|
|
|
@ -1146,6 +1151,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo |
|
|
|
|
|
|
|
|
|
@Subscribe(threadMode = ThreadMode.MAIN) |
|
|
|
|
public void onActionEvent(ActionEvent event) { |
|
|
|
|
if (isRedirect()) return; |
|
|
|
|
if (ActionEvent.PLAY.equals(event.getAction()) || ActionEvent.PAUSE.equals(event.getAction())) { |
|
|
|
|
mBinding.control.play.performClick(); |
|
|
|
|
} else if (ActionEvent.NEXT.equals(event.getAction())) { |
|
|
|
|
@ -1159,14 +1165,26 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo |
|
|
|
|
|
|
|
|
|
@Subscribe(threadMode = ThreadMode.MAIN) |
|
|
|
|
public void onRefreshEvent(RefreshEvent event) { |
|
|
|
|
if (event.getType() == RefreshEvent.Type.DETAIL) getDetail(); |
|
|
|
|
else if (event.getType() == RefreshEvent.Type.PLAYER) onRefresh(); |
|
|
|
|
else if (event.getType() == RefreshEvent.Type.DANMAKU) checkDanmu(event.getPath()); |
|
|
|
|
else if (event.getType() == RefreshEvent.Type.SUBTITLE) mPlayers.setSub(Sub.from(event.getPath())); |
|
|
|
|
if (isRedirect()) return; |
|
|
|
|
switch (event.getType()) { |
|
|
|
|
case DETAIL: |
|
|
|
|
getDetail(); |
|
|
|
|
break; |
|
|
|
|
case PLAYER: |
|
|
|
|
onRefresh(); |
|
|
|
|
break; |
|
|
|
|
case DANMAKU: |
|
|
|
|
checkDanmu(event.getPath()); |
|
|
|
|
break; |
|
|
|
|
case SUBTITLE: |
|
|
|
|
mPlayers.setSub(Sub.from(event.getPath())); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Subscribe(threadMode = ThreadMode.MAIN) |
|
|
|
|
public void onPlayerEvent(PlayerEvent event) { |
|
|
|
|
if (isRedirect()) return; |
|
|
|
|
switch (event.getState()) { |
|
|
|
|
case 0: |
|
|
|
|
setPosition(); |
|
|
|
|
@ -1249,6 +1267,7 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo |
|
|
|
|
|
|
|
|
|
@Subscribe(threadMode = ThreadMode.MAIN) |
|
|
|
|
public void onErrorEvent(ErrorEvent event) { |
|
|
|
|
if (isRedirect()) return; |
|
|
|
|
if (mPlayers.addRetry() > event.getRetry()) checkError(event); |
|
|
|
|
else onRefresh(); |
|
|
|
|
} |
|
|
|
|
@ -1593,6 +1612,18 @@ public class VideoActivity extends BaseActivity implements Clock.Callback, Custo |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public void onShare(CharSequence title, String url) { |
|
|
|
|
Intent intent = new Intent(Intent.ACTION_SEND); |
|
|
|
|
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); |
|
|
|
|
intent.putExtra(Intent.EXTRA_TEXT, url); |
|
|
|
|
intent.putExtra("name", title); |
|
|
|
|
intent.putExtra("title", title); |
|
|
|
|
intent.setType("text/plain"); |
|
|
|
|
startActivity(Util.getChooser(intent)); |
|
|
|
|
setRedirect(true); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { |
|
|
|
|
super.onActivityResult(requestCode, resultCode, data); |
|
|
|
|
|