|
|
@@ -2,13 +2,19 @@ package com.sheep.jiuyan.samllsheep.page;
|
|
|
|
|
|
import android.content.DialogInterface;
|
|
|
import android.content.Intent;
|
|
|
+import android.graphics.drawable.Drawable;
|
|
|
+import android.os.Handler;
|
|
|
+import android.os.Message;
|
|
|
import android.support.v7.app.AlertDialog;
|
|
|
import android.text.TextUtils;
|
|
|
import android.text.format.DateFormat;
|
|
|
+import android.view.Gravity;
|
|
|
import android.view.View;
|
|
|
import android.widget.AdapterView;
|
|
|
import android.widget.ImageView;
|
|
|
+import android.widget.LinearLayout;
|
|
|
import android.widget.ListView;
|
|
|
+import android.widget.PopupWindow;
|
|
|
import android.widget.TextView;
|
|
|
import android.widget.Toast;
|
|
|
|
|
|
@@ -19,6 +25,7 @@ import com.sheep.jiuyan.samllsheep.net.NetManager;
|
|
|
import com.sheep.jiuyan.samllsheep.net.SheepCallback;
|
|
|
import com.sheep.jiuyan.samllsheep.net.Url;
|
|
|
import com.sheep.jiuyan.samllsheep.page.entry.Commit;
|
|
|
+import com.sheep.jiuyan.samllsheep.page.view.MyPopupWindow;
|
|
|
import com.sheep.jiuyan.samllsheep.utils.DeviceUtils;
|
|
|
import com.sheep.jiuyan.samllsheep.utils.PackageUtil;
|
|
|
import com.sheep.jiuyan.samllsheep.utils.SpUtils;
|
|
|
@@ -27,6 +34,7 @@ import com.zhy.adapter.abslistview.CommonAdapter;
|
|
|
import com.zhy.adapter.abslistview.ViewHolder;
|
|
|
|
|
|
import java.io.IOException;
|
|
|
+import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.HashMap;
|
|
|
import java.util.List;
|
|
|
@@ -36,11 +44,44 @@ import java.util.List;
|
|
|
*/
|
|
|
|
|
|
public class TaskRecordActivity extends BaseActivity {
|
|
|
+
|
|
|
+ public static final int REFRESH_ADAPTER = 1;
|
|
|
+ public static final int REFRESH_IMAGEVIEW = 0;
|
|
|
+
|
|
|
private ListView mLvTask;
|
|
|
private CommonAdapter mAdapter;
|
|
|
private List<Commit> mCommits;
|
|
|
+ private List<Commit> mCommitsStatus = new ArrayList<>();;
|
|
|
private AlertDialog mDialog;
|
|
|
private AlertDialog mReDialog;
|
|
|
+ private PopupWindow popupWindow;
|
|
|
+ private TextView tv_linearLayout_baseactivity_right;
|
|
|
+ private ArrayList<String> dateList = new ArrayList<>();
|
|
|
+ private LinearLayout linearLayout_baseactivity_right;
|
|
|
+ private ImageView iv_linearLayout_baseactivity_right;
|
|
|
+ private int status = 0;//commit:Status 1(未审核),2(通过),3(未通过)
|
|
|
+
|
|
|
+ Handler mhandler = new Handler(){
|
|
|
+ @Override
|
|
|
+ public void handleMessage(Message msg) {
|
|
|
+ super.handleMessage(msg);
|
|
|
+ try{
|
|
|
+ switch (msg.what){
|
|
|
+ case REFRESH_IMAGEVIEW:
|
|
|
+ MyPopupWindow.newInstance().setSelectOr(TaskRecordActivity.this, iv_linearLayout_baseactivity_right, (Boolean) msg.obj);
|
|
|
+
|
|
|
+ break;
|
|
|
+ case REFRESH_ADAPTER:
|
|
|
+ status = (int) msg.obj;
|
|
|
+ tv_linearLayout_baseactivity_right.setText(dateList.get(status));
|
|
|
+ filtrate(status);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
|
|
|
@Override
|
|
|
protected int getLayoutId() {
|
|
|
@@ -49,8 +90,14 @@ public class TaskRecordActivity extends BaseActivity {
|
|
|
|
|
|
@Override
|
|
|
public void initView() {
|
|
|
+ linearLayout_baseactivity_right = findViewById(R.id.linearLayout_baseactivity_right);
|
|
|
mLvTask = (ListView) findViewById(R.id.lv_task);
|
|
|
mLvTask.setDividerHeight(0);
|
|
|
+ tv_linearLayout_baseactivity_right = findViewById(R.id.tv_linearLayout_baseactivity_right);
|
|
|
+ iv_linearLayout_baseactivity_right = findViewById(R.id.iv_linearLayout_baseactivity_right);
|
|
|
+ linearLayout_baseactivity_right.setVisibility(View.VISIBLE);
|
|
|
+
|
|
|
+ MyPopupWindow.newInstance().setSelectOr(TaskRecordActivity.this, iv_linearLayout_baseactivity_right, false);
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -58,7 +105,7 @@ public class TaskRecordActivity extends BaseActivity {
|
|
|
mLvTask.setOnItemClickListener(new AdapterView.OnItemClickListener() {
|
|
|
@Override
|
|
|
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
|
|
|
- final Commit commit = mCommits.get(position);
|
|
|
+ final Commit commit = mCommitsStatus.get(position);
|
|
|
if (mDialog == null) {
|
|
|
mDialog = new AlertDialog.Builder(TaskRecordActivity.this)
|
|
|
.setPositiveButton("确定", new DialogInterface.OnClickListener() {
|
|
|
@@ -79,6 +126,23 @@ public class TaskRecordActivity extends BaseActivity {
|
|
|
}
|
|
|
});
|
|
|
|
|
|
+ //右按钮
|
|
|
+ linearLayout_baseactivity_right.setOnClickListener(new View.OnClickListener() {
|
|
|
+ @Override
|
|
|
+ public void onClick(View v) {
|
|
|
+ Message m = new Message();
|
|
|
+ // 使用isShowing()检查popup窗口是否在显示状态
|
|
|
+ if (popupWindow != null && !popupWindow.isShowing()) {
|
|
|
+ popupWindow.showAsDropDown(tv_linearLayout_baseactivity_right, 0, -1);
|
|
|
+ m.obj = true;
|
|
|
+ }else{
|
|
|
+ m.obj = false;
|
|
|
+ }
|
|
|
+
|
|
|
+ m.what = REFRESH_IMAGEVIEW;
|
|
|
+ mhandler.sendMessage(m);
|
|
|
+ }
|
|
|
+ });
|
|
|
}
|
|
|
|
|
|
private void dispatch(final Commit commit) {
|
|
|
@@ -203,57 +267,8 @@ public class TaskRecordActivity extends BaseActivity {
|
|
|
public void success(List<Commit> commits) {
|
|
|
hideProgress();
|
|
|
mCommits = commits;
|
|
|
- if (mAdapter == null)
|
|
|
- mLvTask.setAdapter(mAdapter = new CommonAdapter<Commit>(TaskRecordActivity.this, R.layout.task_record_item, commits) {
|
|
|
- @Override
|
|
|
- protected void convert(ViewHolder viewHolder, Commit item, int position) {
|
|
|
- String time = null;
|
|
|
- try {
|
|
|
- String[] tmp1 = item.getCreateTime().split("-");
|
|
|
- String[] tmp2 = tmp1[2].split(" ")[1].split(":");
|
|
|
- time = tmp1[1] + "/" + tmp1[2].split(" ")[0] + "\n" + tmp2[0] + ":" + tmp2[1];
|
|
|
- } catch (Exception e) {
|
|
|
- e.printStackTrace();
|
|
|
- }
|
|
|
- viewHolder.setText(R.id.tv_time, time);
|
|
|
- getState(viewHolder.<TextView>getView(R.id.tv_state), item.getStatus());
|
|
|
- viewHolder.setText(R.id.txt_baseactivity_title, item.getTask().getTitle());
|
|
|
- Glide.with(TaskRecordActivity.this)
|
|
|
- .load(item.getTask().getIcon())
|
|
|
- .placeholder(R.drawable.icon)
|
|
|
- .dontAnimate()
|
|
|
- .into(viewHolder.<ImageView>getView(R.id.img_icon));
|
|
|
- String strMoney=TextUtils.isEmpty(item.getCompleteMoney())?item.getTask().getPrice():item.getCompleteMoney();
|
|
|
- viewHolder.setText(R.id.tv_money, "¥" + strMoney);
|
|
|
- TextView failed = viewHolder.getView(R.id.tv_failed);
|
|
|
- if (!TextUtils.isEmpty(item.getFailDesc())) {
|
|
|
- failed.setVisibility(View.VISIBLE);
|
|
|
- failed.setText(item.getFailDesc());
|
|
|
- } else {
|
|
|
- failed.setVisibility(View.GONE);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private void getState(TextView view, int state) {
|
|
|
- switch (state) {
|
|
|
- case 1:
|
|
|
- view.setText("审核中");
|
|
|
- view.setBackgroundResource(R.drawable.sp_btn_common);
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- view.setText("已审核");
|
|
|
- view.setBackgroundResource(R.drawable.sp_btn_common_green);
|
|
|
- break;
|
|
|
- case 3:
|
|
|
- view.setText("未通过");
|
|
|
- view.setBackgroundResource(R.drawable.sp_btn_common_orange);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
- else {
|
|
|
- mAdapter.notifyDataSetChanged();
|
|
|
- }
|
|
|
+ filtrate(status);
|
|
|
+ mAdapter.notifyDataSetChanged();
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
@@ -262,6 +277,79 @@ public class TaskRecordActivity extends BaseActivity {
|
|
|
hideProgress();
|
|
|
}
|
|
|
});
|
|
|
+ mAdapter = new CommonAdapter<Commit>(TaskRecordActivity.this, R.layout.task_record_item, mCommitsStatus) {
|
|
|
+ @Override
|
|
|
+ protected void convert(ViewHolder viewHolder, Commit item, int position) {
|
|
|
+ String time = null;
|
|
|
+ try {
|
|
|
+ String[] tmp1 = item.getCreateTime().split("-");
|
|
|
+ String[] tmp2 = tmp1[2].split(" ")[1].split(":");
|
|
|
+ time = tmp1[1] + "/" + tmp1[2].split(" ")[0] + "\n" + tmp2[0] + ":" + tmp2[1];
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ viewHolder.setText(R.id.tv_time, time);
|
|
|
+ getState(viewHolder.<TextView>getView(R.id.tv_state), item.getStatus());
|
|
|
+ viewHolder.setText(R.id.txt_baseactivity_title, item.getTask().getTitle());
|
|
|
+ Glide.with(TaskRecordActivity.this)
|
|
|
+ .load(item.getTask().getIcon())
|
|
|
+ .placeholder(R.drawable.icon)
|
|
|
+ .dontAnimate()
|
|
|
+ .into(viewHolder.<ImageView>getView(R.id.img_icon));
|
|
|
+ String strMoney=TextUtils.isEmpty(item.getCompleteMoney())?item.getTask().getPrice():item.getCompleteMoney();
|
|
|
+ viewHolder.setText(R.id.tv_money, "¥" + strMoney);
|
|
|
+ TextView failed = viewHolder.getView(R.id.tv_failed);
|
|
|
+ if (!TextUtils.isEmpty(item.getFailDesc())) {
|
|
|
+ failed.setVisibility(View.VISIBLE);
|
|
|
+ failed.setText(item.getFailDesc());
|
|
|
+ } else {
|
|
|
+ failed.setVisibility(View.GONE);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ private void getState(TextView view, int state) {
|
|
|
+ switch (state) {
|
|
|
+ case 1:
|
|
|
+ view.setText("审核中");
|
|
|
+ view.setBackgroundResource(R.drawable.sp_btn_common);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ view.setText("已审核");
|
|
|
+ view.setBackgroundResource(R.drawable.sp_btn_common_green);
|
|
|
+ break;
|
|
|
+ case 3:
|
|
|
+ view.setText("未通过");
|
|
|
+ view.setBackgroundResource(R.drawable.sp_btn_common_orange);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ };
|
|
|
+ mLvTask.setAdapter(mAdapter);
|
|
|
+
|
|
|
+ //popupwindow 刷选列表
|
|
|
+ dateList.clear();
|
|
|
+ dateList.add(" 全部 ");
|
|
|
+ dateList.add("审核中");
|
|
|
+ dateList.add("已审核");
|
|
|
+ dateList.add("未通过");
|
|
|
+ tv_linearLayout_baseactivity_right.setText(dateList.get(0));
|
|
|
+ popupWindow = MyPopupWindow.newInstance().getPopupWindow(this, dateList, tv_linearLayout_baseactivity_right, mhandler);
|
|
|
}
|
|
|
|
|
|
+ /**
|
|
|
+ * 筛选 date
|
|
|
+ */
|
|
|
+ private void filtrate(int status){
|
|
|
+
|
|
|
+ mCommitsStatus.clear();
|
|
|
+ if(status == 0){
|
|
|
+ mCommitsStatus.addAll(mCommits);
|
|
|
+ }
|
|
|
+ for(Commit c: mCommits){
|
|
|
+ if(c.getStatus() == status){
|
|
|
+ mCommitsStatus.add(c);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ mAdapter.notifyDataSetChanged();
|
|
|
+ }
|
|
|
}
|