Merge #114 into xts_origin from refs/changes/114/head 117/target/2
author罗正 <1732036298@qq.com>
Tue, 30 Apr 2024 06:36:29 +0000 (06:36 +0000)
committersnickersun@163.com <accounts_62b90f7fcf51ade33b6f628e@mail.teambition.com>
Tue, 30 Apr 2024 06:36:29 +0000 (06:36 +0000)
Code review from 罗正

* refs/changes/114/head: (11 commits squashed)

  - 通过设置拦截函数优化连接状态视图的退出逻辑

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

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

  - 修复下拉时间不更新问题

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

  - 重构电话视图,解决主界面内存泄漏问题

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

  - 添加拨号方式Slice

  - 拨号视图修改,已测试通过sim卡拨号成功但发现喇叭不出声

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

  - 实现第一次启动,需要实现弹窗切换语言的功能

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/114
24 files changed:
code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp
code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h
code/sdk/application/wearable/fd230app/nativeui/language/LanguageInit.cpp
code/sdk/application/wearable/fd230app/nativeui/language/LanguageInit.h
code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchModel.h
code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListAdapter.cpp
code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchModel.cpp
code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/include/PhoneCallPresenter.h
code/sdk/application/wearable/fd230app/nativeui/phone/include/PhoneDirPresenter.h
code/sdk/application/wearable/fd230app/nativeui/phone/include/TelephonyInitInterface.h
code/sdk/application/wearable/fd230app/nativeui/phone/src/DialingMethodPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/src/MainPhonePresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/src/PhoneCallPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/src/PhoneCallView.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/src/PhoneCallingPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/src/PhoneCallupPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/src/PhoneDirPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/src/PhoneDirView.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/src/PhoneRingPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/phone/src/TelephonyInitInterface.cpp
code/sdk/application/wearable/fd230app/nativeui/system/src/SystemPresenter.cpp
code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherModel.cpp
code/sdk/application/wearable/service/msg_center/src/notify/pairing_notification.cpp

index 8ce45dd..7c43bfb 100644 (file)
@@ -387,7 +387,7 @@ namespace OHOS
         TraingModel::GetInstance()->Init(); // 训练消息订阅
         // 初始化默认首页
         ScreenModels::GetInstance()->PreLoadAppimages();
-        NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
+        //NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
         // 注册长按重启或关机事件
         RebootModel::GetInstance()->RegisterLongPressEvents();
 
index 7a8ffad..ed37cf3 100644 (file)
@@ -194,7 +194,7 @@ namespace OHOS
             {ConfigDataType::DATATYPE_STRING,   "Cat1_ModemVer",            ""      },//CONFIGMODEL_ITEM_CAT1_MODEMVER,
             {ConfigDataType::DATATYPE_STRING,   "Cat1_PYVer",               ""      },//CONFIGMODEL_ITEM_CAT1_PYVER,
             {ConfigDataType::DATATYPE_INT,      "LanguageID",               "-1"    },//CONFIGMODEL_ITEM_LANGUAGE_ID, //默认没有选择语言
-            {ConfigDataType::DATATYPE_STRING,   "LanguageCode",             "zh"    },//CONFIGMODEL_ITEM_LANGUAGE_CODE, //默认没有选择语言
+            {ConfigDataType::DATATYPE_STRING,   "LanguageCode",             ""      },//CONFIGMODEL_ITEM_LANGUAGE_CODE, //默认没有选择语言
             {ConfigDataType::DATATYPE_BOOL,     "SlientMode",               "false" },//CONFIGMODEL_ITEM_SILENT_MODE,
             {ConfigDataType::DATATYPE_INT,      "VibratorSwitch",           "1"     },//CONFIGMODEL_ITEM_VIBRATOR_SWITCH, // 马达 开关,0 强,1 中,2 弱,3 关
             // {ConfigDataType::DATATYPE_BOOL,     "HRS_QuickAccess",     "false"},//CONFIGMODEL_ITEM_HRS_SPO2_QUICKACCESS,
