فهرست منبع

快递柜美化提交布局改造和bug修复

wcq 1 سال پیش
والد
کامیت
fb486a090c
33فایلهای تغییر یافته به همراه611 افزوده شده و 163 حذف شده
  1. 79 1
      app/src/main/java/com/emato/ich/MainActivity.java
  2. 23 4
      app/src/main/java/com/emato/ich/fragment/ChooseCabinetFragment.java
  3. 6 2
      app/src/main/java/com/emato/ich/fragment/CollectMaterialsFragment.java
  4. 21 5
      app/src/main/java/com/emato/ich/fragment/ExceptionFragment.java
  5. 6 0
      app/src/main/java/com/emato/ich/fragment/InputInfoFragment.java
  6. 6 1
      app/src/main/java/com/emato/ich/fragment/InputInfoKeyBoardFragment.java
  7. 58 5
      app/src/main/java/com/emato/ich/fragment/MainFragment.java
  8. 10 2
      app/src/main/java/com/emato/ich/fragment/PaymentFragment.java
  9. 1 0
      app/src/main/java/com/emato/ich/fragment/SendInfoConfirmFragment.java
  10. 4 1
      app/src/main/java/com/emato/ich/fragment/SendKeyBoardFragment.java
  11. 6 1
      app/src/main/java/com/emato/ich/fragment/TakeCodeFragment.java
  12. 127 48
      app/src/main/java/com/emato/ich/fragment/TakeSuccessFragment.java
  13. BIN
      app/src/main/res/drawable/emato_logo.png
  14. BIN
      app/src/main/res/drawable/send_order_qrcode_5239ff88e4c7f7f1.png
  15. 63 41
      app/src/main/res/layout/content_main.xml
  16. 22 11
      app/src/main/res/layout/fragment_choose_cabinet.xml
  17. 12 1
      app/src/main/res/layout/fragment_collect_materials.xml
  18. 12 1
      app/src/main/res/layout/fragment_courier.xml
  19. 16 5
      app/src/main/res/layout/fragment_exception.xml
  20. 13 2
      app/src/main/res/layout/fragment_express_delivery.xml
  21. 1 0
      app/src/main/res/layout/fragment_input_info.xml
  22. 20 8
      app/src/main/res/layout/fragment_input_key_board.xml
  23. 5 3
      app/src/main/res/layout/fragment_main.xml
  24. 2 2
      app/src/main/res/layout/fragment_my_key_board.xml
  25. 14 3
      app/src/main/res/layout/fragment_payment.xml
  26. 1 0
      app/src/main/res/layout/fragment_send.xml
  27. 16 5
      app/src/main/res/layout/fragment_send_info_confirm.xml
  28. 12 1
      app/src/main/res/layout/fragment_send_key_board.xml
  29. 17 6
      app/src/main/res/layout/fragment_send_main.xml
  30. 12 1
      app/src/main/res/layout/fragment_send_success.xml
  31. 1 0
      app/src/main/res/layout/fragment_take.xml
  32. 12 1
      app/src/main/res/layout/fragment_take_code.xml
  33. 13 2
      app/src/main/res/layout/fragment_take_success.xml

+ 79 - 1
app/src/main/java/com/emato/ich/MainActivity.java

@@ -70,6 +70,7 @@ import com.xuexiang.xupdate.proxy.impl.DefaultUpdateParser;
 import android.view.Menu;
 import android.view.MenuItem;
 import android.view.View;
+import android.view.ViewGroup;
 import android.view.WindowManager;
 import android.view.inputmethod.InputMethodManager;
 import android.widget.ImageView;
@@ -256,11 +257,88 @@ public class MainActivity extends AppCompatActivity  {
                                 findViewById(R.id.fast_take_send_background).setVisibility(View.VISIBLE);
                             }
                             // 取件码取件是否展示
