Fix control focus

pull/123/head
FongMi 3 years ago
parent bc36f7736e
commit 8f6d5114ad
  1. 14
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/DetailActivity.java
  2. 10
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  3. 1
      app/src/leanback/res/layout/view_control_live.xml
  4. 1
      app/src/leanback/res/layout/view_control_vod.xml
  5. 4
      app/src/main/java/com/fongmi/android/tv/player/Players.java

@ -503,7 +503,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
private void onToggle() {
if (isVisible(mBinding.control.getRoot())) hideControl();
else showControl();
else showControl(mBinding.control.next);
}
private void showProgress() {
@ -533,8 +533,9 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
mBinding.widget.info.setVisibility(View.GONE);
}
private void showControl() {
private void showControl(View view) {
mBinding.control.getRoot().setVisibility(View.VISIBLE);
view.requestFocus();
setR1Callback();
}
@ -652,7 +653,7 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
TrackSelectionDialog.setVisible(mPlayers.exo(), mBinding.control.tracks);
break;
case Player.STATE_ENDED:
if (mPlayers.canNext()) checkNext();
checkNext();
break;
default:
if (!event.isRetry() || mPlayers.addRetry() > 2) onError(event.getMsg());
@ -721,15 +722,12 @@ public class DetailActivity extends BaseActivity implements CustomKeyDownVod.Lis
public void onKeyUp() {
long current = mPlayers.getPosition();
long half = mPlayers.getDuration() / 2;
if (current < half) mBinding.control.opening.requestFocus();
else mBinding.control.ending.requestFocus();
showControl();
showControl(current < half ? mBinding.control.opening : mBinding.control.ending);
}
@Override
public void onKeyDown() {
mBinding.control.next.requestFocus();
showControl();
showControl(mBinding.control.next);
}
@Override

@ -323,8 +323,9 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
mBinding.widget.progress.getRoot().setVisibility(View.GONE);
}
private void showControl() {
private void showControl(View view) {
mBinding.control.getRoot().setVisibility(View.VISIBLE);
view.requestFocus();
setR3Callback();
}
@ -571,10 +572,9 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
@Override
public boolean onLongPress() {
if (isVisible(mBinding.control.home)) mBinding.control.home.requestFocus();
else if (isVisible(mBinding.control.line)) mBinding.control.line.requestFocus();
else mBinding.control.speed.requestFocus();
showControl();
if (isVisible(mBinding.control.home)) showControl(mBinding.control.home);
else if (isVisible(mBinding.control.line)) showControl(mBinding.control.line);
else showControl(mBinding.control.player);
hideInfo();
hideUI();
return true;

@ -14,7 +14,6 @@
<LinearLayout
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:animateLayoutChanges="true"
android:gravity="center_vertical"
android:orientation="horizontal">

@ -21,7 +21,6 @@
android:id="@+id/actionLayout"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:animateLayoutChanges="true"
android:gravity="center_vertical"
android:orientation="horizontal">

@ -204,10 +204,6 @@ public class Players implements Player.Listener, IMediaPlayer.OnInfoListener, IM
return getDuration() > 5 * 60 * 1000;
}
public boolean canNext() {
return getPosition() >= getDuration();
}
public void start(Channel channel) {
setMediaSource(channel.getHeaders(), channel.getUrl());
}

Loading…
Cancel
Save