index c9dcb39..af8a619 100644 (file)
@@ -1,8 +1,8 @@
 /*
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-30 09:14:38
- * @LastEditors: SnickerSun snickersun@163.com
- * @LastEditTime: 2024-04-15 14:59:48
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-04-30 10:25:43
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/LanguageInit.cpp
  */
 #include <fstream>
@@ -14,6 +14,7 @@
 #include "wearable_log.h"
 #include "language/LanguageInit.h"
 #include "config/include/ConfigModel.h"
+#include <NativeAbility.h>
 
 namespace OHOS
 {
@@ -90,23 +91,24 @@ namespace OHOS
         "user/res/font/zh.lang"// AZ,
         };
 
-    static language *g_planguage{nullptr};
+    //static language *g_planguage{nullptr};
 
     language::language()
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "language::language");
-        g_planguage = this;
+        ///g_planguage = this;
     }
 
     language::~language()
     {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "language::~language");
-        g_planguage = nullptr;
+        //g_planguage = nullptr;
     }
 
     language *language::GetInstance()
     {
-        return g_planguage;
+        static language instance;
+        return &instance;
     }
 
     bool language::InitLangues()
@@ -121,7 +123,12 @@ namespace OHOS
              * 如果 thelanguage = -1 证明第一次启动,需要实现弹窗切换语言的功能。
              * 在此之前,先设置成默认0
             */
-            thelanguage = 0;
+            //thelanguage = 0;
+            NativeAbility::GetInstance().SetDefaultSliceId(VIEW_LANGUAGE_SWITCH);
+        }
+        else
+        {
+            NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
         }
         FontGlobalManager::GetInstance()->RegisterLanguageInfo(resFiles, MAX_LANGUAGE, thelanguage);
         return true;
@@ -151,8 +158,8 @@ namespace OHOS
        // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "resFiles[language_status]:%s", resFiles[language_status]);
         return true;
     }
-
-    bool language::ChangeLanguage( char *language_code)
+    
+    bool language::ChangeLanguage(std::string language_code)
     {
         if (!FontGlobalManager::GetInstance() || !UIFont::GetInstance())
         {
@@ -162,11 +169,11 @@ namespace OHOS
 
         // 获取语言Code对应的语言Id
         LanguageId currentLanguageId = LanguageManager::GetInstance().GetLanguageIdByCode(language_code);
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%d %s", currentLanguageId, language_code);
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%d %s", currentLanguageId, language_code.c_str());
         FontGlobalManager::GetInstance()->RegisterLanguageInfo(resFiles, MAX_LANGUAGE, currentLanguageId);
         UIFont::GetInstance()->SetCurrentLangId(currentLanguageId);
 
-        ConfigModel::GetInstance()->SetLanguageCode(language_code);
+        ConfigModel::GetInstance()->SetLanguageCode(language_code.c_str());
         ConfigModel::GetInstance()->SetLanguage(currentLanguageId);
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "resFiles[%d]:%s", currentLanguageId, resFiles[currentLanguageId]);
         return true;
index 1e6a343..02164a7 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-30 09:30:03
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-01 16:00:57
+ * @LastEditTime: 2024-04-30 10:03:25
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/LanguageInit.h
  */
 #ifndef LANGUAGE_INIT_H
@@ -66,7 +66,7 @@ namespace OHOS
         static language *GetInstance();
         bool InitLangues();
         bool ChangeLanguage(uint32_t);
-        bool ChangeLanguage(char *language_code);
+        bool ChangeLanguage(std::string language_code);
         bool fileExists(const char *fileName);
     };
 
index 7b43737..b3c0bab 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-28 16:36:58
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-03-30 21:10:24
+ * @LastEditTime: 2024-04-30 11:34:16
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/include/LanguageSwitchModel.h
  */
 
@@ -10,7 +10,6 @@
 #define LANGUAGE_SWITCH_MODEL_H
 
 #include "language/include/LanguageSwitchListAdapter.h"
