Support hide live

pull/605/head
jhengazuki 5 months ago
parent 6434ebe964
commit be9623008f
  1. 22
      app/src/leanback/java/com/fongmi/android/tv/bean/Func.java
  2. 40
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  3. 1
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/SettingActivity.java

@ -2,10 +2,13 @@ package com.fongmi.android.tv.bean;
import android.annotation.SuppressLint;
import androidx.annotation.Nullable;
import com.fongmi.android.tv.R;
import com.fongmi.android.tv.impl.Diffable;
import com.fongmi.android.tv.utils.ResUtil;
public class Func {
public class Func implements Diffable<Func> {
private final int resId;
private int drawable;
@ -57,4 +60,21 @@ public class Func {
break;
}
}
@Override
public boolean equals(@Nullable Object obj) {
if (this == obj) return true;
if (!(obj instanceof Func it)) return false;
return getResId() == it.getResId();
}
@Override
public boolean isSameItem(Func other) {
return getResId() == other.getResId();
}
@Override
public boolean isSameContent(Func other) {
return equals(other);
}
}

@ -28,7 +28,6 @@ import com.fongmi.android.tv.api.config.WallConfig;
import com.fongmi.android.tv.bean.Config;
import com.fongmi.android.tv.bean.Func;
import com.fongmi.android.tv.bean.History;
import com.fongmi.android.tv.bean.Keep;
import com.fongmi.android.tv.bean.Result;
import com.fongmi.android.tv.bean.Site;
import com.fongmi.android.tv.bean.Style;
@ -66,12 +65,14 @@ import com.google.common.collect.Lists;
import org.greenrobot.eventbus.Subscribe;
import org.greenrobot.eventbus.ThreadMode;
import java.util.ArrayList;
import java.util.List;
public class HomeActivity extends BaseActivity implements CustomTitleView.Listener, VodPresenter.OnClickListener, FuncPresenter.OnClickListener, HistoryPresenter.OnClickListener {
private ActivityHomeBinding mBinding;
private ArrayObjectAdapter mHistoryAdapter;
private ArrayObjectAdapter mFuncAdapter;
private HistoryPresenter mPresenter;
private ArrayObjectAdapter mAdapter;
private SiteViewModel mViewModel;
@ -159,10 +160,10 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
}
private void setAdapter() {
mAdapter.add(getFuncRow());
mHistoryAdapter = new ArrayObjectAdapter(mPresenter = new HistoryPresenter(this));
mAdapter.add(new ListRow(mFuncAdapter = new ArrayObjectAdapter(new FuncPresenter(this))));
mAdapter.add(R.string.home_history);
mAdapter.add(R.string.home_recommend);
mHistoryAdapter = new ArrayObjectAdapter(mPresenter = new HistoryPresenter(this));
}
private void initConfig() {
@ -187,6 +188,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
getHistory();
getVideo();
setFocus();
setFunc();
setLogo();
}
@ -196,6 +198,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
mResult = Result.empty();
Notify.show(msg);
setFocus();
setFunc();
}
};
}
@ -231,21 +234,21 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
Style style = result.getStyle(getHome().getStyle());
for (List<Vod> items : Lists.partition(result.getList(), Product.getColumn(style))) {
ArrayObjectAdapter adapter = new ArrayObjectAdapter(new VodPresenter(this, style));
adapter.setItems(items, null);
adapter.setItems(items, new BaseDiffCallback<Vod>());
mAdapter.add(new ListRow(adapter));
}
}
private ListRow getFuncRow() {
ArrayObjectAdapter adapter = new ArrayObjectAdapter(new FuncPresenter(this));
adapter.add(Func.create(R.string.home_vod));
adapter.add(Func.create(R.string.home_live));
adapter.add(Func.create(R.string.home_search));
adapter.add(Func.create(R.string.home_keep));
adapter.add(Func.create(R.string.home_push));
adapter.add(Func.create(R.string.home_cast));
adapter.add(Func.create(R.string.home_setting));
return new ListRow(adapter);
private void setFunc() {
List<Func> items = new ArrayList<>();
items.add(Func.create(R.string.home_vod));
if (LiveConfig.hasUrl()) items.add(Func.create(R.string.home_live));
items.add(Func.create(R.string.home_search));
items.add(Func.create(R.string.home_keep));
items.add(Func.create(R.string.home_push));
items.add(Func.create(R.string.home_cast));
items.add(Func.create(R.string.home_setting));
mFuncAdapter.setItems(items, new BaseDiffCallback<Func>());
}
private void getHistory() {
@ -260,7 +263,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
if (renew) mHistoryAdapter = new ArrayObjectAdapter(mPresenter = new HistoryPresenter(this));
if ((items.isEmpty() && exist) || (renew && exist)) mAdapter.removeItems(historyIndex, 1);
if ((!items.isEmpty() && !exist) || (renew && exist)) mAdapter.add(historyIndex, new ListRow(mHistoryAdapter));
mHistoryAdapter.setItems(items, new BaseDiffCallback<Keep>());
mHistoryAdapter.setItems(items, new BaseDiffCallback<History>());
}
private void setHistoryDelete(boolean delete) {
@ -276,13 +279,11 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
}
private int getHistoryIndex() {
for (int i = 0; i < mAdapter.size(); i++) if (mAdapter.get(i).equals(R.string.home_history)) return i + 1;
return -1;
return mAdapter.indexOf(R.string.home_history) + 1;
}
private int getRecommendIndex() {
for (int i = 0; i < mAdapter.size(); i++) if (mAdapter.get(i).equals(R.string.home_recommend)) return i + 1;
return -1;
return mAdapter.indexOf(R.string.home_recommend) + 1;
}
private boolean isLoading() {
@ -301,6 +302,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
public void onRefreshEvent(RefreshEvent event) {
switch (event.getType()) {
case CONFIG:
setFunc();
setLogo();
break;
case VIDEO:

@ -191,6 +191,7 @@ public class SettingActivity extends BaseActivity implements ConfigCallback, Sit
case 1:
setCacheText();
Notify.dismiss();
RefreshEvent.config();
mBinding.liveUrl.setText(LiveConfig.getDesc());
break;
case 2:

Loading…
Cancel
Save