PageRenderTime 53ms CodeModel.GetById 27ms RepoModel.GetById 1ms app.codeStats 0ms

/app/src/main/java/com/uprint/android_pack/cloudprint4androidmanager/adapter/ArrivedOrdersAdapter.java

https://gitlab.com/zhangxiaang/CloudPrint4AndroidManager
Java | 119 lines | 103 code | 12 blank | 4 comment | 8 complexity | 5e1c33f61c0c3e7c9fc6ef6d61a764f4 MD5 | raw file
  1. package com.uprint.android_pack.cloudprint4androidmanager.adapter;
  2. import android.content.Context;
  3. import android.content.DialogInterface;
  4. import android.content.Intent;
  5. import android.net.Uri;
  6. import android.support.v7.app.AlertDialog;
  7. import android.support.v7.widget.RecyclerView;
  8. import android.view.LayoutInflater;
  9. import android.view.View;
  10. import android.view.ViewGroup;
  11. import android.widget.TextView;
  12. import android.widget.Toast;
  13. import com.alibaba.fastjson.JSONArray;
  14. import com.alibaba.fastjson.JSONObject;
  15. import com.uprint.android_pack.cloudprint4androidmanager.R;
  16. import com.uprint.android_pack.cloudprint4androidmanager.widgets.CPRatingBar;
  17. import java.lang.ref.WeakReference;
  18. /**
  19. * Created by zhangxiaang on 15/11/15.
  20. * for show the arrived orders
  21. */
  22. public class ArrivedOrdersAdapter extends RecyclerView.Adapter<ArrivedOrdersAdapter.OrderViewHolder> {
  23. private LayoutInflater inflater;
  24. private JSONArray array;
  25. private Context context;
  26. public ArrivedOrdersAdapter(Context context, JSONArray data) {
  27. this.context = context;
  28. this.inflater = LayoutInflater.from(context);
  29. this.array = data;
  30. }
  31. @Override
  32. public ArrivedOrdersAdapter.OrderViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
  33. return new ArrivedOrdersAdapter.OrderViewHolder(inflater.inflate(R.layout.finished_order, parent, false));
  34. }
  35. @Override
  36. public void onBindViewHolder(ArrivedOrdersAdapter.OrderViewHolder holder, int position) {
  37. if (this.array != null) {
  38. JSONObject result = array.getJSONObject(position);
  39. int rate = result.getInteger("rate");
  40. holder.student_room.setText(result.getString("student_room"));
  41. holder.student_phone.setText(result.getString("student_phone"));
  42. holder.nickname.setText(result.getString("nickname"));
  43. holder.demand_time.setText(result.getString("demand_time"));
  44. holder.fee.setText("订单价格: " + result.getFloat("print_fee") + " 元");
  45. if (rate == 0) {
  46. holder.ratingBar.setStar(5);
  47. } else
  48. holder.ratingBar.setStar(rate);
  49. holder.orders_type.setText("订单类型: " + (result.getInteger("order_type") == 0 ? "打印" : "复印"));
  50. }
  51. }
  52. @Override
  53. public int getItemCount() {
  54. return this.array.size();
  55. }
  56. public void addAll(JSONArray array1) {
  57. synchronized (this) {
  58. for (int i = array1.size() - 1; i > -1; i--) {
  59. this.array.add(0, array1.getJSONObject(i));
  60. }
  61. notifyItemRangeInserted(0, array1.size());
  62. }
  63. if (array1.size() != 0) {
  64. Toast.makeText(context, "最新订单有:" + array1.size() + "单", Toast.LENGTH_SHORT).show();
  65. }
  66. }
  67. public class OrderViewHolder extends RecyclerView.ViewHolder {
  68. TextView student_room;
  69. TextView student_phone;
  70. TextView nickname;
  71. TextView demand_time;
  72. TextView fee;
  73. TextView orders_type;
  74. CPRatingBar ratingBar;
  75. WeakReference<Context> ref = new WeakReference<>(context);
  76. public OrderViewHolder(View itemView) {
  77. super(itemView);
  78. student_room = (TextView) itemView.findViewById(R.id.buildingName);
  79. student_phone = (TextView) itemView.findViewById(R.id.user_phone);
  80. nickname = (TextView) itemView.findViewById(R.id.user2_name);
  81. demand_time = (TextView) itemView.findViewById(R.id.command_time);
  82. fee = (TextView) itemView.findViewById(R.id.totalFee);
  83. orders_type = (TextView) itemView.findViewById(R.id.orders_type);
  84. ratingBar = (CPRatingBar) itemView.findViewById(R.id.ratingbar);
  85. student_phone.setOnClickListener(new View.OnClickListener() {
  86. @Override
  87. public void onClick(View v) {
  88. final String phoneNum = ((TextView) v).getText().toString();
  89. AlertDialog.Builder builder = new AlertDialog.Builder(ref.get());
  90. builder.setMessage("确认拨打给" + phoneNum + "吗?").setPositiveButton("确认", new DialogInterface.OnClickListener() {
  91. @Override
  92. public void onClick(DialogInterface dialog, int which) {
  93. Intent phoneIntent = new Intent("android.intent.action.CALL",
  94. Uri.parse("tel:" + phoneNum));
  95. ref.get().startActivity(phoneIntent);
  96. }
  97. }).setNeutralButton("取消", new DialogInterface.OnClickListener() {
  98. @Override
  99. public void onClick(DialogInterface dialog, int which) {
  100. dialog.dismiss();
  101. }
  102. }).create().show();
  103. }
  104. });
  105. }
  106. }
  107. }