package com.tejia.lijin.app.ui.mine;
|
|
import android.content.Context;
|
import android.content.DialogInterface;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.graphics.drawable.AnimationDrawable;
|
import android.os.Bundle;
|
import android.provider.Settings;
|
import androidx.swiperefreshlayout.widget.SwipeRefreshLayout;
|
import androidx.recyclerview.widget.LinearLayoutManager;
|
import androidx.recyclerview.widget.RecyclerView;
|
import android.view.Gravity;
|
import android.view.LayoutInflater;
|
import android.view.MotionEvent;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.CheckBox;
|
import android.widget.CompoundButton;
|
import android.widget.FrameLayout;
|
import android.widget.ImageView;
|
import android.widget.LinearLayout;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
import android.widget.ToggleButton;
|
|
import com.google.gson.Gson;
|
import com.google.gson.GsonBuilder;
|
import com.google.gson.reflect.TypeToken;
|
import com.tejia.lijin.app.ShoppingApplication;
|
import com.tejia.lijin.app.util.user.UserUtil;
|
import com.wpc.library.content.ConnectivityChangeHelper;
|
import com.wpc.library.recyclerviewhelper.DividerItemDecoration;
|
import com.wpc.library.util.NetUtils;
|
import com.wpc.library.util.common.DimenUtils;
|
import com.wpc.library.util.common.StringUtils;
|
import com.tejia.lijin.app.BasicTextHttpResponseHandler;
|
import com.tejia.lijin.app.BuXinConstant;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.ShoppingApi;
|
import com.tejia.lijin.app.entity.TaoBaoGoodsBrief;
|
import com.tejia.lijin.app.ui.BaseActivity;
|
import com.tejia.lijin.app.ui.dialog.JumpTaoBaoDialog;
|
import com.tejia.lijin.app.ui.dialog.OrderAppealHistoryDeleteHintDialog;
|
import com.tejia.lijin.app.ui.invite.ShareBrowserActivity;
|
import com.tejia.lijin.app.util.TopStatusSettings;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.ArrayList;
|
import java.util.Arrays;
|
import java.util.List;
|
|
/**
|
* Created by weikou2015 on 2018/1/19.
|
* 足迹
|
*/
|
|
public class MyFootmarkActivity extends BaseActivity implements View.OnClickListener {
|
private TextView tv_left;
|
private TextView tv_middle;
|
private View bottom;
|
private ImageView iv_loading,iv_no_data;
|
private TextView tv_loading,tv_no_data_hint;
|
private LinearLayout ll_delete, ll_no_data;
|
private TextView tv_delete;
|
public CheckBox cb_delete_all;
|
// private TextView tv_delete_all;
|
private SwipeRefreshLayout rl_collect;
|
private RecyclerView gridView;
|
private ToggleButton tv_top_bar_right;
|
private MyFootmark34Adapter adapter;
|
private boolean isLoad = false;
|
private ImageView iv_slid_top;
|
private String TYPE = "scanHistory";
|
private TextView tv_notice_content;
|
private LinearLayout ll_notice;
|
private ImageView iv_close;
|
private ConnectivityChangeHelper mChangeHelper;
|
private LinearLayout ll_no_net, ll_request_failture, ll_content;
|
public JumpTaoBaoDialog dialog;
|
private boolean cb_touch = false;
|
|
@Override
|
protected void onCreate(Bundle savedInstanceState) {
|
super.onCreate(savedInstanceState);
|
setContentView(R.layout.activity_collect28);
|
TopStatusSettings.setStatusViewAndDeepColor(this);
|
tv_left = findViewById(R.id.tv_top_bar_left);
|
tv_middle = findViewById(R.id.tv_top_bar_middle);
|
tv_top_bar_right = findViewById(R.id.btn_delete);
|
rl_collect = findViewById(R.id.rl_my_footermark);
|
gridView = findViewById(R.id.gv_my_footermark);
|
tv_delete = findViewById(R.id.tv_delete);
|
cb_delete_all = findViewById(R.id.cb_delete_all);
|
ll_delete = findViewById(R.id.ll_delete);
|
ll_no_data = findViewById(R.id.ll_no_data);
|
iv_slid_top = findViewById(R.id.iv_slid_top);
|
iv_no_data = findViewById(R.id.iv_no_data);
|
tv_no_data_hint = findViewById(R.id.tv_no_data_hint);
|
|
iv_slid_top.setOnClickListener(this);
|
ll_delete.setVisibility(View.GONE);
|
tv_top_bar_right.setVisibility(View.INVISIBLE);
|
// tv_left.setText("返回");
|
tv_middle.setText("我的足迹");
|
|
// tv_delete_all.setText("清空收藏");
|
tv_left.setOnClickListener(this);
|
tv_top_bar_right.setOnClickListener(this);
|
tv_top_bar_right.setChecked(false);
|
tv_delete.setOnClickListener(this);
|
// tv_delete_all.setOnClickListener(this);
|
ll_content = findViewById(R.id.ll_content);
|
ll_no_net = findViewById(R.id.ll_no_net);
|
ll_request_failture = findViewById(R.id.ll_request_failture);
|
findViewById(R.id.tv_net_setting).setOnClickListener(this);
|
findViewById(R.id.tv_refresh).setOnClickListener(this);
|
|
float hRatio = 260 / 720f;
|
float wRatio = 23 / 720f;
|
int bottomPo = (int) (DimenUtils.getScreenWidth(this) * hRatio);
|
int rightPo = (int) (DimenUtils.getScreenWidth(this) * wRatio);
|
FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(DimenUtils.dip2px(this, 40), DimenUtils.dip2px(this, 40));
|
params.setMargins(0, 0, rightPo, bottomPo);
|
params.gravity = Gravity.BOTTOM | Gravity.RIGHT;
|
iv_slid_top.setLayoutParams(params);
|
gridView.setLayoutManager(new LinearLayoutManager(MyFootmarkActivity.this));
|
DividerItemDecoration decoration=new DividerItemDecoration(DividerItemDecoration.VERTICAL);
|
decoration.setSize(DimenUtils.dip2px(this,5));
|
gridView.addItemDecoration(decoration);
|
adapter = new MyFootmark34Adapter(MyFootmarkActivity.this, wList);
|
|
bottom = LayoutInflater.from(this).inflate(R.layout.item_recyclerview_bottom, null);
|
tv_loading = bottom.findViewById(R.id.tv_loading);
|
iv_loading = bottom.findViewById(R.id.iv_loading);
|
AnimationDrawable animationDrawable = (AnimationDrawable) getResources().getDrawable(
|
R.drawable.anim_list_loading);
|
iv_loading.setImageDrawable(animationDrawable);
|
animationDrawable.start();
|
// Glide.with(this).load(R.drawable.gif_loading).into(iv_loading);
|
bottom.setVisibility(View.GONE);
|
adapter.addFooterView(bottom);
|
|
tv_notice_content = findViewById(R.id.tv_notice_content);
|
ll_notice = findViewById(R.id.ll_notice);
|
iv_close = findViewById(R.id.iv_close);
|
getAppPageNotification();
|
|
View header = LayoutInflater.from(this).inflate(R.layout.item_recyclerview_bottom, null);
|
header.findViewById(R.id.iv_loading).setVisibility(View.GONE);
|
header.findViewById(R.id.tv_loading).setVisibility(View.GONE);
|
header.findViewById(R.id.ll_loading).setLayoutParams(new FrameLayout.LayoutParams(
|
ViewGroup.LayoutParams.MATCH_PARENT, DimenUtils.dip2px(this, 8)));
|
adapter.addHeaderView(header);
|
|
gridView.setAdapter(adapter);
|
mChangeHelper = new ConnectivityChangeHelper(this,
|
new ConnectivityChangeHelper.OnConnectivityChangeListener() {
|
|
@Override
|
public void onNetworkUnAvailable() {
|
if (wList.size()==0)
|
requestState(3);
|
}
|
|
@Override
|
public void onNetworkAvailable() {
|
requestState(0);
|
if (wList.size() == 0) {
|
setData();
|
}
|
}
|
});
|
|
rl_collect.setColorSchemeColors(getResources().getColor(R.color.theme));
|
rl_collect.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
@Override
|
public void onRefresh() {
|
page = 1;
|
rl_collect.setRefreshing(true);
|
if (!tv_top_bar_right.isChecked())
|
setData();
|
else
|
rl_collect.setRefreshing(false);
|
}
|
});
|
|
gridView.addOnScrollListener(new RecyclerView.OnScrollListener() {
|
@Override
|
public void onScrollStateChanged(RecyclerView recyclerView, int newState) {
|
super.onScrollStateChanged(recyclerView, newState);
|
LinearLayoutManager manager = (LinearLayoutManager) recyclerView.getLayoutManager();
|
int first = manager.findFirstVisibleItemPosition();
|
int last = manager.findLastVisibleItemPosition();
|
int total = manager.getItemCount();
|
if (newState == RecyclerView.SCROLL_STATE_IDLE) {
|
if (first == 0) {
|
iv_slid_top.setVisibility(View.GONE);
|
}
|
if (last == total - 1 && wList.size() < count && isLoad && !tv_top_bar_right.isChecked()) {
|
page++;
|
isLoad = false;
|
iv_loading.setVisibility(View.VISIBLE);
|
tv_loading.setText("正在加载更多是数据");
|
setData();
|
}
|
}
|
// else {
|
// iv_slid_top.setVisibility(View.GONE);
|
// }
|
}
|
|
@Override
|
public void onScrolled(RecyclerView recyclerView, int dx, final int dy) {
|
super.onScrolled(recyclerView, dx, dy);
|
if (Math.abs(dy) > 10) {
|
if (dy > 0) {
|
iv_slid_top.setVisibility(View.GONE);
|
} else {
|
iv_slid_top.setVisibility(View.VISIBLE);
|
}
|
}
|
}
|
});
|
|
cb_delete_all.setOnTouchListener(new View.OnTouchListener() {
|
@Override
|
public boolean onTouch(View v, MotionEvent event) {
|
cb_touch = true;
|
return false;
|
}
|
});
|
cb_delete_all.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
|
@Override
|
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
|
if (isChecked) {
|
adapter.allSelect(true);
|
} else {
|
if (cb_touch)
|
adapter.allSelect(false);
|
}
|
cb_touch = false;
|
}
|
});
|
rl_collect.setRefreshing(true);
|
}
|
|
@Override
|
protected void onResume() {
|
super.onResume();
|
mChangeHelper.registerReceiver();
|
if (dialog != null && dialog.isShowing())
|
dialog.dismiss();
|
}
|
|
@Override
|
protected void onPause() {
|
super.onPause();
|
mChangeHelper.unregisterReceiver();
|
}
|
|
private void getAppPageNotification() {
|
ShoppingApi.getAppPageNotification(this, TYPE, new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optInt("code") == 0) {
|
boolean isClose = jsonObject.optJSONObject("data").optBoolean("canClose");
|
String content = jsonObject.optJSONObject("data").optString("content");
|
final String contentUrl = jsonObject.optJSONObject("data").optString("contentUrl");
|
final String md5 = jsonObject.optJSONObject("data").optString("md5");
|
|
tv_notice_content.setText(content);
|
final SharedPreferences sp = getSharedPreferences("notice", Context.MODE_PRIVATE);
|
if (!sp.getBoolean(md5, false)) {//false 展示,true不展示
|
ll_notice.setVisibility(View.VISIBLE);
|
} else {
|
ll_notice.setVisibility(View.GONE);
|
}
|
|
if (isClose) {
|
iv_close.setImageDrawable(getResources().getDrawable(R.drawable.ic_notice_close));
|
iv_close.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
ll_notice.setVisibility(View.GONE);
|
SharedPreferences.Editor editor = sp.edit();
|
editor.putBoolean(md5, true);
|
editor.commit();
|
}
|
});
|
} else {
|
iv_close.setImageDrawable(getResources().getDrawable(R.drawable.ic_notice_input));
|
}
|
ll_notice.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
if (StringUtils.isEmpty(contentUrl))
|
return;
|
Intent intent = new Intent(MyFootmarkActivity.this, ShareBrowserActivity.class);
|
intent.putExtra("url", contentUrl);
|
startActivity(intent);
|
}
|
});
|
}
|
}
|
});
|
}
|
|
List<TaoBaoGoodsBrief> wList = new ArrayList<>();
|
|
int page = 1;
|
|
private int count = 999;
|
|
|
private void setData() {
|
ShoppingApi.getFootmark(this, page + "", UserUtil.getUid(ShoppingApplication.application), new BasicTextHttpResponseHandler() {
|
@Override
|
public void onStart() {
|
super.onStart();
|
if (page > 1) {
|
bottom.setVisibility(View.VISIBLE);
|
} else {
|
bottom.setVisibility(View.GONE);
|
}
|
}
|
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
bottom.setVisibility(View.GONE);
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
Gson gson = new GsonBuilder().serializeNulls().create();
|
List<TaoBaoGoodsBrief> list = gson.fromJson(jsonObject.optJSONObject("data").optJSONArray("data").toString(), new TypeToken<List<TaoBaoGoodsBrief>>() {
|
}.getType());
|
if (page == 1) {
|
wList.clear();
|
}
|
wList.addAll(list);
|
adapter.init(list, page);
|
adapter.notifyDataSetChanged();
|
// adapter.notifyItemRangeChanged(wList.size(), list.size());//倒序批量刷新列表
|
count = Integer.parseInt(jsonObject.optJSONObject("data").optString("count"));
|
if (wList.size() == count) {
|
bottom.setVisibility(View.VISIBLE);
|
iv_loading.setVisibility(View.GONE);
|
tv_loading.setText(getResources().getString(R.string.list_no_more));
|
}
|
requestState(wList.size() == 0 ? 1 : 0);
|
} else {
|
if (wList.size() == 0)
|
requestState(2);
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
bottom.setVisibility(View.GONE);
|
if (wList.size() == 0) {
|
if (NetUtils.getNetworkState(MyFootmarkActivity.this).equalsIgnoreCase(NetUtils.NETWORK_NONE)) {
|
requestState(3);
|
} else {
|
requestState(2);
|
}
|
} else {
|
if (NetUtils.getNetworkState(MyFootmarkActivity.this).equalsIgnoreCase(NetUtils.NETWORK_NONE)) {
|
// SingleToast.showToast(MyFootmarkActivity.this, "网络未连接,请检测网络设置");
|
Toast.makeText(MyFootmarkActivity.this, "网络未连接,请检测网络设置", Toast.LENGTH_SHORT).show();
|
} else {
|
// SingleToast.showToast(MyFootmarkActivity.this, "网络连接异常,请检测网络设置");
|
Toast.makeText(MyFootmarkActivity.this, "网络连接异常,请检测网络设置", Toast.LENGTH_SHORT).show();
|
}
|
}
|
}
|
|
@Override
|
public void onFinish() {
|
super.onFinish();
|
isLoad = true;
|
rl_collect.setRefreshing(false);
|
}
|
});
|
}
|
|
String type = "";
|
|
@Override
|
public void onClick(View v) {
|
switch (v.getId()) {
|
case R.id.tv_top_bar_left:
|
finish();
|
break;
|
case R.id.tv_go_scan:
|
BuXinConstant.GO_SCAN = true;
|
finish();
|
break;
|
case R.id.iv_slid_top:
|
gridView.getLayoutManager().scrollToPosition(0);
|
break;
|
case R.id.tv_delete:
|
// this.setSelectedMode(!isSelectedMode());
|
type = "0";
|
// updateView();
|
OrderAppealHistoryDeleteHintDialog.Builder builder = new OrderAppealHistoryDeleteHintDialog.Builder(this);
|
builder.setMessage("删除后将无法恢复,确定要删除?").setNegativeButton("不了", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialog, int which) {
|
dialog.dismiss();
|
}
|
}).setPositiveButton("确定", new DialogInterface.OnClickListener() {
|
@Override
|
public void onClick(DialogInterface dialog, int which) {
|
dialog.dismiss();
|
delete();
|
}
|
}).create().show();
|
break;
|
// case R.id.tv_delete_all:
|
// this.setSelectedMode(!isSelectedMode());
|
// type = "1";
|
// updateView();
|
// requestState(1);
|
//// ll_go_scan.setVisibility(View.VISIBLE);
|
// break;
|
case R.id.btn_delete:
|
this.setSelectedMode(!isSelectedMode());
|
if (tv_top_bar_right.isChecked()) {
|
ll_delete.setVisibility(View.VISIBLE);
|
rl_collect.setEnabled(false);
|
} else {
|
ll_delete.setVisibility(View.GONE);
|
rl_collect.setEnabled(true);
|
}
|
break;
|
case R.id.tv_net_setting:
|
startActivity(new Intent(Settings.ACTION_SETTINGS));
|
break;
|
case R.id.tv_refresh:
|
startActivity(new Intent(Settings.ACTION_SETTINGS));
|
// requestState(0);
|
// setData();
|
break;
|
}
|
}
|
|
private void delete() {
|
if ((!StringUtils.isEmpty(adapter.getSelectedIds()) && type.equalsIgnoreCase("0")) || type.equalsIgnoreCase("1")) {
|
// String uid = "323922";
|
ShoppingApi.deleteFootmark(MyFootmarkActivity.this, adapter.getSelectedIds(), type, UserUtil.getUid(ShoppingApplication.application), new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optString("code").equalsIgnoreCase("0")) {
|
String[] ids = adapter.getSelectedIds().split(",");
|
List<String> idList = Arrays.asList(ids);
|
for (int i = 0; i < wList.size(); i++) {
|
if (idList.contains(wList.get(i).getId())) {
|
wList.remove(i);
|
i--;
|
}
|
}
|
setSelectedMode(!isSelectedMode());
|
updateView();
|
Toast.makeText(MyFootmarkActivity.this, "删除成功!", Toast.LENGTH_LONG).show();
|
if (adapter.getItemCount() == 0) {
|
setData();
|
} else {
|
requestState(0);
|
}
|
}
|
}
|
|
@Override
|
public void onFailure(int statusCode, Header[] headers, String responseString, Throwable throwable) {
|
super.onFailure(statusCode, headers, responseString, throwable);
|
Toast.makeText(MyFootmarkActivity.this, "删除失败----" + responseString, Toast.LENGTH_LONG).show();
|
}
|
});
|
}
|
}
|
|
public void setSelectedMode(boolean selectedMode) {
|
adapter.setSelectedMode(selectedMode);
|
}
|
|
public boolean isSelectedMode() {
|
return adapter.isSelectedMode();
|
}
|
|
private void updateView() {
|
tv_top_bar_right.setChecked(isSelectedMode());
|
if (tv_top_bar_right.isChecked()) {
|
ll_delete.setVisibility(View.VISIBLE);
|
} else {
|
ll_delete.setVisibility(View.GONE);
|
}
|
}
|
|
/**
|
* 请求状态 0 数据正常展示;1 返回数据为空;2 网络请求失败;3 没有连接网络
|
*
|
* @param state
|
*/
|
private void requestState(int state) {
|
ll_content.setVisibility(state == 0 ? View.VISIBLE : View.GONE);
|
tv_top_bar_right.setVisibility(state == 0 ? View.VISIBLE : View.INVISIBLE);
|
ll_no_data.setVisibility(state == 1 ? View.VISIBLE : View.GONE);
|
ll_request_failture.setVisibility(state == 2 ? View.VISIBLE : View.GONE);
|
ll_no_net.setVisibility(state == 3 ? View.VISIBLE : View.GONE);
|
}
|
}
|