package com.hanju.video.app.ui.mine;
|
|
import android.content.Context;
|
import android.content.Intent;
|
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.FieldNamingPolicy;
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.hanju.lib.library.util.RefreshLayout;
|
import com.hanju.lib.library.util.SingleToast;
|
import com.hanju.lib.library.util.common.StringUtils;
|
import com.hanju.video.app.util.JsonUtil;
|
import com.umeng.analytics.MobclickAgent;
|
import com.hanju.video.app.util.http.BasicTextHttpResponseHandler;
|
import com.hanju.video.app.util.http.HttpApiUtil;
|
import com.hanju.video.app.R;
|
import com.hanju.video.app.entity.goods.GoodsInfo;
|
import com.hanju.video.app.entity.video.VideoInfo;
|
import com.hanju.video.app.ui.BaseActivity;
|
import com.hanju.video.app.ui.common.ListVideoAdapter;
|
import com.hanju.video.app.ui.login.LoginActivity;
|
import com.hanju.video.app.util.ui.StatusBarUtil;
|
import com.hanju.video.app.util.ui.TopBarUtil;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.ArrayList;
|
import java.util.List;
|
|
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
|
public class MyFavouriteActivity extends BaseActivity implements
|
OnClickListener, RadioGroup.OnCheckedChangeListener,
|
com.hanju.video.app.ui.common.ListVideoAdapter.IGetDeleteCallback {
|
|
private TextView tv_top_bar_right;
|
|
private ListView gv_video;
|
|
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 RefreshLayout srl_favourite;
|
|
private RadioGroup rg_msg;
|
|
private View v1;
|
|
private View v2;
|
|
private RadioButton rb_video;
|
private RadioButton rb_goods;
|
|
|
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.myfavourites_activity);
|
StatusBarUtil.init(this);
|
tv_top_bar_right = findViewById(R.id.tv_top_bar_right);
|
empty = findViewById(R.id.favourite_empty);
|
|
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);
|
|
gv_video = findViewById(R.id.gv_video);
|
|
v1 = findViewById(R.id.v_1);
|
v2 = findViewById(R.id.v_2);
|
rg_msg = findViewById(R.id.rg_msg);
|
rb_video = findViewById(R.id.rb_comment_msg);
|
rb_goods = findViewById(R.id.rb_system_msg);
|
rg_msg.setOnCheckedChangeListener(this);
|
gv_video.addHeaderView(new View(this));
|
|
mVideoInfos = new ArrayList<VideoInfo>();
|
MyFavouriteActivity.this.setDeleteCallback(this);
|
mGridVideoAdapter = new ListVideoAdapter(mVideoInfos,
|
MyFavouriteActivity.this);
|
if (getdeleteNumber != null)
|
mGridVideoAdapter.setDeleteCallback(getdeleteNumber);
|
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() {
|
if (rb_video.isChecked()) {
|
vPage = 1;
|
mVideoInfos.clear();
|
getCollectedVideo();
|
} else if (rb_goods.isChecked()) {
|
gPage = 1;
|
mList.clear();
|
}
|
}
|
});
|
srl_favourite.setOnLoadListener(new RefreshLayout.OnLoadListener() {
|
@Override
|
public void onLoad() {
|
if (rb_video.isChecked()) {
|
vPage++;
|
getCollectedVideo();
|
} else if (rb_goods.isChecked()) {
|
gPage++;
|
}
|
}
|
});
|
srl_favourite.setRefreshing(true);
|
getCollectedVideo();
|
|
}
|
|
@Override
|
public void onCheckedChanged(RadioGroup group, int checkedId) {
|
switch (checkedId) {
|
case R.id.rb_comment_msg:
|
vPage = 1;
|
mList.clear();
|
findViewById(R.id.v_1).setVisibility(View.VISIBLE);
|
findViewById(R.id.v_2).setVisibility(View.GONE);
|
gv_video.setAdapter(mGridVideoAdapter);
|
getCollectedVideo();
|
break;
|
|
|
default:
|
break;
|
}
|
}
|
|
@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, "登录后才能收藏");
|
startActivity(new Intent(MyFavouriteActivity.this, LoginActivity.class));
|
return;
|
}
|
|
if (rb_video.isChecked())
|
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<>();
|
|
int vPage = 1;
|
|
private void getCollectedVideo() {
|
SharedPreferences preferences = getSharedPreferences("user",
|
Context.MODE_PRIVATE);
|
String uid = preferences.getString("uid", "");
|
String loginUid = preferences.getString("LoginUid", "");
|
HttpApiUtil.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.setText("");
|
} else {
|
empty.setVisibility(View.INVISIBLE);
|
tv_top_bar_right.setText("编辑");
|
}
|
} 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", "");
|
HttpApiUtil.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();
|
}
|
}
|
|
@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 = (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);
|
if (selectedMode) {
|
tv_top_bar_right.setText("取消");
|
} else
|
tv_top_bar_right.setText("编辑");
|
}
|
|
|
public void selectAll() {
|
mGridVideoAdapter.selectAll();
|
}
|
|
public int getCount() {
|
return mGridVideoAdapter.getCount();
|
}
|
|
@Override
|
public void onGetNum(int count) {
|
|
}
|
|
@Override
|
public void onPointerCaptureChanged(boolean hasCapture) {
|
|
}
|
}
|