diff --git a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java index 14340fe8e..47fcff87e 100644 --- a/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java +++ b/app/src/mobile/java/com/fongmi/android/tv/ui/activity/DetailActivity.java @@ -11,6 +11,7 @@ import android.text.Html; import android.text.Layout; import android.util.Rational; import android.util.TypedValue; +import android.view.MotionEvent; import android.view.View; import android.view.ViewGroup; import android.view.ViewTreeObserver; @@ -206,27 +207,29 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis mBinding.control.seek.setListener(mPlayers); mBinding.more.setOnClickListener(view -> onMore()); mBinding.reverse.setOnClickListener(view -> onReverse()); - mBinding.control.text.setOnClickListener(this::onTrack); - mBinding.control.audio.setOnClickListener(this::onTrack); - mBinding.control.video.setOnClickListener(this::onTrack); mBinding.control.full.setOnClickListener(view -> onFull()); mBinding.control.keep.setOnClickListener(view -> onKeep()); mBinding.control.lock.setOnClickListener(view -> onLock()); + mBinding.control.share.setOnClickListener(view -> onShare()); mBinding.control.play.setOnClickListener(view -> checkPlay()); mBinding.control.next.setOnClickListener(view -> checkNext()); mBinding.control.prev.setOnClickListener(view -> checkPrev()); - mBinding.control.share.setOnClickListener(view -> onShare()); - mBinding.control.scale.setOnClickListener(view -> onScale()); - mBinding.control.speed.setOnClickListener(view -> onSpeed()); mBinding.control.rotate.setOnClickListener(view -> onRotate()); - mBinding.control.player.setOnClickListener(view -> onPlayer()); - mBinding.control.decode.setOnClickListener(view -> onDecode()); - mBinding.control.ending.setOnClickListener(view -> onEnding()); - mBinding.control.opening.setOnClickListener(view -> onOpening()); - mBinding.control.speed.setOnLongClickListener(view -> onSpeedLong()); - mBinding.control.ending.setOnLongClickListener(view -> onEndingReset()); - mBinding.control.opening.setOnLongClickListener(view -> onOpeningReset()); + mBinding.control.setting.setOnClickListener(view -> onSetting()); + mBinding.control.action.text.setOnClickListener(this::onTrack); + mBinding.control.action.audio.setOnClickListener(this::onTrack); + mBinding.control.action.video.setOnClickListener(this::onTrack); + mBinding.control.action.scale.setOnClickListener(view -> onScale()); + mBinding.control.action.speed.setOnClickListener(view -> onSpeed()); + mBinding.control.action.player.setOnClickListener(view -> onPlayer()); + mBinding.control.action.decode.setOnClickListener(view -> onDecode()); + mBinding.control.action.ending.setOnClickListener(view -> onEnding()); + mBinding.control.action.opening.setOnClickListener(view -> onOpening()); + mBinding.control.action.speed.setOnLongClickListener(view -> onSpeedLong()); + mBinding.control.action.ending.setOnLongClickListener(view -> onEndingReset()); + mBinding.control.action.opening.setOnLongClickListener(view -> onOpeningReset()); mBinding.video.setOnTouchListener((view, event) -> mKeyDown.onTouchEvent(event)); + mBinding.control.action.getRoot().setOnTouchListener(this::onActionTouch); } private void setRecyclerView() { @@ -250,13 +253,13 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis } private void setPlayerView() { - mBinding.control.player.setText(mPlayers.getPlayerText()); + mBinding.control.action.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()); + mBinding.control.action.decode.setText(mPlayers.getDecodeText()); } private void setVideoView() { @@ -270,7 +273,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private void setScale(int scale) { getExo().setResizeMode(scale); getIjk().setResizeMode(scale); - mBinding.control.scale.setText(ResUtil.getStringArray(R.array.select_scale)[scale]); + mBinding.control.action.scale.setText(ResUtil.getStringArray(R.array.select_scale)[scale]); } private void setViewModel() { @@ -419,12 +422,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis reverseEpisode(false); } - private void onTrack(View view) { - int type = Integer.parseInt(view.getTag().toString()); - TrackDialog.create().player(mPlayers).type(type).listener(this).show(getSupportFragmentManager(), null); - hideControl(); - } - private void onFull() { setR1Callback(); toggleFullscreen(); @@ -447,6 +444,10 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis showControl(); } + private void onShare() { + new ShareCompat.IntentBuilder(this).setType("text/plain").setText(getId()).startChooser(); + } + private void checkPlay() { setR1Callback(); checkPlayImg(!mPlayers.isPlaying()); @@ -478,8 +479,21 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis else onItemClick(item); } - private void onShare() { - new ShareCompat.IntentBuilder(this).setType("text/plain").setText(getId()).startChooser(); + private void onRotate() { + setR1Callback(); + setRotate(!isRotate()); + setRequestedOrientation(ResUtil.isLand(this) ? ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT : ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); + } + + private void onSetting() { + mBinding.control.action.getRoot().setVisibility(View.VISIBLE); + setR1Callback(); + } + + private void onTrack(View view) { + int type = Integer.parseInt(view.getTag().toString()); + TrackDialog.create().player(mPlayers).type(type).listener(this).show(getSupportFragmentManager(), null); + hideControl(); } private void onScale() { @@ -492,12 +506,12 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private void onSpeed() { setR1Callback(); - mBinding.control.speed.setText(mPlayers.addSpeed()); + mBinding.control.action.speed.setText(mPlayers.addSpeed()); mHistory.setSpeed(mPlayers.getSpeed()); } private boolean onSpeedLong() { - mBinding.control.speed.setText(mPlayers.toggleSpeed()); + mBinding.control.action.speed.setText(mPlayers.toggleSpeed()); mHistory.setSpeed(mPlayers.getSpeed()); setR1Callback(); return true; @@ -510,12 +524,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis getPlayer(getFlag(), getEpisode(), false); } - private void onRotate() { - setR1Callback(); - setRotate(!isRotate()); - setRequestedOrientation(ResUtil.isLand(this) ? ActivityInfo.SCREEN_ORIENTATION_USER_PORTRAIT : ActivityInfo.SCREEN_ORIENTATION_SENSOR_LANDSCAPE); - } - private void onPlayer() { mPlayers.togglePlayer(); Prefers.putPlayer(mPlayers.getPlayer()); @@ -538,13 +546,13 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis long duration = mPlayers.getDuration(); if (current < 0 || current < duration / 2) return; mHistory.setEnding(duration - current); - mBinding.control.ending.setText(mPlayers.stringToTime(mHistory.getEnding())); + mBinding.control.action.ending.setText(mPlayers.stringToTime(mHistory.getEnding())); setR1Callback(); } private boolean onEndingReset() { mHistory.setEnding(0); - mBinding.control.ending.setText(R.string.play_ed); + mBinding.control.action.ending.setText(R.string.play_ed); setR1Callback(); return true; } @@ -554,17 +562,22 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis long duration = mPlayers.getDuration(); if (current < 0 || current > duration / 2) return; mHistory.setOpening(current); - mBinding.control.opening.setText(mPlayers.stringToTime(mHistory.getOpening())); + mBinding.control.action.opening.setText(mPlayers.stringToTime(mHistory.getOpening())); setR1Callback(); } private boolean onOpeningReset() { mHistory.setOpening(0); - mBinding.control.opening.setText(R.string.play_op); + mBinding.control.action.opening.setText(R.string.play_op); setR1Callback(); return true; } + private boolean onActionTouch(View v, MotionEvent e) { + setR1Callback(); + return false; + } + private void toggleFullscreen() { if (isFullscreen()) exitFullscreen(); else enterFullscreen(); @@ -618,8 +631,8 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis private void showControl() { mBinding.control.parse.setVisibility(isFullscreen() && isUseParse() ? View.VISIBLE : View.GONE); mBinding.control.rotate.setVisibility(isFullscreen() && !isLock() ? View.VISIBLE : View.GONE); + mBinding.control.action.getRoot().setVisibility(isFullscreen() ? View.VISIBLE : View.GONE); mBinding.control.setting.setVisibility(isFullscreen() ? View.GONE : View.VISIBLE); - mBinding.control.action.setVisibility(isFullscreen() ? View.VISIBLE : View.GONE); mBinding.control.share.setVisibility(isFullscreen() ? View.GONE : View.VISIBLE); mBinding.control.keep.setVisibility(isFullscreen() ? View.GONE : View.VISIBLE); mBinding.control.lock.setVisibility(isFullscreen() ? View.VISIBLE : View.GONE); @@ -661,9 +674,9 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis mHistory = mHistory == null ? createHistory(item) : mHistory; onItemClick(mHistory.getFlag()); if (mHistory.isRevSort()) reverseEpisode(true); - mBinding.control.opening.setText(mHistory.getOpening() == 0 ? getString(R.string.play_op) : mPlayers.stringToTime(mHistory.getOpening())); - mBinding.control.ending.setText(mHistory.getEnding() == 0 ? getString(R.string.play_ed) : mPlayers.stringToTime(mHistory.getEnding())); - mBinding.control.speed.setText(mPlayers.setSpeed(mHistory.getSpeed())); + mBinding.control.action.opening.setText(mHistory.getOpening() == 0 ? getString(R.string.play_op) : mPlayers.stringToTime(mHistory.getOpening())); + mBinding.control.action.ending.setText(mHistory.getEnding() == 0 ? getString(R.string.play_ed) : mPlayers.stringToTime(mHistory.getEnding())); + mBinding.control.action.speed.setText(mPlayers.setSpeed(mHistory.getSpeed())); mPlayers.setPlayer(getPlayer()); setScale(getScale()); setPlayerView(); @@ -764,9 +777,9 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis } private void setTrackVisible(boolean visible) { - mBinding.control.text.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_TEXT) ? View.VISIBLE : View.GONE); - mBinding.control.audio.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_AUDIO) ? View.VISIBLE : View.GONE); - mBinding.control.video.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_VIDEO) ? View.VISIBLE : View.GONE); + mBinding.control.action.text.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_TEXT) ? View.VISIBLE : View.GONE); + mBinding.control.action.audio.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_AUDIO) ? View.VISIBLE : View.GONE); + mBinding.control.action.video.setVisibility(visible && mPlayers.haveTrack(C.TRACK_TYPE_VIDEO) ? View.VISIBLE : View.GONE); } private void setDefaultTrack() { diff --git a/app/src/mobile/res/layout/view_control_vod.xml b/app/src/mobile/res/layout/view_control_vod.xml index 14b2e0b44..24f1198eb 100644 --- a/app/src/mobile/res/layout/view_control_vod.xml +++ b/app/src/mobile/res/layout/view_control_vod.xml @@ -164,87 +164,12 @@ - + android:layout_marginBottom="16dp" /> - - - - - - - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/mobile/res/layout/view_control_vod_action.xml b/app/src/mobile/res/layout/view_control_vod_action.xml new file mode 100644 index 000000000..061515d61 --- /dev/null +++ b/app/src/mobile/res/layout/view_control_vod_action.xml @@ -0,0 +1,77 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file