Merge #1247 into sdk602patch0911 from refs/changes/1247/head
author罗正 <1732036298@qq.com>
Thu, 24 Oct 2024 07:58:41 +0000 (07:58 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Thu, 24 Oct 2024 07:58:41 +0000 (07:58 +0000)
Code review from 罗正

* refs/changes/1247/head: (21 commits squashed)

  - 来电界面,禁止双击进入AI

  - 录音列表视图修改为右滑退出到录音主视图

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0911

  - 1.一个分区模式下修改音乐和录音文件夹
    2.录音添加空间判断管理
    3.录音添加”空间已满弹窗“:在总时长大于20分钟或总数大于等于99,录音总空间大于等于10M,弹出
    4.判断录音空间大小是否超出采用指令队列读职
    5.修改底层录音文件audio_capture_wrapper.cpp大小参数使之录取一个录音最长时间在20分钟左右

  - 修改音乐播放器函数名英文错误拼写

  - 如果手表在播放本地音乐,AI界面点击开始对话会暂停本地音乐播放,避免混音

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0911

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0911

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0911

  - 优化查找手表的播放音频逻辑

  - 修复录音播放完后等待一段时间再去点击录音播放,需要点击两次bug

  - 修复音乐播放器在切换到手机音乐无法调节音量bug

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0911

  - AI语音界面修改,提示将英文改为中文提醒

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0911

  - 实现AI答案恢复,列表同步滚动

  - 将power键;亮屏改为release触发

  - #477,系统更新界面提示,改成灰色透明弹窗提示,这个不显眼(需求)

  - 修改applist退出和进入统一动画,只有蜂窝才有

  - Merge branch &#39;sdk602patch0911&#39; of https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230 into sdk602patch0911

  - #1066,解决,手表端连续创建三个闹钟,再接着删除第二个闹钟,同步IOS APP成功,APP闹钟界面第三个闹钟显示为00:00(必现) bug
    #1065,解决APP创建5个闹钟后再删除一个,同步手表成功,手表端无法再新增闹钟(必现)

Signed-off-by: 罗正 <1732036298@qq.com>
Reviewed-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Merged-by: snickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
link: https://codeup.aliyun.com/64191456b9581d62e8f81ac0/FD230/change/1247
code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmClockModel.h
code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmClockModelC.h
code/sdk/application/wearable/fd230app/nativeui/alarm/include/MainAlarmView.h
code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmClockModel.cpp
code/sdk/application/wearable/fd230app/nativeui/alarm/src/AlarmPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/alarm/src/MainAlarmView.cpp
code/sdk/application/wearable/fd230app/nativeui/calculator/src/CalculatorView.cpp
code/sdk/application/wearable/service/ble_service/blemoder/bletest.cpp

index d72bf65..59177ef 100644 (file)
@@ -127,9 +127,9 @@ public:
     void CancelAlarmRing();\r
     void DelayAlarmRing();\r
     void SetAlarmId(uint8_t id);\r
+    void DeleteAlarmId(uint8_t id);\r
 \r
 private:\r
-    void DeleteAlarmId(uint8_t id);\r
     // void NewFirstTime(void);\r
     uint8_t GetAlarmId(void);\r
     // int32_t SaveGlobalAlarmToFile(void);\r
index 9478284..44853c1 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-09-25 16:48:17
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-25 16:52:11
+ * @LastEditTime: 2024-10-24 14:14:08
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/alarm/include/AlarmClockModelC.h
  */
 
@@ -16,6 +16,9 @@ extern "C"
 #endif
 #endif
 #include <stdint.h>
+
+    void delete_alarm_id(uint8_t id);
+
     void set_alarm_id(uint8_t id);
 
     int testPlayerStart_(char *);
index 3cb3457..3bd0e33 100644 (file)
@@ -94,6 +94,7 @@ private:
     UILabelExt * TitleLabelExt_{nullptr}; 
     UILabelButtonExt * AddButton_{nullptr};
     UICheckBox::OnChangeListener *statusListener{nullptr};
+    bool viewInitstatus_{false};
 
     #define ALARM_DELETE_IMAGE "/user/res/Alarm/alarm_delete.bin"
 };
