|
|
|
|
@ -90,8 +90,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen |
|
|
|
|
protected void initEvent() { |
|
|
|
|
EventBus.getDefault().register(this); |
|
|
|
|
mBinding.title.setListener(this); |
|
|
|
|
mFuncPresenter.setOnClickListener(this); |
|
|
|
|
mHistoryPresenter.setOnClickListener(this); |
|
|
|
|
mBinding.recycler.addOnChildViewHolderSelectedListener(new OnChildViewHolderSelectedListener() { |
|
|
|
|
@Override |
|
|
|
|
public void onChildViewHolderSelected(@NonNull RecyclerView parent, @Nullable RecyclerView.ViewHolder child, int position, int subposition) { |
|
|
|
|
@ -109,7 +107,6 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen |
|
|
|
|
selector.addPresenter(ListRow.class, new CustomRowPresenter(16), HistoryPresenter.class); |
|
|
|
|
mBinding.recycler.setVerticalSpacing(ResUtil.dp2px(16)); |
|
|
|
|
mBinding.recycler.setAdapter(new ItemBridgeAdapter(mAdapter = new ArrayObjectAdapter(selector))); |
|
|
|
|
mHistoryAdapter = new ArrayObjectAdapter(mHistoryPresenter = new HistoryPresenter()); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setViewModel() { |
|
|
|
|
@ -124,6 +121,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen |
|
|
|
|
mAdapter.add(getFuncRow()); |
|
|
|
|
mAdapter.add(R.string.home_history); |
|
|
|
|
mAdapter.add(R.string.home_recommend); |
|
|
|
|
mHistoryAdapter = new ArrayObjectAdapter(mHistoryPresenter = new HistoryPresenter(this)); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void setFocus() { |
|
|
|
|
@ -132,8 +130,9 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void getVideo() { |
|
|
|
|
int index = getRecommendIndex(); |
|
|
|
|
mViewModel.getResult().setValue(Result.empty()); |
|
|
|
|
if (mAdapter.size() > getRecommendIndex()) mAdapter.removeItems(getRecommendIndex(), mAdapter.size() - getRecommendIndex()); |
|
|
|
|
if (mAdapter.size() > index) mAdapter.removeItems(index, mAdapter.size() - index); |
|
|
|
|
if (ApiConfig.get().getHome().getName().isEmpty()) mBinding.title.setText(R.string.app_name); |
|
|
|
|
else mBinding.title.setText(ApiConfig.getHomeName()); |
|
|
|
|
if (ApiConfig.get().getHome().getKey().isEmpty()) return; |
|
|
|
|
@ -150,7 +149,7 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private ListRow getFuncRow() { |
|
|
|
|
ArrayObjectAdapter adapter = new ArrayObjectAdapter(mFuncPresenter = new FuncPresenter()); |
|
|
|
|
ArrayObjectAdapter adapter = new ArrayObjectAdapter(mFuncPresenter = 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)); |
|
|
|
|
@ -160,12 +159,17 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void getHistory() { |
|
|
|
|
getHistory(false); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
private void getHistory(boolean renew) { |
|
|
|
|
int historyIndex = getHistoryIndex(); |
|
|
|
|
int recommendIndex = getRecommendIndex(); |
|
|
|
|
boolean isExist = recommendIndex - historyIndex == 2; |
|
|
|
|
boolean exist = recommendIndex - historyIndex == 2; |
|
|
|
|
List<History> items = History.find(ApiConfig.getCid()); |
|
|
|
|
if (items.isEmpty() && isExist) mAdapter.removeItems(getHistoryIndex(), 1); |
|
|
|
|
if (items.size() > 0 && !isExist) mAdapter.add(historyIndex, new ListRow(mHistoryAdapter)); |
|
|
|
|
if (renew) mHistoryAdapter = new ArrayObjectAdapter(mHistoryPresenter = new HistoryPresenter(this)); |
|
|
|
|
if ((items.isEmpty() && exist) || (renew && exist)) mAdapter.removeItems(historyIndex, 1); |
|
|
|
|
if ((items.size() > 0 && !exist) || (renew && exist)) mAdapter.add(historyIndex, new ListRow(mHistoryAdapter)); |
|
|
|
|
mHistoryAdapter.setItems(items, null); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@ -242,12 +246,21 @@ public class HomeActivity extends BaseActivity implements CustomTitleView.Listen |
|
|
|
|
|
|
|
|
|
@Subscribe(threadMode = ThreadMode.MAIN) |
|
|
|
|
public void onRefreshEvent(RefreshEvent event) { |
|
|
|
|
if (event.getType() == RefreshEvent.Type.VIDEO) { |
|
|
|
|
getVideo(); |
|
|
|
|
} else if (event.getType() == RefreshEvent.Type.IMAGE) { |
|
|
|
|
mAdapter.notifyArrayItemRangeChanged(getRecommendIndex(), mAdapter.size() - getRecommendIndex()); |
|
|
|
|
} else if (event.getType() == RefreshEvent.Type.HISTORY) { |
|
|
|
|
getHistory(); |
|
|
|
|
switch (event.getType()) { |
|
|
|
|
case VIDEO: |
|
|
|
|
getVideo(); |
|
|
|
|
break; |
|
|
|
|
case IMAGE: |
|
|
|
|
int index = getRecommendIndex(); |
|
|
|
|
mAdapter.notifyArrayItemRangeChanged(index, mAdapter.size() - index); |
|
|
|
|
break; |
|
|
|
|
case HISTORY: |
|
|
|
|
getHistory(); |
|
|
|
|
break; |
|
|
|
|
case SIZE: |
|
|
|
|
getVideo(); |
|
|
|
|
getHistory(true); |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|