-#include "config/include/ConfigModel.h"
 namespace OHOS
 {
 
@@ -19,9 +18,9 @@ namespace OHOS
     public:
         static LanguageSwitchModel &GetInstance();
         void SetCurLanguageCode(char *curlanguageid);
-        char *GetCurLanguageCode(void);
-        void SetLastLanguageCode(char *prelanguageid);
-        char *GetLastLanguageCode(void);
+        const char *GetCurLanguageCode(void);
+        void SetLastLanguageCode(std::string prelanguageid);
+        const char *GetLastLanguageCode(void);
 
     private:
         LanguageSwitchModel();
@@ -30,8 +29,7 @@ namespace OHOS
         const LanguageSwitchModel &operator=(const LanguageSwitchModel &) = delete;
         static const uint16_t LANGUAGE_ITEM_MAX = MAX_LANGUAGE; // 语言总数
         char *CurLanguageCode = "zh";                           // 当前语言,默认简体中文
-        char *PreLanguageCode = nullptr;                        // 上一次切换的语言
-        ConfigModel *p_ConfigModel{nullptr};
+        std::string PreLanguageCode;                        // 上一次切换的语言
     };
 
 }
index 880b781..97d8731 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-28 14:27:05
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-03-30 17:37:29
+ * @LastEditTime: 2024-04-30 11:40:50
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListAdapter.cpp
  */
 #include "language/include/LanguageSwitchListAdapter.h"
@@ -106,6 +106,7 @@ namespace OHOS
                 // 设置未选中
                 item->GetUILabelButtonExt()->SetImageSrc(NotSelectedImg, NotSelectedImg);
             }
+            item->GetUILabelButtonExt()->Invalidate();
         }
         return item;
     }
index 10932b2..d0090b6 100644 (file)
@@ -2,23 +2,19 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-28 16:36:46
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-01 11:52:27
+ * @LastEditTime: 2024-04-30 11:58:38
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchModel.cpp
  */
 #include "language/include/LanguageSwitchModel.h"
 #include "wearable_log.h"
 #include "language/LanguageInit.h"
+#include "config/include/ConfigModel.h"
 namespace OHOS
 {
 
     LanguageSwitchModel::LanguageSwitchModel()
     {
-        p_ConfigModel = ConfigModel::GetInstance();
-        // if (p_ConfigModel->GetLanguageCode().c_str() != nullptr)
-        {
-            //printf("%s\n", p_ConfigModel->GetLanguageCode());
-            CurLanguageCode = const_cast<char *>(p_ConfigModel->GetLanguageCode().c_str());
-        }
+        // CurLanguageCode = const_cast<char *>(ConfigModel::GetInstance()->GetLanguageCode().c_str());
     }
 
     LanguageSwitchModel::~LanguageSwitchModel()
@@ -36,21 +32,23 @@ namespace OHOS
      */
     void LanguageSwitchModel::SetCurLanguageCode(char *curlanguagecode)
     {
-        CurLanguageCode = curlanguagecode;
+        // CurLanguageCode = curlanguagecode;
+        ConfigModel::GetInstance()->SetLanguageCode(curlanguagecode);
     }
 
     /*
      * @brief 获取当前设置的语言code
      */
-    char *LanguageSwitchModel::GetCurLanguageCode(void)
+    const char *LanguageSwitchModel::GetCurLanguageCode(void)
     {
-        return CurLanguageCode;
+        // return CurLanguageCode;
+        return ConfigModel::GetInstance()->GetLanguageCode().c_str();
     }
 
     /*
      * @brief 设置上一次语言code
      */
-    void LanguageSwitchModel::SetLastLanguageCode(char *prelanguagecode)
+    void LanguageSwitchModel::SetLastLanguageCode(std::string prelanguagecode)
     {
         PreLanguageCode = prelanguagecode;
     }
@@ -58,8 +56,8 @@ namespace OHOS
     /*
      * @brief 获取上一次设置的语言code
      */
-    char *LanguageSwitchModel::GetLastLanguageCode(void)
+    const char *LanguageSwitchModel::GetLastLanguageCode(void)
     {
-        return PreLanguageCode;
+        return PreLanguageCode.c_str();
     }
 }
