package com.ysvideo.zhibo.app.ui.mine;
|
|
import android.content.Context;
|
import android.content.SharedPreferences;
|
import android.os.Bundle;
|
import android.view.View;
|
import android.view.View.OnClickListener;
|
import android.widget.Button;
|
import android.widget.LinearLayout;
|
import android.widget.ListView;
|
import android.widget.ProgressBar;
|
import android.widget.RadioButton;
|
import android.widget.RadioGroup;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.google.gson.reflect.TypeToken;
|
import com.ysvideo.zhibo.app.R;
|
import com.ysvideo.zhibo.app.entity.video.VideoInfo;
|
import com.ysvideo.zhibo.app.ui.subview.MyRefreshLayout;
|
import com.ysvideo.zhibo.app.ui.video.adapter.ListVideoAdapter;
|
import com.ysvideo.zhibo.app.util.JsonUtil;
|
import com.ysvideo.zhibo.app.util.LoginUtil;
|
import com.ysvideo.zhibo.app.util.UserUtil;
|
import com.ysvideo.zhibo.app.util.api.BasicTextHttpResponseHandler;
|
import com.ysvideo.zhibo.app.util.api.HttpApiUtil;
|
import com.ysvideo.zhibo.app.util.ui.TopBarUtil;
|
import com.ysvideo.zhibo.lib.common.activity.BaseActivity;
|
import com.ysvideo.zhibo.lib.common.util.RefreshLayout;
|
import com.ysvideo.zhibo.lib.common.util.SingleToast;
|
import com.ysvideo.zhibo.lib.common.util.common.StringUtils;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
import me.jingbin.library.ByRecyclerView;
|
|
public class MyCollectionActivity extends BaseActivity implements
|
OnClickListener,
|
ListVideoAdapter.IGetDeleteCallback {
|
|
private TextView tv_top_bar_right;
|
|
private ByRecyclerView recyclerView;
|
|
private ListVideoAdapter mGridVideoAdapter;
|
|
private List<VideoInfo> mVideoInfos;
|
|
private LinearLayout ll_recent_bottom;
|
|
private Button btn_select_all;
|
|
private Button btn_delete_item;
|
|
private ListVideoAdapter.IGetDeleteCallback getdeleteNumber = null;
|
private View empty;
|
private MyRefreshLayout srl_favourite;
|
|
public void setDeleteCallback(
|
ListVideoAdapter.IGetDeleteCallback getdeleteNumber) {
|
this.getdeleteNumber = getdeleteNumber;
|
if (mGridVideoAdapter != null)
|
mGridVideoAdapter.setDeleteCallback(getdeleteNumber);
|
}
|
|
|
@Override
|
public void onResume() {
|
super.onResume();
|
}
|
|
@Override
|
public void onPause() {
|
super.onPause();
|
}
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.activity_collection);
|
|
if (!UserUtil.isLogin(this)) {
|
SingleToast.showToast(getApplicationContext(), "请先登录");
|
LoginUtil.goLogin(getApplicationContext());
|
finish();
|
return;
|
}
|
|
tv_top_bar_right = findViewById(R.id.tv_top_bar_right);
|
empty = findViewById(R.id.favourite_empty);
|
empty.setVisibility(View.GONE);
|
|
tv_top_bar_right.setVisibility(View.VISIBLE);
|
tv_top_bar_right.setOnClickListener(this);
|
TopBarUtil.init(this, "我的收藏", this);
|
|
ll_recent_bottom = findViewById(R.id.ll_recent_bottom);
|
btn_select_all = findViewById(R.id.btn_select_all);
|
btn_delete_item = findViewById(R.id.btn_delete_item);
|
|
btn_select_all.setOnClickListener(this);
|
btn_delete_item.setOnClickListener(this);
|
|
recyclerView = findViewById(R.id.recyclerView);
|
recyclerView.setLayoutManager(new LinearLayoutManager(getApplicationContext()));
|
|
mVideoInfos = new ArrayList<VideoInfo>();
|
MyCollectionActivity.this.setDeleteCallback(this);
|
mGridVideoAdapter = new ListVideoAdapter(mVideoInfos);
|
if (getdeleteNumber != null)
|
mGridVideoAdapter.setDeleteCallback(getdeleteNumber);
|
recyclerView.setAdapter(mGridVideoAdapter);
|
srl_favourite = findViewById(R.id.srl_favourite);
|
srl_favourite.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
@Override
|
public void onRefresh() {
|
vPage = 1;
|
mVideoInfos.clear();
|
getCollectedVideo();
|
|
}
|
});
|
|
recyclerView.setOnLoadMoreListener(new ByRecyclerView.OnLoadMoreListener() {
|
@Override
|
public void onLoadMore() {
|
vPage++;
|
getCollectedVideo();
|
}
|
});
|
srl_favourite.setRefreshing(true);
|
getCollectedVideo();
|
}
|
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.tv_top_bar_left: {
|
finish();
|
}
|
break;
|
case R.id.tv_top_bar_right:
|
this.setSelectedMode(!isSelectedMode());
|
updateView();
|
break;
|
case R.id.btn_select_all:
|
this.selectAll();
|
break;
|
case R.id.btn_delete_item:
|
if (!UserUtil.isLogin(getApplicationContext())) {
|
SingleToast.showToast(MyCollectionActivity.this, "登录后才能收藏");
|
LoginUtil.goLogin(MyCollectionActivity.this);
|
return;
|
}
|
deleteCollect();
|
break;
|
default:
|
break;
|
}
|
ll_recent_bottom.post(new Runnable() {
|
|
@Override
|
public void run() {
|
updateView();
|
}
|
});
|
}
|
|
|
int vPage = 1;
|
|
private void getCollectedVideo() {
|
HttpApiUtil.getCollectedVideo(this, UserUtil.getLoginUid(getApplicationContext()), vPage + "",
|
new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
List<VideoInfo> videoInfos = JsonUtil.videoGson.fromJson(
|
jsonObject.getJSONObject("Data")
|
.getJSONArray("data").toString(),
|
new TypeToken<List<VideoInfo>>() {
|
}.getType());
|
if (vPage == 1)
|
mVideoInfos.clear();
|
mVideoInfos.addAll(videoInfos);
|
mGridVideoAdapter.notifyDataSetChanged();
|
if (mGridVideoAdapter.getItemCount() == 0) {
|
empty.setVisibility(View.VISIBLE);
|
tv_top_bar_right.setText("");
|
} else {
|
empty.setVisibility(View.INVISIBLE);
|
tv_top_bar_right.setText("编辑");
|
}
|
} else {
|
Toast.makeText(MyCollectionActivity.this, "数据请求失败!",
|
Toast.LENGTH_LONG).show();
|
finish();
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
srl_favourite.setRefreshing(false);
|
recyclerView.loadMoreComplete();
|
}
|
|
});
|
}
|
|
private void deleteCollect() {
|
List<String> selectedIds = mGridVideoAdapter.getSelectedIds();
|
List<String> sThirdtypes = mGridVideoAdapter.getThirdTypes();
|
String vIds = "";
|
String vTypes = "";
|
if (selectedIds != null && selectedIds.size() > 0) {
|
for (String id : selectedIds) {
|
vIds += id + ",";
|
}
|
}
|
if (sThirdtypes != null && sThirdtypes.size() > 0) {
|
for (String type : sThirdtypes) {
|
vTypes += type + ",";
|
}
|
}
|
if (!StringUtils.isEmpty(vIds) && vIds.length() > 0
|
&& vIds.substring(vIds.length() - 1).equalsIgnoreCase(",")) {
|
vIds = vIds.substring(0, vIds.length() - 1);
|
}
|
if (!StringUtils.isEmpty(vTypes) && vTypes.length() > 0
|
&& vTypes.substring(vTypes.length() - 1).equalsIgnoreCase(",")) {
|
vTypes = vTypes.substring(0, vTypes.length() - 1);
|
}
|
|
if (!selectedIds.isEmpty()) {
|
HttpApiUtil.collectVideo(MyCollectionActivity.this, null, UserUtil.getLoginUid(getApplicationContext()), vIds,
|
vTypes, "0", new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
for (int i = 0; i < mGridVideoAdapter
|
.getSelectedIds().size(); i++) {
|
for (int j = 0; j < mVideoInfos.size(); j++) {
|
if (mGridVideoAdapter.getSelectedIds()
|
.get(i).equalsIgnoreCase(mVideoInfos.get(j)
|
.getId())) {
|
mVideoInfos.remove(mVideoInfos
|
.get(j));
|
}
|
}
|
}
|
mGridVideoAdapter.notifyDataSetChanged();
|
mGridVideoAdapter.getSelectedIds().clear();
|
mGridVideoAdapter.getThirdTypes().clear();
|
btn_delete_item.setText("删除");
|
updateView();
|
Toast.makeText(MyCollectionActivity.this,
|
"删除成功", Toast.LENGTH_LONG).show();
|
}
|
}
|
});
|
} else {
|
Toast.makeText(MyCollectionActivity.this, "请选择要删除的记录",
|
Toast.LENGTH_LONG).show();
|
}
|
}
|
|
@Override
|
protected void onDestroy() {
|
super.onDestroy();
|
}
|
|
public void setSelectedMode(boolean selectedMode) {
|
mGridVideoAdapter.setSelectedMode(selectedMode);
|
}
|
|
public boolean isSelectedMode() {
|
return mGridVideoAdapter.isSelectedMode();
|
}
|
|
private void updateView() {
|
|
boolean noData = false;
|
boolean selectedMode = false;
|
noData = (MyCollectionActivity.this.getCount() == 0);
|
if (noData) {
|
this.setSelectedMode(false);
|
ll_recent_bottom.setVisibility(View.GONE);
|
empty.setVisibility(View.VISIBLE);
|
}
|
selectedMode = this.isSelectedMode();
|
ll_recent_bottom.setVisibility(selectedMode ? View.VISIBLE : View.GONE);
|
if (selectedMode) {
|
tv_top_bar_right.setText("取消");
|
} else
|
tv_top_bar_right.setText("编辑");
|
}
|
|
|
public void selectAll() {
|
mGridVideoAdapter.selectAll();
|
}
|
|
public int getCount() {
|
return mGridVideoAdapter.getItemCount();
|
}
|
|
@Override
|
public void onGetNum(int count) {
|
|
}
|
|
@Override
|
public void onPointerCaptureChanged(boolean hasCapture) {
|
|
}
|
}
|