[leanback] support home style

pull/171/head
FongMi 2 years ago
parent 2634b7d1fa
commit cac80bc78b
  1. 14
      app/src/leanback/java/com/fongmi/android/tv/ui/activity/HomeActivity.java
  2. 2
      app/src/leanback/java/com/fongmi/android/tv/ui/fragment/VodFragment.java
  3. 4
      app/src/main/java/com/fongmi/android/tv/bean/Result.java

@ -27,6 +27,7 @@ import com.fongmi.android.tv.bean.Func;
import com.fongmi.android.tv.bean.History;
import com.fongmi.android.tv.bean.Result;
import com.fongmi.android.tv.bean.Site;
import com.fongmi.android.tv.bean.Style;
import com.fongmi.android.tv.bean.Vod;
import com.fongmi.android.tv.databinding.ActivityHomeBinding;
import com.fongmi.android.tv.event.CastEvent;
@ -70,6 +71,10 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
private Result mResult;
private Clock mClock;
private Site getHome() {
return ApiConfig.get().getHome();
}
@Override
protected ViewBinding getBinding() {
return mBinding = ActivityHomeBinding.inflate(getLayoutInflater());
@ -187,17 +192,18 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen
private void getVideo() {
mResult = Result.empty();
int index = getRecommendIndex();
String home = ApiConfig.get().getHome().getName();
mBinding.title.setText(home.isEmpty() ? ResUtil.getString(R.string.app_name) : home);
String title = getHome().getName();
mBinding.title.setText(title.isEmpty() ? ResUtil.getString(R.string.app_name) : title);
if (mAdapter.size() > index) mAdapter.removeItems(index, mAdapter.size() - index);
if (ApiConfig.get().getHome().getKey().isEmpty()) return;
if (getHome().getKey().isEmpty()) return;
mViewModel.homeContent();
mAdapter.add("progress");
}
private void addVideo(Result result) {
Style style = result.getStyle(getHome().getStyle());
for (List<Vod> items : Lists.partition(result.getList(), Product.getColumn())) {
ArrayObjectAdapter adapter = new ArrayObjectAdapter(new VodPresenter(this));
ArrayObjectAdapter adapter = new ArrayObjectAdapter(new VodPresenter(this, style));
adapter.setItems(items, null);
mAdapter.add(new ListRow(adapter));
}

@ -170,7 +170,7 @@ public class VodFragment extends BaseFragment implements CustomScroller.Callback
}
private void addVideo(Result result) {
Style style = result.getList().get(0).getStyle(getStyle());
Style style = result.getStyle(getStyle());
if (style.isList()) mAdapter.addAll(mAdapter.size(), result.getList());
else addGrid(result.getList(), style);
}

@ -272,6 +272,10 @@ public class Result implements Parcelable {
return Json.toMap(getHeader());
}
public Style getStyle(Style style) {
return getList().isEmpty() ? Style.rect() : getList().get(0).getStyle(style);
}
public Result clear() {
getList().clear();
return this;

Loading…
Cancel
Save