\ No newline at end of file
index 5e4e4f0..7148bba 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-28 14:17:43
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-08 11:21:43
+ * @LastEditTime: 2024-04-30 11:27:38
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchPresenter.cpp
  */
 #include "AppViewIDs.h"
@@ -82,7 +82,7 @@ namespace OHOS
         if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
         {
             uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
-            NativeAbility::GetInstance().ChangeSlice(preSlice);
+            NativeAbility::GetInstance().Back();
         }
         return true;
     }
@@ -90,10 +90,10 @@ namespace OHOS
     bool LanguageSwitchPresenter::OnClick(UIView &view, const ClickEvent &event)
     {
         UNUSED(event);
-        char *lastLanguageCode = p_LanguageSwitchModel->GetLastLanguageCode();
+        const char *lastLanguageCode = p_LanguageSwitchModel->GetLastLanguageCode();
         UILabelButtonExt *p_UILabelButtonExt = dynamic_cast<UILabelButtonExt *>(&view);
         char *id = const_cast<char *>(p_UILabelButtonExt->GetViewId());
-        language *g_planguage = new language();
+        language *g_planguage = language::GetInstance();
 
         if (p_UILabelButtonExt != nullptr)
         {
@@ -106,8 +106,8 @@ namespace OHOS
             return false;
         }
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "lastLanguageCode = %s , CurrLanguageCode = %s", p_LanguageSwitchModel->GetLastLanguageCode(), p_LanguageSwitchModel->GetCurLanguageCode());
-        // 检查当前语言ID是否已经是点击的语言ID,否则重复点击同一语言不响应切换
-        if (p_LanguageSwitchModel->GetCurLanguageCode() == lastLanguageCode)
+        //  检查当前语言ID是否已经是点击的语言ID,否则重复点击同一语言不响应切换
+        if (strcmp(p_LanguageSwitchModel->GetCurLanguageCode(), lastLanguageCode) == 0)
         {
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Do not ChangeLanguage!!");
             return true;
@@ -124,6 +124,7 @@ namespace OHOS
             // 更新上一个语言ID
             p_LanguageSwitchModel->SetLastLanguageCode(p_LanguageSwitchModel->GetCurLanguageCode());
         }
+        NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);//暂定选完语言后设置默认的Sliceid为主界面
         return true;
     }
 
@@ -136,8 +137,7 @@ namespace OHOS
         // 如果是power键,且是亮屏状态,按键释放就返回上一级
         if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)
         {
-            uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
-            NativeAbility::GetInstance().ChangeSlice(preSlice);
+            NativeAbility::GetInstance().Back();
         }
         return true;
     }
index 7f21805..6f995e3 100644 (file)
@@ -11,6 +11,7 @@ namespace OHOS
     class PhoneCallView;\r
     class PhoneCallPresenter : public Presenter<PhoneCallView>,\r
                                public UIView::OnClickListener,\r
+                               public RootView::OnKeyActListener,\r
                                public UIView::OnDragListener\r
 \r
     {\r
@@ -33,6 +34,7 @@ namespace OHOS
         // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
         bool OnClick(UIView &view, const ClickEvent &event) override;\r
         bool OnDrag(UIView &view, const DragEvent &event) override;\r
+        bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
     };\r
 } // namespace OHOS\r
 \r
index 97c7097..e63653e 100644 (file)
@@ -11,6 +11,7 @@ namespace OHOS
 \r
     class PhoneDirPresenter : public Presenter<PhoneDirView>,\r
                                public UIView::OnClickListener,\r
+                               public RootView::OnKeyActListener,\r
                                public UIView::OnDragListener\r
     {\r
     public:\r
@@ -29,6 +30,8 @@ namespace OHOS
         // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
         bool OnClick(UIView &view, const ClickEvent &event) override;\r
         bool OnDrag(UIView &view, const DragEvent &event) override;\r
+        bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
+        \r
     };\r
 } // namespace OHOS\r
 \r
index 76fadc3..ab1b4be 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-04-28 09:58:04
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-29 09:24:21
+ * @LastEditTime: 2024-04-29 17:29:25
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/phone/include/TelephonyInitInterface.h
  */
 #ifndef TELEPHONY_INIT_INTERFACE_H
