Fix live bug

pull/123/head
FongMi 4 years ago
parent ea9ab86ab7
commit fdbc1818f6
  1. 15
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  2. 22
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomLiveListView.java
  3. 4
      app/src/leanback/res/layout/activity_live.xml

@ -25,7 +25,7 @@ import com.fongmi.android.tv.model.LiveViewModel;
import com.fongmi.android.tv.player.Players;
import com.fongmi.android.tv.player.source.Force;
import com.fongmi.android.tv.ui.custom.CustomKeyDownLive;
import com.fongmi.android.tv.ui.custom.CustomLiveGridView;
import com.fongmi.android.tv.ui.custom.CustomLiveListView;
import com.fongmi.android.tv.ui.presenter.ChannelPresenter;
import com.fongmi.android.tv.ui.presenter.GroupPresenter;
import com.fongmi.android.tv.utils.Clock;
@ -40,7 +40,7 @@ import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
public class LiveActivity extends BaseActivity implements GroupPresenter.OnClickListener, ChannelPresenter.OnClickListener, CustomKeyDownLive.Listener, CustomLiveGridView.Callback {
public class LiveActivity extends BaseActivity implements GroupPresenter.OnClickListener, ChannelPresenter.OnClickListener, CustomKeyDownLive.Listener, CustomLiveListView.Callback {
private ActivityLiveBinding mBinding;
private ArrayObjectAdapter mChannelAdapter;
@ -185,12 +185,11 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void showInfo() {
mHandler.removeCallbacks(mR1);
mBinding.info.name.setSelected(true);
mHandler.postDelayed(mR1, 5000);
mBinding.info.name.setText(mChannel.getName());
mBinding.info.line.setText(mChannel.getLineText());
mBinding.info.number.setText(mChannel.getNumber());
mBinding.info.getRoot().setVisibility(View.VISIBLE);
mHandler.postDelayed(mR1, 5000);
}
@Override
@ -282,16 +281,16 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
@Override
public void onKeyLeft() {
if (mChannel.getUrls().size() == 1) return;
mBinding.info.getRoot().setVisibility(View.VISIBLE);
mBinding.info.line.setText(mChannel.prevLine().getLineText());
mChannel.prevLine();
showInfo();
getUrl();
}
@Override
public void onKeyRight() {
if (mChannel.getUrls().size() == 1) return;
mBinding.info.getRoot().setVisibility(View.VISIBLE);
mBinding.info.line.setText(mChannel.nextLine().getLineText());
mChannel.nextLine();
showInfo();
getUrl();
}

@ -12,19 +12,19 @@ import androidx.leanback.widget.VerticalGridView;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.utils.Utils;
public class CustomLiveGridView extends VerticalGridView {
public class CustomLiveListView extends VerticalGridView {
private Callback listener;
public CustomLiveGridView(@NonNull Context context) {
public CustomLiveListView(@NonNull Context context) {
super(context);
}
public CustomLiveGridView(@NonNull Context context, @Nullable AttributeSet attrs) {
public CustomLiveListView(@NonNull Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
}
public CustomLiveGridView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyle) {
public CustomLiveListView(@NonNull Context context, @Nullable AttributeSet attrs, int defStyle) {
super(context, attrs, defStyle);
}
@ -32,25 +32,27 @@ public class CustomLiveGridView extends VerticalGridView {
this.listener = listener;
}
private void moveTop() {
private boolean onKeyDown() {
listener.setUITimer();
if (getSelectedPosition() != getAdapter().getItemCount() - 1) return;
if (getSelectedPosition() != getAdapter().getItemCount() - 1) return false;
if (getId() == R.id.channel) setSelectedPosition(0);
else listener.nextGroup();
return true;
}
private void moveBottom() {
private boolean onKeyUp() {
listener.setUITimer();
if (getSelectedPosition() != 0) return;
if (getSelectedPosition() != 0) return false;
if (getId() == R.id.channel) setSelectedPosition(getAdapter().getItemCount());
else listener.prevGroup();
return true;
}
@Override
public boolean dispatchKeyEvent(@NonNull KeyEvent event) {
if (getVisibility() == View.GONE || event.getAction() != KeyEvent.ACTION_DOWN) return super.dispatchKeyEvent(event);
if (Utils.isUpKey(event)) moveBottom();
else if (Utils.isDownKey(event)) moveTop();
if (Utils.isDownKey(event)) return onKeyDown();
if (Utils.isUpKey(event)) return onKeyUp();
return super.dispatchKeyEvent(event);
}

@ -59,7 +59,7 @@
android:orientation="horizontal"
android:visibility="gone">
<com.fongmi.android.tv.ui.custom.CustomLiveGridView
<com.fongmi.android.tv.ui.custom.CustomLiveListView
android:id="@+id/group"
android:layout_width="140dp"
android:layout_height="match_parent"
@ -71,7 +71,7 @@
android:layout_height="match_parent"
android:background="@color/grey_700" />
<com.fongmi.android.tv.ui.custom.CustomLiveGridView
<com.fongmi.android.tv.ui.custom.CustomLiveListView
android:id="@+id/channel"
android:layout_width="260dp"
android:layout_height="match_parent"

Loading…
Cancel
Save