|
@@ -38,9 +38,6 @@ import org.json.JSONObject;
|
|
|
|
|
|
|
|
import java.lang.ref.WeakReference;
|
|
import java.lang.ref.WeakReference;
|
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
|
-import java.util.Date;
|
|
|
|
|
-import java.util.Timer;
|
|
|
|
|
-import java.util.TimerTask;
|
|
|
|
|
|
|
|
|
|
public class HomeFragment extends Fragment {
|
|
public class HomeFragment extends Fragment {
|
|
|
|
|
|
|
@@ -92,6 +89,14 @@ public class HomeFragment extends Fragment {
|
|
|
HomeSectionModel sectionModel = mSectionArray.get(groupPosition);
|
|
HomeSectionModel sectionModel = mSectionArray.get(groupPosition);
|
|
|
HomeOrderModel orderModel = sectionModel.orderModelForIndex(childPosition);
|
|
HomeOrderModel orderModel = sectionModel.orderModelForIndex(childPosition);
|
|
|
|
|
|
|
|
|
|
+ if (mSelectedModel != null) {
|
|
|
|
|
+ mSelectedModel.setSelection(false);
|
|
|
|
|
+ }
|
|
|
|
|
+ mSelectedModel = orderModel;
|
|
|
|
|
+ if (mSelectedModel != null) {
|
|
|
|
|
+ mSelectedModel.setSelection(true);
|
|
|
|
|
+ }
|
|
|
|
|
+
|
|
|
Intent intent = DetailActivity.build(mCtx,orderModel.orderID);
|
|
Intent intent = DetailActivity.build(mCtx,orderModel.orderID);
|
|
|
mCtx.startActivity(intent);
|
|
mCtx.startActivity(intent);
|
|
|
|
|
|
|
@@ -99,7 +104,6 @@ public class HomeFragment extends Fragment {
|
|
|
}
|
|
}
|
|
|
});
|
|
});
|
|
|
|
|
|
|
|
-
|
|
|
|
|
mRefresh = view.findViewById(R.id.home_refresh);
|
|
mRefresh = view.findViewById(R.id.home_refresh);
|
|
|
mRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
|
mRefresh.setOnRefreshListener(new SwipeRefreshLayout.OnRefreshListener() {
|
|
|
@Override
|
|
@Override
|
|
@@ -242,6 +246,7 @@ public class HomeFragment extends Fragment {
|
|
|
int restul = json.getInt("result");
|
|
int restul = json.getInt("result");
|
|
|
if (restul == Network.RESULT_TRUE) {
|
|
if (restul == Network.RESULT_TRUE) {
|
|
|
|
|
|
|
|
|
|
+ mSelectedModel = null;
|
|
|
handleJson(json);
|
|
handleJson(json);
|
|
|
|
|
|
|
|
} else {
|
|
} else {
|
|
@@ -397,99 +402,23 @@ public class HomeFragment extends Fragment {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private class OrderCellHolder implements OrderModelDelegate,View.OnTouchListener {
|
|
|
|
|
-
|
|
|
|
|
- TextView titleTv, orderNoTv, containerNoTv, dateTv;
|
|
|
|
|
- ImageView statusView, markView;
|
|
|
|
|
- RelativeLayout contentContainer;
|
|
|
|
|
-
|
|
|
|
|
- WeakReference<HomeOrderModel> weakModel;
|
|
|
|
|
|
|
+ private class OrderCellHolder {
|
|
|
|
|
|
|
|
|
|
+ WeakReference<HomeCellLayout> weakCell;
|
|
|
|
|
|
|
|
OrderCellHolder(View view) {
|
|
OrderCellHolder(View view) {
|
|
|
|
|
|
|
|
- contentContainer = view.findViewById(R.id.content_container);
|
|
|
|
|
- titleTv = view.findViewById(R.id.title_tv);
|
|
|
|
|
- orderNoTv = view.findViewById(R.id.order_no_tv);
|
|
|
|
|
- containerNoTv = view.findViewById(R.id.container_no_tv);
|
|
|
|
|
- dateTv = view.findViewById(R.id.date_tv);
|
|
|
|
|
- statusView = view.findViewById(R.id.status_view);
|
|
|
|
|
- markView = view.findViewById(R.id.order_mark_view);
|
|
|
|
|
-
|
|
|
|
|
- contentContainer.setOnTouchListener(this);
|
|
|
|
|
-
|
|
|
|
|
view.setTag(this);
|
|
view.setTag(this);
|
|
|
|
|
+ weakCell = new WeakReference<>((HomeCellLayout) view);
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
void bindOrderModel(HomeOrderModel model) {
|
|
void bindOrderModel(HomeOrderModel model) {
|
|
|
|
|
|
|
|
- if (weakModel != null) {
|
|
|
|
|
- weakModel.get().delegate = null;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (model != null) {
|
|
|
|
|
- weakModel = new WeakReference<>(model);
|
|
|
|
|
- weakModel.get().delegate = this;
|
|
|
|
|
- } else {
|
|
|
|
|
- weakModel = null;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- refresh();
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- @Override
|
|
|
|
|
- public void refresh() {
|
|
|
|
|
-
|
|
|
|
|
- if (weakModel == null) {
|
|
|
|
|
- return;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- HomeOrderModel model = weakModel.get();
|
|
|
|
|
- titleTv.setText(model.title);
|
|
|
|
|
- orderNoTv.setText(model.orderNo);
|
|
|
|
|
- containerNoTv.setText(model.containerNo);
|
|
|
|
|
- dateTv.setText(model.date);
|
|
|
|
|
-
|
|
|
|
|
- if (model.status == HomeOrderModel.OrderStatusNew) {
|
|
|
|
|
- markView.setVisibility(View.VISIBLE);
|
|
|
|
|
- } else {
|
|
|
|
|
- markView.setVisibility(View.GONE);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (!model.selected) {
|
|
|
|
|
- contentContainer.setBackgroundResource(R.drawable.round_corner_bg);
|
|
|
|
|
- } else {
|
|
|
|
|
- contentContainer.setBackgroundResource(R.drawable.round_corner_selection_bg);
|
|
|
|
|
|
|
+ if (weakCell != null && weakCell.get() != null) {
|
|
|
|
|
+ weakCell.get().bindOrderModel(model);
|
|
|
}
|
|
}
|
|
|
-
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- @Override
|
|
|
|
|
- public boolean onTouch(View v, MotionEvent event) {
|
|
|
|
|
-
|
|
|
|
|
- select();
|
|
|
|
|
-
|
|
|
|
|
- return false;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- public void select() {
|
|
|
|
|
-
|
|
|
|
|
- if (mSelectedModel != null && mSelectedModel != weakModel.get()) {
|
|
|
|
|
- mSelectedModel.setSelection(false);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (weakModel != null) {
|
|
|
|
|
- mSelectedModel = weakModel.get();
|
|
|
|
|
- } else {
|
|
|
|
|
- mSelectedModel = null;
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- if (mSelectedModel != null) {
|
|
|
|
|
- mSelectedModel.setSelection(true);
|
|
|
|
|
- }
|
|
|
|
|
-
|
|
|
|
|
- }
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -573,16 +502,16 @@ public class HomeFragment extends Fragment {
|
|
|
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
|
|
public View getChildView(int groupPosition, int childPosition, boolean isLastChild, View convertView, ViewGroup parent) {
|
|
|
|
|
|
|
|
|
|
|
|
|
- View header;
|
|
|
|
|
|
|
+ View cell;
|
|
|
OrderCellHolder holder;
|
|
OrderCellHolder holder;
|
|
|
if (convertView == null) {
|
|
if (convertView == null) {
|
|
|
|
|
|
|
|
- header = LayoutInflater.from(mCtx).inflate(R.layout.home_order_cell,null);
|
|
|
|
|
- holder = new OrderCellHolder(header);
|
|
|
|
|
|
|
+ cell = LayoutInflater.from(mCtx).inflate(R.layout.home_order_cell,null);
|
|
|
|
|
+ holder = new OrderCellHolder(cell);
|
|
|
|
|
|
|
|
} else {
|
|
} else {
|
|
|
|
|
|
|
|
- header = convertView;
|
|
|
|
|
|
|
+ cell = convertView;
|
|
|
holder = (OrderCellHolder)convertView.getTag();
|
|
holder = (OrderCellHolder)convertView.getTag();
|
|
|
}
|
|
}
|
|
|
|
|
|
|
@@ -591,7 +520,7 @@ public class HomeFragment extends Fragment {
|
|
|
|
|
|
|
|
holder.bindOrderModel(orderModel);
|
|
holder.bindOrderModel(orderModel);
|
|
|
|
|
|
|
|
- return header;
|
|
|
|
|
|
|
+ return cell;
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Override
|
|
@Override
|
|
@@ -610,7 +539,7 @@ public class HomeFragment extends Fragment {
|
|
|
}
|
|
}
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
- private class HomeOrderModel {
|
|
|
|
|
|
|
+ public class HomeOrderModel {
|
|
|
|
|
|
|
|
static final int OrderStatusFinish = 0;
|
|
static final int OrderStatusFinish = 0;
|
|
|
static final int OrderStatusProcessing = 1;
|
|
static final int OrderStatusProcessing = 1;
|