@@ -15,6 +15,8 @@
 #include "components/ui_image_view.h"
 #include "iostream"
 #include "UiConfig.h"
+#include "gfx_utils/mem_check.h"
+#define DUMPMEMORY 0
 namespace OHOS
 {
 
@@ -31,10 +33,15 @@ namespace OHOS
     static constexpr const char *PNG_FREQUENTLYCONTACTEDBUTTON_IMAGE = "/user/res/Phone/Telephone/FrequentlyContacted.bin"; // 常用联系人按钮icon图片
     static constexpr const char *PNG_TELEPHONELINE_IMAGE = "/user/res/Phone/Telephone/TelephoneLine.bin";                   // 线
 
+    // 拨号方式
+    static constexpr uint8_t DIALINGMETHOD_USINGWATCHSIM = 1; // 手表SIM卡拨号
+    static constexpr uint8_t DIALINGMETHOD_USINGPHONE = 0;    // 手机拨号
+
     class TelephonyInitInterface
     {
     public:
-        static bool X_DRAG_FLAG; // 水平拖拽标志
+        static bool X_DRAG_FLAG;      // 水平拖拽标志
+        static uint8_t DIALINGMETHOD; // 拨号方式
 
         typedef struct
         {
index 6d44a9a..c9890fc 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-28 14:17:43
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-29 10:01:43
+ * @LastEditTime: 2024-04-29 17:30:05
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/DialingMethodPresenter.cpp
  */
 #include "AppViewIDs.h"
@@ -60,11 +60,15 @@ namespace OHOS
 
         if (curViewId == USINGWATCHSIMBUTTON_VIEWID)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick",curViewId.c_str());
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick", curViewId.c_str());
+            TelephonyInitInterface::DIALINGMETHOD = DIALINGMETHOD_USINGWATCHSIM; // 手表SIM卡拨号
+            NativeAbility::GetInstance().EnterSlice(VIEW_PHONECALL);
         }
         else if (curViewId == USINGPHONEBUTTON_VIEWID)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick",curViewId.c_str());
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick", curViewId.c_str());
+            TelephonyInitInterface::DIALINGMETHOD = DIALINGMETHOD_USINGPHONE; // 手机拨号
+            NativeAbility::GetInstance().EnterSlice(VIEW_PHONECALL);
         }
         return true;
     }
index 4cb20db..effd517 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-28 14:17:43
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-29 10:02:49
+ * @LastEditTime: 2024-04-29 17:30:31
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/MainPhonePresenter.cpp
  */
 #include "AppViewIDs.h"
@@ -63,13 +63,13 @@ namespace OHOS
 
         if (curViewId == DIALINGMETHODBUTTON_VIEWID)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick",curViewId.c_str());
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick", curViewId.c_str());
             NativeAbility::GetInstance().EnterSlice(VIEW_DIALING_METHOD);
         }
         else if (curViewId == FREQUENTLYCONTACTEDBUTTON_VIEWID)
         {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick",curViewId.c_str());
-
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick", curViewId.c_str());
+            NativeAbility::GetInstance().EnterSlice(VIEW_PHONEDIR);
         }
 
         return true;
index 62a93c5..97447f1 100644 (file)
@@ -8,6 +8,9 @@
 #include "cat1_server_hal.h"\r
 #include "PhoneService.h"\r
 #include "phone/include/PhoneCallView.h"\r
