package com.tejia.lijin.app.ui.mine;
|
|
import android.content.ClipData;
|
import android.content.DialogInterface;
|
import android.content.Intent;
|
import android.content.SharedPreferences;
|
import android.graphics.Color;
|
import android.graphics.drawable.GradientDrawable;
|
import androidx.recyclerview.widget.GridLayoutManager;
|
import androidx.recyclerview.widget.RecyclerView;
|
import android.view.LayoutInflater;
|
import android.view.View;
|
import android.view.ViewGroup;
|
import android.widget.ImageView;
|
import android.widget.TextView;
|
import android.widget.Toast;
|
|
import com.app.hubert.guide.util.ScreenUtils;
|
import com.tejia.lijin.app.BasicTextHttpResponseHandler;
|
import com.tejia.lijin.app.R;
|
import com.tejia.lijin.app.ShoppingApi;
|
import com.tejia.lijin.app.entity.LostOrder;
|
import com.tejia.lijin.app.ui.dialog.OrderAppealHistoryDeleteHintDialog;
|
import com.tejia.lijin.app.ui.invite.ShareBrowserActivity;
|
import com.tejia.lijin.app.util.clipboard.ClipboardUtil;
|
|
import org.apache.http.Header;
|
import org.json.JSONObject;
|
|
import java.util.List;
|
|
import static android.content.Context.MODE_PRIVATE;
|
|
/**
|
* Created by weikou2015 on 2018/11/15.
|
*/
|
|
public class OrderAppealHistoryAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
|
private RecyclerView mRecyclerView;
|
|
private View VIEW_FOOTER;
|
private View VIEW_HEADER;
|
|
//Type
|
private int TYPE_NORMAL = 1000;
|
private int TYPE_HEADER = 1001;
|
private int TYPE_FOOTER = 1002;
|
private OrderAppealHistoryActivity mContext;
|
private List<LostOrder> mList;
|
|
public OrderAppealHistoryAdapter(OrderAppealHistoryActivity context, List<LostOrder> list) {
|
this.mContext = context;
|
mList = list;
|
}
|
|
@Override
|
public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) {
|
if (viewType == TYPE_FOOTER) {
|
return new MyHolder(VIEW_FOOTER);
|
} else if (viewType == TYPE_HEADER) {
|
return new MyHolder(VIEW_HEADER);
|
} else {
|
View view = LayoutInflater.from(mContext).inflate(R.layout.item_order_appeal_history, parent, false);
|
MyHolder holder = new MyHolder(view);
|
return holder;
|
}
|
}
|
|
@Override
|
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
|
MyHolder viewHolder = (MyHolder) holder;
|
if (!isHeaderView(position) && !isFooterView(position)) {
|
final LostOrder info;
|
if (haveHeaderView()) {
|
info = mList.get(position - 1);
|
} else if (haveFooterView() && ((haveHeaderView() && position == mList.size() + 1) ||
|
!haveHeaderView() && position == mList.size())) {
|
return;
|
} else {
|
info = mList.get(position);
|
}
|
|
GradientDrawable drawable = new GradientDrawable();
|
//设置圆角大小
|
drawable.setCornerRadius(ScreenUtils.dp2px(mContext, 4));
|
if (info.getType().equalsIgnoreCase("1")) {
|
viewHolder.tv_order_type.setText("淘宝订单");
|
viewHolder.tv_order_type.setTextColor(Color.parseColor("#ffff7800"));
|
//设置边缘线的宽以及颜色
|
drawable.setStroke(ScreenUtils.dp2px(mContext, 1), Color.parseColor("#ffff7800"));
|
} else if (info.getType().equalsIgnoreCase("2")) {
|
viewHolder.tv_order_type.setText("京东订单");
|
viewHolder.tv_order_type.setTextColor(Color.parseColor("#E42219"));
|
//设置边缘线的宽以及颜色
|
drawable.setStroke(ScreenUtils.dp2px(mContext, 1), Color.parseColor("#E42219"));
|
}else if (info.getType().equalsIgnoreCase("4")) {
|
viewHolder.tv_order_type.setText("唯品会订单");
|
viewHolder.tv_order_type.setTextColor(Color.parseColor("#E42219"));
|
//设置边缘线的宽以及颜色
|
drawable.setStroke(ScreenUtils.dp2px(mContext, 1), Color.parseColor("#E42219"));
|
}else if (info.getType().equalsIgnoreCase("5")) {
|
viewHolder.tv_order_type.setText("苏宁订单");
|
viewHolder.tv_order_type.setTextColor(Color.parseColor("#E42219"));
|
//设置边缘线的宽以及颜色
|
drawable.setStroke(ScreenUtils.dp2px(mContext, 1), Color.parseColor("#E42219"));
|
} else {
|
viewHolder.tv_order_type.setText("拼多多订单");
|
viewHolder.tv_order_type.setTextColor(Color.parseColor("#E42219"));
|
//设置边缘线的宽以及颜色
|
drawable.setStroke(ScreenUtils.dp2px(mContext, 1), Color.parseColor("#E42219"));
|
}
|
//设置shape背景色
|
drawable.setColor(Color.parseColor("#FFFFFF"));
|
//设置到TextView中
|
viewHolder.tv_order_type.setBackgroundDrawable(drawable);
|
viewHolder.tv_appeal_time.setText(info.getCreateTime());
|
viewHolder.tv_order_num.setText("订单号:" + info.getOrderId());
|
if (info.getState().equalsIgnoreCase("0")) {
|
viewHolder.tv_falture_reason.setVisibility(View.GONE);
|
viewHolder.tv_appeal_state.setTextColor(mContext.getResources().getColor(R.color.order_appeal_state_yellow));
|
} else if (info.getState().equalsIgnoreCase("1")) {
|
viewHolder.tv_falture_reason.setVisibility(View.GONE);
|
viewHolder.tv_appeal_state.setTextColor(mContext.getResources().getColor(R.color.main_text_color));
|
} else if (info.getState().equalsIgnoreCase("2")) {
|
viewHolder.tv_falture_reason.setVisibility(View.VISIBLE);
|
viewHolder.tv_appeal_state.setTextColor(mContext.getResources().getColor(R.color.gray));
|
}
|
viewHolder.tv_appeal_state.setText(info.getStateDesc());
|
viewHolder.iv_delete.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
OrderAppealHistoryDeleteHintDialog.Builder builder = new OrderAppealHistoryDeleteHintDialog.Builder(mContext);
|
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();
|
deleteLostOrder(info);
|
}
|
}).create().show();
|
}
|
});
|
viewHolder.tv_order_num_copy.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
ClipData myClip;
|
ClipboardUtil.copy(mContext, new String(info.getOrderId()));
|
Toast.makeText(mContext, "复制成功",
|
Toast.LENGTH_SHORT).show();
|
}
|
});
|
viewHolder.tv_falture_reason.setOnClickListener(new View.OnClickListener() {
|
@Override
|
public void onClick(View v) {
|
SharedPreferences sp = mContext.getSharedPreferences("lostOrder", MODE_PRIVATE);
|
String what = sp.getString("reason", "");
|
Intent intent = new Intent(mContext, ShareBrowserActivity.class);
|
intent.putExtra("url", what);
|
mContext.startActivity(intent);
|
}
|
});
|
}
|
}
|
|
/**
|
* 删除单条数据
|
*
|
* @param info
|
*/
|
private void deleteLostOrder(final LostOrder info) {
|
SharedPreferences sp = mContext.getSharedPreferences("user", MODE_PRIVATE);
|
String uid = sp.getString("uid", "");
|
// String uid = "323922";
|
ShoppingApi.deleteLostOrder(mContext, uid, info.getId(), new BasicTextHttpResponseHandler() {
|
@Override
|
public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception {
|
if (jsonObject.optInt("code") == 0) {
|
mList.remove(info);
|
if (mList.size() == 0) {
|
mContext.requestState(1);
|
} else {
|
notifyDataSetChanged();
|
}
|
} else {
|
// SingleToast.showToast(mContext, jsonObject.optString("msg"));
|
Toast.makeText(mContext, jsonObject.optString("msg"), Toast.LENGTH_SHORT).show();
|
}
|
}
|
});
|
}
|
|
@Override
|
public int getItemCount() {
|
int count = (mList == null ? 0 : mList.size());
|
if (VIEW_FOOTER != null) {
|
count++;
|
}
|
|
if (VIEW_HEADER != null) {
|
count++;
|
}
|
return count;
|
}
|
|
@Override
|
public int getItemViewType(int position) {
|
if (isHeaderView(position)) {
|
return TYPE_HEADER;
|
} else if (isFooterView(position)) {
|
return TYPE_FOOTER;
|
} else {
|
return TYPE_NORMAL;
|
}
|
}
|
|
@Override
|
public void onAttachedToRecyclerView(RecyclerView recyclerView) {
|
try {
|
if (mRecyclerView == null && mRecyclerView != recyclerView) {
|
mRecyclerView = recyclerView;
|
}
|
ifGridLayoutManager();
|
} catch (Exception e) {
|
e.printStackTrace();
|
}
|
}
|
|
|
public void addHeaderView(View headerView) {
|
if (haveHeaderView()) {
|
throw new IllegalStateException("hearview has already exists!");
|
} else {
|
//避免出现宽度自适应
|
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
headerView.setLayoutParams(params);
|
VIEW_HEADER = headerView;
|
ifGridLayoutManager();
|
notifyItemInserted(0);
|
}
|
|
}
|
|
public void addFooterView(View footerView) {
|
if (haveFooterView()) {
|
throw new IllegalStateException("footerView has already exists!");
|
} else {
|
ViewGroup.LayoutParams params = new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.WRAP_CONTENT);
|
footerView.setLayoutParams(params);
|
VIEW_FOOTER = footerView;
|
ifGridLayoutManager();
|
notifyItemInserted(getItemCount() - 1);
|
}
|
}
|
|
private void ifGridLayoutManager() {
|
if (mRecyclerView == null) return;
|
final RecyclerView.LayoutManager layoutManager = mRecyclerView.getLayoutManager();
|
if (layoutManager instanceof GridLayoutManager) {
|
((GridLayoutManager) layoutManager).setSpanSizeLookup(new GridLayoutManager.SpanSizeLookup() {
|
@Override
|
public int getSpanSize(int position) {
|
if (isHeaderView(position) || isFooterView(position)) {
|
return ((GridLayoutManager) layoutManager).getSpanCount();
|
} else {
|
return 1;
|
}
|
}
|
});
|
}
|
}
|
|
private boolean haveHeaderView() {
|
return VIEW_HEADER != null;
|
}
|
|
public boolean haveFooterView() {
|
return VIEW_FOOTER != null;
|
}
|
|
private boolean isHeaderView(int position) {
|
return haveHeaderView() && position == 0;
|
}
|
|
private boolean isFooterView(int position) {
|
return haveFooterView() && position >= getItemCount() - 1;
|
}
|
|
|
public class MyHolder extends RecyclerView.ViewHolder {
|
TextView tv_order_type;
|
TextView tv_appeal_time;
|
ImageView iv_delete;
|
TextView tv_order_num;
|
TextView tv_appeal_state;
|
TextView tv_order_num_copy;
|
TextView tv_falture_reason;
|
|
public MyHolder(View view) {
|
super(view);
|
tv_order_type = view.findViewById(R.id.tv_order_type);
|
tv_appeal_time = view.findViewById(R.id.tv_appeal_time);
|
iv_delete = view.findViewById(R.id.iv_delete);
|
tv_order_num = view.findViewById(R.id.tv_order_num);
|
tv_appeal_state = view.findViewById(R.id.tv_appeal_state);
|
tv_order_num_copy = view.findViewById(R.id.tv_order_num_copy);
|
tv_falture_reason = view.findViewById(R.id.tv_falture_reason);
|
}
|
}
|
|
@Override
|
public long getItemId(int position) {
|
return position;
|
}
|
|
}
|