Optimize UX

pull/123/head
FongMi 3 years ago
parent 1ab47c0e97
commit d4bccdc3c2
  1. 42
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 56
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  3. 3
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomKeyDownVod.java
  4. 2
      app/src/leanback/res/layout/view_widget_vod.xml

@ -101,7 +101,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private Runnable mR1;
private Runnable mR2;
private Runnable mR3;
private Runnable mR4;
public static void start(Activity activity, String id, String name) {
start(activity, ApiConfig.get().getHome().getKey(), id, name);
@ -185,9 +184,8 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mBinding.progressLayout.showProgress();
mPlayers = new Players().init();
mR1 = this::hideControl;
mR2 = this::hideCenter;
mR3 = this::setTraffic;
mR4 = this::onError;
mR2 = this::setTraffic;
mR3 = this::onError;
setRecyclerView();
setVideoView();
setViewModel();
@ -309,6 +307,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mBinding.scroll.scrollTo(0, 0);
Clock.get().setCallback(null);
Notify.progress(this);
mPlayers.stop();
hideProgress();
getDetail();
}
@ -320,7 +319,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mViewModel.playerContent(getKey(), getVodFlag().getFlag(), item.getUrl());
Clock.get().setCallback(null);
updateHistory(item, replay);
setR4Callback();
setR3Callback();
showProgress();
hideError();
}
@ -452,7 +451,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mBinding.video.setLayoutParams(new RelativeLayout.LayoutParams(RelativeLayout.LayoutParams.MATCH_PARENT, RelativeLayout.LayoutParams.MATCH_PARENT));
mBinding.flag.setSelectedPosition(mCurrent);
App.post(() -> setFullscreen(true), 250);
onPlay(0);
onPlay();
}
private void exitFullscreen() {
@ -594,12 +593,12 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private void showProgress() {
mBinding.widget.progress.setVisibility(View.VISIBLE);
App.post(mR3, 0);
App.post(mR2, 0);
}
private void hideProgress() {
mBinding.widget.progress.setVisibility(View.GONE);
App.removeCallbacks(mR3);
App.removeCallbacks(mR2);
Traffic.reset();
}
@ -641,7 +640,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private void setTraffic() {
Traffic.setSpeed(mBinding.widget.traffic);
App.post(mR3, Constant.INTERVAL_TRAFFIC);
App.post(mR2, Constant.INTERVAL_TRAFFIC);
}
private void setR1Callback() {
@ -649,9 +648,9 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
App.post(mR1, Constant.INTERVAL_HIDE);
}
private void setR4Callback() {
App.removeCallbacks(mR4);
App.post(mR4, Constant.TIMEOUT_VOD);
private void setR3Callback() {
App.removeCallbacks(mR3);
App.post(mR3, Constant.TIMEOUT_VOD);
}
private void getPart(String source) {
@ -763,7 +762,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mPlayers.reset();
setDefaultTrack();
setTrackVisible(true);
App.removeCallbacks(mR4);
App.removeCallbacks(mR3);
mBinding.widget.size.setText(mPlayers.getSizeText());
break;
case Player.STATE_ENDED:
@ -802,7 +801,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
showError(msg);
hideProgress();
mPlayers.reset();
App.removeCallbacks(mR4);
App.removeCallbacks(mR3);
Clock.get().setCallback(null);
checkNext(mBinding.flag.getSelectedPosition());
}
@ -885,9 +884,9 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mPlayers.pause();
}
private void onPlay(int delay) {
App.post(mR2, delay);
private void onPlay() {
mPlayers.play();
hideCenter();
}
private boolean isFullscreen() {
@ -941,9 +940,10 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
@Override
public void onSeekTo(int time) {
App.post(() -> mPlayers.seekTo(time), 250);
mKeyDown.resetTime();
onPlay(250);
mPlayers.seekTo(time);
showProgress();
onPlay();
}
@Override
@ -961,7 +961,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
@Override
public void onKeyCenter() {
if (mPlayers.isPlaying()) onPause(true);
else onPlay(0);
else onPlay();
hideControl();
}
@ -987,7 +987,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
protected void onResume() {
super.onResume();
Clock.start(mBinding.widget.time);
onPlay(0);
onPlay();
}
@Override
@ -1014,6 +1014,6 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
protected void onDestroy() {
super.onDestroy();
mPlayers.release();
App.removeCallbacks(mR1, mR2, mR3, mR4);
App.removeCallbacks(mR1, mR2, mR3);
}
}

@ -86,7 +86,6 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private Runnable mR3;
private Runnable mR4;
private Runnable mR5;
private Runnable mR6;
private int count;
public static void start(Activity activity) {
@ -130,11 +129,10 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
protected void initView() {
mR0 = this::hideUI;
mR1 = this::hideInfo;
mR2 = this::hideCenter;
mR3 = this::hideControl;
mR4 = this::setChannelActivated;
mR5 = this::setTraffic;
mR6 = this::onError;
mR2 = this::hideControl;
mR3 = this::setChannelActivated;
mR4 = this::setTraffic;
mR5 = this::onError;
mPlayers = new Players().init();
mKeyDown = CustomKeyDownLive.create(this);
mFormatDate = new SimpleDateFormat("yyyy-MM-dd", Locale.getDefault());
@ -269,7 +267,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void setTraffic() {
Traffic.setSpeed(mBinding.widget.traffic);
App.post(mR5, Constant.INTERVAL_TRAFFIC);
App.post(mR4, Constant.INTERVAL_TRAFFIC);
}
private void onToggle() {
@ -347,24 +345,24 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void showProgress() {
mBinding.widget.progress.setVisibility(View.VISIBLE);
App.post(mR5, 0);
App.post(mR4, 0);
}
private void hideProgress() {
mBinding.widget.progress.setVisibility(View.GONE);
App.removeCallbacks(mR5);
App.removeCallbacks(mR4);
Traffic.reset();
}
private void showControl(View view) {
mBinding.control.getRoot().setVisibility(View.VISIBLE);
view.requestFocus();
setR3Callback();
setR2Callback();
}
private void hideControl() {
mBinding.control.getRoot().setVisibility(View.GONE);
App.removeCallbacks(mR3);
App.removeCallbacks(mR2);
}
private void showInfo() {
@ -393,14 +391,14 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
App.post(mR1, Constant.INTERVAL_HIDE);
}
private void setR3Callback() {
App.removeCallbacks(mR3);
App.post(mR3, Constant.INTERVAL_HIDE);
private void setR2Callback() {
App.removeCallbacks(mR2);
App.post(mR2, Constant.INTERVAL_HIDE);
}
private void setR6Callback() {
App.removeCallbacks(mR6);
App.post(mR6, Constant.TIMEOUT_LIVE);
private void setR5Callback() {
App.removeCallbacks(mR5);
App.post(mR5, Constant.TIMEOUT_LIVE);
}
private void resetPass() {
@ -451,7 +449,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void setChannel(Channel item) {
LiveConfig.get().setKeep(mGroup, mChannel = item);
App.post(mR4, 100);
App.post(mR3, 100);
showInfo();
}
@ -488,7 +486,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void getUrl() {
mViewModel.getUrl(mChannel);
setR6Callback();
setR5Callback();
showProgress();
}
@ -531,7 +529,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
@Override
public boolean dispatchKeyEvent(KeyEvent event) {
if (isVisible(mBinding.control.getRoot())) setR3Callback();
if (isVisible(mBinding.control.getRoot())) setR2Callback();
if (mKeyDown.hasEvent(event)) mKeyDown.onKeyDown(event);
return super.dispatchKeyEvent(event);
}
@ -591,20 +589,24 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
@Override
public void onKeyLeft(int time) {
if (isVisible(mBinding.widget.center)) App.post(mR2, 250);
if (mChannel.isOnly() && mPlayers.isVod()) App.post(() -> mPlayers.seekTo(time), 250);
if (mChannel.isOnly() && mPlayers.isVod()) App.post(() -> seekTo(time), 250);
else if (!mChannel.isOnly()) prevLine();
mKeyDown.resetTime();
}
@Override
public void onKeyRight(int time) {
if (isVisible(mBinding.widget.center)) App.post(mR2, 250);
if (mChannel.isOnly() && mPlayers.isVod()) App.post(() -> mPlayers.seekTo(time), 250);
if (mChannel.isOnly() && mPlayers.isVod()) App.post(() -> seekTo(time), 250);
else if (!mChannel.isOnly()) nextLine(true);
mKeyDown.resetTime();
}
private void seekTo(int time) {
mPlayers.seekTo(time);
showProgress();
hideCenter();
}
@Override
public void onKeyCenter() {
hideInfo();
@ -671,7 +673,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
hideProgress();
mPlayers.reset();
setTrackVisible(true);
App.removeCallbacks(mR6);
App.removeCallbacks(mR5);
break;
case Player.STATE_ENDED:
onKeyDown();
@ -689,7 +691,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
}
private void onError() {
App.removeCallbacks(mR6);
App.removeCallbacks(mR5);
mPlayers.reset();
checkNext();
}
@ -737,6 +739,6 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
Force.get().stop();
ZLive.get().stop();
TVBus.get().quit();
App.removeCallbacks(mR1, mR2, mR3, mR4, mR5, mR6);
App.removeCallbacks(mR1, mR2, mR3, mR4, mR5);
}
}

@ -7,6 +7,7 @@ import android.view.MotionEvent;
import androidx.annotation.NonNull;
import com.fongmi.android.tv.App;
import com.fongmi.android.tv.Constant;
import com.fongmi.android.tv.utils.Utils;
@ -44,7 +45,7 @@ public class CustomKeyDownVod extends GestureDetector.SimpleOnGestureListener {
} else if (event.getAction() == KeyEvent.ACTION_DOWN && Utils.isRightKey(event)) {
listener.onSeeking(addTime());
} else if (event.getAction() == KeyEvent.ACTION_UP && (Utils.isLeftKey(event) || Utils.isRightKey(event))) {
listener.onSeekTo(holdTime);
App.post(() -> listener.onSeekTo(holdTime), 250);
} else if (event.getAction() == KeyEvent.ACTION_UP && Utils.isUpKey(event)) {
listener.onKeyUp();
} else if (event.getAction() == KeyEvent.ACTION_UP && Utils.isDownKey(event)) {

@ -39,7 +39,7 @@
android:shadowDy="2"
android:shadowRadius="1"
android:textColor="@color/white"
android:textSize="18sp"
android:textSize="16sp"
tools:text="1920 x 1080" />
<TextView

Loading…
Cancel
Save