修复按键问题
authorxue <2144439972@qq.com>
Thu, 18 Sep 2025 14:40:25 +0000 (22:40 +0800)
committerxue <2144439972@qq.com>
Thu, 18 Sep 2025 14:40:25 +0000 (22:40 +0800)
code/sdk/application/brandy/brandy_standard/input_app.c
code/sdk/application/wearable/ln/nativeapp/nativeui/thunderbird/src/ThunderBirdPresenter.cpp

index f380147..80da69a 100644 (file)
@@ -233,18 +233,20 @@ static void button_report_event(button_id_t id, event_button_t event)
             break;
         case BUTTON1_CLICKUP:
              button_report_event_to_gui(id, 0); // 0:release
+            break;
 // #ifdef BOARD_U8
         case BUTTON2_PRESS:
              button_report_event_to_gui(id, 1); // 1:press
             break;
         case BUTTON2_CLICKUP:
              button_report_event_to_gui(id, 0); // 0:release
-
+            break;
         case BUTTON3_PRESS:
              button_report_event_to_gui(id, 1); // 1:press
             break;
         case BUTTON3_CLICKUP:
              button_report_event_to_gui(id, 0); // 0:release
+            break;
 // #endif
         default:
             break;
index 25bbe9a..377c385 100644 (file)
@@ -25,6 +25,9 @@
 #include "service_id_define.h"
 #include "dock/input_device.h"
 #include "custom_runtime.h"
+#include "input_app.h"
+#include "wearable_log.h"
+
  #include "ln_api.h"
 namespace OHOS
 {
@@ -35,6 +38,15 @@ namespace OHOS
     // 当前Presenter属性实例化的内存指针
     static ThunderBirdPresenter *g_pThunderBirdPresenter = nullptr;
 
+    // // VENDOR_DOWN 长按5秒回调函数
+    // static void func_button_callback_vendor_down_long_press_5s(void)
+    // {
+    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_DOWN long press 5s callback triggered");
+    //     // 可以在这里添加具体的功能实现
+    //     // 例如:切换到特定界面或执行特定操作
+    //     // NativeAbility::GetInstance().SwitchSlice(VIEW_SOME_SPECIAL_VIEW);
+    // }
+
     ThunderBirdPresenter::ThunderBirdPresenter()
     {
         g_pThunderBirdPresenter = this;
@@ -55,7 +67,11 @@ namespace OHOS
     void ThunderBirdPresenter::OnStart()
     {
         Presenter<ThunderBirdMainView>::OnStart();
+        
+        // 注册 VENDOR_DOWN 长按5秒事件
+        // uapi_button_register_event_cb(func_button_callback_vendor_down_long_press_5s, BUTTON3_LONGPRESS_5S);
     }
+    
 
     void ThunderBirdPresenter::OnResume()
     {
@@ -105,7 +121,7 @@ namespace OHOS
             return true;
         }
         /*************************语音键*************************/
-        if(keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_FUNC) && keyState == 0 && uapi_get_screen_state() == 0)
+        if(keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_FUNC) && keyState == 1 && uapi_get_screen_state() == 0)
         {
             if(ThunderBirdModel::GetInstance()->CheckBindingStatus() == ThunderBirdModel::BindingStatus::NOT_BOUND)
             {
@@ -131,7 +147,7 @@ namespace OHOS
         }
         
         /*************************VENDOR_UP键*************************/
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_VENDOR_UP) && keyState == 0 && uapi_get_screen_state() == 0)
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_VENDOR_UP) && keyState == 1 && uapi_get_screen_state() == 0)
         {
             if(ThunderBirdModel::GetInstance()->CheckBindingStatus() == ThunderBirdModel::BindingStatus::NOT_BOUND)
             {
@@ -204,31 +220,31 @@ namespace OHOS
                     ||  ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATE_NOW) // 确认升级,先判断电量、网络、内存
                  {
                     if(ThunderBirdMainView::GetInstance()->Batteryvalue <= 50)//低电量
-                    {
-                        ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_LOW_BATTERY);
-                    }
+                {
+                    ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_LOW_BATTERY);
+                }
                     else if(uapi_dev_runtime_get_cat1_signal() == 99)//无网络
-                    {
-                        ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NETWORK_ERROR);
-                    }
+                {
+                    ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_NETWORK_ERROR);
+                }
                     else if(0)//获取内存状态
-                    {
-                        ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_MEMORY_ERROR);
-                    }
+                {
+                    ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_MEMORY_ERROR);
+                }
                     else
-                    {
+                {
                         ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_COUNTDOWN);
-                    }
+                }
 
-                 }
+                }
                  else if(currentSubView == ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_COUNTDOWN) // 更新倒计时进入更新中
-                 {
+                {
                      ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_OTAVIEW, ThunderBirdOtaView::THUNDERBIRD_OTAVIEW_UPDATING);
                      do_ln_http_server_send_data(LN_HTTP_SERVICE_CMD_OTA_DOWNLOAD, NULL, 0);//开始升级
-                 }
+                }
                  return true;
-             }
-               // 哄睡界面导航
+            }
+            // 哄睡界面导航
             else if(currentView == THUNDERBIRD_LULLABYVIEW)
             {
                 if(currentSubView == ThunderBirdLullabyView::THUNDERBIRD_LULLABYVIEW_1) 
@@ -254,62 +270,62 @@ namespace OHOS
                 }
                 return true;
             }
