package com.weikou.beibeivideo.ui.mine;
|
|
import android.content.Context;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.os.Bundle;
|
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
|
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.TextView;
|
import android.widget.Toast;
|
|
import com.google.gson.FieldNamingPolicy;
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.lcjian.library.dialog.DialogUtil;
|
import com.lcjian.library.util.SingleToast;
|
import com.lcjian.library.util.common.StringUtils;
|
import com.weikou.beibeivideo.BasicTextHttpResponseHandler;
|
import com.weikou.beibeivideo.BeibeiVideoAPI;
|
import com.weikou.beibeivideo.R;
|
import com.weikou.beibeivideo.entity.GoodsFavourite;
|
import com.weikou.beibeivideo.entity.GoodsInfo;
|
import com.weikou.beibeivideo.entity.VideoInfo;
|
import com.weikou.beibeivideo.ui.BaseActivity;
|
import com.weikou.beibeivideo.ui.common.ListVideoAdapter;
|
import com.weikou.beibeivideo.ui.discover.GoodsFavouriteAdapter;
|
import com.weikou.beibeivideo.ui.login.LoginActivity;
|
import com.weikou.beibeivideo.util.JsonUtil;
|
import com.weikou.beibeivideo.util.UserUtil;
|
import com.weikou.beibeivideo.util.ui.TopStatusSettings;
|
import com.weikou.beibeivideo.widget.MySwipeRefreshLayout;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
public class MyFavouriteActivity extends BaseActivity implements
|
OnClickListener,
|
com.weikou.beibeivideo.ui.common.ListVideoAdapter.IGetDeleteCallback,
|
GoodsFavouriteAdapter.IGetDeleteGoodSCallback {
|
|
private TextView tv_top_bar_left;
|
private TextView tv_top_bar_middle;
|
private ListView gv_video;
|
private ListVideoAdapter mGridVideoAdapter;
|
private GoodsFavouriteAdapter mAdapter;
|
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 GoodsFavouriteAdapter.IGetDeleteGoodSCallback getDeleteGoods = null;
|
private View empty;
|
private MySwipeRefreshLayout srl_favourite;
|
private TextView tv_top_bar_right;
|
private View v1;
|
private View v2;
|
|
public void setDeleteCallback(
|
ListVideoAdapter.IGetDeleteCallback getdeleteNumber) {
|
this.getdeleteNumber = getdeleteNumber;
|
if (mGridVideoAdapter != null)
|
mGridVideoAdapter.setDeleteCallback(getdeleteNumber);
|
}
|
|
public void setDeleteGoodsCallback(
|
GoodsFavouriteAdapter.IGetDeleteGoodSCallback getdeleteNumber) {
|
this.getDeleteGoods = getdeleteNumber;
|
if (mGridVideoAdapter != null)
|
mAdapter.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.myfavourites_activity);
|
TopStatusSettings.setStatusViewAndDeepColor(this);
|
tv_top_bar_left = findViewById(R.id.tv_top_bar_left);
|
tv_top_bar_middle = findViewById(R.id.tv_top_bar_middle);
|
tv_top_bar_right = findViewById(R.id.tv_top_bar_right);
|
empty = findViewById(R.id.favourite_empty);
|
|
tv_top_bar_right.setText("编辑");
|
tv_top_bar_right.setVisibility(View.VISIBLE);
|
tv_top_bar_right.setOnClickListener(this);
|
tv_top_bar_middle.setText("我的收藏");
|
|
tv_top_bar_left.setOnClickListener(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);
|
|
gv_video = findViewById(R.id.gv_video);
|
|
v1 = findViewById(R.id.v_1);
|
v2 = findViewById(R.id.v_2);
|
gv_video.addHeaderView(new View(this));
|
|
mVideoInfos = new ArrayList<VideoInfo>();
|
MyFavouriteActivity.this.setDeleteCallback(this);
|
MyFavouriteActivity.this.setDeleteGoodsCallback(this);
|
mGridVideoAdapter = new ListVideoAdapter(mVideoInfos,
|
MyFavouriteActivity.this);
|
mAdapter = new GoodsFavouriteAdapter(mList, MyFavouriteActivity.this);
|
if (getdeleteNumber != null)
|
mGridVideoAdapter.setDeleteCallback(getdeleteNumber);
|
if (getDeleteGoods != null)
|
mAdapter.setDeleteCallback(getDeleteGoods);
|
gv_video.setAdapter(mGridVideoAdapter);
|
srl_favourite = findViewById(R.id.srl_favourite);
|
ProgressBar pb = new ProgressBar(this);
|
srl_favourite.setFooter(pb);
|
srl_favourite.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
@Override
|
public void onRefresh() {
|
vPage = 1;
|
mVideoInfos.clear();
|
getCollectedVideo();
|
}
|
});
|
srl_favourite.setOnLoadListener(new MySwipeRefreshLayout.OnLoadListener() {
|
@Override
|
public void onLoad() {
|
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:
|
SharedPreferences preferences = getSharedPreferences("user", MODE_PRIVATE);
|
final String loginUid = preferences.getString("LoginUid", "");
|
if (StringUtils.isEmpty(loginUid)) {
|
SingleToast.showToast(MyFavouriteActivity.this, "登录后才能收藏");
|
UserUtil.toLogin(MyFavouriteActivity.this);
|
return;
|
}
|
deleteCollect(loginUid);
|
break;
|
default:
|
break;
|
}
|
ll_recent_bottom.post(new Runnable() {
|
|
@Override
|
public void run() {
|
updateView();
|
}
|
});
|
}
|
|
int gPage = 1;
|
private List<GoodsInfo> mList = new ArrayList<>();
|
|
private void getCollectGoods() {
|
SharedPreferences preferences = getSharedPreferences("user",
|
Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
String loginUid = preferences.getString("LoginUid", "");
|
BeibeiVideoAPI.getCollectList(this, uid, loginUid, gPage + "", new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optBoolean("IsPost")) {
|
Gson gson = new GsonBuilder()
|
.setPrettyPrinting()
|
.setFieldNamingPolicy(
|
FieldNamingPolicy.UPPER_CAMEL_CASE)
|
.excludeFieldsWithoutExposeAnnotation()
|
.create();
|
List<GoodsFavourite> list = gson.fromJson(jsonObject
|
.getJSONObject("Data").getJSONArray("data")
|
.toString(), new TypeToken<List<GoodsFavourite>>() {
|
}.getType());
|
if (Integer.parseInt(jsonObject.optJSONObject("Data").optString("count")) > list.size()) {
|
srl_favourite.isMore = true;
|
} else if (Integer.parseInt(jsonObject.optJSONObject("Data").optString("count")) <= list.size()) {
|
srl_favourite.isMore = false;
|
}
|
if (gPage == 1)
|
mList.clear();
|
for (int i = 0; i < list.size(); i++) {
|
mList.add(list.get(i).getItem());
|
}
|
mAdapter.notifyDataSetChanged();
|
if (mAdapter.getCount() == 0) {
|
empty.setVisibility(View.VISIBLE);
|
tv_top_bar_right.setClickable(false);
|
} else {
|
empty.setVisibility(View.INVISIBLE);
|
tv_top_bar_right.setClickable(true);
|
}
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
srl_favourite.setRefreshing(false);
|
srl_favourite.setLoading(false);
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
}
|
});
|
}
|
|
int vPage = 1;
|
|
private void getCollectedVideo() {
|
SharedPreferences preferences = getSharedPreferences("user",
|
Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
String loginUid = preferences.getString("LoginUid", "");
|
BeibeiVideoAPI.getCollectedVideo(this, uid, loginUid, 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.getCount() == 0) {
|
empty.setVisibility(View.VISIBLE);
|
tv_top_bar_right.setClickable(false);
|
} else {
|
empty.setVisibility(View.INVISIBLE);
|
tv_top_bar_right.setClickable(true);
|
}
|
} else {
|
Toast.makeText(MyFavouriteActivity.this, "数据请求失败!",
|
Toast.LENGTH_LONG).show();
|
finish();
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
srl_favourite.setRefreshing(false);
|
srl_favourite.setLoading(false);
|
}
|
|
});
|
}
|
|
private void deleteCollect(String loginUid) {
|
List<Long> selectedIds = mGridVideoAdapter.getSelectedIds();
|
List<String> sThirdtypes = mGridVideoAdapter.getThirdTypes();
|
String vIds = "";
|
String vTypes = "";
|
if (selectedIds != null && selectedIds.size() > 0) {
|
for (Long 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()) {
|
SharedPreferences preferences = MyFavouriteActivity.this
|
.getSharedPreferences("user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
BeibeiVideoAPI.getScoreCollect(MyFavouriteActivity.this, uid, loginUid, 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) == Long
|
.parseLong(mVideoInfos.get(j)
|
.getId())) {
|
mVideoInfos.remove(mVideoInfos
|
.get(j));
|
}
|
}
|
}
|
mGridVideoAdapter.notifyDataSetChanged();
|
mGridVideoAdapter.getSelectedIds().clear();
|
mGridVideoAdapter.getThirdTypes().clear();
|
btn_delete_item.setText("删除");
|
updateView();
|
Toast.makeText(MyFavouriteActivity.this,
|
"删除成功", Toast.LENGTH_LONG).show();
|
}
|
}
|
});
|
} else {
|
Toast.makeText(MyFavouriteActivity.this, "请选择要删除的记录",
|
Toast.LENGTH_LONG).show();
|
}
|
}
|
|
private void deleteCollectGoods(String loginUid) {
|
List<Long> selectedIds = mAdapter.getSelectedGoodsIds();
|
String vIds = "";
|
if (selectedIds != null && selectedIds.size() > 0) {
|
for (Long id : selectedIds) {
|
vIds += id + ",";
|
}
|
}
|
if (!StringUtils.isEmpty(vIds) && vIds.length() > 0
|
&& vIds.substring(vIds.length() - 1).equalsIgnoreCase(",")) {
|
vIds = vIds.substring(0, vIds.length() - 1);
|
}
|
if (!selectedIds.isEmpty()) {
|
SharedPreferences preferences = MyFavouriteActivity.this
|
.getSharedPreferences("user", Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
BeibeiVideoAPI.cancelGoodsFavourite(MyFavouriteActivity.this, uid, loginUid, vIds,
|
new BasicTextHttpResponseHandler() {
|
|
@Override
|
public void onStart() {
|
super.onStart();
|
DialogUtil.show(loadingDialog);
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
DialogUtil.dismiss(loadingDialog);
|
}
|
|
@Override
|
public void onSuccessPerfect(int statusCode,
|
Header[] headers, JSONObject jsonObject)
|
throws Exception {
|
if (jsonObject.getBoolean("IsPost")) {
|
for (int i = 0; i < mAdapter
|
.getSelectedGoodsIds().size(); i++) {
|
for (int j = 0; j < mList.size(); j++) {
|
if (mAdapter.getSelectedGoodsIds().get(i) == Long.parseLong(mList.get(j)
|
.getId())) {
|
mList.remove(mList.get(j));
|
}
|
}
|
}
|
mAdapter.notifyDataSetChanged();
|
mAdapter.getSelectedGoodsIds().clear();
|
btn_delete_item.setText("删除");
|
updateView2();
|
Toast.makeText(MyFavouriteActivity.this,
|
"删除成功", Toast.LENGTH_LONG).show();
|
|
}
|
}
|
});
|
|
} else {
|
Toast.makeText(MyFavouriteActivity.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();
|
}
|
|
public void setSelectedGoodsMode(boolean selectedMode) {
|
mAdapter.setSelectedGoodsMode(selectedMode);
|
}
|
|
public boolean isSelectedGoodsMode() {
|
return mAdapter.isSelectedGoodsMode();
|
}
|
|
private void updateView() {
|
|
boolean noData = false;
|
boolean selectedMode = false;
|
noData = (MyFavouriteActivity.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);
|
}
|
|
private void updateView2() {
|
boolean noData = false;
|
boolean selectedMode = false;
|
noData = (MyFavouriteActivity.this.getGoodsCount() == 0);
|
if (noData) {
|
this.setSelectedGoodsMode(false);
|
ll_recent_bottom.setVisibility(View.GONE);
|
empty.setVisibility(View.VISIBLE);
|
}
|
selectedMode = this.isSelectedGoodsMode();
|
ll_recent_bottom.setVisibility(selectedMode ? View.VISIBLE : View.GONE);
|
}
|
|
public void selectAll() {
|
mGridVideoAdapter.selectAll();
|
}
|
|
public void selectGoodsAll() {
|
mAdapter.selectGoodsAll();
|
}
|
|
public int getCount() {
|
return mGridVideoAdapter.getCount();
|
}
|
|
public int getGoodsCount() {
|
return mAdapter.getCount();
|
}
|
|
@Override
|
public void onGetNum(int count) {
|
// TODO Auto-generated method stub
|
if (count == 0) {
|
btn_delete_item.setText("删除");
|
} else {
|
btn_delete_item.setText("删除(" + count + ")");
|
}
|
}
|
|
@Override
|
public void onGetGoodsNum(int count) {
|
if (count == 0) {
|
btn_delete_item.setText("删除");
|
} else {
|
btn_delete_item.setText("删除(" + count + ")");
|
}
|
}
|
}
|