[mobile] support history delete

pull/123/head
FongMi 3 years ago
parent b9ba6c15cd
commit 004c8ea87a
  1. 5
      app/src/mobile/java/com/fongmi/android/tv/ui/activity/MainActivity.java
  2. 35
      app/src/mobile/java/com/fongmi/android/tv/ui/adapter/HistoryAdapter.java
  3. 1
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/SettingFragment.java
  4. 23
      app/src/mobile/java/com/fongmi/android/tv/ui/fragment/child/SiteFragment.java

@ -64,6 +64,7 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
return new Callback() { return new Callback() {
@Override @Override
public void success() { public void success() {
RefreshEvent.history();
RefreshEvent.video(); RefreshEvent.video();
} }
@ -78,10 +79,10 @@ public class MainActivity extends BaseActivity implements NavigationBarView.OnIt
public boolean onNavigationItemSelected(@NonNull MenuItem item) { public boolean onNavigationItemSelected(@NonNull MenuItem item) {
switch (item.getItemId()) { switch (item.getItemId()) {
case R.id.vod: case R.id.vod:
getSupportFragmentManager().beginTransaction().show(mFragments.get(0)).hide(mFragments.get(1)).commit(); getSupportFragmentManager().beginTransaction().hide(mFragments.get(1)).show(mFragments.get(0)).commit();
return true; return true;
case R.id.setting: case R.id.setting:
getSupportFragmentManager().beginTransaction().show(mFragments.get(1)).hide(mFragments.get(0)).commit(); getSupportFragmentManager().beginTransaction().hide(mFragments.get(0)).show(mFragments.get(1)).commit();
return true; return true;
default: default:
return false; return false;

@ -22,6 +22,7 @@ public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHold
private final OnClickListener mListener; private final OnClickListener mListener;
private final List<History> mItems; private final List<History> mItems;
private int width, height; private int width, height;
private boolean delete;
public HistoryAdapter(OnClickListener listener) { public HistoryAdapter(OnClickListener listener) {
this.mListener = listener; this.mListener = listener;
@ -33,7 +34,24 @@ public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHold
void onItemClick(History item); void onItemClick(History item);
boolean onLongClick(History item); void onItemDelete(History item);
boolean onLongClick();
}
public boolean isDelete() {
return delete;
}
public void setDelete(boolean delete) {
this.delete = delete;
}
public void remove(History item) {
int position = mItems.indexOf(item);
if (position == -1) return;
mItems.remove(position);
notifyItemRemoved(position);
} }
private void setLayoutSize(int spanCount) { private void setLayoutSize(int spanCount) {
@ -80,10 +98,17 @@ public class HistoryAdapter extends RecyclerView.Adapter<HistoryAdapter.ViewHold
holder.binding.site.setVisibility(View.VISIBLE); holder.binding.site.setVisibility(View.VISIBLE);
holder.binding.site.setText(ApiConfig.getSiteName(item.getSiteKey())); holder.binding.site.setText(ApiConfig.getSiteName(item.getSiteKey()));
holder.binding.remark.setText(ResUtil.getString(R.string.vod_last, item.getVodRemarks())); holder.binding.remark.setText(ResUtil.getString(R.string.vod_last, item.getVodRemarks()));
//holder.binding.remark.setVisibility(delete ? View.GONE : View.VISIBLE); holder.binding.remark.setVisibility(delete ? View.GONE : View.VISIBLE);
//holder.binding.delete.setVisibility(!delete ? View.GONE : View.VISIBLE); holder.binding.delete.setVisibility(!delete ? View.GONE : View.VISIBLE);
holder.binding.getRoot().setOnClickListener(view -> mListener.onItemClick(item));
holder.binding.getRoot().setOnLongClickListener(view -> mListener.onLongClick(item));
ImgUtil.loadHistory(item.getVodPic(), holder.binding.image); ImgUtil.loadHistory(item.getVodPic(), holder.binding.image);
setClickListener(holder.binding.getRoot(), item);
}
private void setClickListener(View root, History item) {
root.setOnLongClickListener(view -> mListener.onLongClick());
root.setOnClickListener(view -> {
if (isDelete()) mListener.onItemDelete(item);
else mListener.onItemClick(item);
});
} }
} }

@ -134,6 +134,7 @@ public class SettingFragment extends BaseFragment implements ConfigCallback, Sit
case 0: case 0:
Notify.dismiss(); Notify.dismiss();
RefreshEvent.video(); RefreshEvent.video();
RefreshEvent.history();
mBinding.liveUrl.setText(LiveConfig.getUrl()); mBinding.liveUrl.setText(LiveConfig.getUrl());
mBinding.wallUrl.setText(WallConfig.getUrl()); mBinding.wallUrl.setText(WallConfig.getUrl());
break; break;

@ -15,6 +15,7 @@ import com.fongmi.android.tv.bean.Vod;
import com.fongmi.android.tv.databinding.FragmentSiteBinding; import com.fongmi.android.tv.databinding.FragmentSiteBinding;
import com.fongmi.android.tv.event.RefreshEvent; import com.fongmi.android.tv.event.RefreshEvent;
import com.fongmi.android.tv.ui.activity.BaseFragment; import com.fongmi.android.tv.ui.activity.BaseFragment;
import com.fongmi.android.tv.ui.activity.DetailActivity;
import com.fongmi.android.tv.ui.adapter.HistoryAdapter; import com.fongmi.android.tv.ui.adapter.HistoryAdapter;
import com.fongmi.android.tv.ui.adapter.VodAdapter; import com.fongmi.android.tv.ui.adapter.VodAdapter;
import com.fongmi.android.tv.ui.custom.SpaceItemDecoration; import com.fongmi.android.tv.ui.custom.SpaceItemDecoration;
@ -40,11 +41,11 @@ public class SiteFragment extends BaseFragment implements VodAdapter.OnClickList
@Override @Override
protected void initView() { protected void initView() {
setRecyclerView(); setRecyclerView();
getHistory();
} }
private void setRecyclerView() { private void setRecyclerView() {
mBinding.history.setHasFixedSize(true); mBinding.history.setHasFixedSize(true);
mBinding.history.getItemAnimator().setChangeDuration(0);
mBinding.history.addItemDecoration(new SpaceItemDecoration(16)); mBinding.history.addItemDecoration(new SpaceItemDecoration(16));
mBinding.history.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false)); mBinding.history.setLayoutManager(new LinearLayoutManager(getContext(), LinearLayoutManager.HORIZONTAL, false));
mBinding.history.setAdapter(mHistoryAdapter = new HistoryAdapter(this)); mBinding.history.setAdapter(mHistoryAdapter = new HistoryAdapter(this));
@ -60,20 +61,36 @@ public class SiteFragment extends BaseFragment implements VodAdapter.OnClickList
@Override @Override
public void onItemClick(Vod item) { public void onItemClick(Vod item) {
if (item.shouldSearch()) onLongClick(item);
else DetailActivity.start(getActivity(), item.getVodId(), item.getVodName());
} }
@Override @Override
public boolean onLongClick(Vod item) { public boolean onLongClick(Vod item) {
//CollectActivity.start(this, item.getVodName());
return true; return true;
} }
@Override @Override
public void onItemClick(History item) { public void onItemClick(History item) {
DetailActivity.start(getActivity(), item.getSiteKey(), item.getVodId(), item.getVodName());
} }
@Override @Override
public boolean onLongClick(History item) { public void onItemDelete(History item) {
return false; mHistoryAdapter.remove(item.delete());
mBinding.history.requestLayout();
}
@Override
public boolean onLongClick() {
setHistoryDelete(true);
return true;
}
private void setHistoryDelete(boolean delete) {
mHistoryAdapter.setDelete(delete);
mHistoryAdapter.notifyItemRangeChanged(0, mHistoryAdapter.getItemCount());
} }
@Subscribe(threadMode = ThreadMode.MAIN) @Subscribe(threadMode = ThreadMode.MAIN)

Loading…
Cancel
Save