index 09f26ef..491f476 100644 (file)
@@ -336,6 +336,9 @@ bool AlarmClockModel::JudgeClockModel(uint16_t num)
 //获取一个可用的闹钟 ID
 uint8_t AlarmClockModel::GetAlarmId(void)
 {
+    for (int num = 0; num < CLOCK_MAX; num++) {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::GetAlarmId alarmId[%d] = %d", num, alarmId[num]);
+    }
     for (int num = 0; num < CLOCK_MAX; num++) {
         if (alarmId[num] == 0) { //如果某个元素的值为 0,表示这个 ID 尚未被使用
             return num;
@@ -371,6 +374,10 @@ void set_alarm_id(uint8_t id)
     AlarmClockModel::GetInstance()->SetAlarmId(id);
 }
 
+void delete_alarm_id(uint8_t id)
+{
+    AlarmClockModel::GetInstance()->DeleteAlarmId(id);
+}
 // void AlarmClockModel::NewFirstTime(void)
 // {
 //     uint32_t timeTem = FIRST_CLOCK_HOUR;
@@ -405,7 +412,7 @@ void set_alarm_id(uint8_t id)
 //     SetAlarmId(currentAlarm[0]->alarmClockId);
 //     return;
 // }
-#if 0
+#if 1
 void AlarmClockModel::DeleteClockModel(uint16_t num)
 {
     // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel num=%d", num);
@@ -424,33 +431,9 @@ void AlarmClockModel::DeleteClockModel(uint16_t num)
         currentAlarm[num]->alarmClockId);
     DeleteAlarmId(clockId);
     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel alarmSerial = %u!", alarmSerial);
-    // for (; num < alarmSerial; num++) {
-    //     AlarmClockInfo *tempAlarm = currentAlarm[num];
-    //     tempAlarm->index = currentAlarm[num]->index;
-    //     currentAlarm[num] = currentAlarm[num + 1];
-    //     currentAlarm[num]->index = num;
-    //     WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::UpdataAlarmClock index = %u!",
-    //         currentAlarm[num]->index);
-    //     if (currentAlarm[num + 1] == nullptr || currentAlarm[num + 1]->alarmType == TYPE_INVALID_ALARM_CLOCK) {
-    //         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel fail");
-    //         currentAlarm[num] = tempAlarm;
-    //         return;
-    //     }
-    //     int ret = UpdataAlarmClock(currentAlarm[num]);
-    //     if (ret != 0) {
-    //         currentAlarm[num] = tempAlarm;
-    //         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel [%d]", __LINE__);
-    //         return;
-    //     }
-    // }
-    // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel [%d]", __LINE__);
-    // currentAlarm[alarmSerial] = nullptr;
 
-    for (; num < alarmSerial - 1; num++)
-    {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel. current_index = %u!", currentAlarm[num]->index);
-        if (currentAlarm[num + 1] == nullptr || currentAlarm[num + 1]->alarmType == TYPE_INVALID_ALARM_CLOCK)
-        {
+    for (; num < alarmSerial - 1; num ++) {
+        if (currentAlarm[num + 1] == nullptr || currentAlarm[num + 1]->alarmType == TYPE_INVALID_ALARM_CLOCK) {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::DeleteClockModel fail");
             break;
         }
@@ -468,7 +451,7 @@ void AlarmClockModel::DeleteClockModel(uint16_t num)
     }
     currentAlarm[alarmSerial - 1] = nullptr;
 }
-#endif
+#else
 
 //删除闹钟信息
 void AlarmClockModel::DeleteClockModel(uint16_t id)
@@ -537,7 +520,7 @@ void AlarmClockModel::DeleteClockModel(uint16_t id)
         }
     }
 }
-
+#endif
 //切换特定闹钟的启用状态
 bool AlarmClockModel::ButtonStatusRing(int16_t num, bool alarmStatus)
 {
@@ -679,7 +662,7 @@ void AlarmClockModel::SetAlarmInfo(uint32_t time_hour, uint32_t time_min, uint8_
     if (currentAlarm[alarmListener] == nullptr || (currentAlarm[alarmListener]->alarmType == TYPE_INVALID_ALARM_CLOCK &&
         currentAlarm[alarmListener] != nullptr)) {
         currentAlarm[alarmListener] = new AlarmClockInfo();
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClcokModel::SetAlarmTime new alarm!");
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClcokModel::SetAlarmTime new alarm!");
     }
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "hour = %u, minute = %u", time_hour, time_min);
     currentAlarm[alarmListener]->alarmTime = ((time_hour << 16) | time_min); // 闹钟时间数据:小时存储在高 16 位,分钟存储在低 16 位
@@ -696,10 +679,10 @@ void AlarmClockModel::SetAlarmInfo(uint32_t time_hour, uint32_t time_min, uint8_
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmInfo copy alarmname error!");
         return;
     }
-    WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewAlarmTime clock name = %s, id = %u",
+    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::NewAlarmTime clock name = %s, id = %u",
         currentAlarm[alarmListener]->alarmClockName, currentAlarm[alarmListener]->alarmClockId);
     if (setListener == NEW_TIME_LISTENER) { //表示新建闹钟
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmWeek new time!");
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmWeek new time!");
         int ret = AddAlarmClock(currentAlarm[alarmListener]);
         if (ret != 0) {
             if (currentAlarm[alarmListener] != nullptr) {
@@ -710,7 +693,7 @@ void AlarmClockModel::SetAlarmInfo(uint32_t time_hour, uint32_t time_min, uint8_
         }
         SetAlarmId(currentAlarm[alarmListener]->alarmClockId);
     } else { //表示修改闹钟
-        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmWeek modify time!");
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlarmClockModel::SetAlarmWeek modify time!");
         UpdataAlarmClock(currentAlarm[alarmListener]);
     }
 }
index 0b36bf5..bc3397d 100644 (file)
@@ -190,7 +190,10 @@ void AlarmPresenter::ClickJudgeTrue(uint16_t num)
     clockQty--;\r
     AlarmClockModel::GetInstance()->SetSerialRdc();\r
     MainAlarmView::GetInstance()->RefreshAlarm();\r
-    MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_JUDGE, MAIN_INTERFACE);\r
+    // MainAlarmView::GetInstance()->ChangeView(CHANGE_INTERFACE_JUDGE, MAIN_INTERFACE);\r
+    NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_ALARM);\r
+\r
+\r
 \r
     // MainAlarmView::GetInstance()->RefreshAlarm();\r
     // clockQty--;\r
