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

@ -1,7 +1,6 @@
package com.fongmi.bear.ui.custom;
import android.os.Handler;
import android.util.Log;
import android.view.View;
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) {
setRecyclerView();
setViewModel();
getContent();
setFilter();
getVideo();
}
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);
adapter.notifyArrayItemRangeChanged(0, adapter.size());
mExtend.put(key, item.getV());
getContent();
getVideo();
}
private void getContent() {
private void getVideo() {
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();
if (clear) mAdapter.removeItems(mFilters.size(), mAdapter.size() - mFilters.size());
mSiteViewModel.categoryContent(getTypeId(), page, true, mExtend);
mAdapter.add("progress");
}
@Override
public void onLoadMore(String page) {
mAdapter.add("progress");
getContent(page);
getVideo(page);
}
}

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

Loading…
Cancel
Save