将语言切换slice移到系统
authorluozheng <1732036298@qq.com>
Sat, 30 Mar 2024 11:09:41 +0000 (19:09 +0800)
committerluozheng <1732036298@qq.com>
Sat, 30 Mar 2024 11:09:41 +0000 (19:09 +0800)
code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListAdapter.cpp
code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListitemView.cpp
code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchView.cpp
code/sdk/application/wearable/fd230app/nativeui/system/include/SystemPresenter.h
code/sdk/application/wearable/fd230app/nativeui/system/src/SystemPresenter.cpp

index 1eea53e..880b781 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 16:32:43
+ * @LastEditTime: 2024-03-30 17:37:29
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListAdapter.cpp
  */
 #include "language/include/LanguageSwitchListAdapter.h"
@@ -56,7 +56,7 @@ namespace OHOS
 
     UIView *LanguageSwitchListAdapter::GetView(UIView *inView, int16_t index)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchListAdapter::GetView,index %d", index);
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchListAdapter::GetView,index %d", index);
         // 1.先检查列表数据是否为空,若为空则返回空指针
         if (listData.empty())
         {
index 71b0771..114c4d5 100644 (file)
@@ -2,7 +2,7 @@
  * @Author: luozheng 1732036298@qq.com
  * @Date: 2024-03-28 14:28:03
  * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-03-30 14:51:46
+ * @LastEditTime: 2024-03-30 17:37:32
  * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/LanguageSwitchListitemView.cpp
  */
 #include "language/include/LanguageSwitchListitemView.h"
@@ -30,7 +30,7 @@ namespace OHOS
 
     void LanguageSwitchListitemView::SetItemInfo(const Language itemInfo)
     {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchListitemView::SetItemInfo");
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchListitemView::SetItemInfo");
         m_LabelButtonExt.SetViewId(itemInfo.code);
         m_LabelButtonExt.SetText(itemInfo.name);
     }
index 763e649..1a15db9 100644 (file)
@@ -4,11 +4,18 @@
 namespace OHOS
 {
 
+    static constexpr int16_t TITLE_LABEL_X = 133;
+    static constexpr int16_t TITLE_LABEL_Y = 52;
+    static constexpr int16_t TITLE_LABEL_W = 20;
+    static constexpr int16_t TITLE_LABEL_H = 40;
+
+
     static constexpr int16_t LANGUAGE_LIST_X = 43;
     static constexpr int16_t LANGUAGE_LIST_Y = 120;
     static constexpr int16_t NUM_2 = 2;
     static constexpr int16_t MAX_SCROLL_DIS = 1000;
     static constexpr int16_t MAX_REBOUND_SIZE = 40;
+    static constexpr int16_t MAX_LANGUAGE_LIST_SCROLLBLANKSIZE = 50;
     static LanguageSwitchView *g_pLanguageSwitchView{nullptr};
     LanguageSwitchView::LanguageSwitchView()
     {
@@ -65,6 +72,8 @@ namespace OHOS
             return false;
         }
         LanguageSwitchScrollView->SetOnDragListener(draglistener);
+        LanguageSwitchScrollView->SetScrollBlankSize(MAX_LANGUAGE_LIST_SCROLLBLANKSIZE);
+        LanguageSwitchScrollView->SetHorizontalScrollState(false);
         LanguageSwitchScrollView->SetTouchable(true);
         LanguageSwitchScrollView->SetDraggable(true);
 
@@ -79,12 +88,11 @@ namespace OHOS
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::LanguageSwitchViewTitleLabel new fail!");
             return false;
         }
-        LanguageSwitchViewTitleLabel->SetPosition(133, 52, 200, 40);
+        LanguageSwitchViewTitleLabel->SetPosition(TITLE_LABEL_X, TITLE_LABEL_Y, TITLE_LABEL_W, TITLE_LABEL_H);
         LanguageSwitchViewTitleLabel->SetStyle(STYLE_TEXT_FONT, 30);
         LanguageSwitchViewTitleLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
         // LanguageSwitchViewTitleLabel->SetText("语言");
         LanguageSwitchViewTitleLabel->SetTextId(0);
-        LanguageSwitchViewTitleLabel->ForceResetText();
         LanguageSwitchViewTitleLabel->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
         LanguageSwitchViewTitleLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
         LanguageSwitchViewTitleLabel->SetRollSpeed(40);
@@ -111,7 +119,7 @@ namespace OHOS
         }
         LanguageList->SetPosition(LANGUAGE_LIST_X, LANGUAGE_LIST_Y, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
         LanguageList->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
-        LanguageList->SetScrollBlankSize(MAX_REBOUND_SIZE);
+        LanguageList->SetScrollBlankSize(MAX_LANGUAGE_LIST_SCROLLBLANKSIZE);
         LanguageList->EnableAutoAlign(true);                // 设置此列表的自动对齐状态。当滚动停止时,子视图被选中,其位置自动与预设位置对齐
         LanguageList->SetThrowDrag(true);                   // 设置手指抬起屏幕后是否继续滚动。
         LanguageList->SetMaxScrollDistance(MAX_SCROLL_DIS); // 设置手指抬起屏幕后的最大滚动距离。
@@ -153,7 +161,7 @@ namespace OHOS
         RootView::GetInstance()->Add(LanguageSwitchScrollView);
         LanguageList->SetAdapter(p_LanguageSwitchListAdapter);
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "%d", p_LanguageSwitchListAdapter->GetCount());
-
+        LanguageSwitchViewTitleLabel->ForceResetText();
         Draw();
     }
 