index c65dc36..8f3401b 100644 (file)
@@ -230,23 +230,6 @@ void MainAlarmView::AlarmAddButtonCreate(void)
 //更新闹钟添加按钮的位置
 void MainAlarmView::AlarmAddButtonUpdate(uint8_t count)
 {
-    // if(nullptr == AddButton_|| group == nullptr)
-    // {
-    //     return; 
-    // }
-    // int y = 120;
-    // int bef_y = 0;
-    // int aft_y = 0;
-    // bef_y = AddButton_->GetY();
-    // AddButton_->SetY((0 == count) ? (y) : (y * (count + 1)));
-    // aft_y = AddButton_->GetY();
-    // bool is_up_drag = bef_y- aft_y > 0 ? false:true;
-    
-    // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]: AddButton_before = %d", __LINE__, bef_y);
-    // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]: AddButton_after  = %d", __LINE__, aft_y);
-    // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]: is_up_drag       = %d", __LINE__, is_up_drag);
-    // // group->ScrollBy(0, is_up_drag ? - 120 : 120);
-    // group->Invalidate();
     if(nullptr == AddButton_ || TitleLabelExt_ == nullptr)
         return; 
     int bef_y = 0;
@@ -268,7 +251,8 @@ void MainAlarmView::AlarmAddButtonUpdate(uint8_t count)
     aft_y = AddButton_->GetY();
     bool is_up_drag = bef_y- aft_y > 0 ? false:true;
     if(group) {
-        group->ScrollBy(0, is_up_drag ? - 120 : 120);
+        if(viewInitstatus_)
+            group->ScrollBy(0, is_up_drag ? - 120 : 120);
     }
     RootView::GetInstance()->Invalidate();
 }
@@ -487,13 +471,8 @@ void MainAlarmView::OnStart()
             return;
         }
     }
-    // group->SetPosition(CONTAINER_X, CONTAINER_Y, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
     group->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
     group->SetScrollBlankSize(75);
-    // group->SetMaxScrollDistance(1000); // 1000: max scroll distance
-    // group->SetSwipeACCLevel(800);      // 800: compensation distance
-    // group->SetDragACCLevel(5);         // 5: drag acceleration
-    // group->SetThrowDrag(true);
     group->SetTouchable(true);
     group->SetDraggable(true);
     group->SetDirection(UIScrollView::VERTICAL);
@@ -515,15 +494,13 @@ void MainAlarmView::OnSetUpView()
     AlarmTitleCreate();
     AlarmAddButtonCreate();
 
-    // OHOS::AlarmClockModel::GetInstance()->InitAlarmData();
     RefreshAlarm();
     if (group != nullptr) {
         container[0] = group;
         RootView::GetInstance()->Add(container[0]);
         container_ = group;
     }
-   
-    // show timerView
+    viewInitstatus_ = true;
     Draw();
 }
 
index 345e557..7f58806 100644 (file)
@@ -621,6 +621,16 @@ void CalculatorView::OnStart()
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CalculatorView::OnStart");
     View<CalculatorPresenter>::OnStart();
 
+     SetContainerView(new UIViewGroup());
+    if (GetContainer() == nullptr)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "container_ new fail!!");
+        return;
+    }
+    container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+    container_->SetTouchable(true);
+    container_->SetDraggable(true);
+
     RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::CalculatorPresenter::GetInstance();
     RootView::GetInstance()->SetOnKeyActListener(keyactListener);
 
@@ -640,9 +650,7 @@ void CalculatorView::OnStart()
         return;
     }
     group->SetOnDragListener(dragListener);
-    
-    RootView::GetInstance()->Add(group);
-    container_ = group;
+    container_ ->Add(group);
 
     if(!button_init())
     {
@@ -680,7 +688,12 @@ void CalculatorView::OnStop()
 {
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CalculatorView::~OnStop");
     View<CalculatorPresenter>::OnStop();
-
+    if(container_!=nullptr)
+    {
+        container_->RemoveAll();
+        delete container_;
+        container_=nullptr;
+    }
     RootView::GetInstance()->ClearOnKeyActListener();
     RootView::GetInstance()->RemoveAll();
     return;
index 321ffbf..be1da02 100644 (file)
@@ -1464,6 +1464,7 @@ void ble_delet_all_AlarmInfo(void)
      
         for(int i=0;i<EVENT_ALARM_CLOCK_MAX;i++)
         {
+            delete_alarm_id(i);//将指定id的闹钟标记为已删除状态
             if(data.eventAlarmInfo[i].alarmClockId==i && data.eventAlarmInfo[i].alarmType==TYPE_EVENT_ALARM_CLOCK)
             AlmmgrDeleteAlarmClock(&data.eventAlarmInfo[i]);
         }