瀏覽代碼

脉诊结果 & 蓝牙连接优化

cc12458 1 月之前
父節點
當前提交
6ce835d563

+ 1 - 0
TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/pulse/TaiyiConfig.java

@@ -11,6 +11,7 @@ public class TaiyiConfig {
   private final String appId;
   private final String appSecret;
   public boolean skipReport = false;
+  public int delayDisconnect = 0;
   public HashMap<String, String> proxy = new HashMap<>();
 
   public static TaiyiConfig getDefault(Context context) {

+ 20 - 1
TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/pulse/TaiyiManager.java

@@ -6,11 +6,11 @@ import android.app.Application;
 import android.content.Context;
 import android.content.Intent;
 import android.os.Build;
-import android.text.TextUtils;
 
 import androidx.annotation.Nullable;
 
 import com.taiyi.tyusbsdk.ResultListener;
+import com.taiyi.tyusbsdk.pulse.net.HttpUtil;
 import com.taiyi.tyusbsdk.pulse.ui.SuccessActivity;
 import com.taiyi.tyusbsdk.pulse.util.AppManager;
 
@@ -36,11 +36,20 @@ public class TaiyiManager {
     public static final int CAPTURE_REQUEST = 10101;
     public static final String CAPTURE_IMG_PATH = "img_path";
     private String pulseResult;
+    private String pulseReport;
     private ResultListener mResultListener;
     public void setResultListener(ResultListener listener) {
         mResultListener = listener;
     }
 
+    public String getPulseReport() {
+        return pulseReport;
+    }
+
+    public void setPulseReport(String pulseReport) {
+        this.pulseReport = pulseReport;
+    }
+
     public String getPulseResult() {
         return pulseResult;
     }
@@ -55,6 +64,16 @@ public class TaiyiManager {
         }
     }
 
+    public void onSkip() {
+        if (mSkipInterface != null) {
+            mSkipInterface.onSkip();
+        }
+    }
+
+    public String getUrl(String measureId) {
+        return "https://hybrid.reborn-tech.com/report.html#/?mid=" + measureId + "&access_session=" + HttpUtil.AuthorizationValue + "&appId=" + appId;
+    }
+
     private TaiyiManager() {
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O_MR1) {
             closeAndroid10Dialog();

+ 29 - 0
TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/pulse/net/HttpUtil.java

@@ -232,6 +232,34 @@ public class HttpUtil {
         mQueue.add(getTokenStringRequest(url, httpImpl));
     }
 
+    public void getGetCombined(String combinedId, TokenOverDueHttpImpl<String> httpImpl) {
+        String url =
+            getCombinedReportDesc + "?combinedId=" + combinedId + "&access_session=" + HttpUtil.AuthorizationValue + "&X_SDKClient_API_Key=" +
+                SDKClientHeaderValue;
+        LogUtil.w("HttpUtil", "result url:" + url);
+
+
+        ProgressDialogUtil.show(mContext);
+        mQueue.add(new TokenStringRequest(Request.Method.GET, url,
+            response -> {
+                ProgressDialogUtil.close();
+                BaseBean bean = ResponseParser.parse(response);
+                if (bean.success()) {
+                    httpImpl.showResponse(bean.data);
+                } else if (bean.overdue()) {
+                    httpImpl.overdue();
+                } else {
+                    httpImpl.showError(bean.message);
+                }
+            },
+            error -> {
+                ProgressDialogUtil.close();
+                httpImpl.showError(error.getMessage());
+            }
+        ));
+    }
+
+    @Deprecated
     public void getCombinedDesc(String combinedId, TokenOverDueHttpImpl<String> httpImpl) {
         String url =
                 getCombinedReportDesc + "?combinedId=" + combinedId + "&access_session=" + HttpUtil.AuthorizationValue + "&X_SDKClient_API_Key=" +
@@ -240,6 +268,7 @@ public class HttpUtil {
         mQueue.add(getPulseDescRequest(url, httpImpl));
     }
 
+    @Deprecated
     public void getPulseTotalDesc(String combinedId, TokenOverDueHttpImpl<String> httpImpl) {
         String url =
                 getCombinedReportDesc + "?combinedId=" + combinedId + "&access_session=" + HttpUtil.AuthorizationValue + "&X_SDKClient_API_Key=" +

+ 16 - 58
TYUsbSDK/src/main/java/com/taiyi/tyusbsdk/pulse/ui/SuccessActivity.java

@@ -28,7 +28,6 @@ import com.taiyi.tyusbsdk.pulse.util.DialogTipUtil;
 import com.taiyi.tyusbsdk.pulse.util.LogUtil;
 import com.taiyi.tyusbsdk.pulse.util.OnClickNoDoubleListener;
 import com.taiyi.tyusbsdk.pulse.util.ProgressDialogUtil;
-import com.taiyi.tyusbsdk.pulse.util.ToastUtil;
 
 public class SuccessActivity extends BaseActivity {
 
@@ -38,7 +37,7 @@ public class SuccessActivity extends BaseActivity {
     //    TextView mTvCommit;
     WebView mWeb;
     private String measureId = "";
-    private String url = "https://hybrid.reborn-tech.com/";
+    private String url = "";
     private String singleUrl = "https://hybrid.reborn-tech.com/report.html#/single";
     //    private String url = "https://hybrid.dev.taiyi-tech.com/";
 
@@ -60,6 +59,11 @@ public class SuccessActivity extends BaseActivity {
         setupWebView();
 
         measureId = getIntent().getStringExtra("measureId");
+        String pulseUrl = getIntent().getStringExtra("pulseUrl");
+
+        if (TextUtils.isEmpty(pulseUrl)) url = TaiyiManager.getInstance().getUrl(measureId);
+        else url = pulseUrl;
+
         //        getToken();
 
         mIvBack1.setOnClickListener(new OnClickNoDoubleListener() {
@@ -68,17 +72,6 @@ public class SuccessActivity extends BaseActivity {
                 getCombinedReportDesc(measureId);
             }
         });
-
-        //        mTvCommit.setOnClickListener(new OnClickNoDoubleListener() {
-        //            @Override
-        //            public void onNoDoubleClick(View view) {
-        //
-        //                getCombinedReportDesc(measureId);
-        //            }
-        //        });
-
-        url += "report.html#/?mid=" + measureId + "&access_session=" + HttpUtil.AuthorizationValue + "&appId=" +
-                TaiyiManager.getInstance().getAppId();
         mWeb.loadUrl(url);
     }
 
@@ -142,7 +135,14 @@ public class SuccessActivity extends BaseActivity {
     }
 
     public void getCombinedReportDesc(String combiledId) {
-        HttpUtil.getInstance().getPulseTotalDesc(combiledId, new TokenOverDueHttpImpl<String>() {
+        String pr = TaiyiManager.getInstance().getPulseResult();
+        String data = TaiyiManager.getInstance().getPulseReport();
+        if (!TextUtils.isEmpty(pr) && !TextUtils.isEmpty(data)) {
+            TaiyiManager.getInstance().onResult(pr, measureId, data);
+            AppManager.getAppManager().finishAllActivity();
+            return;
+        }
+        HttpUtil.getInstance().getGetCombined(combiledId, new TokenOverDueHttpImpl<String>() {
             @Override
             public void overdue() {
 
@@ -156,9 +156,7 @@ public class SuccessActivity extends BaseActivity {
                             @Override
                             public void leftClick() {
                                 TaiyiManager.getInstance().clearMeasure();
-                                if (TaiyiManager.getInstance().getSkipInterface() != null) {
-                                    TaiyiManager.getInstance().getSkipInterface().onSkip();
-                                }
+                                TaiyiManager.getInstance().onSkip();
                                 finish();
                             }
 
@@ -171,48 +169,8 @@ public class SuccessActivity extends BaseActivity {
 
             @Override
             public void showResponse(String response) {
-                //                try {
-                //                    JSONObject jsonObject = new JSONObject(response);
-                //                    jsonObject.put("overallLeft", singleUrl + "?mid=" + measureId + "&access_session=" + HttpUtil
-                //                    .AuthorizationValue + "&appId=" + TaiyiManager.getInstance().getAppId() + "&overallLeft=true");
-                //                    jsonObject.put("leftHand", singleUrl + "?mid=" + measureId + "&access_session=" + HttpUtil.AuthorizationValue
-                //                    + "&appId=" + TaiyiManager.getInstance().getAppId() + "&leftHand=true");
-                //                    jsonObject.put("leftAtlas", singleUrl + "?mid=" + measureId + "&access_session=" + HttpUtil
-                //                    .AuthorizationValue + "&appId=" + TaiyiManager.getInstance().getAppId() + "&leftAtlas=true");
-                //                    jsonObject.put("overallRight", singleUrl + "?mid=" + measureId + "&access_session=" + HttpUtil
-                //                    .AuthorizationValue + "&appId=" + TaiyiManager.getInstance().getAppId() + "&overallRight=true");
-                //                    jsonObject.put("rightHand", singleUrl + "?mid=" + measureId + "&access_session=" + HttpUtil
-                //                    .AuthorizationValue + "&appId=" + TaiyiManager.getInstance().getAppId() + "&rightHand=true");
-                //                    jsonObject.put("rightAtlas", singleUrl + "?mid=" + measureId + "&access_session=" + HttpUtil
-                //                    .AuthorizationValue + "&appId=" + TaiyiManager.getInstance().getAppId() + "&rightAtlas=true");
-                //                    jsonObject.put("channel", singleUrl + "?mid=" + measureId + "&access_session=" + HttpUtil.AuthorizationValue
-                //                    + "&appId=" + TaiyiManager.getInstance().getAppId() + "&channel=true");
-                //                    jsonObject.put("qxjy", singleUrl + "?mid=" + measureId + "&access_session=" + HttpUtil.AuthorizationValue +
-                //                    "&appId=" + TaiyiManager.getInstance().getAppId() + "&qxjy=true");
-                //                    jsonObject.put("heresy", singleUrl + "?mid=" + measureId + "&access_session=" + HttpUtil.AuthorizationValue +
-                //                    "&appId=" + TaiyiManager.getInstance().getAppId() + "&heresy=true");
-                //                    String jsonString = jsonObject.toString();
-
-                TaiyiManager.getInstance().onResult(TaiyiManager.getInstance().getPulseResult(), measureId, "");
-                if (TextUtils.isEmpty(TaiyiManager.getInstance().getPulseResult())) {
-                    LogUtil.w("SuccessActivity", "pulse result null");
-                    ToastUtil.show(SuccessActivity.this, "pulse result null");
-                } else {
-                    LogUtil.w("SuccessActivity", TaiyiManager.getInstance().getPulseResult());
-                }
-
+                TaiyiManager.getInstance().onResult(TaiyiManager.getInstance().getPulseResult(), measureId, response);
                 AppManager.getAppManager().finishAllActivity();
-                //                } catch (Exception e) {
-                //                    Toast.makeText(SuccessActivity.this, e.getMessage(), Toast.LENGTH_LONG).show();
-                //                    LogUtil.w("exception", e.getMessage());
-                //                    DialogTipUtil.showIKnow(SuccessActivity.this, "跳转失败,失败原因:" + e.getMessage(), new DialogTipUtil
-                //                    .CommonCallback_I() {
-                //                        @Override
-                //                        public void onSuccess(String str) {
-                //                            finish();
-                //                        }
-                //                    });
-                //                }
             }
         });
     }

+ 1 - 1
ble/src/main/java/com/blelib/ble/BleController.java

@@ -40,7 +40,7 @@ import androidx.annotation.RequiresPermission;
  * Created by zbh on 2018/12/27.
  * Version: 1.0
  */
-public class BleController {
+public class BleController extends BleDelayController {
 
     private boolean isConnected = false;//蓝牙设备是否已连接
     private String fileName;

+ 26 - 0
ble/src/main/java/com/blelib/ble/BleDelayController.java

@@ -0,0 +1,26 @@
+package com.blelib.ble;
+
+import android.os.Handler;
+
+import com.taiyi.tyusbsdk.pulse.TaiyiManager;
+
+abstract class BleDelayController {
+  private final Handler delayHandler = new Handler();
+  private Runnable runnable;
+
+  public void delayDisconnect() {
+    cancelDelayDisconnect();
+
+    runnable = this::disconnect;
+
+    int delay = TaiyiManager.getConfig().delayDisconnect;
+    if (delay == 0) runnable.run();
+    else delayHandler.postDelayed(runnable, delay * 1000L);
+  }
+
+  public void cancelDelayDisconnect() {
+    if (runnable != null) delayHandler.removeCallbacks(runnable);
+  }
+
+  abstract void disconnect();
+}

+ 4 - 4
ble/src/main/java/com/taiyi/pulse/fastble/bluetooth/BleBluetooth.java

@@ -168,6 +168,10 @@ public class BleBluetooth {
 
         lastState = LastState.CONNECT_CONNECTING;
 
+        Message message = mainHandler.obtainMessage();
+        message.what = BleMsg.MSG_CONNECT_OVER_TIME;
+        mainHandler.sendMessageDelayed(message, BleManager.getInstance().getConnectOverTime());
+
         if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) {
             bluetoothGatt = bleDevice.getDevice().connectGatt(BleManager.getInstance().getContext(),
                     autoConnect, coreGattCallback, TRANSPORT_LE);
@@ -179,10 +183,6 @@ public class BleBluetooth {
             if (bleGattCallback != null) {
                 bleGattCallback.onStartConnect();
             }
-            Message message = mainHandler.obtainMessage();
-            message.what = BleMsg.MSG_CONNECT_OVER_TIME;
-            mainHandler.sendMessageDelayed(message, BleManager.getInstance().getConnectOverTime());
-
         } else {
             disconnectGatt();
             refreshDeviceCache();

+ 52 - 33
ble/src/main/java/com/taiyi/zhimai/ui/activity/MeasureMainActivity.java

@@ -123,6 +123,14 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
         setDeviceStatusListener();
         resetToMeasure();
         getToken();
+        if (BleController.getInstance().isConnected()) {
+            mClMain.setVisibility(View.GONE);
+            mClSecond.setVisibility(View.VISIBLE);
+            mIvBg.setVisibility(View.GONE);
+            mIvDevice.setImageResource(R.drawable.device_7);
+            currentDeviceType = 7;
+            BleController.getInstance().setConnectedDeviceType(7);
+        }
     }
 
 
@@ -146,15 +154,18 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
             doConnect();
         });
         mLlBack.setOnClickListener(v -> {
-            if (connect_mode == CONNECT_MODE_BLE) {
-                BleController.getInstance().disconnect();
-            }
-
             clearDeviceSAdapter();
+            TaiyiManager.getInstance().clearMeasure();
+            TaiyiManager.getInstance().onSkip();
+            finish();
         });
 
         ivBack.setColorFilter(Color.WHITE);
-        ivBack.setOnClickListener(v -> finish());
+        ivBack.setOnClickListener(v -> {
+            TaiyiManager.getInstance().clearMeasure();
+            TaiyiManager.getInstance().onSkip();
+            finish();
+        });
     }
 
 
@@ -168,9 +179,7 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
                             @Override
                             public void leftClick() {
                                 TaiyiManager.getInstance().clearMeasure();
-                                if (TaiyiManager.getInstance().getSkipInterface() != null) {
-                                    TaiyiManager.getInstance().getSkipInterface().onSkip();
-                                }
+                                TaiyiManager.getInstance().onSkip();
                                 finish();
                             }
 
@@ -195,10 +204,16 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
                         saveMai();
                         break;
                     default:
-                        BleController.getInstance().init(getApplication());
-                        doConnect();
+                        BleController controller = BleController.getInstance();
+                        controller.cancelDelayDisconnect();
+                        if (controller.isConnected()) {
+                            BleDevice device = controller.getBleDevice();
+                            connectDevice(device);
+                        } else {
+                            controller.init(getApplication());
+                            doConnect();
+                        }
                 }
-
             }
         });
 
@@ -549,7 +564,7 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
             }
         });
         mRecyclerView.setAdapter(adapter);
-        mDialog.show();
+        if (!isFinishing() && !isDestroyed()) mDialog.show();
     }
 
     private void clearDeviceSAdapter() {
@@ -709,9 +724,7 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
                             @Override
                             public void leftClick() {
                                 TaiyiManager.getInstance().clearMeasure();
-                                if (TaiyiManager.getInstance().getSkipInterface() != null) {
-                                    TaiyiManager.getInstance().getSkipInterface().onSkip();
-                                }
+                                TaiyiManager.getInstance().onSkip();
                                 finish();
                             }
 
@@ -766,9 +779,7 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
                             @Override
                             public void leftClick() {
                                 TaiyiManager.getInstance().clearMeasure();
-                                if (TaiyiManager.getInstance().getSkipInterface() != null) {
-                                    TaiyiManager.getInstance().getSkipInterface().onSkip();
-                                }
+                                TaiyiManager.getInstance().onSkip();
                                 finish();
                             }
 
@@ -821,9 +832,7 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
                             @Override
                             public void leftClick() {
                                 TaiyiManager.getInstance().clearMeasure();
-                                if (TaiyiManager.getInstance().getSkipInterface() != null) {
-                                    TaiyiManager.getInstance().getSkipInterface().onSkip();
-                                }
+                                TaiyiManager.getInstance().onSkip();
                                 finish();
                             }
 
@@ -845,7 +854,7 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
     }
 
     public void getCombinedReportDesc(String combiledId) {
-        HttpUtil.getInstance().getCombinedDesc(combiledId, new TokenOverDueHttpImpl<String>() {
+        HttpUtil.getInstance().getGetCombined(combiledId, new TokenOverDueHttpImpl<String>() {
             @Override
             public void overdue() {
 
@@ -859,9 +868,7 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
                             @Override
                             public void leftClick() {
                                 TaiyiManager.getInstance().clearMeasure();
-                                if (TaiyiManager.getInstance().getSkipInterface() != null) {
-                                    TaiyiManager.getInstance().getSkipInterface().onSkip();
-                                }
+                                TaiyiManager.getInstance().onSkip();
                                 finish();
                             }
 
@@ -874,13 +881,10 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
 
             @Override
             public void showResponse(String response) {
-                Intent intent = new Intent(MeasureMainActivity.this, SuccessActivity.class);
-                intent.putExtra("measureId", combiledId);
-                startActivity(intent);
+                TaiyiManager instance = TaiyiManager.getInstance();
+                instance.setPulseReport(response);
 
-                String pulseUrl = "https://hybrid.reborn-tech.com/";
-                pulseUrl += "report.html#/?mid=" + combiledId + "&access_session=" + HttpUtil.AuthorizationValue + "&appId=" +
-                        TaiyiManager.getInstance().getAppId();
+                String pulseUrl = instance.getUrl(combiledId);
                 String handStyle = "";
                 if (leftMaiId != null && rightMaiId != null) {
                     handStyle = "DOUBLE";
@@ -889,13 +893,28 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
                 } else if (rightMaiId != null) {
                     handStyle = "RIGHT";
                 }
-                String pr = PulseResult.create(combiledId, pulseUrl, handStyle, QTimeUtil.toDatetimeStr(), response).toString();
+                String pr = PulseResult.create(combiledId, pulseUrl, handStyle, QTimeUtil.toDatetimeStr(), "").toString();
                 TaiyiManager.getInstance().setPulseResult(pr);
                 resetToMeasure();
+
+                if (TaiyiManager.getConfig().skipReport) {
+                    instance.onResult(pr, combiledId, response);
+                    finish();
+                } else {
+                    Intent intent = new Intent(MeasureMainActivity.this, SuccessActivity.class);
+                    intent.putExtra("measureId", combiledId);
+                    intent.putExtra("pulseUrl", pulseUrl);
+                    startActivity(intent);
+                }
             }
         });
     }
 
+    @Override
+    public void onBackPressed() {
+        TaiyiManager.getInstance().onSkip();
+        super.onBackPressed();
+    }
 
     protected void onDestroy() {
         //        SubscriptionManager.getInstance().cancelall();
@@ -904,7 +923,7 @@ public class MeasureMainActivity extends BleStateActivity implements ResultListe
         }
         super.onDestroy();
         if (BleController.getInstance().isConnected()) {
-            BleController.getInstance().disconnect();
+            BleController.getInstance().delayDisconnect();
         }
 
         if (EventBus.getDefault().isRegistered(this)) {