소스 검색

ble设备连接测量提示优化

wzl 11 달 전
부모
커밋
1be0b31c26

+ 7 - 4
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/dialog/WifiSetDialogHelper.java

@@ -25,17 +25,18 @@ public class WifiSetDialogHelper {
         }
     }
     public static void showDialog(Activity activity ,int type) {
-        if (alertDialog != null && alertDialog.isShowing()) {
-            return;
+        if (alertDialog != null) {
+            alertDialog.dismiss();
         }
+
         // 倒计时时间(单位:毫秒)
         long countdownTime = 5000;
 
-        Handler handler = new Handler();
+        final Handler handler = new Handler();
         Runnable runnable = new Runnable() {
             @Override
             public void run() {
-                if (alertDialog != null && alertDialog.isShowing()) {
+                if (alertDialog != null) {
                     alertDialog.dismiss();
                 }
             }
@@ -90,6 +91,8 @@ public class WifiSetDialogHelper {
             handler.removeCallbacks(runnable);
         });
 
+        alertDialog.setOnDismissListener(dialog -> handler.removeCallbacks(runnable));
+
         handler.postDelayed(runnable, countdownTime);
     }
 }

+ 21 - 6
android_bed/src/main/java/com/wdkl/app/ncs/callingbed/fragment/MainFragment.kt

@@ -210,7 +210,8 @@ class  MainFragment: BaseFragment<BedMainFragmentPresenter, MainViewLayoutBindin
     private val mSearchResponse: SearchResponse = object : SearchResponse {
         override fun onSearchStarted() {
             BluetoothLog.w("MainActivity.onSearchStarted")
-            sing_pbar.visibility = View.VISIBLE
+            //sing_pbar.visibility = View.VISIBLE
+            updateConnectState("正在搜索...", true)
         }
 
         override fun onDeviceFounded(device: SearchResult) {
@@ -228,12 +229,13 @@ class  MainFragment: BaseFragment<BedMainFragmentPresenter, MainViewLayoutBindin
                         .build()
                 ClientManager.getClient().connect(device.getAddress(), options) { code, profile ->
                     BluetoothLog.v(TAG + String.format("profile:\n%s", profile))
+                    updateConnectState("", false)
                     if (code == Constants.REQUEST_SUCCESS) {
                         //连接成功
                         if(dv_type==1){
                             ClientManager.getClient().notify(bt_mac, xy_mService, xy_mCharacter1, xy_mNotifyRsp)
                             ClientManager.getClient().registerConnectStatusListener(bt_mac, mBleConnectStatusListener)
-                            sing_pbar.visibility = View.VISIBLE
+                            //sing_pbar.visibility = View.VISIBLE
                             WifiSetDialogHelper.showDialog(activity, 7)
                         }else if (dv_type==2){
                             ClientManager.getClient().notify(bt_mac, xy_mService, xy_mCharacter2, xya_mNotifyRsp)
@@ -266,7 +268,8 @@ class  MainFragment: BaseFragment<BedMainFragmentPresenter, MainViewLayoutBindin
 
         override fun onSearchStopped() {
             BluetoothLog.w("MainActivity.onSearchStopped")
-            sing_pbar.visibility = View.GONE
+            //sing_pbar.visibility = View.GONE
+            updateConnectState("", false)
             if (isbtopen){
                 isbtopen =false
             }else{
@@ -278,7 +281,8 @@ class  MainFragment: BaseFragment<BedMainFragmentPresenter, MainViewLayoutBindin
 
         override fun onSearchCanceled() {
             BluetoothLog.w("MainActivity.onSearchCanceled")
-            sing_pbar.visibility = View.GONE
+            //sing_pbar.visibility = View.GONE
+            updateConnectState("", false)
             if (isbtopen){
                 isbtopen =false
             }else{
@@ -330,6 +334,16 @@ class  MainFragment: BaseFragment<BedMainFragmentPresenter, MainViewLayoutBindin
      }
     }
 
+    fun updateConnectState(text: String, show: Boolean) {
+        if (show) {
+            tv_connect_state.text = text
+            ll_ble_connect.visibility = View.VISIBLE
+        } else {
+            tv_connect_state.text = ""
+            ll_ble_connect.visibility = View.GONE
+        }
+    }
+
     @Subscribe(threadMode = ThreadMode.MAIN)
     fun onMoonEvent(messageEvent: MessageEvent) {
         when (messageEvent.getType()) {
@@ -349,11 +363,12 @@ class  MainFragment: BaseFragment<BedMainFragmentPresenter, MainViewLayoutBindin
                 var substring2 = String.format("%s", ByteUtils.byteToString(value)).substring(6, 8)
                 var substring3 = String.format("%s", ByteUtils.byteToString(value)).substring(8, 10)
                 BluetoothLog.v(TAG + "收到血氧数据"+substring+substring3)
-                if (substring.equals("FF") && !substring3.equals("0")){
+                if (substring.equals("FF") && !substring2.equals("0")){
                     if (!xy_number.equals("")){
                         xy_number = BluetoothUtil.hexToDecimal(substring3).toString()
                     }
-                    sing_pbar.visibility = View.GONE
+                    //sing_pbar.visibility = View.GONE
+                    updateConnectState("", false)
                     isbtopen =false
                     WifiSetDialogHelper.showDialog(activity,5)
                     ClientManager.getClient().disconnect(bt_mac)

+ 24 - 4
android_bed/src/main/res/layout/main_view_layout.xml

@@ -301,12 +301,32 @@
                         android:textSize="@dimen/font_size_18" />
                 </LinearLayout>
             </LinearLayout>
-            <ProgressBar
-                android:id="@+id/sing_pbar"
+
+            <LinearLayout
+                android:id="@+id/ll_ble_connect"
                 android:layout_width="wrap_content"
                 android:layout_height="wrap_content"
-                android:visibility="gone"
-                android:layout_centerInParent="true"/>
+                android:layout_centerInParent="true"
+                android:gravity="center_vertical"
+                android:paddingTop="10dp"
+                android:paddingBottom="10dp"
+                android:paddingLeft="20dp"
+                android:paddingRight="20dp"
+                android:background="@drawable/shape_nurse_bg"
+                android:visibility="gone">
+                <ProgressBar
+                    android:id="@+id/sing_pbar"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content" />
+
+                <TextView
+                    android:id="@+id/tv_connect_state"
+                    android:layout_width="wrap_content"
+                    android:layout_height="wrap_content"
+                    android:layout_marginLeft="10dp"
+                    android:textSize="24sp"
+                    android:textStyle="bold"/>
+            </LinearLayout>
         </RelativeLayout>