main 文件夹更新
authorluozheng <1732036298@qq.com>
Tue, 28 May 2024 13:52:03 +0000 (21:52 +0800)
committerluozheng <1732036298@qq.com>
Tue, 28 May 2024 13:52:03 +0000 (21:52 +0800)
36 files changed:
code/sdk/application/wearable/fd230app/nativeui/main/include/AppGroupView.h
code/sdk/application/wearable/fd230app/nativeui/main/include/DialBinParser.h [deleted file]
code/sdk/application/wearable/fd230app/nativeui/main/include/HealthModel.h
code/sdk/application/wearable/fd230app/nativeui/main/include/MainModel.h
code/sdk/application/wearable/fd230app/nativeui/main/include/MainPresenterSample.h
code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h
code/sdk/application/wearable/fd230app/nativeui/main/include/ModelListenerSample.h
code/sdk/application/wearable/fd230app/nativeui/main/include/PullUpDownView.h
code/sdk/application/wearable/fd230app/nativeui/main/include/UiServersMsg.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialArcLabelView.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialArcProgressView.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialBaseModel.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialBoxProgressView.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialDigitalImgView.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialKaleidoscopeView.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialLabelView.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelHeartRate.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelPower.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelSteps.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialModelTime.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialOptionImgView.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialRotateImgView.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialSequenceImgView.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialStaticImgView.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialVideoView.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialView.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/DialViewGroup.h
code/sdk/application/wearable/fd230app/nativeui/main/include/dial/ModelDialDataFactory.h
code/sdk/application/wearable/fd230app/nativeui/main/src/HealthModel.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/MainModel.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/MainPresenterSample.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialVideoView.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/dial/DialViewGroup.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/dial/ModelDialDataFactory.cpp
code/sdk/application/wearable/fd230app/nativeui/main/src/dial/parser/DialBinParser.cpp

index 88e8381..08529bd 100644 (file)
@@ -20,7 +20,7 @@ public:
     {
         SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
     }
-    virtual ~AppGroupView() {}
+    ~AppGroupView() override {}
     virtual bool InitView(void *caller)=0;
     bool initViewStatus{false};
 };
diff --git a/code/sdk/application/wearable/fd230app/nativeui/main/include/DialBinParser.h b/code/sdk/application/wearable/fd230app/nativeui/main/include/DialBinParser.h
deleted file mode 100644 (file)
index dc73723..0000000
+++ /dev/null
@@ -1,61 +0,0 @@
-/*\r
- * Copyright (c) 2023 CompanyNameMagicTag.\r
- * Licensed under the Apache License, Version 2.0 (the "License");\r
- * you may not use this file except in compliance with the License.\r
- * You may obtain a copy of the License at\r
- *\r
- *     http://www.apache.org/licenses/LICENSE-2.0\r
- *\r
- * Unless required by applicable law or agreed to in writing, software\r
- * distributed under the License is distributed on an "AS IS" BASIS,\r
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\r
- * See the License for the specific language governing permissions and\r
- * limitations under the License.\r
- */\r
-#ifndef GRAPHIC_LITE_DIAL_BIN_PARSER_H\r
-#define GRAPHIC_LITE_DIAL_BIN_PARSER_H\r
-#include <iostream>\r
-#include <cstring>\r
-#include "graphic_types.h"\r
-#include "DialViewGroup.h"\r
-#include "DialBinTypes.h"\r
-#include "components/ui_abstract_progress.h"\r
-\r
-namespace OHOS {\r
-class DialBinParser {\r
-public:\r
-    static DialBinParser* GetInstance(void);\r
-    bool UpdateDial(const std::string& file, FILE* fp, DialViewGroup* group);\r
-    bool GetDialPreviewInfo(FILE* fp, DialPreviewInfo* info);\r
-\r
-protected:\r
-    int32_t ParseDialHeader(FILE* file);\r
-    int32_t ParserDialStaticImg(FILE* fp);\r
-    int32_t ParserDialSequenceImg(FILE* fp);\r
-    int32_t ParserDialRotateImg(FILE* fp);\r
-    int32_t ParserDialOptionImg(FILE* fp);\r
-    int32_t ParserDialDigitalImg(FILE* fp);\r
-    int32_t ParserDialLabel(FILE* fp);\r
-    int32_t ParserDialArcLabel(FILE* fp);\r
-    int32_t ParserDialBoxProgress(FILE* fp);\r
-    int32_t ParserDialArcProgress(FILE* fp);\r
-    int32_t ParserDialVideo(FILE* fp);\r
-    int32_t ParserDialClick(FILE* fp);\r
-    int32_t ParserDialKaleidoscope(FILE* fp);\r
-\r
-private:\r
-    DialBinParser();\r
-    virtual ~DialBinParser();\r
-    void* MallocAndReadBuf(FILE* file, uint32_t readSize);\r
-    bool SetProgressType(FILE* fp, UIAbstractProgress* view, DialProgressType data);\r
-\r
-    static constexpr uint8_t DIAL_BIN_PARSER_FUNC_NUM = 12; // 12: func max value\r
-    int32_t (DialBinParser::*funcArray_[DIAL_BIN_PARSER_FUNC_NUM])(FILE*);\r
-\r
-    DialViewGroup* dialGroup_ = nullptr;\r
-    std::string file_;\r
-    uint32_t dirId_ = 0xfef << 20; // 20: offset\r
-    uint32_t imageOffset_ = 0;\r
-};\r
-}\r
-#endif\r
index f459ae3..fd9bca8 100644 (file)
@@ -16,7 +16,7 @@
 #ifndef HEALTH_MODEL_H
 #define HEALTH_MODEL_H
 
-#include "stdio.h"
+#include <cstdio>
 #include "gfx_utils/list.h"
 #include "los_mux.h"
 #include "UiServersMsg.h"
