Optimize live ui

pull/590/head
FongMi 7 months ago
parent a4879d7aa2
commit af0817866c
  1. 16
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  2. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/VideoActivity.java
  3. 4
      app/src/leanback/java/com/fongmi/android/tv/ui/custom/CustomLiveListView.java
  4. 20
      app/src/leanback/res/layout/view_widget_live.xml
  5. 2
      app/src/leanback/res/layout/view_widget_vod.xml
  6. 6
      app/src/main/java/com/fongmi/android/tv/bean/Epg.java
  7. 16
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/LiveActivity.java
  8. 6
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/ChannelAdapter.java
  9. 9
      app/src/mobile/res/layout/view_control_live.xml

@ -454,7 +454,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void showControl(View view) {
mBinding.control.getRoot().setVisibility(View.VISIBLE);
mBinding.widget.info.setVisibility(View.VISIBLE);
mBinding.widget.top.setVisibility(View.VISIBLE);
App.post(view::requestFocus, 25);
setR1Callback();
hideInfo();
@ -462,7 +462,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
private void hideControl() {
mBinding.control.getRoot().setVisibility(View.GONE);
mBinding.widget.info.setVisibility(View.GONE);
mBinding.widget.top.setVisibility(View.GONE);
App.removeCallbacks(mR1);
}
@ -560,8 +560,7 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
if (item.isSelected()) {
fetch(item);
} else if (mChannel.hasCatchup()) {
mBinding.widget.epg.setVisibility(item.isInRange() ? View.GONE : View.VISIBLE);
mBinding.widget.epg.setText(item.isInRange() ? "" : item.getTitle());
mBinding.widget.title.setText(getString(R.string.detail_title, mChannel.getName(), item.getTitle()));
Notify.show(getString(R.string.play_ready, item.getTitle()));
setActivated(item);
fetch(item);
@ -595,7 +594,6 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
mBinding.widget.play.setText("");
mChannel.loadLogo(mBinding.widget.logo);
mBinding.widget.title.setSelected(true);
mBinding.widget.epg.setVisibility(View.GONE);
mBinding.widget.name.setText(mChannel.getName());
mBinding.widget.title.setText(mChannel.getName());
mBinding.widget.line.setText(mChannel.getLineText());
@ -606,10 +604,12 @@ public class LiveActivity extends BaseActivity implements GroupPresenter.OnClick
}
private void setEpg() {
String epg = mChannel.getData().getEpg();
if (!epg.isEmpty()) mBinding.widget.name.setMaxEms(12);
EpgData data = mChannel.getData().getEpgData();
boolean hasTitle = !data.getTitle().isEmpty();
mEpgDataAdapter.setItems(mChannel.getData().getList(), null);
mBinding.widget.play.setText(epg);
if (hasTitle) mBinding.widget.title.setText(getString(R.string.detail_title, mChannel.getName(), data.getTitle()));
mBinding.widget.name.setMaxEms(hasTitle ? 12 : 48);
mBinding.widget.play.setText(data.format());
setWidth(mChannel.getData());
setMetadata();
}

@ -881,14 +881,14 @@ public class VideoActivity extends BaseActivity implements CustomKeyDownVod.List
}
private void showInfo() {
mBinding.widget.info.setVisibility(View.VISIBLE);
mBinding.widget.top.setVisibility(View.VISIBLE);
mBinding.widget.center.setVisibility(View.VISIBLE);
mBinding.widget.exoDuration.setText(mPlayers.getDurationTime());
mBinding.widget.exoPosition.setText(mPlayers.getPositionTime(0));
}
private void hideInfo() {
mBinding.widget.info.setVisibility(View.GONE);
mBinding.widget.top.setVisibility(View.GONE);
mBinding.widget.center.setVisibility(View.GONE);
}

