Add progress for first load

pull/2/head
FongMi 3 years ago
parent a8b3041181
commit 6e351b162c
  1. 18
      app/src/main/java/com/fongmi/bear/ui/activity/HomeActivity.java
  2. 1
      app/src/main/java/com/fongmi/bear/ui/custom/Scroller.java
  3. 14
      app/src/main/java/com/fongmi/bear/ui/fragment/VodFragment.java
  4. 3
      app/src/main/java/com/fongmi/bear/ui/presenter/TitlePresenter.java

@ -19,6 +19,7 @@ import com.fongmi.bear.model.SiteViewModel;
import com.fongmi.bear.ui.custom.CustomRowPresenter; import com.fongmi.bear.ui.custom.CustomRowPresenter;
import com.fongmi.bear.ui.custom.CustomSelector; import com.fongmi.bear.ui.custom.CustomSelector;
import com.fongmi.bear.ui.presenter.FuncPresenter; import com.fongmi.bear.ui.presenter.FuncPresenter;
import com.fongmi.bear.ui.presenter.ProgressPresenter;
import com.fongmi.bear.ui.presenter.TitlePresenter; import com.fongmi.bear.ui.presenter.TitlePresenter;
import com.fongmi.bear.ui.presenter.VodPresenter; import com.fongmi.bear.ui.presenter.VodPresenter;
import com.fongmi.bear.utils.ResUtil; import com.fongmi.bear.utils.ResUtil;
@ -47,7 +48,7 @@ public class HomeActivity extends BaseActivity {
setRecyclerView(); setRecyclerView();
setViewModel(); setViewModel();
setAdapter(); setAdapter();
getContent(); getVideo();
} }
@Override @Override
@ -57,7 +58,8 @@ public class HomeActivity extends BaseActivity {
private void setRecyclerView() { private void setRecyclerView() {
CustomSelector selector = new CustomSelector(); CustomSelector selector = new CustomSelector();
selector.addPresenter(String.class, new TitlePresenter()); selector.addPresenter(Integer.class, new TitlePresenter());
selector.addPresenter(String.class, new ProgressPresenter());
selector.addPresenter(ListRow.class, new CustomRowPresenter(16), VodPresenter.class); selector.addPresenter(ListRow.class, new CustomRowPresenter(16), VodPresenter.class);
selector.addPresenter(ListRow.class, new CustomRowPresenter(16), FuncPresenter.class); selector.addPresenter(ListRow.class, new CustomRowPresenter(16), FuncPresenter.class);
mBinding.recycler.setVerticalSpacing(ResUtil.dp2px(16)); mBinding.recycler.setVerticalSpacing(ResUtil.dp2px(16));
@ -67,6 +69,7 @@ public class HomeActivity extends BaseActivity {
private void setViewModel() { private void setViewModel() {
mSiteViewModel = new ViewModelProvider(this).get(SiteViewModel.class); mSiteViewModel = new ViewModelProvider(this).get(SiteViewModel.class);
mSiteViewModel.mResult.observe(this, result -> { mSiteViewModel.mResult.observe(this, result -> {
mAdapter.remove("progress");
for (List<Vod> items : result.partition()) { for (List<Vod> items : result.partition()) {
ArrayObjectAdapter adapter = new ArrayObjectAdapter(new VodPresenter(items.size())); ArrayObjectAdapter adapter = new ArrayObjectAdapter(new VodPresenter(items.size()));
adapter.addAll(0, items); adapter.addAll(0, items);
@ -76,15 +79,16 @@ public class HomeActivity extends BaseActivity {
} }
private void setAdapter() { private void setAdapter() {
mAdapter.add(ResUtil.getString(R.string.app_name)); mAdapter.add(R.string.app_name);
mAdapter.add(getFuncRow()); mAdapter.add(getFuncRow());
mAdapter.add(ResUtil.getString(R.string.home_recent)); mAdapter.add(R.string.home_recent);
mAdapter.add(ResUtil.getString(R.string.home_recommend)); mAdapter.add(R.string.home_recommend);
} }
private void getContent() { private void getVideo() {
if (mAdapter.size() > 4) mAdapter.removeItems(4, mAdapter.size() - 4); if (mAdapter.size() > 4) mAdapter.removeItems(4, mAdapter.size() - 4);
mSiteViewModel.homeContent(); mSiteViewModel.homeContent();
mAdapter.add("progress");
} }
private ListRow getFuncRow() { private ListRow getFuncRow() {
@ -113,6 +117,6 @@ public class HomeActivity extends BaseActivity {
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) { protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data); super.onActivityResult(requestCode, resultCode, data);
if (resultCode != RESULT_OK) return; if (resultCode != RESULT_OK) return;
getContent(); getVideo();
} }
} }

@ -1,7 +1,6 @@
package com.fongmi.bear.ui.custom; package com.fongmi.bear.ui.custom;
import android.os.Handler; import android.os.Handler;
import android.util.Log;
import android.view.View; import android.view.View;
import androidx.annotation.NonNull; import androidx.annotation.NonNull;

@ -69,8 +69,8 @@ public class VodFragment extends Fragment implements Scroller.Callback {
public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
setRecyclerView(); setRecyclerView();
setViewModel(); setViewModel();
getContent();
setFilter(); setFilter();
getVideo();
} }
private void setRecyclerView() { private void setRecyclerView() {
@ -111,23 +111,23 @@ public class VodFragment extends Fragment implements Scroller.Callback {
for (int i = 0; i < adapter.size(); i++) ((Filter.Value) adapter.get(i)).setActivated(item); for (int i = 0; i < adapter.size(); i++) ((Filter.Value) adapter.get(i)).setActivated(item);
adapter.notifyArrayItemRangeChanged(0, adapter.size()); adapter.notifyArrayItemRangeChanged(0, adapter.size());
mExtend.put(key, item.getV()); mExtend.put(key, item.getV());
getContent(); getVideo();
} }
private void getContent() { private void getVideo() {
mScroller.reset(); mScroller.reset();
getContent("1"); getVideo("1");
} }
private void getContent(String page) { private void getVideo(String page) {
boolean clear = page.equals("1") && mAdapter.size() > mFilters.size(); boolean clear = page.equals("1") && mAdapter.size() > mFilters.size();
if (clear) mAdapter.removeItems(mFilters.size(), mAdapter.size() - mFilters.size()); if (clear) mAdapter.removeItems(mFilters.size(), mAdapter.size() - mFilters.size());
mSiteViewModel.categoryContent(getTypeId(), page, true, mExtend); mSiteViewModel.categoryContent(getTypeId(), page, true, mExtend);
mAdapter.add("progress");
} }
@Override @Override
public void onLoadMore(String page) { public void onLoadMore(String page) {
mAdapter.add("progress"); getVideo(page);
getContent(page);
} }
} }

@ -7,6 +7,7 @@ import androidx.annotation.NonNull;
import androidx.leanback.widget.Presenter; import androidx.leanback.widget.Presenter;
import com.fongmi.bear.databinding.AdapterTitleBinding; import com.fongmi.bear.databinding.AdapterTitleBinding;
import com.fongmi.bear.utils.ResUtil;
public class TitlePresenter extends Presenter { public class TitlePresenter extends Presenter {
@ -18,7 +19,7 @@ public class TitlePresenter extends Presenter {
@Override @Override
public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object object) { public void onBindViewHolder(Presenter.ViewHolder viewHolder, Object object) {
TitlePresenter.ViewHolder holder = (TitlePresenter.ViewHolder) viewHolder; TitlePresenter.ViewHolder holder = (TitlePresenter.ViewHolder) viewHolder;
holder.binding.header.setText(object.toString()); holder.binding.header.setText(ResUtil.getString((int) object));
} }
@Override @Override

Loading…
Cancel
Save