|
|
|
|
@ -26,6 +26,7 @@ import com.fongmi.android.tv.bean.Keep; |
|
|
|
|
import com.fongmi.android.tv.bean.Parse; |
|
|
|
|
import com.fongmi.android.tv.bean.Part; |
|
|
|
|
import com.fongmi.android.tv.bean.Result; |
|
|
|
|
import com.fongmi.android.tv.bean.Site; |
|
|
|
|
import com.fongmi.android.tv.bean.Vod; |
|
|
|
|
import com.fongmi.android.tv.databinding.ActivityDetailBinding; |
|
|
|
|
import com.fongmi.android.tv.db.AppDatabase; |
|
|
|
|
@ -113,6 +114,10 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis |
|
|
|
|
return getKey().concat(AppDatabase.SYMBOL).concat(getId()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private Site getSite() { |
|
|
|
|
return ApiConfig.get().getSite(getKey()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private Vod.Flag getVodFlag() { |
|
|
|
|
return (Vod.Flag) mFlagAdapter.get(mBinding.flag.getSelectedPosition()); |
|
|
|
|
} |
|
|
|
|
@ -122,6 +127,10 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis |
|
|
|
|
return 0; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private int getPlayerType() { |
|
|
|
|
return mHistory != null && mHistory.getPlayer() != -1 ? mHistory.getPlayer() : getSite().getPlayerType() != -1 ? getSite().getPlayerType() : Prefers.getPlayer(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private StyledPlayerView getExo() { |
|
|
|
|
return Prefers.getRender() == 0 ? mBinding.surface : mBinding.texture; |
|
|
|
|
} |
|
|
|
|
@ -152,7 +161,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis |
|
|
|
|
mR1 = this::hideControl; |
|
|
|
|
mR2 = this::hideCenter; |
|
|
|
|
setRecyclerView(); |
|
|
|
|
setPlayerView(); |
|
|
|
|
setVideoView(); |
|
|
|
|
setViewModel(); |
|
|
|
|
getDetail(); |
|
|
|
|
@ -211,19 +219,21 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setPlayerView() { |
|
|
|
|
mBinding.control.player.setText(mPlayers.getPlayerText()); |
|
|
|
|
getExo().setVisibility(mPlayers.isExo() ? View.VISIBLE : View.GONE); |
|
|
|
|
getIjk().setVisibility(mPlayers.isIjk() ? View.VISIBLE : View.GONE); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setDecodeView() { |
|
|
|
|
mBinding.control.decode.setText(mPlayers.getDecodeText()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setVideoView() { |
|
|
|
|
mPlayers.setupIjk(getIjk()); |
|
|
|
|
mPlayers.setupExo(getExo()); |
|
|
|
|
setScale(Prefers.getVodScale()); |
|
|
|
|
getExo().setPlayer(mPlayers.exo()); |
|
|
|
|
getIjk().setRender(Prefers.getRender()); |
|
|
|
|
getIjk().setDecode(Prefers.getDecode()); |
|
|
|
|
getExo().getSubtitleView().setStyle(ExoUtil.getCaptionStyle()); |
|
|
|
|
mBinding.control.player.setText(ResUtil.getStringArray(R.array.select_player)[Prefers.getPlayer()]); |
|
|
|
|
mBinding.control.decode.setText(ResUtil.getStringArray(R.array.select_decode)[Prefers.getDecode()]); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setScale(int scale) { |
|
|
|
|
@ -275,7 +285,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis |
|
|
|
|
setText(mBinding.year, R.string.detail_year, item.getVodYear()); |
|
|
|
|
setText(mBinding.area, R.string.detail_area, item.getVodArea()); |
|
|
|
|
setText(mBinding.type, R.string.detail_type, item.getTypeName()); |
|
|
|
|
setText(mBinding.site, R.string.detail_site, ApiConfig.getSiteName(getKey())); |
|
|
|
|
setText(mBinding.site, R.string.detail_site, getSite().getName()); |
|
|
|
|
setText(mBinding.actor, R.string.detail_actor, Html.fromHtml(item.getVodActor()).toString()); |
|
|
|
|
setText(mBinding.content, R.string.detail_content, Html.fromHtml(item.getVodContent()).toString()); |
|
|
|
|
setText(mBinding.director, R.string.detail_director, Html.fromHtml(item.getVodDirector()).toString()); |
|
|
|
|
@ -429,7 +439,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis |
|
|
|
|
private void onScale() { |
|
|
|
|
int index = mHistory.getScale(); |
|
|
|
|
if (index == -1) index = Prefers.getVodScale(); |
|
|
|
|
CharSequence[] array = ResUtil.getStringArray(R.array.select_scale); |
|
|
|
|
String[] array = ResUtil.getStringArray(R.array.select_scale); |
|
|
|
|
mHistory.setScale(index = index == array.length - 1 ? 0 : ++index); |
|
|
|
|
setScale(index); |
|
|
|
|
} |
|
|
|
|
@ -474,16 +484,20 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void onPlayer() { |
|
|
|
|
mPlayers.stop(); |
|
|
|
|
mPlayers.togglePlayer(); |
|
|
|
|
mHistory.setPlayer(mPlayers.getPlayer()); |
|
|
|
|
mBinding.control.tracks.setVisibility(View.GONE); |
|
|
|
|
mBinding.control.player.setText(mPlayers.togglePlayer()); |
|
|
|
|
App.post(() -> getPlayer(false), 250); |
|
|
|
|
getPlayer(false); |
|
|
|
|
setPlayerView(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void onDecode() { |
|
|
|
|
mBinding.control.decode.setText(mPlayers.toggleDecode()); |
|
|
|
|
if (mPlayers.isExo()) getExo().setPlayer(mPlayers.exo()); |
|
|
|
|
mPlayers.toggleDecode(); |
|
|
|
|
mPlayers.setupIjk(getIjk()); |
|
|
|
|
mPlayers.setupExo(getExo()); |
|
|
|
|
getPlayer(false); |
|
|
|
|
setDecodeView(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void onTracks() { |
|
|
|
|
@ -579,6 +593,9 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis |
|
|
|
|
mBinding.control.opening.setText(mPlayers.stringToTime(mHistory.getOpening())); |
|
|
|
|
mBinding.control.ending.setText(mPlayers.stringToTime(mHistory.getEnding())); |
|
|
|
|
mBinding.control.speed.setText(mPlayers.setSpeed(mHistory.getSpeed())); |
|
|
|
|
mPlayers.setPlayer(getPlayerType()); |
|
|
|
|
setPlayerView(); |
|
|
|
|
setDecodeView(); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private History createHistory() { |
|
|
|
|
@ -609,7 +626,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis |
|
|
|
|
Keep keep = new Keep(); |
|
|
|
|
keep.setKey(getHistoryKey()); |
|
|
|
|
keep.setCid(ApiConfig.getCid()); |
|
|
|
|
keep.setSiteName(ApiConfig.getSiteName(getKey())); |
|
|
|
|
keep.setSiteName(getSite().getName()); |
|
|
|
|
keep.setVodPic(mBinding.video.getTag().toString()); |
|
|
|
|
keep.setVodName(mBinding.name.getText().toString()); |
|
|
|
|
keep.setCreateTime(System.currentTimeMillis()); |
|
|
|
|
|