@ -34,14 +34,14 @@ public class CustomLiveListView extends VerticalGridView {
private boolean onKeyDown() {
if (getSelectedPosition() != getAdapter().getItemCount() - 1) return false;
if (getId() == R.id.channel || getId() == R.id.epg) setSelectedPosition(0);
if (getId() == R.id.channel || getId() == R.id.epgData) setSelectedPosition(0);
else if (listener != null) listener.nextGroup(false);
return true;
}
private boolean onKeyUp() {
if (getSelectedPosition() != 0) return false;
if (getId() == R.id.channel || getId() == R.id.epg) setSelectedPosition(getAdapter().getItemCount());
if (getId() == R.id.channel || getId() == R.id.epgData) setSelectedPosition(getAdapter().getItemCount());
else if (listener != null) listener.prevGroup(false);
return true;
}

@ -5,7 +5,7 @@
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/info"
android:id="@+id/top"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:visibility="gone"
@ -29,27 +29,11 @@
android:textSize="20sp"
tools:text="民視" />
<TextView
android:id="@+id/epg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/title"
android:layout_alignStart="@+id/title"
android:ellipsize="marquee"
android:shadowColor="@color/grey_900"
android:shadowDx="2"
android:shadowDy="2"
android:shadowRadius="1"
android:singleLine="true"
android:textColor="@color/white"
android:textSize="16sp"
tools:text="食神" />
<TextView
android:id="@+id/size"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/epg"
android:layout_below="@+id/title"
android:layout_alignStart="@+id/title"
android:shadowColor="@color/grey_900"
android:shadowDx="2"

@ -5,7 +5,7 @@
android:layout_height="match_parent">
<RelativeLayout
android:id="@+id/info"
android:id="@+id/top"
android:layout_width="match_parent"
android:layout_height="wrap_content">

@ -88,9 +88,9 @@ public class Epg {
}
}
public String getEpg() {
for (EpgData item : getList()) if (item.isSelected()) return item.format();
return "";
public EpgData getEpgData() {
for (EpgData item : getList()) if (item.isSelected()) return item;
return new EpgData();
}
public Epg selected() {

@ -580,9 +580,8 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
if (item.isSelected()) {
fetch(item);
} else if (mChannel.hasCatchup()) {
mBinding.control.title.setText(getString(R.string.detail_title, mChannel.getName(), item.getTitle()));
Notify.show(getString(R.string.play_ready, item.getTitle()));
mBinding.control.epg.setVisibility(View.VISIBLE);
mBinding.control.epg.setText(item.getTitle());
mEpgDataAdapter.setSelected(item);
fetch(item);
}
@ -607,7 +606,6 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
mBinding.widget.play.setText("");
mChannel.loadLogo(mBinding.widget.logo);
mBinding.control.title.setSelected(true);
mBinding.control.epg.setVisibility(View.GONE);
mBinding.widget.name.setText(mChannel.getName());
mBinding.control.title.setText(mChannel.getName());
mBinding.widget.namePip.setText(mChannel.getName());
@ -620,12 +618,12 @@ public class LiveActivity extends BaseActivity implements CustomKeyDownLive.List
}
private void setEpg() {
String epg = mChannel.getData().getEpg();
List<EpgData> data = mChannel.getData().getList();
if (!epg.isEmpty()) mBinding.widget.name.setMaxEms(12);
mBinding.widget.play.setText(epg);
mChannelAdapter.changed(mChannel);
mEpgDataAdapter.addAll(data);
EpgData data = mChannel.getData().getEpgData();
boolean hasTitle = !data.getTitle().isEmpty();
mEpgDataAdapter.addAll(mChannel.getData().getList());
if (hasTitle) mBinding.control.title.setText(getString(R.string.detail_title, mChannel.getName(), data.getTitle()));
mBinding.widget.name.setMaxEms(hasTitle ? 12 : 48);
mBinding.widget.play.setText(data.format());
setWidth(mChannel.getData());
setMetadata();
}

@ -40,12 +40,6 @@ public class ChannelAdapter extends RecyclerView.Adapter<ChannelAdapter.ViewHold
notifyDataSetChanged();
}
public void changed(Channel item) {
int position = mItems.indexOf(item);
if (position == -1) return;
notifyItemChanged(position);
}
public void remove(Channel item) {
int position = mItems.indexOf(item);
if (position == -1) return;

@ -31,15 +31,6 @@
android:textSize="14sp"
tools:text="CCTV-1" />
<TextView
android:id="@+id/epg"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textColor="@color/white"
android:textSize="12sp"
android:visibility="gone"
tools:text="秘境之眼" />
<TextView
android:id="@+id/size"
android:layout_width="wrap_content"

Loading…
Cancel
Save