+#include "phone/include/TelephonyInitInterface.h"\r
+#include "common/key_code.h"\r
+#include <custom_utils.h>\r
 namespace OHOS\r
 {\r
 \r
@@ -70,7 +73,7 @@ namespace OHOS
         if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
             (event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
         {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_PHONE);\r
+            NativeAbility::GetInstance().Back();\r
         }\r
 \r
       \r
@@ -106,7 +109,18 @@ namespace OHOS
             // 拨号键\r
             //NativeAbility::GetInstance().ChangeSlice(VIEW_PHONERING);\r
             //calldial_event_sendmsg_toUI((char *)phoneNumber.c_str());\r
-            PhoneCallView::GetInstance()->container_child_SetVisible(true);\r
+            //PhoneCallView::GetInstance()->container_child_SetVisible(true);\r
+            if(TelephonyInitInterface::DIALINGMETHOD == DIALINGMETHOD_USINGWATCHSIM)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DIALINGMETHOD_USINGWATCHSIM");\r
+                calldial_event_sendmsg_toUI((char *)phoneNumber.c_str());\r
+            }\r
+            else if(TelephonyInitInterface::DIALINGMETHOD == DIALINGMETHOD_USINGPHONE)\r
+            {\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DIALINGMETHOD_USINGPHONE");\r
+                DialCall((unsigned char *)phoneNumber.c_str(),phoneNumber.length());\r
+            }\r
+\r
         }\r
         else if (strcmp(viewId, BUTTONDEL) == 0)\r
         {\r
@@ -184,4 +198,19 @@ namespace OHOS
         printf("**************************\n");\r
         return true;\r
     }\r
+\r
+\r
+    bool PhoneCallPresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件\r
+    {\r
+        UNUSED(view);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DialingMethodPresenter::OnKeyAct");\r
+        unsigned short keyID = event.GetKeyId();\r
+        unsigned short keyState = event.GetState();\r
+        // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        {\r
+            NativeAbility::GetInstance().Back();\r
+        }\r
+        return true;\r
+    }\r
 }
\ No newline at end of file
index 7722665..496d085 100644 (file)
@@ -352,6 +352,10 @@ namespace OHOS
         // GetView();\r
         GetView();\r
         RootView::GetInstance()->Add(container_);\r
+\r
+        // 增加按键监听\r
+        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::PhoneCallPresenter::GetInstance();\r
+        RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
     }\r
 \r
     void PhoneCallView::OnSetUpView()\r
@@ -372,6 +376,7 @@ namespace OHOS
     {\r
         View<PhoneCallPresenter>::OnStop();\r
         RootView::GetInstance()->RemoveAll();\r
+        RootView::GetInstance()->ClearOnKeyActListener();\r
         return;\r
     }\r
 \r
index 95a17c7..af177c3 100644 (file)
@@ -75,7 +75,7 @@ namespace OHOS
         }\r
         if (strcmp(view.GetViewId(), PHONEOFFBUTTON) == 0)\r
         {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_PHONE);\r
+            NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_PHONE);\r
         }\r
         return true;\r
     }\r
index 300d683..e80cae8 100644 (file)
@@ -70,7 +70,7 @@ namespace OHOS
         // 根据控件id查找是哪个控件触发了点击回调\r
         if (strcmp(view.GetViewId(), OFFBUTTON) == 0)\r
         {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_PHONE);\r
+            NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_PHONE);\r
         }\r
         if (strcmp(view.GetViewId(), "button2") == 0)\r
         {\r
index cb61629..5f6e4f3 100644 (file)
@@ -7,7 +7,8 @@
 #include "phone/include/PhoneDirView.h"\r
 #include "components/ui_button.h"\r
 #include "components/ui_label_button_ext.h"\r
-\r
+#include "common/key_code.h"\r
+#include <custom_utils.h>\r
 namespace OHOS\r
 {\r
 \r
@@ -68,7 +69,7 @@ namespace OHOS
             }\r
             else\r
             {\r
-                NativeAbility::GetInstance().ChangeSlice(VIEW_PHONE);\r
+                NativeAbility::GetInstance().Back();\r
             }\r
             \r
             \r
@@ -92,4 +93,19 @@ namespace OHOS
         // if (strcmp(view.GetViewId(), 控件ID) == 0)\r
         return true;\r
     }\r
+\r
+\r
+    bool PhoneDirPresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件\r
+    {\r
+        UNUSED(view);\r
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DialingMethodPresenter::OnKeyAct");\r
+        unsigned short keyID = event.GetKeyId();\r
+        unsigned short keyState = event.GetState();\r
+        // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
+        if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+        {\r
+            NativeAbility::GetInstance().Back();\r
+        }\r
+        return true;\r
+    }\r
 }