-                            if (TakeButtonShowEnum.item_1.getItem().equals(takeButtonShow)){
+//                            if (TakeButtonShowEnum.item_1.getItem().equals(takeButtonShow)){
+//                                findViewById(R.id.take_btn).setVisibility(View.GONE);
+//                            }else {
+//                                findViewById(R.id.take_btn).setVisibility(View.VISIBLE);
+//                            }
+
+                            // 取件二维码不展示  取件码取件展示
+                            if (TakeQrCodeShowEnum.item_1.getItem().equals(takeQrCodeShow) && !TakeButtonShowEnum.item_1.getItem().equals(takeButtonShow)){
+                                findViewById(R.id.fast_take_send).setVisibility(View.GONE);
+                                findViewById(R.id.fast_take_send_background).setVisibility(View.GONE);
+                                findViewById(R.id.take_btn).setVisibility(View.VISIBLE);
+
+
+                                try {
+
+                                    ImageView sendBtn = findViewById(R.id.send_btn);
+                                    ViewGroup.LayoutParams layoutParams = sendBtn.getLayoutParams();
+                                    layoutParams.width = 1020; // 设置宽度为200像素
+                                    sendBtn.setLayoutParams(layoutParams);
+                                    Glide.with(sendBtn).load("http://183.3.221.143:80/group1/M00/00/26/twPdj2T_y2aAfNr4AAB2NW7s_cU101.png")
+                                            .skipMemoryCache(true)//跳过内存缓存
+                                            .diskCacheStrategy(DiskCacheStrategy.NONE)//不缓冲disk硬盘中
+                                            .into(sendBtn);
+
+                                    ImageView takeBtn = findViewById(R.id.take_btn);
+                                    ViewGroup.LayoutParams takeBtnLayoutParams = takeBtn.getLayoutParams();
+                                    takeBtnLayoutParams.width = 1020; // 设置宽度为200像素
+                                    takeBtn.setLayoutParams(takeBtnLayoutParams);
+                                    Glide.with(takeBtn).load("http://183.3.221.143:80/group1/M00/00/26/twPdj2T_y0eAN88zAACNFgq1OjE237.png")
+                                            .skipMemoryCache(true)//跳过内存缓存
+                                            .diskCacheStrategy(DiskCacheStrategy.NONE)//不缓冲disk硬盘中
+                                            .into(takeBtn);
+
+                                    ImageView delivererBtnView = findViewById(R.id.deliverer_btn);
+                                    ViewGroup.LayoutParams delivererBtnLayoutParams = delivererBtnView.getLayoutParams();
+                                    delivererBtnLayoutParams.width = 1020; // 设置宽度为400像素
+                                    delivererBtnView.setLayoutParams(delivererBtnLayoutParams);
+                                    Glide.with(delivererBtnView).load("http://183.3.221.143:80/group1/M00/00/26/twPdj2T_y1mAXz1xAAA0htZRbz4789.png")
+                                            .skipMemoryCache(true)//跳过内存缓存
+                                            .diskCacheStrategy(DiskCacheStrategy.NONE)//不缓冲disk硬盘中
+                                            .into(delivererBtnView);
+
+
+                                } catch (Exception e) {
+                                    Log.e(TAG, "onResponse: Glide设置图片异常! ", e);
+                                    LoggingUtils.sendErrorLog("业务异常: Glide请求微信公众号图片异常! ", e);
+                                }
+                                findViewById(R.id.take_btn).setTranslationX(-537);
+                                findViewById(R.id.send_btn).setTranslationX(-537);
+                                findViewById(R.id.deliverer_btn).setTranslationX(-537);
+                                findViewById(R.id.take_btn).requestLayout();
+                                findViewById(R.id.send_btn).requestLayout();
+                                findViewById(R.id.deliverer_btn).requestLayout();
+                            }else if (!TakeQrCodeShowEnum.item_1.getItem().equals(takeQrCodeShow) && TakeButtonShowEnum.item_1.getItem().equals(takeButtonShow)){
+                                // 取件二维码展示  取件码取件不展示
+
+                                try {
+                                    ImageView sendbtn = findViewById(R.id.send_btn);
+                                    ViewGroup.LayoutParams layoutParams = sendbtn.getLayoutParams();
+                                    layoutParams.height = 666; // 设置高度为300像素
+                                    sendbtn.setLayoutParams(layoutParams);
+                                    Glide.with(sendbtn).load("http://183.3.221.143:80/group1/M00/00/26/twPdj2T_yyOAQrj9AAB2pLRKDUA329.png")
+                                            .skipMemoryCache(true)//跳过内存缓存
+                                            .diskCacheStrategy(DiskCacheStrategy.NONE)//不缓冲disk硬盘中
+                                            .into(sendbtn);
+                                } catch (Exception e) {
+                                    Log.e(TAG, "onResponse: Glide设置图片异常! ", e);
+                                    LoggingUtils.sendErrorLog("业务异常: Glide请求微信公众号图片异常! ", e);
+                                }
+
+                                findViewById(R.id.fast_take_send).setVisibility(View.VISIBLE);
+                                findViewById(R.id.fast_take_send_background).setVisibility(View.VISIBLE);
                                 findViewById(R.id.take_btn).setVisibility(View.GONE);
+                                findViewById(R.id.send_btn).setTranslationY(-12);
                             }else {
+                                // 取件二维码展示  取件码取件展示   不存在这个
+                                findViewById(R.id.fast_take_send).setVisibility(View.VISIBLE);
+                                findViewById(R.id.fast_take_send_background).setVisibility(View.VISIBLE);
                                 findViewById(R.id.take_btn).setVisibility(View.VISIBLE);
                             }
+                            
+                            
                             Log.i(TAG, "onResponse: =====================>获取系统配置成功! ");
                         } else {
                             Log.w(TAG, "onResponse: code==>" + readValue.getCode() + ", msg==>" + readValue.getMsg());

+ 23 - 4
app/src/main/java/com/emato/ich/fragment/ChooseCabinetFragment.java

@@ -252,13 +252,32 @@ public class ChooseCabinetFragment extends Fragment {
             // 不为空说明是异常页跳过来的, 更新柜子类型, 如果有订单号就更新预下单, 无则走预下单逻辑
             if (null != exceptionBundle) {
                 Bundle inputInfoBundle = activity.getBundleMap().get(InputInfoKeyBoardFragment.class.getName());
+                Bundle expressDeliveryBundle = activity.getBundleMap().get(ExpressDeliveryFragment.class.getName());
+
+
                 ObjectMapper objectMapper = JacksonUtils.objectmapper;
-                if (inputInfoBundle == null) {
+                if (inputInfoBundle == null && expressDeliveryBundle == null) {
                     ToastUtils.make(getContext(), "您还没有投递!");
                 } else {
-                    String orderResponse = inputInfoBundle.getString("preparedOrderResponse");
-                    if (null != orderResponse && orderResponse.trim().length() > 0) {
-                        PreparedOrderResponseVo preparedOrderResponse = objectMapper.readValue(orderResponse, PreparedOrderResponseVo.class);
+                    String orderResponse = null;
+                    if(inputInfoBundle != null ){
+                        orderResponse = inputInfoBundle.getString("preparedOrderResponse");
+                    }
+                    String expressDeliverOrderResponse = null;
+                    if(expressDeliveryBundle != null ){
+                        expressDeliverOrderResponse = expressDeliveryBundle.getString("preparedOrderResponse");
+                    }
+
+                    if ((null != orderResponse && orderResponse.trim().length() > 0 )
+                        || (null != expressDeliverOrderResponse && expressDeliverOrderResponse.trim().length() >0)) {
+                        String str = "";
+                        if(null != orderResponse && orderResponse.trim().length() > 0 ){
+                            str = orderResponse;
+                        }else if(null != expressDeliverOrderResponse && expressDeliverOrderResponse.trim().length() > 0 ){
+                            str = expressDeliverOrderResponse;
+                        }
+
+                        PreparedOrderResponseVo preparedOrderResponse = objectMapper.readValue(str, PreparedOrderResponseVo.class);
 
                         ConfirmOrderVo confirmOrderVo = new ConfirmOrderVo();
                         confirmOrderVo.setLockerType(sectionType);

+ 6 - 2
app/src/main/java/com/emato/ich/fragment/CollectMaterialsFragment.java

@@ -176,8 +176,10 @@ public class CollectMaterialsFragment extends Fragment {
                                            Bundle bundle = new Bundle();
                                            bundle.putString("mailNo", mailNo);
                                            bundle.putString("pickUp", responseData.getData().getPickUp());
+                                           // 跳转到取件成功页面时传入一个参数 用于区分继续取件按钮跳转的页面 takeCodePage 取件码页面  courierPage 揽件页面
+                                           bundle.putString("navigatePage", "courierPage");
                                            bundle.putString("takeCabinetNo", responseData.getData().getLockerName());
-                                           ((MainActivity) getActivity()).getBundleMap().put(ExpressSendOrderPickUpDto.class.getName(), bundle);
+                                           ((MainActivity) getActivity()).getBundleMap().put("continueTake", bundle);
                                            if (null != timer) {
                                                timer.cancel();
                                            }
@@ -201,7 +203,9 @@ public class CollectMaterialsFragment extends Fragment {
         // 数字输入 5 手机号   4 面单号
         binding.mailNo.setOnFocusChangeListener((view1, hasFocus) -> {
             AtomicBoolean caseSmallFlag = new AtomicBoolean(true);
-            
+            if(!hasFocus){
+                return;
+            }
             binding.keyBoard.inputButton0.setOnClickListener(v -> {
                 if(!hasFocus){
                     return;

+ 21 - 5
app/src/main/java/com/emato/ich/fragment/ExceptionFragment.java

@@ -89,6 +89,10 @@ public class ExceptionFragment extends Fragment {
         try {
             activity = (MainActivity) getActivity();
             arguments = activity.getBundleMap().get(InputInfoKeyBoardFragment.class.getName());
+            if(arguments == null){
+                arguments = activity.getBundleMap().get(ExpressDeliveryFragment.class.getName());
+            }
+
         } catch (RuntimeException e) {
             Log.e(TAG, "onViewCreated: InputInfoFragment向ExceptionFragment页面传值错误! ", e);
             LoggingUtils.sendErrorLog("业务异常: InputInfoFragment向ExceptionFragment页面传值错误! ", e);
@@ -161,17 +165,29 @@ public class ExceptionFragment extends Fragment {
                 finalActivity.getBundleMap().remove(SendInfoConfirmFragment.class.getName());
                 NavUtils.navigate(this, R.id.action_exceptionFragment_to_sendInfoConfirmMainFragment);
             } else {
+                MainActivity activityTmp = (MainActivity) getActivity();
+                LocalStorage.getInstance().cleanSession(activityTmp, false);
                 NavUtils.navigate(this, R.id.action_exceptionFragment_to_sendMainFragment);
             }
         });
     }
 
     private void handleExceptionScene(Bundle bundle, String decision, View view){
-        LocalStorage.Session session = LocalStorage.getInstance().getSession();
-        if (LocalStorage.getInstance().isExpired(session)) {
-            ToastUtils.make(getContext(), "会话已过期! 请重新登录! ");
-            return;
+
+        // 判断是否是顾客寄件  如果是顾客寄件则不需要登录
+        MainActivity activity = (MainActivity) getActivity();
+        Bundle mainBundle = activity.getBundleMap().get(MainFragment.class.getName());
+        String pageType = mainBundle.getString("pageType");
+        // 顾客寄快递不需要登录
+        if(!"expressDelivery".equals(pageType)){
+            // 不是顾客寄快递 则都需要登录后才能进行操作
+            LocalStorage.Session session = LocalStorage.getInstance().getSession();
+            if (LocalStorage.getInstance().isExpired(session)) {
+                ToastUtils.make(getContext(), "会话已过期! 请重新登录! ");
+                return;
+            }
         }
+
         if (null == bundle) {
             ToastUtils.make(getContext(), "没有待提交的投递订单! ");
             return;
@@ -199,7 +215,7 @@ public class ExceptionFragment extends Fragment {
                         // 禁用按钮
                         disableButton();
 
-                        ICSPClient.confirmOrder(LocalStorage.getInstance().getSession().getToken(), confirmOrderVo, new Callback() {
+                        ICSPClient.confirmOrder(confirmOrderVo, new Callback() {
                             @Override
                             public void onFailure(@NotNull Call call, @NotNull IOException e) {
                                 ToastUtils.make(getContext(), "发送异常处理请求失败!网络异常!");

+ 6 - 0
app/src/main/java/com/emato/ich/fragment/InputInfoFragment.java

@@ -256,6 +256,9 @@ public class InputInfoFragment extends Fragment {
         // 数字输入 5 手机号   4 密码
 
         binding.delivererPhoneConfirm.setOnFocusChangeListener((view1, hasFocus) -> {
+            if(!hasFocus){
+                return;
+            }
             if (hasFocus) {
                 binding.inputButton0.setOnClickListener(v -> {
                     int length = binding.delivererPhoneConfirm.getText().length();
@@ -367,6 +370,9 @@ public class InputInfoFragment extends Fragment {
         });
 
         binding.mailNo.setOnFocusChangeListener((view1, hasFocus) -> {
+            if(!hasFocus){
+                return;
+            }
             if (hasFocus) {
                 binding.inputButton0.setOnClickListener(v -> {
                     int start = binding.mailNo.getSelectionStart();

+ 6 - 1
app/src/main/java/com/emato/ich/fragment/InputInfoKeyBoardFragment.java

@@ -351,6 +351,9 @@ public class InputInfoKeyBoardFragment extends Fragment {
         // 数字输入 5 手机号   4 面单号
 
         binding.delivererPhoneConfirm.setOnFocusChangeListener((view1, hasFocus) -> {
+            if(!hasFocus){
+                return;
+            }
             if (hasFocus) {
                 binding.keyBoard.inputButton0.setOnClickListener(v -> {
                     int length = binding.delivererPhoneConfirm.getText().length();
@@ -463,7 +466,9 @@ public class InputInfoKeyBoardFragment extends Fragment {
 
         binding.mailNo.setOnFocusChangeListener((view1, hasFocus) -> {
             AtomicBoolean caseSmallFlag = new AtomicBoolean(true);
-            
+            if(!hasFocus){
+                return;
+            }
             binding.keyBoard.inputButton0.setOnClickListener(v -> {
                 if(!hasFocus){
                     return;

+ 58 - 5
app/src/main/java/com/emato/ich/fragment/MainFragment.java

@@ -86,17 +86,70 @@ public class MainFragment extends Fragment {
             view.findViewById(R.id.fast_take_send_background).setVisibility(View.GONE);
             view.findViewById(R.id.take_btn).setVisibility(View.VISIBLE);
 
-            view.findViewById(R.id.take_btn).setTranslationX(-53);
-            view.findViewById(R.id.send_btn).setTranslationX(-53);
-            view.findViewById(R.id.deliverer_btn).setTranslationX(-53);
+
+            try {
+
+                ImageView sendBtn = view.findViewById(R.id.send_btn);
+                ViewGroup.LayoutParams layoutParams = sendBtn.getLayoutParams();
+                layoutParams.width = 1020; // 设置宽度为200像素
+                sendBtn.setLayoutParams(layoutParams);
+                Glide.with(view).load("http://183.3.221.143:80/group1/M00/00/26/twPdj2T_y2aAfNr4AAB2NW7s_cU101.png")
+                        .skipMemoryCache(true)//跳过内存缓存
+                        .diskCacheStrategy(DiskCacheStrategy.NONE)//不缓冲disk硬盘中
+                        .into(sendBtn);
+
+                ImageView takeBtn = view.findViewById(R.id.take_btn);
+                ViewGroup.LayoutParams takeBtnLayoutParams = takeBtn.getLayoutParams();
+                takeBtnLayoutParams.width = 1020; // 设置宽度为200像素
+                takeBtn.setLayoutParams(takeBtnLayoutParams);
+                Glide.with(view).load("http://183.3.221.143:80/group1/M00/00/26/twPdj2T_y0eAN88zAACNFgq1OjE237.png")
+                        .skipMemoryCache(true)//跳过内存缓存
+                        .diskCacheStrategy(DiskCacheStrategy.NONE)//不缓冲disk硬盘中
+                        .into(takeBtn);
+
+                ImageView delivererBtnView = view.findViewById(R.id.deliverer_btn);
+                ViewGroup.LayoutParams delivererBtnLayoutParams = delivererBtnView.getLayoutParams();
+                delivererBtnLayoutParams.width = 1020; // 设置宽度为400像素
+                delivererBtnView.setLayoutParams(delivererBtnLayoutParams);
+                Glide.with(view).load("http://183.3.221.143:80/group1/M00/00/26/twPdj2T_y1mAXz1xAAA0htZRbz4789.png")
+                        .skipMemoryCache(true)//跳过内存缓存
+                        .diskCacheStrategy(DiskCacheStrategy.NONE)//不缓冲disk硬盘中
+                        .into(delivererBtnView);
+
+
+            } catch (Exception e) {
+                Log.e(TAG, "onResponse: Glide设置图片异常! ", e);
+                LoggingUtils.sendErrorLog("业务异常: Glide请求微信公众号图片异常! ", e);
+            }
+            view.findViewById(R.id.take_btn).setTranslationX(-537);
+            view.findViewById(R.id.send_btn).setTranslationX(-537);
+            view.findViewById(R.id.deliverer_btn).setTranslationX(-537);
+            view.findViewById(R.id.take_btn).requestLayout();
+            view.findViewById(R.id.send_btn).requestLayout();
+            view.findViewById(R.id.deliverer_btn).requestLayout();
         }else if (!TakeQrCodeShowEnum.item_1.getItem().equals(takeQrCodeShow) && TakeButtonShowEnum.item_1.getItem().equals(takeButtonShow)){
             // 取件二维码展示  取件码取件不展示
+
+            try {
+                ImageView sendbtn = view.findViewById(R.id.send_btn);
+                ViewGroup.LayoutParams layoutParams = sendbtn.getLayoutParams();
+                layoutParams.height = 666; // 设置高度为300像素
+                sendbtn.setLayoutParams(layoutParams);
+                Glide.with(view).load("http://183.3.221.143:80/group1/M00/00/26/twPdj2T_yyOAQrj9AAB2pLRKDUA329.png")
+                        .skipMemoryCache(true)//跳过内存缓存
+                        .diskCacheStrategy(DiskCacheStrategy.NONE)//不缓冲disk硬盘中
+                        .into(sendbtn);
+            } catch (Exception e) {
+                Log.e(TAG, "onResponse: Glide设置图片异常! ", e);
+                LoggingUtils.sendErrorLog("业务异常: Glide请求微信公众号图片异常! ", e);
+            }
+
             view.findViewById(R.id.fast_take_send).setVisibility(View.VISIBLE);
             view.findViewById(R.id.fast_take_send_background).setVisibility(View.VISIBLE);
             view.findViewById(R.id.take_btn).setVisibility(View.GONE);
-            view.findViewById(R.id.send_btn).setTranslationY(50);
+            view.findViewById(R.id.send_btn).setTranslationY(-12);
         }else {
-            // 取件二维码展示  取件码取件展示
+            // 取件二维码展示  取件码取件展示   不存在这个
             view.findViewById(R.id.fast_take_send).setVisibility(View.VISIBLE);
             view.findViewById(R.id.fast_take_send_background).setVisibility(View.VISIBLE);
             view.findViewById(R.id.take_btn).setVisibility(View.VISIBLE);

+ 10 - 2
app/src/main/java/com/emato/ich/fragment/PaymentFragment.java

@@ -81,7 +81,7 @@ public class PaymentFragment extends Fragment {
 
         try {
             MainActivity activity = (MainActivity) getActivity();
-            timer = TimeOutUtils.timeout(activity, PaymentFragment.this, binding.timeout, 90);
+            timer = TimeOutUtils.timeout(activity, PaymentFragment.this, binding.timeout, 180);
             timer.start();
             String payAmount = activity.getBundleMap().get(SendKeyBoardFragment.class.getName()).getString("payAmount");
             binding.paymentMoney.setText(payAmount);
@@ -136,6 +136,9 @@ public class PaymentFragment extends Fragment {
                                     try {
                                         ResponseData responseData = JacksonUtils.objectmapper.readValue(parseResponse, ResponseData.class);
                                         if (null != responseData && ICSPConstant.OK.equals(responseData.getCode())) {
+                                            if (null != timer) {
+                                                timer.cancel();
+                                            }
                                             NavUtils.navigate(PaymentFragment.this, R.id.action_paymentFragment_to_InputInfoKeyBoardFragment);
                                         } else {
                                             ToastUtils.make(getContext(), responseData.getMsg());
@@ -192,6 +195,9 @@ public class PaymentFragment extends Fragment {
                                     try {
                                         ResponseData responseData = JacksonUtils.objectmapper.readValue(parseResponse, ResponseData.class);
                                         if (null != responseData && ICSPConstant.OK.equals(responseData.getCode())) {
+                                            if (null != timer) {
+                                                timer.cancel();
+                                            }
                                             NavUtils.navigate(PaymentFragment.this, R.id.action_paymentFragment_to_InputInfoKeyBoardFragment);
                                         } else {
                                             ToastUtils.make(getContext(), responseData.getMsg());
@@ -229,7 +235,9 @@ public class PaymentFragment extends Fragment {
         // 数字输入 5 手机号   4 付款码
         binding.paymentNo.setOnFocusChangeListener((view1, hasFocus) -> {
             AtomicBoolean caseSmallFlag = new AtomicBoolean(true);
-            
+            if(!hasFocus){
+                return;
+            }
             binding.keyBoard.inputButton0.setOnClickListener(v -> {
                 if(!hasFocus){
                     return;

+ 1 - 0
app/src/main/java/com/emato/ich/fragment/SendInfoConfirmFragment.java

@@ -87,6 +87,7 @@ public class SendInfoConfirmFragment extends Fragment {
             Bundle mainBundle = activity.getBundleMap().get(MainFragment.class.getName());
             String pageType = mainBundle.getString("pageType");
             // 用户寄送跳转不需要进行登录
+
             if ("expressDelivery".equals(pageType)){
                 arguments = activity.getBundleMap().get(ExpressDeliveryFragment.class.getName());
                 isCourierLogin =false;

+ 4 - 1
app/src/main/java/com/emato/ich/fragment/SendKeyBoardFragment.java

@@ -418,6 +418,7 @@ public class SendKeyBoardFragment extends Fragment {
                                         if ("store".equals(finalLoginType) || "courier".equals(finalLoginType)){
                                             Bundle isPayBundle = new Bundle();
                                             isPayBundle.putString("isPay",data.getIsPay());
+                                            isPayBundle.putString("payAmount",data.getPayAmount().toString());
                                             activity.getBundleMap().put(SendKeyBoardFragment.class.getName(), isPayBundle);
                                             // "30"为供应链账号,定为管理员账号
                                             if("store".equals(finalLoginType) ){
@@ -483,7 +484,9 @@ public class SendKeyBoardFragment extends Fragment {
         // 密码
         binding.editTextTextPersonName5.setOnFocusChangeListener((view1, hasFocus) -> {
             AtomicBoolean caseSmallFlag = new AtomicBoolean(true);
-            
+            if(!hasFocus){
+                return;
+            }
             binding.keyBoard.inputButton0.setOnClickListener(v -> {
                 if(!hasFocus){
                     return;

+ 6 - 1
app/src/main/java/com/emato/ich/fragment/TakeCodeFragment.java

@@ -109,6 +109,9 @@ public class TakeCodeFragment extends Fragment {
 
         // 输入逻辑
         binding.editTextTextPersonName6.setOnFocusChangeListener((view1, hasFocus) -> {
+            if(!hasFocus){
+                return;
+            }
             if (hasFocus) {
                 binding.takeInputButton0.setOnClickListener(v -> {
                     int length = binding.editTextTextPersonName6.getText().length();
@@ -266,8 +269,10 @@ public class TakeCodeFragment extends Fragment {
                                         ToastUtils.make(getContext(), "取件成功!");
                                         Bundle bundle = new Bundle();
                                         bundle.putString("takeParcelCode", takeParcelCode);
+                                        // 跳转到取件成功页面时传入一个参数 用于区分继续取件按钮跳转的页面 takeCodePage 取件码页面  courierPage 揽件页面
+                                        bundle.putString("navigatePage", "takeCodePage");
                                         bundle.putString("takeCabinetNo", responseData.getData().getLockerName());
-                                        ((MainActivity) getActivity()).getBundleMap().put(TakeCodeFragment.class.getName(), bundle);
+                                        ((MainActivity) getActivity()).getBundleMap().put("continueTake", bundle);
                                         if (null != timer) {
                                             timer.cancel();
                                         }

+ 127 - 48
app/src/main/java/com/emato/ich/fragment/TakeSuccessFragment.java

@@ -90,7 +90,17 @@ public class TakeSuccessFragment extends Fragment {
             if (null != timer2) {
                 timer2.cancel();
             }
-            NavUtils.navigate(this, R.id.action_takeSuccessFragment_to_takeCodeFragment);
+            MainActivity activity = (MainActivity) getActivity();
+            // 取件码页面跳转
+            Bundle continueTakeBundle = activity.getBundleMap().get("continueTake");
+            // 快递员揽件页面跳转页面
+            String navigatePage = continueTakeBundle.getString("navigatePage");
+            if(!StringUtils.isNullOrEmpty(navigatePage) && navigatePage.equals("takeCodePage")){
+                NavUtils.navigate(this, R.id.action_takeSuccessFragment_to_takeCodeFragment);
+            }if(!StringUtils.isNullOrEmpty(navigatePage) && navigatePage.equals("courierPage")){
+                NavUtils.navigate(this, R.id.action_takeSuccessFragment_to_collectMaterialsFragment);
+            }
+
         });
 
         binding.returnMainBtn.setOnClickListener(view1 -> {
@@ -146,11 +156,20 @@ public class TakeSuccessFragment extends Fragment {
 
             // TODO 取件逻辑
             String takeParcelCode = null;
+            String materTakeParcelCode = null;
+            String navigatePage = null;
             MainActivity activity = null;
             try {
                 activity = (MainActivity) getActivity();
-                Bundle bundle = activity.getBundleMap().get(TakeCodeFragment.class.getName());
-                takeParcelCode = bundle.getString("takeParcelCode");
+                // 取件码页面跳转
+//                Bundle bundle = activity.getBundleMap().get(TakeCodeFragment.class.getName());
+                Bundle continueTakeBundle = activity.getBundleMap().get("continueTake");
+                // 快递员揽件页面跳转页面
+                navigatePage = continueTakeBundle.getString("navigatePage");
+                // 快递员揽件页面跳转页面
+//                Bundle materBundle = activity.getBundleMap().get(ExpressSendOrderPickUpDto.class.getName());
+                takeParcelCode = continueTakeBundle.getString("takeParcelCode");
+                materTakeParcelCode = continueTakeBundle.getString("mailNo");
                 if (StringUtils.isNullOrEmpty(takeParcelCode)){
                     takeParcelCode = activity.getBundleMap().get(ExpressSendOrderPickUpDto.class.getName()).getString("pickUp");
                 }
@@ -164,57 +183,117 @@ public class TakeSuccessFragment extends Fragment {
             takeParcelVo.setPickUp(takeParcelCode);
             takeParcelVo.setReopen("1");
             MainActivity finalActivity = activity;
-            ICSPClient.takeParcel(LocalStorage.getInstance().getSession().getToken(), takeParcelVo, new Callback() {
-                @Override
-                public void onFailure(@NotNull Call call, @NotNull IOException e) {
-                    // TODO 取件接口请求失败逻辑处理
-                    ToastUtils.make(getContext(), "取件失败!网络异常!");
-                    Log.e(TAG, "onFailure: 取件请求失败!", e);
-                    LoggingUtils.sendErrorLog("业务异常: 取件失败!网络异常! ", e);
-                }
 
-                @Override
-                public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
-                    // TODO 返回锁板和锁id, 开柜门
-                    getActivity().runOnUiThread(() -> {
-                        String parseResponse = ICSPClient.isSuccessfulAndParseResponse(response);
-                        if (!StringUtils.isNullOrEmpty(parseResponse)) {
-                            try {
-                                ObjectMapper objectMapper = JacksonUtils.objectmapper;
-                                ResponseData<PreparedOrderResponseVo> responseData = null;
+
+            if(!StringUtils.isNullOrEmpty(navigatePage) && navigatePage.equals("takeCodePage")){
+                // 判断是哪个页面过来的  如果是取件码取件页面 用原来的就可以  如果是揽件页面需要走揽件开门接口
+
+                ICSPClient.takeParcel(LocalStorage.getInstance().getSession().getToken(), takeParcelVo, new Callback() {
+                    @Override
+                    public void onFailure(@NotNull Call call, @NotNull IOException e) {
+                        // TODO 取件接口请求失败逻辑处理
+                        ToastUtils.make(getContext(), "取件失败!网络异常!");
+                        Log.e(TAG, "onFailure: 取件请求失败!", e);
+                        LoggingUtils.sendErrorLog("业务异常: 取件失败!网络异常! ", e);
+                    }
+
+                    @Override
+                    public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
+                        // TODO 返回锁板和锁id, 开柜门
+                        getActivity().runOnUiThread(() -> {
+                            String parseResponse = ICSPClient.isSuccessfulAndParseResponse(response);
+                            if (!StringUtils.isNullOrEmpty(parseResponse)) {
                                 try {
-                                    responseData = objectMapper.readValue(parseResponse, new TypeReference<ResponseData<PreparedOrderResponseVo>>() {
-                                    });
-                                    ToastUtils.make(getContext(), responseData.getMsg());
-                                } catch (JsonProcessingException e) {
-                                    Log.e(TAG, "onResponse: 解析取件开门响应信息失败! ", e);
-                                    LoggingUtils.sendErrorLog("业务异常: 解析取件开门响应信息失败! ", e);
+                                    ObjectMapper objectMapper = JacksonUtils.objectmapper;
+                                    ResponseData<PreparedOrderResponseVo> responseData = null;
+                                    try {
+                                        responseData = objectMapper.readValue(parseResponse, new TypeReference<ResponseData<PreparedOrderResponseVo>>() {
+                                        });
+                                        ToastUtils.make(getContext(), responseData.getMsg());
+                                    } catch (JsonProcessingException e) {
+                                        Log.e(TAG, "onResponse: 解析取件开门响应信息失败! ", e);
+                                        LoggingUtils.sendErrorLog("业务异常: 解析取件开门响应信息失败! ", e);
+                                    } catch (RuntimeException e) {
+                                        Log.e(TAG, "onResponse: 未知错误! ", e);
+                                        ToastUtils.make(getContext(), "未知错误!");
+                                        LoggingUtils.sendErrorLog("业务异常: 解析取件开门响应信息失败! 未知错误! ", e);
+                                    }
+                                    if (null != responseData && responseData.getCode().equals(ICSPConstant.OK)) {
+                                        // 开门
+                                        Log.i(TAG, "onResponse: 取件成功! ");
+                                        ToastUtils.make(getContext(), "取件成功!");
+                                        PreparedOrderResponseVo data = responseData.getData();
+                                        binding.openCabinetHintNo.setText(data.getLockerName());
+                                        finalActivity.getBundleMap().remove(TakeCodeFragment.class.getName());
+                                    } else {
+                                        ToastUtils.make(getContext(), responseData.getMsg());
+                                    }
                                 } catch (RuntimeException e) {
-                                    Log.e(TAG, "onResponse: 未知错误! ", e);
-                                    ToastUtils.make(getContext(), "未知错误!");
-                                    LoggingUtils.sendErrorLog("业务异常: 解析取件开门响应信息失败! 未知错误! ", e);
+                                    Log.e(TAG, "onResponse: 取件失败! ", e);
+                                    ToastUtils.make(getContext(), "取件失败!");
+                                    LoggingUtils.sendErrorLog("业务异常: 取件失败! 未知错误! ", e);
                                 }
-                                if (null != responseData && responseData.getCode().equals(ICSPConstant.OK)) {
-                                    // 开门
-                                    Log.i(TAG, "onResponse: 取件成功! ");
-                                    ToastUtils.make(getContext(), "取件成功!");
-                                    PreparedOrderResponseVo data = responseData.getData();
-                                    binding.openCabinetHintNo.setText(data.getLockerName());
-                                    finalActivity.getBundleMap().remove(TakeCodeFragment.class.getName());
-                                } else {
-                                    ToastUtils.make(getContext(), responseData.getMsg());
+                            } else {
+                                ToastUtils.make(getContext(), "服务器异常! 请稍后重试!");
+                            }
+                        });
+                    }
+                });
+            }else if(!StringUtils.isNullOrEmpty(navigatePage) && navigatePage.equals("courierPage")){
+                // todo:调用揽件接口,使用运单号开门
+                ExpressSendOrderPickUpDto expressSendOrderPickUpDto = new ExpressSendOrderPickUpDto();
+                expressSendOrderPickUpDto.setExprSn(materTakeParcelCode);
+                expressSendOrderPickUpDto.setCabSn(BaseUtils.getClientId());
+
+                ICSPClient.takeParcelByExpressNo(LocalStorage.getInstance().getSession().getToken(), expressSendOrderPickUpDto, new Callback() {
+                    @Override
+                    public void onFailure(@NotNull Call call, @NotNull IOException e) {
+                        // TODO 取件接口请求失败逻辑处理
+                        ToastUtils.make(getContext(), "取件失败!网络异常!");
+                        Log.e(TAG, "onFailure: 取件请求失败!", e);
+                        LoggingUtils.sendErrorLog("业务异常: 取件请求失败! 网络异常! ", e);
+                    }
+
+                    @Override
+                    public void onResponse(@NotNull Call call, @NotNull Response response) throws IOException {
+                        // TODO 返回锁板和锁id, 开柜门
+                        getActivity().runOnUiThread(() -> {
+                            String parseResponse = ICSPClient.isSuccessfulAndParseResponse(response);
+                            if (!StringUtils.isNullOrEmpty(parseResponse)) {
+                                try {
+                                    ObjectMapper objectMapper = JacksonUtils.objectmapper;
+                                    ResponseData<PreparedOrderResponseVo> responseData = null;
+                                    try {
+                                        responseData = objectMapper.readValue(parseResponse, new TypeReference<ResponseData<PreparedOrderResponseVo>>() {
+                                        });
+                                        ToastUtils.make(getContext(), responseData.getMsg());
+                                    } catch (JsonProcessingException e) {
+                                        Log.e(TAG, "onResponse: 解析取件开门响应信息失败! ", e);
+                                        LoggingUtils.sendErrorLog("业务异常: 解析取件开门响应信息失败! ", e);
+                                    } catch (RuntimeException e) {
+                                        Log.e(TAG, "onResponse: 未知错误! ", e);
+                                        ToastUtils.make(getContext(), "未知错误!");
+                                        LoggingUtils.sendErrorLog("业务异常: 解析取件开门响应信息失败! 未知错误!  ", e);
+                                    }
+                                    if (null != responseData && responseData.getCode().equals(ICSPConstant.OK)) {
+                                        // 开门
+                                        Log.i(TAG, "onResponse: 取件成功! ");
+                                        ToastUtils.make(getContext(), "取件成功!");
+                                    }
+                                } catch (RuntimeException e) {
+                                    Log.e(TAG, "onResponse: 取件失败! ", e);
+                                    ToastUtils.make(getContext(), "取件失败!");
+                                    LoggingUtils.sendErrorLog("业务异常: 取件失败! ", e);
                                 }
-                            } catch (RuntimeException e) {
-                                Log.e(TAG, "onResponse: 取件失败! ", e);
-                                ToastUtils.make(getContext(), "取件失败!");
-                                LoggingUtils.sendErrorLog("业务异常: 取件失败! 未知错误! ", e);
+                            } else {
+                                ToastUtils.make(getContext(), "服务器异常! 请稍后重试!");
                             }
-                        } else {
-                            ToastUtils.make(getContext(), "服务器异常! 请稍后重试!");
-                        }
-                    });
-                }
-            });
+                        });
+                    }
+                });
+            } else {
+                ToastUtils.make(getContext(), "重新开门失败!如确实需要重开,请联系客服操作!");
+            }
         });
     }
 

BIN
app/src/main/res/drawable/emato_logo.png


BIN
app/src/main/res/drawable/send_order_qrcode_5239ff88e4c7f7f1.png


+ 63 - 41
app/src/main/res/layout/content_main.xml

@@ -23,49 +23,71 @@
         app:layout_constraintVertical_bias="0.0"
         app:navGraph="@navigation/nav_graph" />
 
-
-    <ImageView
-        android:id="@+id/imageLogoView"
-        android:layout_width="56dp"
-        android:layout_height="21dp"
-        android:scaleType="fitXY"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0.045"
-        app:layout_constraintStart_toStartOf="parent"
-        app:srcCompat="@drawable/emato_logo"
+    <AbsoluteLayout
+        android:layout_width="328dp"
+        android:layout_height="27dp"
+        android:layout_x="0dp"
+        android:layout_y="96dp"
+        android:background="@color/white"
+        android:bottomLeftRadius="40dp"
+        android:bottomRightRadius="40dp"
+        android:topLeftRadius="40dp"
+        android:topRightRadius="40dp"
         tools:ignore="MissingConstraints"
-        tools:layout_editor_absoluteY="37dp" />
+        tools:layout_editor_absoluteX="0dp"
+        tools:layout_editor_absoluteY="16dp">
 
-    <TextView
-        android:id="@+id/title_text"
-        android:layout_width="130dp"
-        android:layout_height="21dp"
-        android:layout_gravity="center"
-        android:gravity="center_vertical|left"
-        android:scaleType="fitXY"
-        android:textSize="11dp"
-        android:text="快递柜"
-        android:textStyle="bold"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="0.359"
-        app:layout_constraintStart_toStartOf="parent"
-        tools:ignore="MissingConstraints"
-        tools:layout_editor_absoluteY="37dp" />
+        <ImageView
+            android:id="@+id/imageLogoView"
+            android:layout_width="65dp"
+            android:layout_height="21dp"
+            android:layout_x="9dp"
+            android:layout_y="3dp"
+            android:scaleType="fitXY"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.045"
+            app:layout_constraintStart_toStartOf="parent"
+            app:srcCompat="@drawable/emato_logo"
+            tools:ignore="MissingConstraints"
+            tools:layout_editor_absoluteY="37dp" />
+
+        <TextView
+            android:id="@+id/title_text"
+            android:layout_width="130dp"
+            android:layout_height="21dp"
+            android:layout_gravity="center"
+            android:layout_x="80dp"
+            android:layout_y="4dp"
+            android:gravity="center_vertical|left"
+            android:scaleType="fitXY"
+            android:text="快递柜"
+            android:textSize="11dp"
+            android:textStyle="bold"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="0.359"
+            app:layout_constraintStart_toStartOf="parent"
+            tools:ignore="MissingConstraints"
+            tools:layout_editor_absoluteY="37dp" />
+
+        <TextView
+            android:id="@+id/tv_date"
+            android:layout_width="120dp"
+            android:layout_height="21dp"
+            android:layout_gravity="center"
+            android:layout_x="215dp"
+            android:layout_y="4dp"
+            android:gravity="center_vertical|left"
+            android:scaleType="fitXY"
+            android:text=""
+            android:textSize="11dp"
+            android:textStyle="bold"
+            app:layout_constraintEnd_toEndOf="parent"
+            app:layout_constraintHorizontal_bias="1.0"
+            app:layout_constraintStart_toStartOf="parent"
+            tools:ignore="MissingConstraints"
+            tools:layout_editor_absoluteY="37dp" />
+
+    </AbsoluteLayout>
 
-    <TextView
-        android:id="@+id/tv_date"
-        android:layout_width="120dp"
-        android:layout_height="21dp"
-        android:layout_gravity="center"
-        android:gravity="center_vertical|left"
-        android:scaleType="fitXY"
-        android:text=""
-        android:textSize="11dp"
-        android:textStyle="bold"
-        app:layout_constraintEnd_toEndOf="parent"
-        app:layout_constraintHorizontal_bias="1.0"
-        app:layout_constraintStart_toStartOf="parent"
-        tools:ignore="MissingConstraints"
-        tools:layout_editor_absoluteY="37dp" />
 
 </androidx.constraintlayout.widget.ConstraintLayout>

+ 22 - 11
app/src/main/res/layout/fragment_choose_cabinet.xml

@@ -15,7 +15,7 @@
     </AbsoluteLayout>
     <AbsoluteLayout
         android:layout_width="328dp"
-        android:layout_height="430dp"
+        android:layout_height="420dp"
         android:layout_x="8dp"
         android:layout_y="86dp"
         android:topLeftRadius="40dp"
@@ -34,8 +34,19 @@
         android:layout_y="35dp"
         android:gravity="center"
         android:textSize="22dp"
+        android:textColor="@color/cabinet_select"
+        android:textStyle="bold" />
+    <TextView
+        android:id="@+id/timeouts"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_x="290dp"
+        android:layout_y="35dp"
+        android:gravity="center"
+        android:textSize="22dp"
+        android:text="S"
+        android:textColor="@color/cabinet_select"
         android:textStyle="bold" />
-
     <TextView
         android:id="@+id/take_text_title"
         android:layout_width="120dp"
@@ -149,7 +160,7 @@
         android:layout_width="62.08dp"
         android:layout_height="108.48dp"
         android:layout_x="60.48dp"
-        android:layout_y="329.92dp"
+        android:layout_y="320.92dp"
         android:background="@drawable/cabinet_small" />
     <!--  中柜 - 剩余数  -->
     <TextView
@@ -157,7 +168,7 @@
         android:layout_width="40dp"
         android:layout_height="10.56dp"
         android:layout_x="71.36dp"
-        android:layout_y="493.76dp"
+        android:layout_y="484.76dp"
         android:gravity="center"
         android:textColor="@color/black"
         android:textSize="8dp" />
@@ -167,7 +178,7 @@
         android:layout_width="34.24dp"
         android:layout_height="10.88dp"
         android:layout_x="75.08dp"
-        android:layout_y="441.28dp"
+        android:layout_y="432.28dp"
         android:gravity="center"
         android:text="@string/medium_cabinet"
         android:textSize="10dp"
@@ -178,7 +189,7 @@
         android:layout_width="88.64dp"
         android:layout_height="30dp"
         android:layout_x="46.4dp"
-        android:layout_y="462.4dp"
+        android:layout_y="453.4dp"
         android:background="@drawable/cabinet_select"
         android:enabled="false"
         android:text="@string/choose_btn"
@@ -189,7 +200,7 @@
         android:layout_width="315dp"
         android:layout_height="65dp"
         android:layout_x="9.92dp"
-        android:layout_y="525.44dp"
+        android:layout_y="510dp"
         android:background="@drawable/how_to_send" />
 <!--  大柜  -->
     <!--  大柜 - 图片  -->
@@ -198,7 +209,7 @@
         android:layout_width="62.08dp"
         android:layout_height="108.48dp"
         android:layout_x="222.72dp"
-        android:layout_y="329.92dp"
+        android:layout_y="320.92dp"
         android:background="@drawable/cabinet_large" />
 
     <!--  大柜 - 剩余数  -->
@@ -207,7 +218,7 @@
         android:layout_width="40dp"
         android:layout_height="10.56dp"
         android:layout_x="235.2dp"
-        android:layout_y="493.76dp"
+        android:layout_y="484.76dp"
         android:gravity="center"
         android:textColor="@color/black"
         android:textSize="8dp" />
@@ -218,7 +229,7 @@
         android:layout_width="34.24dp"
         android:layout_height="10.88dp"
         android:layout_x="237dp"
-        android:layout_y="441.28dp"
+        android:layout_y="432.28dp"
         android:gravity="center"
         android:text="@string/big_cabinet"
         android:textSize="10dp"
@@ -230,7 +241,7 @@
         android:layout_width="88.64dp"
         android:layout_height="30dp"
         android:layout_x="208.32dp"
-        android:layout_y="462.4dp"
+        android:layout_y="453.4dp"
         android:background="@drawable/cabinet_select"
         android:enabled="false"
         android:text="@string/choose_btn"

+ 12 - 1
app/src/main/res/layout/fragment_collect_materials.xml

@@ -30,6 +30,7 @@
     </AbsoluteLayout>
     <TextView
         android:id="@+id/timeout"
+        android:textColor="@color/cabinet_select"
         android:layout_width="50dp"
         android:layout_height="50dp"
         android:layout_x="271dp"
@@ -37,7 +38,17 @@
         android:gravity="center"
         android:textSize="22dp"
         android:textStyle="bold" />
-
+    <TextView
+        android:id="@+id/timeouts"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_x="290dp"
+        android:layout_y="35dp"
+        android:gravity="center"
+        android:textSize="22dp"
+        android:text="S"
+        android:textColor="@color/cabinet_select"
+        android:textStyle="bold" />
     <TextView
         android:id="@+id/take_text_title"
         android:layout_width="120dp"

+ 12 - 1
app/src/main/res/layout/fragment_courier.xml

@@ -26,6 +26,7 @@
     </AbsoluteLayout>
     <TextView
         android:id="@+id/timeout"
+        android:textColor="@color/cabinet_select"
         android:layout_width="50dp"
         android:layout_height="50dp"
         android:layout_x="271dp"
@@ -33,7 +34,17 @@
         android:gravity="center"
         android:textSize="22dp"
         android:textStyle="bold" />
-
+    <TextView
+        android:id="@+id/timeouts"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_x="290dp"
+        android:layout_y="35dp"
+        android:gravity="center"
+        android:textSize="22dp"
+        android:text="S"
+        android:textColor="@color/cabinet_select"
+        android:textStyle="bold" />
     <TextView
         android:id="@+id/take_text_title"
         android:layout_width="120dp"

+ 16 - 5
app/src/main/res/layout/fragment_exception.xml

@@ -104,14 +104,25 @@
 
     <TextView
         android:id="@+id/timeout"
-        android:layout_width="80dp"
-        android:layout_height="40dp"
-        android:layout_x="241dp"
-        android:layout_y="40dp"
+        android:textColor="@color/cabinet_select"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_x="271dp"
+        android:layout_y="35dp"
         android:gravity="center"
         android:textSize="22dp"
         android:textStyle="bold" />
-
+    <TextView
+        android:id="@+id/timeouts"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_x="290dp"
+        android:layout_y="35dp"
+        android:gravity="center"
+        android:textSize="22dp"
+        android:text="S"
+        android:textColor="@color/cabinet_select"
+        android:textStyle="bold" />
     <TextView
         android:id="@+id/exception_handle_title"
         android:layout_width="81dp"

+ 13 - 2
app/src/main/res/layout/fragment_express_delivery.xml

@@ -26,6 +26,7 @@
     </AbsoluteLayout>
     <TextView
         android:id="@+id/timeout"
+        android:textColor="@color/cabinet_select"
         android:layout_width="50dp"
         android:layout_height="50dp"
         android:layout_x="271dp"
@@ -33,7 +34,17 @@
         android:gravity="center"
         android:textSize="22dp"
         android:textStyle="bold" />
-
+    <TextView
+        android:id="@+id/timeouts"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_x="290dp"
+        android:layout_y="35dp"
+        android:gravity="center"
+        android:textSize="22dp"
+        android:text="S"
+        android:textColor="@color/cabinet_select"
+        android:textStyle="bold" />
     <TextView
         android:id="@+id/take_text_title"
         android:layout_width="120dp"
@@ -104,7 +115,7 @@
         android:layout_height="100dp"
         android:layout_x="30dp"
         android:layout_y="207dp"
-        android:background="@drawable/send_order_qrcode" />
+        android:background="@drawable/send_order_qrcode_5239ff88e4c7f7f1" />
 
     <include
         android:id="@+id/key_board"

+ 1 - 0
app/src/main/res/layout/fragment_input_info.xml

@@ -186,6 +186,7 @@
 
     <TextView
         android:id="@+id/timeout"
+        android:textColor="@color/cabinet_select"
         android:layout_width="50dp"
         android:layout_height="50dp"
         android:layout_x="285dp"

+ 20 - 8
app/src/main/res/layout/fragment_input_key_board.xml

@@ -30,6 +30,7 @@
     </AbsoluteLayout>
     <TextView
         android:id="@+id/timeout"
+        android:textColor="@color/cabinet_select"
         android:layout_width="50dp"
         android:layout_height="50dp"
         android:layout_x="271dp"
@@ -37,7 +38,17 @@
         android:gravity="center"
         android:textSize="22dp"
         android:textStyle="bold" />
-
+    <TextView
+        android:id="@+id/timeouts"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_x="290dp"
+        android:layout_y="35dp"
+        android:gravity="center"
+        android:textSize="22dp"
+        android:text="S"
+        android:textColor="@color/cabinet_select"
+        android:textStyle="bold" />
     <TextView
         android:id="@+id/take_text_title"
         android:layout_width="120dp"
@@ -62,7 +73,7 @@
         android:id="@+id/delivery_code"
         android:layout_width="145dp"
         android:layout_height="25dp"
-        android:layout_x="115dp"
+        android:layout_x="100dp"
         android:layout_y="150dp"
         android:text="@string/delivery_packages_prompt"
         android:textColor="@color/black"
@@ -73,8 +84,8 @@
         android:layout_width="145dp"
         android:layout_height="30dp"
         style="@style/my_edittext_style"
-        android:layout_x="115dp"
-        android:layout_y="170dp"
+        android:layout_x="100dp"
+        android:layout_y="190dp"
         android:ems="10"
         android:hint="@string/input_express_number"
         android:inputType="none"
@@ -84,9 +95,10 @@
     <EditText
         android:id="@+id/deliverer_phone_confirm"
         android:layout_width="145dp"
-        android:layout_height="50dp"
-        android:layout_x="115dp"
-        android:layout_y="220dp"
+        android:layout_height="30dp"
+        style="@style/my_edittext_style"
+        android:layout_x="100dp"
+        android:layout_y="230dp"
         android:ems="10"
         android:hint="@string/input_recipients_phone"
         android:inputType="phone"
@@ -98,7 +110,7 @@
         android:id="@+id/confirm"
         android:layout_width="145dp"
         android:layout_height="40dp"
-        android:layout_x="115dp"
+        android:layout_x="100dp"
         android:layout_y="280dp"
         android:enabled="true"
         android:text="@string/determine_btn"

+ 5 - 3
app/src/main/res/layout/fragment_main.xml

@@ -71,6 +71,7 @@
         app:srcCompat="@drawable/deheguizizhutu" />-->
     <TextView
         android:id="@+id/timeout"
+        android:textColor="@color/cabinet_select"
         android:layout_width="0dp"
         android:layout_height="0dp"
         android:layout_x="271dp"
@@ -78,6 +79,7 @@
         android:gravity="center"
         android:textSize="22dp"
         android:textStyle="bold" />
+
     <com.hacknife.carouselbanner.CarouselBanner
         android:id="@+id/banner"
         android:layout_width="344dp"
@@ -119,7 +121,7 @@
             android:layout_y="86dp"
             android:background="@drawable/e_mp_qrcode_8x8_backup" />
 
-        <TextView
+        <ImageView
             android:id="@+id/take_btn"
             android:layout_width="148.8dp"
             android:layout_height="98.7dp"
@@ -131,7 +133,7 @@
             android:textSize="15sp"
             android:textStyle="bold" />
 
-        <TextView
+        <ImageView
             android:id="@+id/send_btn"
             android:layout_width="148.8dp"
             android:layout_height="98.7dp"
@@ -143,7 +145,7 @@
             android:textSize="15sp"
             android:textStyle="bold" />
 
-        <TextView
+        <ImageView
             android:id="@+id/deliverer_btn"
             android:layout_width="150dp"
             android:layout_height="36dp"

+ 2 - 2
app/src/main/res/layout/fragment_my_key_board.xml

@@ -85,9 +85,9 @@
     <TextView
         android:id="@+id/input_button7"
         android:layout_width="29dp"
-        android:layout_height="32dp"
+        android:layout_height="29dp"
         android:layout_x="205dp"
-        android:layout_y="377dp"
+        android:layout_y="380dp"
         android:background="@drawable/num_button"
         android:gravity="center"
         android:text="@string/number_7"

+ 14 - 3
app/src/main/res/layout/fragment_payment.xml

@@ -30,14 +30,25 @@
     </AbsoluteLayout>
     <TextView
         android:id="@+id/timeout"
+        android:textColor="@color/cabinet_select"
+        android:layout_width="80dp"
+        android:layout_height="50dp"
+        android:layout_x="249dp"
+        android:layout_y="35dp"
+        android:gravity="center"
+        android:textSize="22sp"
+        android:textStyle="bold" />
+    <TextView
+        android:id="@+id/timeouts"
         android:layout_width="50dp"
         android:layout_height="50dp"
-        android:layout_x="271dp"
+        android:layout_x="290dp"
         android:layout_y="35dp"
         android:gravity="center"
         android:textSize="22dp"
+        android:text="S"
+        android:textColor="@color/cabinet_select"
         android:textStyle="bold" />
-
     <TextView
         android:id="@+id/take_text_title"
         android:layout_width="120dp"
@@ -95,7 +106,7 @@
         android:layout_height="30dp"
         style="@style/my_edittext_style"
         android:layout_x="56dp"
-        android:layout_y="164dp"
+        android:layout_y="174dp"
         android:ems="10"
         android:hint="@string/input_payment_number"
         android:inputType="none"

+ 1 - 0
app/src/main/res/layout/fragment_send.xml

@@ -191,6 +191,7 @@
 
     <TextView
         android:id="@+id/timeout"
+        android:textColor="@color/cabinet_select"
         android:layout_width="50dp"
         android:layout_height="50dp"
         android:layout_x="285dp"

+ 16 - 5
app/src/main/res/layout/fragment_send_info_confirm.xml

@@ -37,14 +37,25 @@
 
     <TextView
         android:id="@+id/timeout"
+        android:textColor="@color/cabinet_select"
         android:layout_width="80dp"
-        android:layout_height="40dp"
-        android:layout_x="241dp"
-        android:layout_y="40dp"
+        android:layout_height="50dp"
+        android:layout_x="249dp"
+        android:layout_y="35dp"
         android:gravity="center"
         android:textSize="22sp"
         android:textStyle="bold" />
-
+    <TextView
+        android:id="@+id/timeouts"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_x="290dp"
+        android:layout_y="35dp"
+        android:gravity="center"
+        android:textSize="22dp"
+        android:text="S"
+        android:textColor="@color/cabinet_select"
+        android:textStyle="bold" />
     <TextView
         android:id="@+id/send_info_confirm_title"
         android:layout_width="81dp"
@@ -173,7 +184,7 @@
         android:layout_width="161dp"
         android:layout_height="37dp"
         android:layout_x="90dp"
-        android:layout_y="468dp"
+        android:layout_y="466dp"
         android:textAlignment="center"
         android:gravity="center"
         android:text="@string/return_main_btn"

+ 12 - 1
app/src/main/res/layout/fragment_send_key_board.xml

@@ -35,6 +35,7 @@
     <!-- 倒计时 -->
     <TextView
         android:id="@+id/timeout"
+        android:textColor="@color/cabinet_select"
         android:layout_width="50dp"
         android:layout_height="50dp"
         android:layout_x="271dp"
@@ -42,7 +43,17 @@
         android:gravity="center"
         android:textSize="22dp"
         android:textStyle="bold" />
-
+    <TextView
+        android:id="@+id/timeouts"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_x="290dp"
+        android:layout_y="35dp"
+        android:gravity="center"
+        android:textSize="22dp"
+        android:text="S"
+        android:textColor="@color/cabinet_select"
+        android:textStyle="bold" />
     <TextView
         android:id="@+id/take_text_title"
         android:layout_width="120dp"

+ 17 - 6
app/src/main/res/layout/fragment_send_main.xml

@@ -14,7 +14,7 @@
 
 
     <AbsoluteLayout
-        android:layout_width="335dp"
+        android:layout_width="328dp"
         android:layout_height="490dp"
         android:layout_x="8dp"
         android:layout_y="86dp"
@@ -28,6 +28,7 @@
     </AbsoluteLayout>
     <TextView
         android:id="@+id/timeout"
+        android:textColor="@color/cabinet_select"
         android:layout_width="50dp"
         android:layout_height="50dp"
         android:layout_x="271dp"
@@ -35,7 +36,17 @@
         android:gravity="center"
         android:textSize="22dp"
         android:textStyle="bold" />
-
+    <TextView
+        android:id="@+id/timeouts"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_x="290dp"
+        android:layout_y="35dp"
+        android:gravity="center"
+        android:textSize="22dp"
+        android:text="S"
+        android:textColor="@color/cabinet_select"
+        android:textStyle="bold" />
     <TextView
         android:id="@+id/take_text_title"
         android:layout_width="120dp"
@@ -60,7 +71,7 @@
         android:id="@+id/send_confirm_btn"
         android:layout_width="150dp"
         android:layout_height="40dp"
-        android:layout_x="110dp"
+        android:layout_x="100dp"
         android:layout_y="240dp"
         android:background="@drawable/fast_delivery" />
 
@@ -69,7 +80,7 @@
         android:id="@+id/exception_handle_btn"
         android:layout_width="150dp"
         android:layout_height="40dp"
-        android:layout_x="110dp"
+        android:layout_x="100dp"
         android:layout_y="300dp"
         android:background="@drawable/exception_handling" />
 
@@ -78,7 +89,7 @@
         android:id="@+id/query_upload_cab_info_btn"
         android:layout_width="150dp"
         android:layout_height="40dp"
-        android:layout_x="110dp"
+        android:layout_x="100dp"
         android:layout_y="350dp"
         android:background="@drawable/num_button"
         android:gravity="center"
@@ -91,7 +102,7 @@
         android:id="@+id/upload_cab_info_btn"
         android:layout_width="150dp"
         android:layout_height="40dp"
-        android:layout_x="110dp"
+        android:layout_x="100dp"
         android:layout_y="400dp"
         android:background="@drawable/num_button"
         android:gravity="center"

+ 12 - 1
app/src/main/res/layout/fragment_send_success.xml

@@ -28,6 +28,7 @@
     </AbsoluteLayout>
     <TextView
         android:id="@+id/timeout"
+        android:textColor="@color/cabinet_select"
         android:layout_width="50dp"
         android:layout_height="50dp"
         android:layout_x="271dp"
@@ -35,7 +36,17 @@
         android:gravity="center"
         android:textSize="22dp"
         android:textStyle="bold" />
-
+    <TextView
+        android:id="@+id/timeouts"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_x="290dp"
+        android:layout_y="35dp"
+        android:gravity="center"
+        android:textSize="22dp"
+        android:text="S"
+        android:textColor="@color/cabinet_select"
+        android:textStyle="bold" />
     <TextView
         android:id="@+id/take_text_title"
         android:layout_width="120dp"

+ 1 - 0
app/src/main/res/layout/fragment_take.xml

@@ -4,6 +4,7 @@
     android:layout_height="match_parent">
     <TextView
         android:id="@+id/timeout"
+        android:textColor="@color/cabinet_select"
         android:layout_width="50dp"
         android:layout_height="50dp"
         android:layout_x="285dp"

+ 12 - 1
app/src/main/res/layout/fragment_take_code.xml

@@ -33,6 +33,7 @@
 
     <TextView
         android:id="@+id/timeout"
+        android:textColor="@color/cabinet_select"
         android:layout_width="50dp"
         android:layout_height="50dp"
         android:layout_x="271dp"
@@ -40,7 +41,17 @@
         android:gravity="center"
         android:textSize="22dp"
         android:textStyle="bold" />
-
+    <TextView
+        android:id="@+id/timeouts"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_x="290dp"
+        android:layout_y="35dp"
+        android:gravity="center"
+        android:textSize="22dp"
+        android:text="S"
+        android:textColor="@color/cabinet_select"
+        android:textStyle="bold" />
     <TextView
         android:id="@+id/take_text_title"
         android:layout_width="120dp"

+ 13 - 2
app/src/main/res/layout/fragment_take_success.xml

@@ -51,6 +51,7 @@
 
     <TextView
         android:id="@+id/timeout"
+        android:textColor="@color/cabinet_select"
         android:layout_width="50dp"
         android:layout_height="50dp"
         android:layout_x="271dp"
@@ -58,7 +59,17 @@
         android:gravity="center"
         android:textSize="22dp"
         android:textStyle="bold" />
-
+    <TextView
+        android:id="@+id/timeouts"
+        android:layout_width="50dp"
+        android:layout_height="50dp"
+        android:layout_x="290dp"
+        android:layout_y="35dp"
+        android:gravity="center"
+        android:textSize="22dp"
+        android:text="S"
+        android:textColor="@color/cabinet_select"
+        android:textStyle="bold" />
     <TextView
         android:id="@+id/open_cabinet_hint3"
         android:layout_width="184dp"
@@ -75,7 +86,7 @@
         android:layout_width="195dp"
         android:layout_height="40dp"
         android:layout_x="85dp"
-        android:layout_y="465dp"
+        android:layout_y="463dp"
         android:background="@drawable/return_main1" />
 
     <ImageView