index e1dc257..01c151e 100644 (file)
@@ -67,7 +67,7 @@ namespace OHOS
         virtual ~SystemPresenter();\r
 \r
         void OnStart() override;\r
-        //void OnPause() override;\r
+        void OnPause() override;\r
         void OnResume() override;\r
         void OnStop() override;\r
 \r
index aa995c1..e5c31ad 100644 (file)
@@ -1,6 +1,6 @@
 #include "AppViewIDs.h"\r
 #include "components/ui_label_ext.h"\r
-#include"language/font/ui_resource_string.h"\r
+#include "language/font/ui_resource_string.h"\r
 #include "NativeAbility.h"\r
 #include "graphic_math.h"\r
 #include "string.h"\r
@@ -23,11 +23,10 @@ namespace OHOS
         bool enable_falg;\r
     };\r
 \r
-    // 2.ViewMapper[] 是一个静态的视图映射数组,将视图ID与MainStopWatchView类中的特定成员函数指针进行了绑定。\r
     static SystemView_ext_p ViewMapper_t[] = {\r
         {ABOUTTHEWATCHVIEW, "AboutTheWatchButton", true},\r
         {SUPERVISEVIEW, "SuperviseButton", true},\r
-        {SYSTEMLANGUAGEVIEW, "SystemLanguageButton", true},\r
+        {SYSTEMLANGUAGEVIEW, "SystemLanguageButton", false},\r
         {FACTORYRESETVIEW, "FactoryResetButton", true},\r
         {SYSTEMLUPGRADE, "systemupgread", true},\r
     };\r
@@ -60,14 +59,17 @@ namespace OHOS
         Presenter<SystemView>::OnStart();\r
     }\r
 \r
-    static uint32_t time=0;\r
-    static uint32_t OnClick_num=0;\r
+    void SystemPresenter::OnPause(void)\r
+    {\r
+        Presenter<SystemView>::OnPause();\r
+    }\r
+\r
+    static uint32_t time = 0;\r
+    static uint32_t OnClick_num = 0;\r
 \r
     bool SystemPresenter::OnPress(UIView &view, const PressEvent &event)\r
     {\r
-        \r
-\r
-        \r
+        return true;\r
     }\r
 \r
     void SystemPresenter::OnResume(void)\r
@@ -113,54 +115,58 @@ namespace OHOS
         // int len=5;\r
         //  根据控件id查找是哪个控件触发了点击回调\r
 \r
-        if(strcmp(view.GetViewId(), "SystemAboutTheWatchTitle")==0)\r
-        {   \r
+        if (strcmp(view.GetViewId(), "SystemAboutTheWatchTitle") == 0)\r
+        {\r
             WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemAboutTheWatchTitle");\r
-            if(time==0)\r
+            if (time == 0)\r
             {\r
                 time = event.GetTimeStamp();\r
-                OnClick_num=1;\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "222  %d",time);\r
+                OnClick_num = 1;\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "222  %d", time);\r
             }\r
             else\r
             {\r
-                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "111   %d",event.GetTimeStamp());\r
-                if(event.GetTimeStamp() -time<1000)\r
+                WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "111   %d", event.GetTimeStamp());\r
+                if (event.GetTimeStamp() - time < 1000)\r
                 {\r
                     OnClick_num++;\r
-                    \r
-                    if(OnClick_num>5)\r
+\r
+                    if (OnClick_num > 5)\r
                     {\r
                         NativeAbility::GetInstance().ChangeSlice(VIEW_TEST);\r
                     }\r
                 }\r
                 else\r
                 {\r
-                    time =0;\r
+                    time = 0;\r
                 }\r
             }\r
             return true;\r
         }\r
-       \r
-        \r
+\r
+        if (strcmp(view.GetViewId(), "SystemLanguageButton") == 0)\r
+        {\r
+            NativeAbility::GetInstance().ChangeSlice(VIEW_LANGUAGE_SWITCH);\r
+            return true;\r
+        }\r
+\r
         for (int i = 0; i < len; i++)\r
         {\r
             if (strcmp(view.GetViewId(), ViewMapper_t[i].viewid_str) == 0)\r
             {\r
                 if (i == 5)\r
                 {\r
-                   \r
+\r
                     break;\r
                 }\r
 \r
                 if (ViewMapper_t[i].enable_falg == true)\r
                     SystemView::GetInstance()->ChangeView(SYSTEMVIEW, ViewMapper_t[i].viewId);\r
-                time=0;\r
+                time = 0;\r
                 return true;\r
             }\r
         }\r
 \r
-\r
         if (strcmp(view.GetViewId(), FACTORYRESET_CHECKON) == 0)\r
         {\r
             p_SystemView->ChangeView(FACTORYRESETVIEW, SYSTEMVIEW);\r
@@ -183,7 +189,7 @@ namespace OHOS
             NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
             isSystemUpgradeState = false;\r
         }\r
-        return false;\r
+        return true;\r
     }\r
 \r
     // 该拖拽是用来处理系统视图(slice)的左滑退出事件和子视图的左滑退出到系统视图区分开\r
@@ -276,6 +282,11 @@ 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
             }\r
         }\r