\ No newline at end of file
index 025024b..e2beaf8 100644 (file)
@@ -423,6 +423,10 @@ namespace OHOS
       \r
 \r
         RootView::GetInstance()->Add(container_);\r
+\r
+        // 增加按键监听\r
+        RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::PhoneDirPresenter::GetInstance();\r
+        RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
     }\r
 \r
     void PhoneDirView::OnSetUpView()\r
@@ -443,6 +447,7 @@ namespace OHOS
     {\r
         View<PhoneDirPresenter>::OnStop();\r
         RootView::GetInstance()->RemoveAll();\r
+        RootView::GetInstance()->ClearOnKeyActListener();\r
         return;\r
     }\r
 }\r
index 38fdf2d..621910d 100644 (file)
@@ -70,7 +70,7 @@ namespace OHOS
         // 根据控件id查找是哪个控件触发了点击回调\r
         if (strcmp(view.GetViewId(), OFFBUTTON) == 0)\r
         {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_PHONE);\r
+            NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_PHONE);\r
         }\r
         return true;\r
     }\r
index aa04152..77e291b 100644 (file)
@@ -3,7 +3,8 @@
 
 namespace OHOS
 {
-    bool TelephonyInitInterface::X_DRAG_FLAG = false; // 水平拖拽标志
+    bool TelephonyInitInterface::X_DRAG_FLAG = false;   // 水平拖拽标志
+    uint8_t TelephonyInitInterface::DIALINGMETHOD = -1; // 默认未选择任何拨号方式
 
     TelephonyInitInterface::TelephonyInitInterface()
     {
index 432e40f..6829336 100644 (file)
@@ -152,7 +152,7 @@ namespace OHOS
 \r
         if (strcmp(view.GetViewId(), "SystemLanguageButton") == 0)\r
         {\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_LANGUAGE_SWITCH);\r
+            NativeAbility::GetInstance().EnterSlice(VIEW_LANGUAGE_SWITCH);\r
             return true;\r
         }\r
 \r
@@ -209,7 +209,7 @@ namespace OHOS
         if ((event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT))\r
         {\r
             SystemPresenter::GetInstance()->set_key_falg(false);\r
-            NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
+            NativeAbility::GetInstance().Back();\r
         }\r
         return true;\r
     }\r
@@ -241,38 +241,38 @@ namespace OHOS
 \r
     /* -------------------------------------------------------------------------- */\r
     // 获取语言类\r
-    language *g_planguage = new language;\r
+    //language *g_planguage = new language();\r
     /* -------------------------------------------------------------------------- */\r
     // 用来监听语言切换\r
     bool RadiobuttonOnChangeListener::OnChange(UICheckBox::UICheckBoxState state)\r
     {\r
-        language *g_planguage;\r
-        // static const char *en = "user/res/font/en.lang";\r
-        // static const char *zh_CN = "user/res/font/zh.lang";\r
-        switch (state)\r
-        {\r
-        case UICheckBox::SELECTED:\r
-            if (isChineseRadioButtonSelected())\r
-            {\r
-                // 中文文本\r
-                g_planguage->ChangeLanguage(LanguageId::ZH_CN);\r
-            }\r
-            else if (isEnglishRadioButtonSelected())\r
-            {\r
-                // 英语文本\r
-                g_planguage->ChangeLanguage(LanguageId::EN);\r
-            }\r
-            m_label->SetTextId(0);\r
-            // 强制刷新\r
-            m_label->ForceResetText();\r
-            RootView::GetInstance()->Invalidate();\r
-            break;\r
-        case UICheckBox::UNSELECTED:\r
-            // Handle unselected state if needed\r
-            break;\r
-        default:\r
-            break;\r
-        }\r
+        // language *g_planguage;\r
+        // // static const char *en = "user/res/font/en.lang";\r
+        // // static const char *zh_CN = "user/res/font/zh.lang";\r
+        // switch (state)\r
+        // {\r
+        // case UICheckBox::SELECTED:\r
+        //     if (isChineseRadioButtonSelected())\r
+        //     {\r
+        //         // 中文文本\r
+        //         g_planguage->ChangeLanguage(LanguageId::ZH_CN);\r
+        //     }\r
+        //     else if (isEnglishRadioButtonSelected())\r
+        //     {\r
+        //         // 英语文本\r
+        //         g_planguage->ChangeLanguage(LanguageId::EN);\r
+        //     }\r
+        //     m_label->SetTextId(0);\r
+        //     // 强制刷新\r
+        //     m_label->ForceResetText();\r
+        //     RootView::GetInstance()->Invalidate();\r
+        //     break;\r
+        // case UICheckBox::UNSELECTED:\r
+        //     // Handle unselected state if needed\r
+        //     break;\r
+        // default:\r
+        //     break;\r
+        // }\r
         return true;\r
     }\r
 \r