-              // 提醒界面导航
-              else if(currentView == THUNDERBIRD_REMINDERVIEW)
-              {
-                  if(currentSubView == ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_VOLUME) // 音量调节
-                  {
-                      ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_REMINDERVIEW, ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_TASK_REMINDER);
-                  }
-                  else if(currentSubView == ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_TASK_REMINDER) // 事项提醒
-                  {
-                      ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_REMINDERVIEW, ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_NETWORK_DISCONNECT);
-                  }
-                  else if(currentSubView == ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_NETWORK_DISCONNECT) // 网络断开
-                  {
-                      ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_REMINDERVIEW, ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_LOW_BATTERY);
-                  }
-                  else if(currentSubView == ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_LOW_BATTERY) // 电量不足
-                  {
-                      ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_REMINDERVIEW, ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_CHARGING);
-                  }
-                  else if(currentSubView == ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_CHARGING) // 充电中
-                  {
-                      ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_REMINDERVIEW, ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_CHARGE_COMPLETE);
-                  }
-                  else if(currentSubView == ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_CHARGE_COMPLETE) // 充电完成
-                  {
-                      // 返回主界面
-                      ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_ADJUSTVIEW, ThunderBirdAdjustView::THUNDERBIRD_ADJUSTVIEW_BIND_SUCCESS);
-                  }
+            // 提醒界面导航
+            else if(currentView == THUNDERBIRD_REMINDERVIEW)
+            {
+                if(currentSubView == ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_VOLUME) // 音量调节
+                {
+                    ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_REMINDERVIEW, ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_TASK_REMINDER);
+                }
+                else if(currentSubView == ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_TASK_REMINDER) // 事项提醒
+                {
+                    ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_REMINDERVIEW, ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_NETWORK_DISCONNECT);
+                }
+                else if(currentSubView == ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_NETWORK_DISCONNECT) // 网络断开
+                {
+                    ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_REMINDERVIEW, ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_LOW_BATTERY);
+                }
+                else if(currentSubView == ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_LOW_BATTERY) // 电量不足
+                {
+                    ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_REMINDERVIEW, ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_CHARGING);
+                }
+                else if(currentSubView == ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_CHARGING) // 充电中
+                {
+                    ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_REMINDERVIEW, ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_CHARGE_COMPLETE);
+                }
+                else if(currentSubView == ThunderBirdReminderView::THUNDERBIRD_REMINDERVIEW_CHARGE_COMPLETE) // 充电完成
+                {
+                    // 返回主界面
+                    ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_ADJUSTVIEW, ThunderBirdAdjustView::THUNDERBIRD_ADJUSTVIEW_BIND_SUCCESS);
+                }
                   return true;
-              }
-              // 调节界面导航
-              else if(currentView == THUNDERBIRD_ADJUSTVIEW)
-              {
-                  if(currentSubView == ThunderBirdAdjustView::THUNDERBIRD_ADJUSTVIEW_BIND_SUCCESS) // 绑定成功
-                  {
-                      ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_ADJUSTVIEW, ThunderBirdAdjustView::THUNDERBIRD_ADJUSTVIEW_WARNING);
-                  }
-                  else if(currentSubView == ThunderBirdAdjustView::THUNDERBIRD_ADJUSTVIEW_WARNING) // 异常警告
-                  {
-                      ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_ADJUSTVIEW, ThunderBirdAdjustView::THUNDERBIRD_ADJUSTVIEW_NETWORK_CONNECTING);
-                  }
-                  else if(currentSubView == ThunderBirdAdjustView::THUNDERBIRD_ADJUSTVIEW_NETWORK_CONNECTING) // 网络连接中
-                  {
-                      ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_SHUTDOWNVIEW, 0);
-                      //ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_SHUTDOWNTESTVIEW, -1);
-                  }
+            }
+            // 调节界面导航
+            else if(currentView == THUNDERBIRD_ADJUSTVIEW)
+            {
+                if(currentSubView == ThunderBirdAdjustView::THUNDERBIRD_ADJUSTVIEW_BIND_SUCCESS) // 绑定成功
+                {
+                    ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_ADJUSTVIEW, ThunderBirdAdjustView::THUNDERBIRD_ADJUSTVIEW_WARNING);
+                }
+                else if(currentSubView == ThunderBirdAdjustView::THUNDERBIRD_ADJUSTVIEW_WARNING) // 异常警告
+                {
+                    ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_ADJUSTVIEW, ThunderBirdAdjustView::THUNDERBIRD_ADJUSTVIEW_NETWORK_CONNECTING);
+                }
+                else if(currentSubView == ThunderBirdAdjustView::THUNDERBIRD_ADJUSTVIEW_NETWORK_CONNECTING) // 网络连接中
+                {
+                    ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_SHUTDOWNVIEW, 0);
+                    //ThunderBirdMainView::GetInstance()->ChangeView(currentView, THUNDERBIRD_SHUTDOWNTESTVIEW, -1);
+                }
                   return true;
               }
                 return true;
         }
         /*************************VENDOR_DOWN键*************************/
         // 长按 VENDOR_DOWN 5秒
-        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_VENDOR_DOWN) && keyState == InputDevice::STATE_LONG_PRESS && uapi_get_screen_state() == 0)
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_VENDOR_DOWN) && keyState == InputDevice::STATE_LONG_PRESS )
         {
             // 长按5秒操作 - 可以在这里添加具体的功能
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_DOWN long press 5s detected");
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "VENDOR_DOWN long press 5s detected - keyID=%d, keyState=%d", keyID, keyState);
             // 例如:切换到特定界面或执行特定操作
             // NativeAbility::GetInstance().SwitchSlice(VIEW_SOME_SPECIAL_VIEW);
             return true;