index 6bc09a0..1d82fac 100644 (file)
@@ -25,9 +25,9 @@ namespace OHOS {
     } DialInfo;\r
 \r
     typedef struct {\r
-      uint8_t dialFlag;\r
-      uint8_t dialId;\r
-      std::string dialFullName;\r
+        uint8_t dialFlag;\r
+        uint8_t dialId;\r
+        std::string dialFullName;\r
     } DialSetting;\r
 \r
     class MainModel {\r
@@ -43,6 +43,10 @@ namespace OHOS {
         void AddDialSetting(const DialSetting &setting);\r
         void InitDialSettings(void);\r
         DialSetting &GetDialSetting();\r
+        bool IsFromSetCardView(void) const;\r
+        void SetFromSetCardView(bool isFrom);\r
+        void SetFromCardId(uint8_t cardId);\r
+        uint8_t GetFromCardId(void);\r
     private:\r
         void InitDialSettingDefault(void);\r
         MainModel();\r
@@ -53,6 +57,8 @@ namespace OHOS {
         CardId cardSettings[CARD_SETTING_COUNT_MAX] = { MAX_CARD };\r
         uint8_t cardSettingCount{0};\r
         DialSetting dialSetting;\r
+        bool isFromSetCardView{false};\r
+        uint8_t fromCardId{MAX_CARD};\r
     };\r
 }\r
 \r
index 2192994..2f93189 100644 (file)
 #include "MainModel.h"
 #include "components/ui_swipe_view.h"
 #include "components/ui_view.h"
-#include "CompassView.h"
-#include "CompassPresenter.h"
+#include "MainCompassView.h"
+#include "MainCompassPresenter.h"
 #include "PlayersView.h"
 #include "HeartRateView.h"
 #include "swipe_effect/zoom_effect.h"
 
-using namespace std;
 
 namespace OHOS
 {
@@ -53,18 +52,18 @@ namespace OHOS
     {
     public:
         MainPresenterSample();
-        virtual ~MainPresenterSample();
+    ~MainPresenterSample() override;
         static MainPresenterSample *GetInstance(void);
 
         void OnStart() override;
         void OnPause() override;
         void OnResume() override;
         void OnStop() override;
-        virtual void Notify() override;
+    void Notify() override;
         bool OnClick(UIView &view, const ClickEvent &event) override;
         bool OnDrag(UIView &view, const DragEvent &event) override;
         bool OnLongPress(UIView &view, const LongPressEvent &event) override;
-        virtual void OnSwipe(UISwipeView &view) override;
+    void OnSwipe(UISwipeView& view) override;
         void SetPage(int8_t id);
         void SetTaskPeroid(CardId cardId);
         void setCallback(ZoomEffect *callback)
@@ -85,6 +84,10 @@ namespace OHOS
 
         void get_memcheck();
 
+        bool IsFromSetCardView(void) const;
+        void SetFromSetCardView(bool isFrom);
+        uint8_t GetFromCardId(void);
+
     private:
         void ProcessDataNotify(void);
         void SetCircleProgress(void);
index fb86752..daa3e73 100644 (file)
@@ -44,7 +44,7 @@ namespace OHOS
     {
     public:
         MainViewSample();
-        virtual ~MainViewSample();
+        ~MainViewSample() override;
         static MainViewSample *GetInstance(void);
         void OnStart() override;
         void OnSetUpView() override;
@@ -85,7 +85,7 @@ namespace OHOS
                 SetPage(mainClockView->GetViewIndex());
             }
         }
-
+    void SwitchToCard(uint8_t cardId);
         bool IsMainClockPage(void);
         bool IsPullUpViewPage(void);
         void SetDragFg(bool continFg);
@@ -118,8 +118,8 @@ namespace OHOS
         void VertViewLoad(void);
         void HorViewLoad(void);
 
-        UICardPage *InitWathOffDial(DialSetting &setting);
-        UICardPage *InitWathDial(DialSetting &setting);
+    UICardPage *InitWatchOffDial(DialSetting &setting);
+    UICardPage *InitWatchDial(DialSetting &setting);
     };
 } // namespace OHOS
 #endif // MAIN_VIEW_SAMPLE_H
index 7c2bd82..b6d37a3 100644 (file)
@@ -24,6 +24,7 @@ public:
     ModelListenerSample();
     virtual ~ModelListenerSample();
     virtual void Notify(void) = 0;
+    virtual void OnTickEvent(void) {};
     void Callback();
 };
 }