@@ -288,12 +288,7 @@ namespace OHOS
             if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
             {\r
                 uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
-                if (preSlice == VIEW_LANGUAGE_SWITCH)\r
-                {\r
-                    NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
-                    return true;\r
-                }\r
-                NativeAbility::GetInstance().ChangeSlice(preSlice);\r
+                NativeAbility::GetInstance().Back();\r
             }\r
         }\r
         return true;\r
index 2fd144f..473a6d2 100644 (file)
@@ -130,12 +130,13 @@ namespace OHOS
 
     void WeatherModel::TimestampToMonthDayString(time_t timestamp, char *buffer)
     {
-        // 将时间戳转换成tm结构
-        struct tm *timeinfo = localtime(&timestamp);
+       // 将时间戳转换成tm结构
+        struct tm timeinfo;
+        localtime_r(&timestamp, &timeinfo);
 
         // 格式化输出月份和日期
         // 注意: 月份tm_mon从0开始计数,所以显示时需要加1
-        sprintf(buffer, "%02d.%02d", timeinfo->tm_mon + 1, timeinfo->tm_mday);
+        sprintf(buffer, "%02d.%02d", timeinfo.tm_mon + 1, timeinfo.tm_mday);
     }
 
     // 获取天气图片
index 8def5ba..9226f70 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-22 10:04:36
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-03-30 09:28:18
+ * @LastEditTime: 2024-04-29 20:09:47
  * @FilePath: /FD230/code/sdk/application/wearable/service/msg_center/src/notify/pairing_notification.cpp
  */
 #include "notification_manager.h"
@@ -472,7 +472,7 @@ namespace OHOS
             DeviceUnbindingRequestViewLabel[0]->SetStyle(STYLE_TEXT_FONT, 30);
             DeviceUnbindingRequestViewLabel[0]->SetStyle(STYLE_LINE_HEIGHT, 40);
             char str[512];
-            memcpy(str, 0, 512);
+            memset(str, 0, 512);
             sprintf(str, "当前设备已经与 %s 绑定", PairingViewEventListener::GetInstance().GetDeviceName());
             DeviceUnbindingRequestViewLabel[0]->SetText(str);
             DeviceUnbindingRequestViewLabel[0]->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
@@ -491,7 +491,7 @@ namespace OHOS
             DeviceUnbindingRequestViewLabel[1]->SetPosition(33, y, 400, 300);
             DeviceUnbindingRequestViewLabel[1]->SetStyle(STYLE_TEXT_FONT, 30);
             DeviceUnbindingRequestViewLabel[1]->SetStyle(STYLE_LINE_HEIGHT, 40);
-            memcpy(str, 0, 512);
+            memset(str, 0, 512);
             sprintf(str, "继续连接操作会解除与%s的绑定并将手表恢复出厂设置(会清空手表数据)\n\n是否继续此操作\n", PairingViewEventListener::GetInstance().GetDeviceName());
             // str = "继续连接操作会解除与 " + GetDeviceName() + " 的绑定并将手表恢复出厂设置(会清空手表数据)\n\n是否继续此操作\n";
             DeviceUnbindingRequestViewLabel[1]->SetText(str);