yinds 4 dagen geleden
bovenliggende
commit
463be62bfa

+ 60 - 26
app/src/main/java/com/hw/nativeapp/ui/activity/IssueTicketsActivity.java

@@ -37,8 +37,8 @@ import butterknife.BindView;
 
 public class IssueTicketsActivity extends BaseActivity  {
 
-    public static final Integer COUNTDOWN_TIME = 12000;
-    private CountDownTimer timer;
+    public static final Integer COUNTDOWN_TIME = 30000;
+    private CountDownTimer timer = null;
     private TitleBar titleBar;
 
 //    @BindView(R.id.print_num)
@@ -54,9 +54,10 @@ public class IssueTicketsActivity extends BaseActivity  {
     @BindView(R.id.tx_issue_not)
     TextView tx_issue_not;
 
-    private ExtPrinterService ext;
+    private ExtPrinterService printService;
     private int printNum = 1;
 
+
     private JSONArray viewerList = new JSONArray();
     private JSONArray printInfo = new JSONArray();
     @Override
@@ -66,8 +67,7 @@ public class IssueTicketsActivity extends BaseActivity  {
 
             @Override
             public void onLeftClick(View v) {
-                Intent i = new Intent (IssueTicketsActivity.this  ,  MainActivity.class  ).setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
-                startActivity(i);
+                jumpToMain();
             }
 
             @Override
@@ -142,10 +142,15 @@ public class IssueTicketsActivity extends BaseActivity  {
             runOnUiThread(() -> {
                 // 更新用户界面
                 ToastUtils.showShortToast(this, "出票完成!");
-                tx_issue_status_text.setVisibility(View.VISIBLE);
-                tx_issue_txt.setVisibility(View.VISIBLE);
-                tx_issue_status_text.setText("出票完成~");
-                tx_issue_txt.setText("请取票!");
+                if (tx_issue_status_text != null){
+                    tx_issue_status_text.setVisibility(View.VISIBLE);
+                    tx_issue_status_text.setText("出票完成~");
+                }
+                if (tx_issue_txt != null){
+                    tx_issue_txt.setVisibility(View.VISIBLE);
+                    tx_issue_txt.setText("请取票!");
+                }
+                startCountDownTimer();
             });
             logReport("出票完成");
         }else {
@@ -153,8 +158,6 @@ public class IssueTicketsActivity extends BaseActivity  {
                 // 更新用户界面
                 ToastUtils.showShortToast(this, "出票失败!");
             });
-//            tx_issue_status_text.setText("出票失败~");
-//            tx_issue_txt.setText("即将退出!");
             logReport("出票失败");
             finish();
         }
@@ -214,7 +217,7 @@ public class IssueTicketsActivity extends BaseActivity  {
     }
 
     private void printListHandle(List<JSONObject> printList) throws RemoteException {
-        if (ext == null){
+        if (printService == null){
             finishView(true);
             return;
         }
@@ -227,7 +230,7 @@ public class IssueTicketsActivity extends BaseActivity  {
          * 3 打印机即将缺纸
          * 4 打印机过热
          * */
-        int printerStatus = ext.getPrinterStatus(); //
+        int printerStatus = printService.getPrinterStatus(); //
         runOnUiThread(() -> {
             // 更新用户界面
             ToastUtils.showShortToast(IssueTicketsActivity.this, "打印机状态:" + printerStatus);
@@ -252,7 +255,7 @@ public class IssueTicketsActivity extends BaseActivity  {
             return;
         }
         try {
-            ext.startTransBuffer(); //启⽤事务模式
+            printService.startTransBuffer(); //启⽤事务模式
             int index = 1;
             for (JSONObject it : printList){
                 logReport("开始打印:" + index);
@@ -260,7 +263,7 @@ public class IssueTicketsActivity extends BaseActivity  {
                 logReport("打印结束:" + index);
                 index++;
             }
-            ext.endTransBuffer(); //结束事务模式
+            printService.endTransBuffer(); //结束事务模式
         } catch (Exception ignored) {}
         finishView(true);
     }
@@ -282,10 +285,10 @@ public class IssueTicketsActivity extends BaseActivity  {
                         int alignMode =itemJson.get("alignMode") == null ? 1 : itemJson.getInteger("alignMode");
                         String printContent = itemJson.containsKey("printContent")?itemJson.getString("printContent"):"";
                         logReport("文本打印开始::hori:" + hori + " veri:" + veri + " alignMode:" + alignMode + " printContent:" + printContent);
-                        ext.setFontZoom(hori, veri);
+                        printService.setFontZoom(hori, veri);
                         // 对其方式
-                        ext.setAlignMode(alignMode);
-                        ext.printText(printContent);
+                        printService.setAlignMode(alignMode);
+                        printService.printText(printContent);
                         logReport("文本打印结束");
                     }
                     // 打印二维码
@@ -295,8 +298,8 @@ public class IssueTicketsActivity extends BaseActivity  {
                         String eqCode = itemJson.get("printContent") == null ? "" : itemJson.getString("printContent");
                         int qrcodeSize = itemJson.get("qrcodeSize") == null ? 0 : itemJson.getInteger("qrcodeSize");
                         logReport("二维码打印开始::alignMode:" + alignMode + " eqCode:" + eqCode + " qrcodeSize:" + qrcodeSize );
-                        ext.setAlignMode(alignMode);
-                        ext.printQrCode(eqCode, qrcodeSize, 0);
+                        printService.setAlignMode(alignMode);
+                        printService.printQrCode(eqCode, qrcodeSize, 0);
                         logReport("二维码打印结束");
                     }
                     // 打印条形码
@@ -309,8 +312,8 @@ public class IssueTicketsActivity extends BaseActivity  {
                         int height = itemJson.get("height") == null ? 0 :  itemJson.getInteger("height");
                         logReport("条形码打印开始::alignMode:" + alignMode + " barCode:" + barCode + " barCodeType:" + barCodeType +
                                 " width:" + width + " height:" + height);
-                        ext.setAlignMode(alignMode);
-                        ext.printBarCode(barCode, barCodeType, width, height, 1);
+                        printService.setAlignMode(alignMode);
+                        printService.printBarCode(barCode, barCodeType, width, height, 1);
                         logReport("条形码打印结束");
                     }
                     // 打印走纸
@@ -320,9 +323,9 @@ public class IssueTicketsActivity extends BaseActivity  {
                         int wrapLen = itemJson.get("wrapLen") == null ? 0 :  itemJson.getInteger("wrapLen");
                         logReport("打印走纸开始::wrapType:" + wrapType + " wrapLen:" + wrapLen );
                         if(wrapType == 1) {
-                            ext.lineWrap(wrapLen);
+                            printService.lineWrap(wrapLen);
                         } else if (wrapType == 2) {
-                            ext.pixelWrap(wrapLen);
+                            printService.pixelWrap(wrapLen);
                         }
                         logReport("打印走纸结束");
                     }
@@ -331,7 +334,7 @@ public class IssueTicketsActivity extends BaseActivity  {
                         int cutPx = itemJson.get("cutPx") == null ? 0 : itemJson.getInteger("cutPx");
                         int cutType = itemJson.get("cutType") == null ? 0 : itemJson.getInteger("cutType");
                         logReport("打印切纸开始::cutPx:" + cutPx + " cutType:" + cutType );
-                        ext.cutPaper(cutType, cutPx);
+                        printService.cutPaper(cutType, cutPx);
                         logReport("打印走纸结束");
                     }
                 }
@@ -364,7 +367,7 @@ public class IssueTicketsActivity extends BaseActivity  {
     ServiceConnection serviceConnection = new ServiceConnection() {
         @Override public void onServiceConnected(ComponentName name, IBinder
                 service) {
-            ext = ExtPrinterService.Stub.asInterface(service);
+            printService = ExtPrinterService.Stub.asInterface(service);
             initPageView();
         }
         @Override public void onServiceDisconnected(ComponentName name) {
@@ -378,6 +381,37 @@ public class IssueTicketsActivity extends BaseActivity  {
         }
     };
 
+    private void stopCountDownTimer(){
+        if (timer != null){
+            timer.cancel();
+            timer = null;
+        }
+    }
+    private void startCountDownTimer(){
+        if (timer == null){
+            timer = new CountDownTimer(COUNTDOWN_TIME, 1000) {
+                @SuppressLint("SetTextI18n")
+                @Override
+                public void onTick(long millisUntilFinished) {
+
+                }
+
+                @Override
+                public void onFinish() {
+                    jumpToMain();
+                }
+            };
+            timer.start();
+        }
+    }
+
+    private void jumpToMain(){
+        stopCountDownTimer();
+        Intent i = new Intent (IssueTicketsActivity.this  ,  MainActivity.class  )
+                .setFlags(Intent.FLAG_ACTIVITY_CLEAR_TASK | Intent.FLAG_ACTIVITY_NEW_TASK);
+        startActivity(i);
+
+    }
 
     @SuppressLint("CheckResult")
     private void logReport(String content){

+ 75 - 33
app/src/main/java/com/hw/nativeapp/ui/activity/TakeActivity.java

@@ -14,6 +14,7 @@ import android.os.Handler;
 import android.os.IBinder;
 import android.os.Parcel;
 import android.os.RemoteException;
+import android.provider.Settings;
 import android.text.TextUtils;
 import android.util.Log;
 import android.view.View;
@@ -24,9 +25,15 @@ import android.widget.Toast;
 import androidx.annotation.NonNull;
 import androidx.core.app.ActivityCompat;
 
+import com.alibaba.fastjson.JSONObject;
 import com.hjq.bar.OnTitleBarListener;
 import com.hjq.bar.TitleBar;
+import com.hw.nativeapp.MApplication;
+import com.hw.nativeapp.httpnet.ErrorConsumer;
+import com.hw.nativeapp.httpnet.ResponseConsumer;
 import com.hw.nativeapp.utils.RegexUtil;
+import com.hw.nativeapp.utils.RxUtil;
+import com.hw.nativeapp.utils.StringUtils;
 import com.sunmi.idcardservice.CardCallback;
 import com.sunmi.idcardservice.IDCardInfo;
 import com.sunmi.idcardservice.IDCardServiceAidl;
@@ -41,7 +48,7 @@ import butterknife.OnClick;
 public class TakeActivity extends BaseActivity  {
 
     public static final Integer COUNTDOWN_TIME = 120000;
-    private CountDownTimer timer;
+    private CountDownTimer timer = null;
     private TitleBar titleBar;
 
     boolean hasPermission;
@@ -73,7 +80,7 @@ public class TakeActivity extends BaseActivity  {
 
             }
         });
-        startCountDownTimer();
+//        startCountDownTimer();
     }
     @Override
     protected void onCreate(Bundle savedInstanceState) {
@@ -95,6 +102,7 @@ public class TakeActivity extends BaseActivity  {
             readCardAutoFu();
         }
         registerReceiver();
+        startCountDownTimer();
     }
     @Override
     protected void onStop() {
@@ -149,21 +157,9 @@ public class TakeActivity extends BaseActivity  {
     public void onClick(View v){
         switch (v.getId()){
             case R.id.purchase_btn:
-                if (TextUtils.isEmpty(et_modify_quantity.getText().toString())) {
-                    Toast.makeText(TakeActivity.this, "请输入取票码/手机号", Toast.LENGTH_SHORT).show();
-                    return;
-                }
-                Bundle bundle = new Bundle();
                 String code = et_modify_quantity.getText().toString();
-                if (RegexUtil.isMobile(code)){
-                    bundle.putString("mobile", code);
-                    ActivityUtils.launchActivity(this, TicketCollectionActivity.class, bundle);
-                }else if (code.startsWith("00") || code.startsWith("01")){
-                    bundle.putString("qrcodeNo", code);
-                    ActivityUtils.launchActivity(this, TicketCollectionActivity.class, bundle);
-                }else {
-                    Toast.makeText(TakeActivity.this, "输入格式错误", Toast.LENGTH_SHORT).show();
-                }
+                jumpToNext(code);
+
                 break;
             case R.id.num_01:
                 et_modify_quantity.setText(et_modify_quantity.getText().toString()+"1");
@@ -206,6 +202,26 @@ public class TakeActivity extends BaseActivity  {
                 break;
         }
     }
+
+    private void jumpToNext(String code){
+        if (StringUtils.isEmpty(code)){
+            Toast.makeText(TakeActivity.this, "请输入取票码/手机号", Toast.LENGTH_SHORT).show();
+            return;
+        }
+        Bundle bundle = new Bundle();
+        if (RegexUtil.isMobile(code)){
+            bundle.putString("mobile", code);
+            stopCountDownTimer();
+            ActivityUtils.launchActivity(this, TicketCollectionActivity.class, bundle);
+        }else if (code.startsWith("00") || code.startsWith("01")){
+            bundle.putString("qrcodeNo", code);
+            stopCountDownTimer();
+            ActivityUtils.launchActivity(this, TicketCollectionActivity.class, bundle);
+        }else {
+            Toast.makeText(TakeActivity.this, "输入格式错误", Toast.LENGTH_SHORT).show();
+        }
+    }
+
     private void jumpToLogin(){
         stopCountDownTimer();
         ActivityUtils.activityFinish(TakeActivity.this, true);
@@ -213,22 +229,51 @@ public class TakeActivity extends BaseActivity  {
     private void stopCountDownTimer(){
         if (timer != null){
             timer.cancel();
+            timer = null;
         }
     }
     private void startCountDownTimer(){
-        timer = new CountDownTimer(COUNTDOWN_TIME, 1000) {
-            @SuppressLint("SetTextI18n")
-            @Override
-            public void onTick(long millisUntilFinished) {
-                titleBar.setRightTitle(millisUntilFinished / 1000 + "s");
-            }
+        if (timer == null){
+            timer = new CountDownTimer(COUNTDOWN_TIME, 1000) {
+                @SuppressLint("SetTextI18n")
+                @Override
+                public void onTick(long millisUntilFinished) {
+                    titleBar.setRightTitle(millisUntilFinished / 1000 + "s");
+                }
 
-            @Override
-            public void onFinish() {
-                jumpToLogin();
-            }
-        };
-        timer.start();
+                @Override
+                public void onFinish() {
+                    logReport("取票界面结束");
+                    jumpToLogin();
+                }
+            };
+            timer.start();
+        }
+    }
+
+    @SuppressLint("CheckResult")
+    private void logReport(String content){
+        JSONObject options = new JSONObject();
+        String deviceId = "";
+        try {
+            deviceId = Settings.Secure.getString(getContentResolver(), Settings.Secure.ANDROID_ID);
+        }catch (Exception ignored){}
+        options.put("apkId", "1");
+        options.put("apkTag", deviceId);
+        options.put("content", content);
+        MApplication.getApiService().apkLog( options, System.currentTimeMillis() / 1000)
+                .compose(RxUtil.applyObservableAsync())
+                .subscribe(new ResponseConsumer<JSONObject>() {
+                    @Override
+                    public void onSuccess(JSONObject data) {
+
+                    }
+
+                    @Override
+                    public void onFailed(int code, String msg) {
+
+                    }
+                }, new ErrorConsumer());
     }
 
     // 扫码成功
@@ -238,11 +283,8 @@ public class TakeActivity extends BaseActivity  {
         public void onReceive(Context context, Intent intent)
         {
             String code = intent.getStringExtra("data");
-            if (code != null && !code.isEmpty())
-            {
-                Bundle bundle = new Bundle();
-                bundle.putString("qrcodeNo", code);
-                ActivityUtils.launchActivity(TakeActivity.this, TicketCollectionActivity.class, bundle);
+            if (code != null && !code.isEmpty()) {
+                jumpToNext(code);
             }
         }
     };

+ 20 - 14
app/src/main/java/com/hw/nativeapp/ui/activity/TicketCollectionActivity.java

@@ -70,7 +70,7 @@ public class TicketCollectionActivity extends BaseActivity  {
 
 
     public static final Integer COUNTDOWN_TIME = 120000;
-    private CountDownTimer timer;
+    private CountDownTimer timer = null;
     private TitleBar titleBar;
 
     private PageAsk pageAsk = new PageAsk();
@@ -339,22 +339,27 @@ public class TicketCollectionActivity extends BaseActivity  {
     private void stopCountDownTimer(){
         if (timer != null){
             timer.cancel();
+            timer = null;
         }
     }
     private void startCountDownTimer(){
-        timer = new CountDownTimer(COUNTDOWN_TIME, 1000) {
-            @SuppressLint("SetTextI18n")
-            @Override
-            public void onTick(long millisUntilFinished) {
-                titleBar.setRightTitle(millisUntilFinished / 1000 + "s");
-            }
+        if (timer == null){
+            timer = new CountDownTimer(COUNTDOWN_TIME, 1000) {
+                @SuppressLint("SetTextI18n")
+                @Override
+                public void onTick(long millisUntilFinished) {
+                    if (titleBar != null){
+                        titleBar.setRightTitle(millisUntilFinished / 1000 + "s");
+                    }
+                }
 
-            @Override
-            public void onFinish() {
-                jumpToLogin();
-            }
-        };
-        timer.start();
+                @Override
+                public void onFinish() {
+                    jumpToLogin();
+                }
+            };
+            timer.start();
+        }
     }
 
     // 打印
@@ -370,7 +375,7 @@ public class TicketCollectionActivity extends BaseActivity  {
                 viewerList.add(obj);
             }
         }
-        if(viewerList == null || viewerList.size() == 0){
+        if(viewerList.size() == 0){
 //            Toast.makeText(TicketCollectionActivity.this, "请选择要打印的票", Toast.LENGTH_SHORT).show();
             com.blankj.utilcode.util.ToastUtils Toast = new com.blankj.utilcode.util.ToastUtils();
             Toast.setGravity(Gravity.TOP, 0, 200);
@@ -379,6 +384,7 @@ public class TicketCollectionActivity extends BaseActivity  {
             Toast.show("请选择要打印的票");
             return;
         }
+        stopCountDownTimer();
         Bundle bundle = new Bundle();
         bundle.putString("viewerList", JSONArray.toJSONString(viewerList));
         ActivityUtils.launchActivity(this,IssueTicketsActivity.class, bundle);