index caadd67..660b261 100644 (file)
@@ -50,7 +50,7 @@ namespace OHOS
     {
     public:
         PullUpDownView();
-        virtual ~PullUpDownView();
+        ~PullUpDownView() override;
         static PullUpDownView *GetInstance(void);
         bool InitView();
         void PreLoad(void) override;
index ded3418..d3ad91e 100644 (file)
@@ -5,7 +5,7 @@
 #ifndef DIAL_ARC_LABEL_VIEW_H
 #define DIAL_ARC_LABEL_VIEW_H
 
-#include "stdint.h"
+#include <cstdint>
 #include "DialView.h"
 #include "components/ui_arc_label.h"
 
@@ -13,7 +13,7 @@ namespace OHOS {
 class DialArcLabelView : public UIArcLabel, public DialView {
 public:
     DialArcLabelView();
-    virtual ~DialArcLabelView();
+    ~DialArcLabelView() override;
 
     bool SetText(const char* text);
     bool SetTextWithWildcard(const char* text);
index eab0298..2967522 100644 (file)
@@ -12,7 +12,7 @@ namespace OHOS {
 class DialArcProgressView : public UICircleProgress, public DialView {
 public:
     DialArcProgressView();
-    virtual ~DialArcProgressView();
+    ~DialArcProgressView() override;
     void HandleFloatData(float data) override;
 private:
     int32_t value_ = -1;
index 1154955..ef71b9b 100644 (file)
@@ -12,7 +12,6 @@
 #include "heap_base.h"
 #include "OnDialDataUpdateListener.h"
 
-using namespace std;
 namespace OHOS {
 class DialBaseModel : public HeapBase {
 public:
@@ -38,7 +37,7 @@ public:
     /* *
      * @brief Get dial data of text type
      */
-    virtual bool GetDialTextData(DialDataType& type, string*& out, int16_t& strNum)
+    virtual bool GetDialTextData(DialDataType& type, std::string*& out, int16_t& strNum)
     {
         return false;
     }
index e4aca93..b777722 100644 (file)
@@ -12,7 +12,7 @@ namespace OHOS {
 class DialBoxProgressView : public UIBoxProgress, public DialView {
 public:
     DialBoxProgressView();
-    virtual ~DialBoxProgressView();
+    ~DialBoxProgressView() override;
     static DialBoxProgressView* GetInstance()
     {
         static DialBoxProgressView instance;
index 7a67038..443c325 100644 (file)
@@ -5,7 +5,7 @@
 #ifndef DIAL_DIGITAL_IMG_VIEW_H
 #define DIAL_DIGITAL_IMG_VIEW_H
 
-#include "stdint.h"
+#include <cstdint>
 #include "DialView.h"
 #include "components/ui_image_view.h"
 #include "gfx_utils/graphic_math.h"
@@ -22,7 +22,7 @@ enum class ImgAlign {
 class DialDigitalImgView : public UIImageView, public DialView {
 public:
     DialDigitalImgView();
-    virtual ~DialDigitalImgView();
+    ~DialDigitalImgView() override;
 
     void HandleFloatData(float data) override;
 
index f73c2b8..3125ab0 100644 (file)
@@ -5,7 +5,7 @@
 #ifndef DIAL_KALEIDOSCOPE_VIEW_H\r
 #define DIAL_KALEIDOSCOPE_VIEW_H\r
 #include "components/ui_kaleidoscope_view.h"\r
-namespace OHOS{\r
+namespace OHOS {\r
 using DialKaleidoscopeView = UIKaleidoscopeView;\r
 }\r
 #endif\r
index f53fbd4..355656e 100644 (file)
@@ -5,7 +5,7 @@
 #ifndef DIAL_LABEL_VIEW_H
 #define DIAL_LABEL_VIEW_H
 
-#include "stdint.h"
+#include <cstdint>
 #include "DialView.h"
 #include "components/ui_label.h"
 #include "components/ui_label_ext.h"
@@ -14,7 +14,7 @@ namespace OHOS {
 class DialLabelView : public UILabel, public DialView {
 public:
     DialLabelView();
-    virtual ~DialLabelView();
+    ~DialLabelView() override;
 
     bool SetText(const char* text);
     bool SetTextWithWildcard(const char* text);
index a7ebae5..3c3f8b9 100644 (file)
 
 #include "DialBaseModel.h"
 
-namespace OHOS
-{
-    class DialModelHeartRate : public DialBaseModel
+namespace OHOS {
+class DialModelHeartRate : public DialBaseModel {
+public:
+    DialModelHeartRate() {}
+    ~DialModelHeartRate() override {}
+    static DialModelHeartRate* GetInstance()
     {
-    public:
-        DialModelHeartRate() {}
-        virtual ~DialModelHeartRate() {}
-        static DialModelHeartRate *GetInstance()
-        {
-            static DialModelHeartRate instance;
-            return &instance;
-        }
-        bool GetDialFloatData(DialDataType &type, float &out) override;
-        void UpdateHeartRate(int16_t heartRate);
-        int GetHeartData(void);
+        static DialModelHeartRate instance;
+        return &instance;
+    }
+    bool GetDialFloatData(DialDataType& type, float& out) override;
+    void UpdateHeartRate(int16_t heartRate);
 
     private:
         float heartRate_ = 0; // 67.0: default heart value as reference
index 537b009..ed9f7f0 100644 (file)
 
 #include "DialBaseModel.h"
 
-namespace OHOS
+namespace OHOS {
 {
     class DialModelPower : public DialBaseModel
     {
     public:
         DialModelPower() {}
-        virtual ~DialModelPower() {}
+    ~DialModelPower() override {}
         static DialModelPower *GetInstance()
         {
             static DialModelPower instance;
index 4992777..e721c60 100644 (file)
@@ -14,7 +14,7 @@ namespace OHOS {
 class DialModelSteps : public DialBaseModel {
 public:
     DialModelSteps() {}
-    virtual ~DialModelSteps() {}
+    ~DialModelSteps() override {}
     static DialModelSteps* GetInstance()
     {
         static DialModelSteps instance;
index 6f4fb76..7da252b 100644 (file)
@@ -14,7 +14,7 @@ namespace OHOS {
 class DialModelTime : public DialBaseModel {
 public:
     DialModelTime() {}
-    virtual ~DialModelTime() {}
+    ~DialModelTime() override {}
     static DialModelTime* GetInstance()
     {
         static DialModelTime instance;
@@ -24,7 +24,7 @@ public:
     void UpdateTime();
 
 private:
-    struct tm tblock_;
+    struct tm *tblock_;
     uint16_t angleH_ = 0;
     uint16_t angleM_ = 0;
     uint16_t angleS_ = 0;
index 837b244..4fa2fbd 100644 (file)
@@ -5,7 +5,7 @@
 #ifndef DIAL_OPTION_IMG_VIEW_H
 #define DIAL_OPTION_IMG_VIEW_H
 
-#include "stdint.h"
+#include <cstdint>
 #include "DialView.h"
 #include "components/ui_image_view.h"
 
@@ -14,7 +14,7 @@ namespace OHOS {
 class DialOptionImgView : public UIImageView, public DialView {
 public:
     DialOptionImgView();
-    virtual ~DialOptionImgView();
+    ~DialOptionImgView() override;
 
     void HandleFloatData(float data) override;
 
index 23d49eb..e1fff0e 100644 (file)
@@ -5,7 +5,7 @@
 #ifndef DIAL_ROTATE_IMG_VIEW_H
 #define DIAL_ROTATE_IMG_VIEW_H
 
-#include "stdint.h"
+#include <cstdint>
 #include "DialView.h"
 #include "components/ui_image_view.h"
 #include "gfx_utils/graphic_math.h"
@@ -15,7 +15,7 @@ namespace OHOS {
 class DialRotateImgView : public UIImageView, public DialView {
 public:
     DialRotateImgView();
-    virtual ~DialRotateImgView();
+    ~DialRotateImgView() override;
 
     void HandleFloatData(float data) override;
 
index ef885b6..4800b71 100644 (file)
@@ -12,7 +12,7 @@ namespace OHOS {
 class DialSequenceImgView : public UIImageAnimatorView {
 public:
     DialSequenceImgView();
-    virtual ~DialSequenceImgView();
+    ~DialSequenceImgView() override;
 
     bool SetSequenceRes(const ImageAnimatorInfo* imgSrc, uint8_t imgNum);
 
index a405bd8..e1b48a0 100644 (file)
@@ -11,7 +11,7 @@ namespace OHOS {
 class DialStaticImgView : public UIImageView {
 public:
     DialStaticImgView();
-    virtual ~DialStaticImgView();
+    ~DialStaticImgView() override;
 };
 }
 #endif
index eca3227..7d4c140 100644 (file)
@@ -5,7 +5,7 @@
 #ifndef DIAL_VIDEO_VIEW
 #define DIAL_VIDEO_VIEW
 
-#include "stdint.h"
+#include <cstdint>
 #include "components/ui_lite_surface_view.h"
 #include "video_play_wrapper.h"
 
@@ -13,7 +13,7 @@ namespace OHOS {
 class DialVideoView : public UILiteSurfaceView {
 public:
     DialVideoView();
-    virtual ~DialVideoView();
+    ~DialVideoView() override;
     bool SetVideoRes(FILE* fp, uint32_t offset);
     bool StartPlay();
     bool ResumePlay();
index 5d3e76b..2a28997 100644 (file)
@@ -5,11 +5,12 @@
 #ifndef DIAL_VIEW_GROUP_H
 #define DIAL_VIEW_GROUP_H
 
-#include "DialDataBase.h"
 #include <unordered_map>
+#include "DialDataBase.h"
 #include "components/ui_view_group.h"
 #include "OnDialDataUpdateListener.h"
 #include "components/ui_card_page.h"
+#include "components/ui_kaleidoscope_view.h"
 #include "gfx_utils/list.h"
 #include "DialView.h"
 #include "DialVideoView.h"
@@ -19,7 +20,7 @@ namespace OHOS {
 class DialViewGroup : public UICardPage, public OnDialDataUpdateListener {
 public:
     DialViewGroup();
-    virtual ~DialViewGroup();
+    ~DialViewGroup() override;
 
     /**
     * @brief  Set dial resource path.
@@ -106,7 +107,10 @@ public:
     */
     void CoverEnd(bool isCovered) override;
 
-    void ComeBack();
+    /**
+    * @brief  This function is invoked when the function SetHorCurrentPage() is called.
+    */
+    void OnActive(void) override;
 
 private:
     void ProcessData(DialDataType type, DialView* view);
@@ -119,7 +123,7 @@ private:
     std::string filePath_;
     FILE* fp_ = nullptr;
     DialVideoView* video_ = nullptr;
-    DialSequenceImgView* sequence_ = nullptr;
+    UIKaleidoscopeView* kaleidoscope_ = nullptr;
 
     typedef struct {
         Rect area;
index 602586a..33bedbe 100644 (file)
@@ -32,7 +32,7 @@ public:
 
     bool RegisterDialDataListener(DialDataType type, OnDialDataUpdateListener* listener);
     bool UnRegisterDialDataListener(DialDataType type);
-    bool GetDialTextData(DialDataType& type, string*& out, int16_t& strNum);
+    bool GetDialTextData(DialDataType& type, std::string*& out, int16_t& strNum);
     bool GetDialFloatData(DialDataType& type, float& out);
     bool GetDialFloatData(DialDataType& type, float*& out, int16_t& len);
     DialBaseModel* GetModuleByType(DialDataType& type);
index 50bbd9c..ad7fb06 100644 (file)
@@ -24,8 +24,6 @@
 #include <fstream>
 #include "thread_adapter.h"
 
-using namespace std;
-
 namespace OHOS {
 HealthAllData g_healthData;
 
@@ -52,8 +50,8 @@ HealthModel *HealthModel::GetInstance(void)
 
 int HealthModel::SaveGlobalHealthToFile(void)
 {
-    ofstream outHealthFile;
-    outHealthFile.open(HEALTH_DATA_PATH, ios::out);
+    std::ofstream outHealthFile;
+    outHealthFile.open(HEALTH_DATA_PATH, std::ios::out);
     if (outHealthFile.is_open() == 0) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "open HEALTH_DATA_PATH failure!");
         outHealthFile.close();
@@ -107,7 +105,7 @@ void HealthModel::PushHealthData(HealthMsg healthMsg)
 
 bool HealthModel::FetchedHealthData(HealthMsg *healthMsg)
 {
-    if (listHealth.IsEmpty() == true) {
+    if (listHealth.IsEmpty()) {
         return false;
     } else {
         MUTEX_Lock(g_healthDataMutex);
@@ -123,8 +121,8 @@ bool HealthModel::InitHealthData(void)
 {
     WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HealthModel::InitHealthData start");
     (void)memset_s(&g_healthData, sizeof(HealthAllData), 0, sizeof(HealthAllData));
-    ifstream inHealthFile;
-    inHealthFile.open(HEALTH_DATA_PATH, ios::in);
+    std::ifstream inHealthFile;
+    inHealthFile.open(HEALTH_DATA_PATH, std::ios::in);
     if (!inHealthFile.is_open()) {
         WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "open HEALTH_DATA_PATH failure!");
         inHealthFile.close();
index fec1e64..0b2beb7 100644 (file)
@@ -235,4 +235,24 @@ namespace OHOS
     {\r
         return dialSetting;\r
     }\r
+\r
+    bool MainModel::IsFromSetCardView(void) const\r
+    {\r
+        return isFromSetCardView;\r
+    }\r
+\r
+    void MainModel::SetFromSetCardView(bool isFrom)\r
+    {\r
+        isFromSetCardView = isFrom;\r
+    }\r
+\r
+    void MainModel::SetFromCardId(uint8_t cardId)\r
+    {\r
+        fromCardId = cardId;\r
+    }\r
+\r
+    uint8_t MainModel::GetFromCardId(void)\r
+    {\r
+        return fromCardId;\r
+    }\r
 }
\ No newline at end of file
index 881aba2..38b74f7 100644 (file)
@@ -570,4 +570,19 @@ namespace OHOS
         }
     }
 
+    bool MainPresenterSample::IsFromSetCardView(void) const
+    {
+        return MainModel::GetInstance().IsFromSetCardView();
+    }
+
+    void MainPresenterSample::SetFromSetCardView(bool isFrom)
+    {
+        MainModel::GetInstance().SetFromSetCardView(isFrom);
+    }
+
+    uint8_t MainPresenterSample::GetFromCardId(void)
+    {
+        return MainModel::GetInstance().GetFromCardId();
+    }
+
 }
\ No newline at end of file
index 499a778..298289e 100644 (file)
@@ -195,7 +195,15 @@ namespace OHOS
         mainSwipeGroup->SetLoopState(true);
         mainSwipeGroup->EnableScreenCap(true);
         mainSwipeGroup->RegisterSwipeCallback(callback);
-        SwitchToClockPage();
+        if (presenter_->IsFromSetCardView())
+        {
+            presenter_->SetFromSetCardView(false);
+            SwitchToCard(presenter_->GetFromCardId());
+        }
+        else
+        {
+            SwitchToClockPage();
+        }
         SetContainerView(mainSwipeGroup);
     }
 
@@ -504,5 +512,17 @@ namespace OHOS
         /* pageId 与CardId 没有对应关系,需要一次转换 */
         return cardSettings[pageId];
     }
+    
+    void MainViewSample::SwitchToCard(uint8_t cardId)
+    {
+        if ((cardId < MAX_CARD) && (recordCard[cardId] != nullptr))
+        {
+            SetPage(recordCard[cardId]->GetViewIndex());
+        }
+        else
+        {
+            SwitchToClockPage();
+        }
+    }
 
 }
index 7770f16..c3cbafb 100644 (file)
@@ -12,7 +12,7 @@ static constexpr int16_t JPEG_HEIGHT_DIVISOR = 2;
 static constexpr int16_t JPEG_WIDTH_BYTE_ALIGNMENT = 128;
 static constexpr int16_t JPEG_HEIGHT_BYTE_ALIGNMENT = 16;
 static constexpr int16_t BUFFER_QUEUE_SIZE = 2;
-static constexpr int16_t STRIDE_ALIGNMENT_VALUE = 64;
+static constexpr int16_t STRIDE_ALIGNMENT_VALUE = 128;
 
 #ifdef SUPPORT_AT_OHOSFWK
 static MediaVideoPlay *g_videoPlay = nullptr;
@@ -50,7 +50,6 @@ DialVideoView::~DialVideoView()
     deregisterNotifyScreenStatus(ScreenStatusNotify);
 #endif
     if (videoPlayer_ != nullptr) {
-        videoPlayer_->StopVideoPlay();
         delete videoPlayer_;
     }
 }
@@ -87,6 +86,7 @@ bool DialVideoView::SetVideoRes(FILE* fp, uint32_t offset)
     }
 
     videoPlayer_ = new MediaVideoPlay(surface, fd, offset_, true);
+    videoPlayer_->SetSyncExitMode(true);
 #ifdef SUPPORT_AT_OHOSFWK
     g_videoPlay = videoPlayer_;
     registerNotifyScreenStatus(ScreenStatusNotify);
index 6400c97..2eea946 100644 (file)
 #include "DialBinParser.h"
 #include "ModelDialDataFactory.h"
 #include "common/low_power_manager.h"
-#include "wearable_log.h"
 
-namespace OHOS
+namespace OHOS {
+DialViewGroup::DialViewGroup(void)
 {
-    DialViewGroup::DialViewGroup(void)
-    {
-        SetTouchable(true);
-        SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
-        SetCoverable(true);
-    }
-
-    DialViewGroup::~DialViewGroup(void)
-    {
-        ClearDial();
-    }
-
-    void DialViewGroup::ClearDial()
-    {
-        ListNode<DialDataType> *passiveNode = passiveUpdateTypes_.Head();
-        while (passiveNode != passiveUpdateTypes_.End())
-        {
-            DialDataType type = passiveNode->data_;
-            ModelDialDataFactory::GetInstance().UnRegisterDialDataListener(type);
-            passiveNode = passiveNode->next_;
-        }
-        passiveUpdateTypes_.Clear();
-
-        ListNode<DialClick> *clickNode = dialClicks_.Head();
-        while (clickNode != dialClicks_.End())
-        {
-            DialClick click = clickNode->data_;
-            if (!click.isSliceType)
-            {
-                UIFree(click.bundleName);
-            }
-            clickNode = clickNode->next_;
-        }
-        dialClicks_.Clear();
+    SetTouchable(true);
+    SetPosition(0, 0, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+    SetCoverable(true);
+}
 
-        periodicUpdateTypes_.Clear();
+DialViewGroup::~DialViewGroup(void)
+{
+    if (kaleidoscope_ != nullptr) {
+        kaleidoscope_->ClearFocus();
+        kaleidoscope_ = nullptr;
+    }
+    ClearDial();
+}
 
-        dataTypeMap_.clear();
+void DialViewGroup::ClearDial()
+{
+    ListNode<DialDataType>* passiveNode = passiveUpdateTypes_.Head();
+    while (passiveNode != passiveUpdateTypes_.End()) {
+        DialDataType type = passiveNode->data_;
+        ModelDialDataFactory::GetInstance().UnRegisterDialDataListener(type);
+        passiveNode = passiveNode->next_;
+    }
+    passiveUpdateTypes_.Clear();
 
-        ListNode<UIView *> *viewNode = dialViews_.Head();
-        while (viewNode != dialViews_.End())
-        {
-            UIViewGroup::Remove(viewNode->data_);
-            delete (viewNode->data_);
-            viewNode = viewNode->next_;
+    ListNode<DialClick>* clickNode = dialClicks_.Head();
+    while (clickNode != dialClicks_.End()) {
+        DialClick click = clickNode->data_;
+        if (!click.isSliceType) {
+            UIFree(click.bundleName);
         }
-        dialViews_.Clear();
-
-        period_ = DEFAULT_TASK_PERIOD;
+        clickNode = clickNode->next_;
+    }
+    dialClicks_.Clear();
 
-        video_ = nullptr;
+    periodicUpdateTypes_.Clear();
 
-        sequence_ = nullptr;
+    dataTypeMap_.clear();
 
-        if (fp_ != nullptr)
-        {
-            fclose(fp_);
-            fp_ = nullptr;
-        }
+    ListNode<UIView*>* viewNode = dialViews_.Head();
+    while (viewNode != dialViews_.End()) {
+        UIViewGroup::Remove(viewNode->data_);
+        delete(viewNode->data_);
+        viewNode = viewNode->next_;
     }
+    dialViews_.Clear();
 
-    void DialViewGroup::SetDial(std::string filePath)
-    {
-        ClearDial();
-        resPreloaded_ = false;
-        filePath_ = filePath;
-    }
+    period_ = DEFAULT_TASK_PERIOD;
 
-    void DialViewGroup::PreLoad(void)
-    {
-        if (!resPreloaded_)
-        {
-            fp_ = fopen(filePath_.c_str(), "rb");
-            if (fp_ == nullptr)
-            {
-                GRAPHIC_LOGE("cannot open file: %s\n", filePath_.c_str());
-                return;
-            }
-            DialBinParser::GetInstance()->UpdateDial(filePath_, fp_, this);
-            if (video_ != nullptr)
-            {
-                video_->StartPlay();
-            }
-            resPreloaded_ = true;
-        }
+    video_ = nullptr;
+
+    if (fp_ != nullptr) {
+        fclose(fp_);
+        fp_ = nullptr;
     }
+}
+
+void DialViewGroup::SetDial(std::string filePath)
+{
+    ClearDial();
+    resPreloaded_ = false;
+    filePath_ = filePath;
+}
 
-    void DialViewGroup::ProcessData(DialDataType type, DialView *view)
-    {
-        int16_t value = static_cast<int16_t>(type) >> 13; // 13: bit shift
-        if (value == 0)
-        { // 0: float
-            float floatData = 0;
-            ModelDialDataFactory::GetInstance().GetDialFloatData(type, floatData);
-            view->HandleFloatData(floatData);
+void DialViewGroup::PreLoad(void)
+{
+    if (!resPreloaded_) {
+        fp_ = fopen(filePath_.c_str(), "rb");
+        if (fp_ == nullptr) {
+            GRAPHIC_LOGE("cannot open file: %s\n", filePath_.c_str());
+            return;
         }
-        else if (value == 1)
-        { // 1: text
-            std::string *textData = nullptr;
-            int16_t num = 0;
-            ModelDialDataFactory::GetInstance().GetDialTextData(type, textData, num);
-            view->HandleTextData(textData, num);
+        DialBinParser::GetInstance()->UpdateDial(filePath_, fp_, this);
+        if (video_ != nullptr) {
+            video_->StartPlay();
         }
-        else if (value == 2)
-        { // 2: multifloat
-            float *floatsData = nullptr;
-            int16_t num = 0;
-            ModelDialDataFactory::GetInstance().GetDialFloatData(type, floatsData, num);
-            view->HandleFloatData(floatsData, num);
+
+        if (kaleidoscope_ != nullptr) {
+            kaleidoscope_->RequestFocus();
+            kaleidoscope_->StartRotateAnimator();
         }
+        resPreloaded_ = true;
     }
+}
 
-    void DialViewGroup::AddView(UIView *view, bool isDialVideoView)
-    {
-        if (view == nullptr)
-        {
-            GRAPHIC_LOGE("Parameter is nullptr.\n");
-            return;
-        }
-        dialViews_.PushBack(view);
-        Add(view);
-
-        if (isDialVideoView)
-        {
-            if (video_ != nullptr)
-            {
-                GRAPHIC_LOGE("Already added a video view.\n");
-                return;
-            }
-            video_ = reinterpret_cast<DialVideoView *>(view);
-        }
+void DialViewGroup::ProcessData(DialDataType type, DialView* view)
+{
+    int16_t value = static_cast<int16_t>(type) >> 13; // 13: bit shift
+    if (value == 0) { // 0: float
+        float floatData = 0;
+        ModelDialDataFactory::GetInstance().GetDialFloatData(type, floatData);
+        view->HandleFloatData(floatData);
+    } else if (value == 1) { // 1: text
+        std::string* textData = nullptr;
+        int16_t num = 0;
+        ModelDialDataFactory::GetInstance().GetDialTextData(type, textData, num);
+        view->HandleTextData(textData, num);
+    } else if (value == 2) { // 2: multifloat
+        float* floatsData = nullptr;
+        int16_t num = 0;
+        ModelDialDataFactory::GetInstance().GetDialFloatData(type, floatsData, num);
+        view->HandleFloatData(floatsData, num);
     }
+}
 
-    void DialViewGroup::AddView(DialDataType type, DialView *view, bool isPeriodic)
-    {
-        if (view == nullptr)
-        {
-            GRAPHIC_LOGE("Parameter is nullptr.\n");
-            return;
-        }
+void DialViewGroup::AddView(UIView* view, bool isDialVideoView)
+{
+    if (view == nullptr) {
+        GRAPHIC_LOGE("Parameter is nullptr.\n");
+        return;
+    }
+    dialViews_.PushBack(view);
+    Add(view);
 
-        dataTypeMap_.insert(std::make_pair(static_cast<int16_t>(type), view));
-        if (isPeriodic)
-        {
-            periodicUpdateTypes_.PushBack(type);
-        }
-        else
-        {
-            ModelDialDataFactory::GetInstance().RegisterDialDataListener(type, this);
-            passiveUpdateTypes_.PushBack(type);
-        }
-        dialViews_.PushBack(dynamic_cast<UIView *>(view));
-        ProcessData(type, view);
-        Add(dynamic_cast<UIView *>(view));
+    if (view->GetViewType() == UI_KALEIDOSCOPE_VIEW) {
+        kaleidoscope_ = dynamic_cast<UIKaleidoscopeView*>(view);
     }
 
-    void DialViewGroup::SetPeriod(uint32_t period)
-    {
-        if (period_ < DEFAULT_TASK_PERIOD)
-        {
-            period_ = DEFAULT_TASK_PERIOD;
-        }
-        else
-        {
-            period_ = period;
+    if (isDialVideoView) {
+        if (video_ != nullptr) {
+            GRAPHIC_LOGE("Already added a video view.\n");
+            return;
         }
+        video_ = reinterpret_cast<DialVideoView*>(view);
     }
+}
 
-    uint32_t DialViewGroup::GetPeriod()
-    {
-        return period_;
+void DialViewGroup::AddView(DialDataType type, DialView* view, bool isPeriodic)
+{
+    if (view == nullptr) {
+        GRAPHIC_LOGE("Parameter is nullptr.\n");
+        return;
     }
 
-    void DialViewGroup::UpdateViewsByPeriodicUpdateData()
-    {
-        ListNode<DialDataType> *node = periodicUpdateTypes_.Head();
-        while (node != periodicUpdateTypes_.End())
-        {
-            DialDataType type = node->data_;
-            auto iter = dataTypeMap_.find(static_cast<int16_t>(type));
-            if (iter != dataTypeMap_.end())
-            {
-                ProcessData(type, iter->second);
-            }
-            node = node->next_;
-        }
-        if (LowPowerManager::GetInstance()->IsLiteSurfaceInRootView())
-        {
-            Invalidate();
-        }
+    dataTypeMap_.insert(std::make_pair(static_cast<int16_t>(type), view));
+    if (isPeriodic) {
+        periodicUpdateTypes_.PushBack(type);
+    } else {
+        ModelDialDataFactory::GetInstance().RegisterDialDataListener(type, this);
+        passiveUpdateTypes_.PushBack(type);
     }
+    dialViews_.PushBack(dynamic_cast<UIView*>(view));
+    ProcessData(type, view);
+    Add(dynamic_cast<UIView*>(view));
+}
 
-    void DialViewGroup::OnDialFloatDataUpdate(DialDataType type, float data)
-    {
-        auto iter = dataTypeMap_.find(static_cast<int16_t>(type));
-        if (iter != dataTypeMap_.end())
-        {
-            DialView *view = iter->second;
-            view->HandleFloatData(data);
-        }
+void DialViewGroup::SetPeriod(uint32_t period)
+{
+    if (period_ < DEFAULT_TASK_PERIOD) {
+        period_ = DEFAULT_TASK_PERIOD;
+    } else {
+        period_ = period;
     }
+}
+
+uint32_t DialViewGroup::GetPeriod()
+{
+    return period_;
+}
 
-    void DialViewGroup::OnDialFloatDataUpdate(DialDataType type, const float *data, uint16_t num)
-    {
+void DialViewGroup::UpdateViewsByPeriodicUpdateData()
+{
+    ListNode<DialDataType>* node = periodicUpdateTypes_.Head();
+    while (node != periodicUpdateTypes_.End()) {
+        DialDataType type = node->data_;
         auto iter = dataTypeMap_.find(static_cast<int16_t>(type));
-        if (iter != dataTypeMap_.end())
-        {
-            DialView *view = iter->second;
-            view->HandleFloatData(data, num);
+        if (iter != dataTypeMap_.end()) {
+            ProcessData(type, iter->second);
         }
+        node = node->next_;
+    }
+    if (LowPowerManager::GetInstance()->IsLiteSurfaceInRootView()) {
+        Invalidate();
     }
+}
 
-    void DialViewGroup::OnDialTextDataUpdate(DialDataType type, const std::string *data, uint16_t num)
-    {
-        auto iter = dataTypeMap_.find(static_cast<int16_t>(type));
-        if (iter != dataTypeMap_.end())
-        {
-            DialView *view = iter->second;
-            view->HandleTextData(data, num);
-        }
+void DialViewGroup::OnDialFloatDataUpdate(DialDataType type, float data)
+{
+    auto iter = dataTypeMap_.find(static_cast<int16_t>(type));
+    if (iter != dataTypeMap_.end()) {
+        DialView* view = iter->second;
+        view->HandleFloatData(data);
+    }
+}
+
+void DialViewGroup::OnDialFloatDataUpdate(DialDataType type, const float* data, uint16_t num)
+{
+    auto iter = dataTypeMap_.find(static_cast<int16_t>(type));
+    if (iter != dataTypeMap_.end()) {
+        DialView* view = iter->second;
+        view->HandleFloatData(data, num);
     }
+}
 
-    void DialViewGroup::AddDialClick(Rect &rect, const char *bundleName)
-    {
-        if (bundleName == nullptr)
-        {
-            return;
-        }
-        uint32_t len = static_cast<uint32_t>(strlen(bundleName));
-        char *name = static_cast<char *>(UIMalloc(++len));
-        if (name == nullptr)
-        {
-            return;
-        }
-        if (memcpy_s(name, len, bundleName, len) != EOK)
-        {
-            UIFree(name);
-            name = nullptr;
-            return;
-        }
-        name[len] = '\0';
-        DialClick click = {rect, false, {.bundleName = name}};
-        dialClicks_.PushBack(click);
+void DialViewGroup::OnDialTextDataUpdate(DialDataType type, const std::string* data, uint16_t num)
+{
+    auto iter = dataTypeMap_.find(static_cast<int16_t>(type));
+    if (iter != dataTypeMap_.end()) {
+        DialView* view = iter->second;
+        view->HandleTextData(data, num);
     }
+}
 
-    void DialViewGroup::AddDialClick(Rect &rect, uint32_t sliceId)
-    {
-        if (sliceId == 0)
-        {
-            return;
-        }
+void DialViewGroup::AddDialClick(Rect& rect, const char* bundleName)
+{
+    if (bundleName == nullptr) {
+        return;
+    }
+    uint32_t len = static_cast<uint32_t>(strlen(bundleName));
+    char* name = static_cast<char*>(UIMalloc(++len));
+    if (name == nullptr) {
+        return;
+    }
+    if (memcpy_s(name, len, bundleName, len) != EOK) {
+        UIFree(name);
+        name = nullptr;
+        return;
+    }
+    name[len] = '\0';
+    DialClick click = {rect, false, {.bundleName = name}};
+    dialClicks_.PushBack(click);
+}
+
+void DialViewGroup::AddDialClick(Rect& rect, uint32_t sliceId)
+{
+    if (sliceId == 0) {
+        return;
+    }
+
+    DialClick click = {rect, true, {.sliceId = sliceId}};
+    dialClicks_.PushBack(click);
+}
 
-        DialClick click = {rect, true, {.sliceId = sliceId}};
-        dialClicks_.PushBack(click);
-    }
-
-    bool DialViewGroup::OnClickEvent(const ClickEvent &event)
-    {
-        Point point = event.GetCurrentPos();
-        ListNode<DialClick> *node = dialClicks_.Head();
-        while (node != dialClicks_.End())
-        {
-            DialClick dialClick = node->data_;
-            if (dialClick.area.IsContains(point))
-            {
-                if (dialClick.isSliceType)
-                {
-                    WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClickEvent %d", dialClick.sliceId);
-                    NativeAbility::GetInstance().ChangeSlice(dialClick.sliceId);
-                }
-                else
-                {
+bool DialViewGroup::OnClickEvent(const ClickEvent& event)
+{
+    Point point = event.GetCurrentPos();
+    ListNode<DialClick>* node = dialClicks_.Head();
+    while (node != dialClicks_.End()) {
+        DialClick dialClick = node->data_;
+        if (dialClick.area.IsContains(point)) {
+            if (dialClick.isSliceType) {
+                NativeAbility::GetInstance().ChangeSlice(dialClick.sliceId);
+            } else {
 #ifdef JS_ENABLE
-                    StartJsApp(dialClick.bundleName);
+                StartJsApp(dialClick.bundleName);
 #endif
-                }
-                return true;
             }
-            node = node->next_;
+            return true;
         }
-        return false;
+        node = node->next_;
     }
+    return false;
+}
 
-    void DialViewGroup::ScrollBegin(bool isActive)
-    {
-        if (video_ == nullptr)
-        {
-            return;
-        }
-        if (video_->IsPlayed())
-        {
-            video_->PausePlay();
+void DialViewGroup::ScrollBegin(bool isActive)
+{
+    if (kaleidoscope_ != nullptr) {
+        if (isActive) {
+            kaleidoscope_->ClearFocus();
+            kaleidoscope_->StopRotateAnimator();
         }
+        return;
     }
 
-    void DialViewGroup::ScrollEnd(bool isActive)
-    {
-        if (video_ == nullptr)
-        {
-            return;
-        }
+    if (video_ == nullptr) {
+        return;
+    }
+    if (video_->IsPlayed()) {
+        video_->PausePlay();
+    }
+}
 
-        if (isActive)
-        {
-            if (video_->IsPaused())
-            {
-                video_->ResumePlay();
-            }
-            else if (video_->IsStopped())
-            {
-                video_->StartPlay();
-            }
+void DialViewGroup::ScrollEnd(bool isActive)
+{
+    if (kaleidoscope_ != nullptr) {
+        if (isActive) {
+            kaleidoscope_->StartRotateAnimator();
+            kaleidoscope_->RequestFocus();
         }
+        return;
     }
 
-    void DialViewGroup::CoverBegin(bool isCovered)
-    {
-        if (video_ == nullptr)
-        {
-            return;
-        }
+    if (video_ == nullptr) {
+        return;
+    }
 
-        if (video_->IsPlayed())
-        {
-            video_->PausePlay();
+    if (isActive) {
+        if (video_->IsPaused()) {
+            video_->ResumePlay();
+        } else if (video_->IsStopped()) {
+            video_->StartPlay();
+        }
+    } else {
+        if (video_->IsPaused() || video_->IsPlayed()) {
+            video_->StopPlay();
         }
+        ClearCache();
     }
+}
 
-    void DialViewGroup::CoverEnd(bool isCovered)
-    {
-        if (video_ == nullptr)
-        {
-            return;
+void DialViewGroup::CoverBegin(bool isCovered)
+{
+    if (kaleidoscope_ != nullptr) {
+        if (!isCovered) {
+            kaleidoscope_->StopRotateAnimator();
+            kaleidoscope_->ClearFocus();
         }
-        if (!isCovered)
-        {
-            if (video_->IsPaused())
-            {
-                video_->ResumePlay();
-            }
-            else if (video_->IsStopped())
-            {
+        return;
+    }
 
-                video_->StartPlay();
-            }
+    if (video_ == nullptr) {
+        return;
+    }
+
+    if (video_->IsPlayed()) {
+        video_->PausePlay();
+    }
+}
+
+void DialViewGroup::CoverEnd(bool isCovered)
+{
+    if (kaleidoscope_ != nullptr) {
+        if (!isCovered) {
+            kaleidoscope_->RequestFocus();
+            kaleidoscope_->StartRotateAnimator();
         }
+        return;
     }
-    void DialViewGroup::ComeBack()
-    {
-        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ComeBack");
-        if (video_ != nullptr)
-        {
-            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "video_");
-            if (video_->IsPaused())
-            {
-                video_->ResumePlay();
-            }
-            else if (video_->IsStopped())
-            {
-                video_->StartPlay();
-            }
+    if (video_ == nullptr) {
+        return;
+    }
+    if (!isCovered) {
+        if (video_->IsPaused()) {
+            video_->ResumePlay();
+        } else if (video_->IsStopped()) {
+            video_->StartPlay();
         }
     }
 }
+
+void DialViewGroup::OnActive(void)
+{
+    if (video_ != nullptr) {
+        if (video_->IsPaused()) {
+            video_->ResumePlay();
+        } else if (video_->IsStopped()) {
+            video_->StartPlay();
+        }
+    } else if (kaleidoscope_ != nullptr) {
+        kaleidoscope_->RequestFocus();
+        kaleidoscope_->StartRotateAnimator();
+    }
+}
+}
index 9d02e69..d17de5b 100644 (file)
@@ -7,7 +7,7 @@
 
 #include "ModelDialDataFactory.h"
 namespace OHOS {
-bool ModelDialDataFactory::GetDialTextData(DialDataType& type, string*& out, int16_t& strNum)
+bool ModelDialDataFactory::GetDialTextData(DialDataType& type, std::string*& out, int16_t& strNum)
 {
     DialBaseModel* model = GetModuleByType(type);
     if (model == nullptr) {
index 6e54b0a..b2978d1 100644 (file)
@@ -578,6 +578,17 @@ int32_t DialBinParser::ParserDialVideo(FILE* fp)
     view->SetPosition(data->rect.x, data->rect.y, data->rect.w, data->rect.h);\r
     view->SetSurfaceColorkey(data->colorKey);\r
     view->SetVideoRes(fp, data->offset);\r
+    uint32_t resId = data->imgId | dirId_;\r
+    uint32_t curReadPt = ftell(fp);\r
+    ImageInfo* imgInfo = ImageCacheManager::GetInstance().LoadOneInMultiRes(resId,\r
+        file_, fp, false, imageOffset_);\r
+    if (imgInfo == nullptr) {\r
+        GRAPHIC_LOGE("[%s: %d]load img fail! file: %s resId: %x\n",\r
+            __FUNCTION__, __LINE__, file_.c_str(), resId);\r
+        return false;\r
+    }\r
+    fseek(fp, curReadPt, SEEK_SET);\r
+    view->SetPreview(imgInfo);\r
     dialGroup_->AddView(view, true);\r
     UIFree(data);\r
     return 0;\r
@@ -633,10 +644,8 @@ int32_t DialBinParser::ParserDialKaleidoscope(FILE* fp)
     fseek(fp, curReadPt, SEEK_SET);\r
 \r
     view->SetSrc(imgInfo);\r
-    view->RequestFocus();\r
     view->SetRotateEventFactor(data->crownRotateStep); // 0.2: rotate event factor\r
     view->SetRotateAnimatorValue(data->animatorRotateStep); // 0.1: rotate animator value\r
-    view->StartRotateAnimator();\r
     dialGroup_->AddView(view);\r
 \r
     UIFree(data);\r