增加遥控拍照Slice(还需要同步UI)
authorCaisking <3449750381@qq.com>
Wed, 8 May 2024 10:17:16 +0000 (18:17 +0800)
committerCaisking <3449750381@qq.com>
Wed, 8 May 2024 10:17:16 +0000 (18:17 +0800)
code/sdk/application/wearable/fd230app/CMakeLists.txt
code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h
code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h
code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h
code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp
code/sdk/application/wearable/fd230app/nativeui/applist/src/ApplistModel.cpp
code/sdk/application/wearable/fd230app/nativeui/config/include/ConfigModel.h
code/sdk/application/wearable/fd230app/nativeui/takephotos/include/TakephotosPresenter.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/takephotos/include/TakephotosView.h [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosPresenter.cpp [new file with mode: 0644]
code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosView.cpp [new file with mode: 0644]

index a78e488..e098e92 100644 (file)
@@ -424,12 +424,6 @@ set(SOURCES
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/record/src/RecordingModel.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/record/src/RecordingVolumeSettingView.cpp
 
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageAdapter.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageItemView.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageModel.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessagePresenter.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageView.cpp
-    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageCardView.cpp
 
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/rotate/src/RotateView.cpp   
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/rotate/src/RotatePresenter.cpp   
@@ -485,6 +479,18 @@ set(SOURCES
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/DialStaticImgView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/dial/parser/DialBinParser.cpp
 
+    #消息通知
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageAdapter.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageItemView.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageModel.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessagePresenter.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageView.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageCardView.cpp
+
+    #遥控拍照
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/takephotos/src/TakephotosPresenter.cpp
+    ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/takephotos/src/TakephotosView.cpp
+
     #Training
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingView.cpp
     ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingPresenter.cpp
index c28ea6f..1e61324 100644 (file)
@@ -65,14 +65,15 @@ typedef enum : uint16_t
     /* ----------------------------------- 录音 ----------------------------------- */
     VIEW_RECORD,
     /* ---------------------------------- 界面 ---------------------------------- */
-    VIEW_DIAL,     // 切换表盘
-    VIEW_MESSAGE,  // 信息通知
-    VIEW_BLOOD,    // 血氧监测
-    VIEW_ROTATE,   // 模拟表冠
-    VIEW_BLOODOXY, // 血氧饱和度界面
-    VIEW_HEART,    // 心率监测
-    VIEW_SAVEELE,  // 省电模式
-    VIEW_SAVEBAT,  // 省电模式界面
+    VIEW_DIAL,       // 切换表盘
+    VIEW_MESSAGE,    // 信息通知
+    VIEW_BLOOD,      // 血氧监测
+    VIEW_ROTATE,     // 模拟表冠
+    VIEW_BLOODOXY,   // 血氧饱和度界面
+    VIEW_HEART,      // 心率监测
+    VIEW_SAVEELE,    // 省电模式
+    VIEW_SAVEBAT,    // 省电模式界面
+    VIEW_TAKEPHOTOS, // 拍照界面
     /* ----------------------------------- 训练 ----------------------------------- */
     VIEW_TRAINING,        // 训练
     VIEW_TRAININGNOMAL,   // 正常训练开始界面(除骑行,健走,跑步外)
index c4c0ebe..d709912 100644 (file)
@@ -67,6 +67,8 @@ namespace OHOS
         void InitSaveEleSlice(void);
         void InitSaveBatSlice(void);
         void InitMessageSlice(void);
+        void InitTakePhotosSlice(void);
+
         /* ----------------------------------- 训练 ----------------------------------- */
         void InitTraingSlice(void);
         void InitTraingNomalSlice(void);
index 9f6e50f..c0b2c91 100644 (file)
@@ -264,6 +264,7 @@ namespace OHOS
     static constexpr const char *PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE = APP_LIST_PATH "/lighting.bin"; // 亮度调节
     static constexpr const char *PNG_APPLIST_SAVEELE_IMAGE = APP_LIST_PATH "/save.bin";             // 省电模式
     static constexpr const char *PNG_APPLIST_MESSAGE_IMAGE = APP_LIST_PATH "/message.bin";          // 消息通知
+    static constexpr const char *PNG_APPLIST_TACKEPHOTOS_IMAGE = APP_LIST_PATH "/assistant.bin";    // 遥控拍照
     static constexpr const char *PNG_APPLIST_BLUETOOTH_IMAGE = APP_LIST_PATH "/Bluetooth.bin";      // 蓝牙
     /* ---------------------------------- 快速训练 ---------------------------------- */
     static constexpr const char *PNG_TRAING_BOUTTONMORE_IMAGE = APP_RES_PATH "/Training/More.bin";
@@ -288,16 +289,16 @@ namespace OHOS
     static constexpr const char *PNG_WALK_SPEED_IMAGE = APP_RES_PATH "/SPEED_IMAGE.bin";
     static constexpr const char *PNG_WALK_STEPS_IMAGE = APP_RES_PATH "/STEPS_IMAGE.bin";
     /* ----------------------------------- 设置 ----------------------------------- */
-    static constexpr const char *PNG_SETTINGS_DISPLAY_BRIGHTNESS = APP_RES_PATH "/settings/SETTINGS_DISPLAY_BRIGHTNESS.bin"; // 显示与亮度
-    static constexpr const char *PNG_SETTINGS_NETWORKANDCALL = APP_RES_PATH "/settings/SETTINGS_NETWORKANDCALL.bin";         // 通话与网络
-    static constexpr const char *PNG_SETTINGS_BLUETOOTH = APP_RES_PATH "/settings/SETTINGS_BLUETOOTH.bin";                   // 蓝牙
-    static constexpr const char *PNG_SETTINGS_SOUND_VIBRATION = APP_RES_PATH "/settings/SETTINGS_SOUND_VIBRATION.bin";       // 声音与震动
-    static constexpr const char *PNG_SETTINGS_DISPLAY_MODE = APP_RES_PATH "/settings/SETTINGS_DISPLAY_MODE.bin";             // 显示方式
-    static constexpr const char *PNG_SETTINGS_MOTION_RECOGNITION = APP_RES_PATH "/settings/SETTINGS_MOTION_RECOGNITION.bin"; // 运动识别
-    static constexpr const char *PNG_SETTINGS_SYSTEM = APP_RES_PATH "/settings/SETTINGS_SYSTEM.bin";                         // 系统
-    static constexpr const char *PNG_SETTINGS_SHUTDOWN_AND_RESTART = APP_RES_PATH "/settings/SETTINGS_SHUTDOWN_AND_RESTART.bin";  // 关机和重启
-    static constexpr const char *PNG_SETTINGS_SETTTING_SHUTDOWN = APP_RES_PATH "/settings/SETTTING_SHUTDOWN.bin";            // 关机
-    static constexpr const char *PNG_SETTINGS_SETTTING_REBOOT = APP_RES_PATH "/settings/SETTTING_REBOOT.bin";                // 重启
+    static constexpr const char *PNG_SETTINGS_DISPLAY_BRIGHTNESS = APP_RES_PATH "/settings/SETTINGS_DISPLAY_BRIGHTNESS.bin";     // 显示与亮度
+    static constexpr const char *PNG_SETTINGS_NETWORKANDCALL = APP_RES_PATH "/settings/SETTINGS_NETWORKANDCALL.bin";             // 通话与网络
+    static constexpr const char *PNG_SETTINGS_BLUETOOTH = APP_RES_PATH "/settings/SETTINGS_BLUETOOTH.bin";                       // 蓝牙
+    static constexpr const char *PNG_SETTINGS_SOUND_VIBRATION = APP_RES_PATH "/settings/SETTINGS_SOUND_VIBRATION.bin";           // 声音与震动
+    static constexpr const char *PNG_SETTINGS_DISPLAY_MODE = APP_RES_PATH "/settings/SETTINGS_DISPLAY_MODE.bin";                 // 显示方式
+    static constexpr const char *PNG_SETTINGS_MOTION_RECOGNITION = APP_RES_PATH "/settings/SETTINGS_MOTION_RECOGNITION.bin";     // 运动识别
+    static constexpr const char *PNG_SETTINGS_SYSTEM = APP_RES_PATH "/settings/SETTINGS_SYSTEM.bin";                             // 系统
+    static constexpr const char *PNG_SETTINGS_SHUTDOWN_AND_RESTART = APP_RES_PATH "/settings/SETTINGS_SHUTDOWN_AND_RESTART.bin"; // 关机和重启
+    static constexpr const char *PNG_SETTINGS_SETTTING_SHUTDOWN = APP_RES_PATH "/settings/SETTTING_SHUTDOWN.bin";                // 关机
+    static constexpr const char *PNG_SETTINGS_SETTTING_REBOOT = APP_RES_PATH "/settings/SETTTING_REBOOT.bin";                    // 重启
     /* ---------------------------------- 消息中心 ---------------------------------- */
     static constexpr const char *PNG_Message_System = APP_RES_PATH "/message/system-icon.bin"; // 系统消息
     static constexpr const char *PNG_Message_Note = APP_RES_PATH "/message/message-icon.bin";  // 短信
index f27b9c2..40b7ebc 100644 (file)
 #include "displaybrightness/include/DisplayBrightnessPresenter.h"
 #include "displaybrightness/include/DisplayBrightnessView.h"
 
-#include "message/include/MessageAdapter.h"
-#include "message/include/MessageView.h"
-#include "message/include/MessageItemView.h"
 #include "message/include/MessageModel.h"
 #include "message/include/MessagePresenter.h"
 
+#include "takephotos/include/TakephotosView.h"
+#include "takephotos/include/TakephotosPresenter.h"
+
 #include "secondaryfunction/include/SecondaryFunctionPresenter.h"
 #include "secondaryfunction/include/SecondaryFunctionView.h"
 #include "secondaryfunction/include/FastTrainingPresenter.h"
@@ -291,25 +291,23 @@ namespace OHOS
         {VIEW_PHONECALLING, &NativeLauncher::InitPhoneCallingSlice},
         {VIEW_PHONECALLUP, &NativeLauncher::InitPhoneCallupSlice},
         {VIEW_PHONERING, &NativeLauncher::InitPhoneRingSlice},
-
-        /* -------------------------------------------------------------------------- */
         {VIEW_MAIN_PHONE, &NativeLauncher::InitMainPhoneSlice},
         {VIEW_DIALING_METHOD, &NativeLauncher::InitDialingMethodSlice},
-        /* -------------------------------------------------------------------------- */
 
         {VIEW_TEST, &NativeLauncher::InittestSlice},
 
-        /* ---------------------------------- 省电模式 ---------------------------------- */
+        /*省电模式*/
         {VIEW_SAVEELE, &NativeLauncher::InitSaveEleSlice},
         {VIEW_SAVEBAT, &NativeLauncher::InitSaveBatSlice},
-        /* ----------------------------------- 训练 ----------------------------------- */
+        /*遥控拍照*/
+        {VIEW_TAKEPHOTOS, &NativeLauncher::InitTakePhotosSlice},
+        /*训练*/
         {VIEW_TRAINING, &NativeLauncher::InitTraingSlice},               // 训练
         {VIEW_TRAININGNOMAL, &NativeLauncher::InitTraingNomalSlice},     // 正常训练初始界面
         {VIEW_TRAININGSET, &NativeLauncher::InitTraingSetSlice},         // 训练目标设置界面
         {VIEW_TRAININGCRAD, &NativeLauncher::InitTraingCardSlice},       // 训练卡片
         {VIEW_TRAININGENDDATA, &NativeLauncher::InitTraingEnddataSlice}, // 训练结束详细数据
         {VIEW_TRAINING_RECORD, &NativeLauncher::InitTraingRecordSlice},  // 训练记录
-
         {VIEW_TRAININGMORE, &NativeLauncher::InitTraingMoreSlice},       // 更多训练
         {VIEW_TRAININGLIMIT, &NativeLauncher::InitTraingLimitSlice},     // 极限训练
         {VIEW_TRAININGICE, &NativeLauncher::InitTraingIceSlice},         // 冰上训练
@@ -391,8 +389,8 @@ namespace OHOS
         TraingModel::GetInstance()->Init(); // 训练消息订阅
         // 初始化默认首页
         ScreenModels::GetInstance()->PreLoadAppimages();
-        //NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
-        // 注册长按重启或关机事件
+        // NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN);
+        //  注册长按重启或关机事件
         RebootModel::GetInstance()->RegisterLongPressEvents();
 
         // 开机检测充电状态
@@ -896,7 +894,7 @@ namespace OHOS
         NativeAbility::GetInstance().AddSliceProxy(VIEW_MAIN_PHONE, mainphoneview);
     }
 
-    //拨号方式
+    // 拨号方式
     void NativeLauncher::InitDialingMethodSlice(void)
     {
         WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitMainPhoneSlice");
@@ -1027,7 +1025,18 @@ namespace OHOS
         }
         NativeAbility::GetInstance().AddSliceProxy(VIEW_SAVEBAT, savebatview);
     }
-
+    // 拍照界面
+    void NativeLauncher::InitTakePhotosSlice(void)
+    {
+        WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitTakePhotosSlice");
+        SliceProxy *takephotosview = new AbilitySliceProxy<TakephotosView, TakephotosPresenter>;
+        if (takephotosview == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "takephotosview");
+            return;
+        }
+        NativeAbility::GetInstance().AddSliceProxy(VIEW_TAKEPHOTOS, takephotosview);
+    }
     // 查找手机
     void NativeLauncher::InitFindPhoneSlice(void)
     {
index d1504fe..3cd17ac 100644 (file)
 namespace OHOS
 {
     const AppItem g_nativeAppList[] = {
-        {VIEW_MAIN_ALARM, PNG_APPLIST_ALARM_IMAGE, PNG_APPLIST_ALARM_IMAGE, "闹钟",STR_ALARM, nullptr},
-        {VIEW_COMPASS, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_COMPASS_IMAGE, "指南针",STR_COMPASS, nullptr},
-        {VIEW_BLOODOXY, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_SPO2_IMAGE, "血氧",STR_BLOOD_OXYGEN, nullptr},
-        {VIEW_HEART, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_HEART_IMAGE, "心率",STR_HEART_RATE, nullptr},
-        {VIEW_WEATHER, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_WEATHER_IMAGE, "天气",STR_WEATHER, nullptr},
-        {VIEW_TRAINING, PNG_APPLIST_TRAINING_IMAGE, PNG_APPLIST_TRAINING_IMAGE, "训练",STR_TRAINING, nullptr},
-        {VIEW_TRAINING_RECORD, PNG_APPLIST_TRAINING_RECORD_IMAGE, PNG_APPLIST_TRAINING_RECORD_IMAGE, "训练记录",STR_TRAINING_RECORD, nullptr},
-        {VIEW_RECORD, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_RECORD_IMAGE, "录音",STR_RECORDING, nullptr},
-        {VIEW_CALLER_LOG, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_CALLLOG_IMAGE, "常用联系人",STR_FAVORITE_CONTACTS, nullptr},
-        {VIEW_MAIN_PHONE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, "电话",STR_PHONE, nullptr},
-        {VIEW_MAIN_STOPWATCH, PNG_APPLIST_STOPWATCH_IMAGE, PNG_APPLIST_STOPWATCH_IMAGE, "秒表",STR_STOPWATCH, nullptr},
-        {VIEW_MAIN_COUNTDOWN, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_COUNTDOWN_IMAGE, "计时器",STR_TIMER, nullptr},
-        {VIEW_FIND_PHONE, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_FINDPHONE_IMAGE, "查找手机",STR_FIND_PHONE, nullptr},
-        {VIEW_SET_DESKTOP, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, "显示方式",STR_DISPLAY_MODE, nullptr},
-        {VIEW_SET_CARD, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_CARDSET_IMAGE, "卡片管理",STR_CARD_MANAGEMENT, nullptr},
-        {VIEW_SET_DIAL, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_CHANGEDIAL_IMAGE,"更换表盘", STR_WATCH_FACE, nullptr},
-        {VIEW_CLASSIC_BLUETOOTH, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_BLUETOOTH_IMAGE, "蓝牙",STR_BLUETOOTH, nullptr},
-        {VIEW_DNOTDISTURB, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, "勿扰模式",STR_DO_NOT_DISTURB, nullptr},
-        {VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_FLASHLIGHT_IMAGE, "手电筒",STR_FLASHLIGHT, nullptr},
-        {VIEW_BRIGHTNESSLEVEL, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, "亮度调节",STR_BRIGHTNESS_ADJUSTMENT, nullptr},
-        {VIEW_SAVEELE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_SAVEELE_IMAGE, "省电模式",STR_POWER_SAVE_MODE, nullptr},
-        {VIEW_MESSAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_MESSAGE_IMAGE, "消息通知",STR_MESSAGE_NOTIFICATION, nullptr},
+        {VIEW_MAIN_ALARM, PNG_APPLIST_ALARM_IMAGE, PNG_APPLIST_ALARM_IMAGE, "闹钟", STR_ALARM, nullptr},
+        {VIEW_COMPASS, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_COMPASS_IMAGE, "指南针", STR_COMPASS, nullptr},
+        {VIEW_BLOODOXY, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_SPO2_IMAGE, "血氧", STR_BLOOD_OXYGEN, nullptr},
+        {VIEW_HEART, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_HEART_IMAGE, "心率", STR_HEART_RATE, nullptr},
+        {VIEW_WEATHER, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_WEATHER_IMAGE, "天气", STR_WEATHER, nullptr},
+        {VIEW_TRAINING, PNG_APPLIST_TRAINING_IMAGE, PNG_APPLIST_TRAINING_IMAGE, "训练", STR_TRAINING, nullptr},
+        {VIEW_TRAINING_RECORD, PNG_APPLIST_TRAINING_RECORD_IMAGE, PNG_APPLIST_TRAINING_RECORD_IMAGE, "训练记录", STR_TRAINING_RECORD, nullptr},
+        {VIEW_RECORD, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_RECORD_IMAGE, "录音", STR_RECORDING, nullptr},
+        {VIEW_CALLER_LOG, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_CALLLOG_IMAGE, "常用联系人", STR_FAVORITE_CONTACTS, nullptr},
+        {VIEW_MAIN_PHONE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, "电话", STR_PHONE, nullptr},
+        {VIEW_MAIN_STOPWATCH, PNG_APPLIST_STOPWATCH_IMAGE, PNG_APPLIST_STOPWATCH_IMAGE, "秒表", STR_STOPWATCH, nullptr},
+        {VIEW_MAIN_COUNTDOWN, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_COUNTDOWN_IMAGE, "计时器", STR_TIMER, nullptr},
+        {VIEW_FIND_PHONE, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_FINDPHONE_IMAGE, "查找手机", STR_FIND_PHONE, nullptr},
+        {VIEW_SET_DESKTOP, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, "显示方式", STR_DISPLAY_MODE, nullptr},
+        {VIEW_SET_CARD, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_CARDSET_IMAGE, "卡片管理", STR_CARD_MANAGEMENT, nullptr},
+        {VIEW_SET_DIAL, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_CHANGEDIAL_IMAGE, "更换表盘", STR_WATCH_FACE, nullptr},
+        {VIEW_CLASSIC_BLUETOOTH, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_BLUETOOTH_IMAGE, "蓝牙", STR_BLUETOOTH, nullptr},
+        {VIEW_DNOTDISTURB, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, "勿扰模式", STR_DO_NOT_DISTURB, nullptr},
+        {VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_FLASHLIGHT_IMAGE, "手电筒", STR_FLASHLIGHT, nullptr},
+        {VIEW_BRIGHTNESSLEVEL, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, "亮度调节", STR_BRIGHTNESS_ADJUSTMENT, nullptr},
+        {VIEW_SAVEELE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_SAVEELE_IMAGE, "省电模式", STR_POWER_SAVE_MODE, nullptr},
+        {VIEW_MESSAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_MESSAGE_IMAGE, "消息通知", STR_MESSAGE_NOTIFICATION, nullptr},
+        {VIEW_TAKEPHOTOS, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_TACKEPHOTOS_IMAGE, "遥控拍照", STR_REMOTE_SHOOTING, nullptr},
 #ifdef SUPPORT_ALIPAY_SEC
-        {VIEW_MAIN_ALIPAY, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_ALIPAY_IMAGE, "支付宝",STR_ALIPAY, nullptr},
+        {VIEW_MAIN_ALIPAY, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_ALIPAY_IMAGE, "支付宝", STR_ALIPAY, nullptr},
 #endif
-        {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, "设置",STR_SETTINGS, nullptr},
+        {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, "设置", STR_SETTINGS, nullptr},
 #if 0
         {VIEW_LANGUAGE_SWITCH, PNG_CONNECT_PHONE_IMAGE, PNG_CONNECT_PHONE_IMAGE, "语言切换", nullptr},
         {VIEW_MAIN_TEMP, PNG_APPLIST_TEMP_IMAGE, PNG_APPLIST_TEMP_IMAGE, "体温", nullptr},
@@ -135,7 +136,7 @@ namespace OHOS
                 applist[appLen].iconSmall = bundleInfos[len].smallIconPath;
                 applist[appLen].label = bundleInfos[len].label;
                 applist[appLen].uid = bundleInfos[len].bundleName;
-                    
+
                 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ResolvingJSAppItems bundleName is %s \r", bundleInfos[len].bundleName);
                 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ResolvingJSAppItems label is %s \r", bundleInfos[len].label);
                 WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ResolvingJSAppItems smallIconPath is %s \r", bundleInfos[len].smallIconPath);
index 8e05cdb..b1d44c9 100644 (file)
@@ -241,7 +241,7 @@ namespace OHOS
             {ConfigDataType::DATATYPE_BOOL,     "A2DP",                     "false" },// CONFIGMODEL_ITEM_A2DP
 
             {ConfigDataType::DATATYPE_INT,     "traningfreq",              "10" },// CONFIGMODEL_ITEM_TRANING_FREQ //训练实时数据上传频率//单位秒
-            {ConfigDataType::DATATYPE_BOOL,    "traningauto",              "false" },//CONFIGMODEL_ITEM_TRANING_AUTO,//开启关闭自动获取实时数据
+            {ConfigDataType::DATATYPE_BOOL,    "traningauto",              "0" },//CONFIGMODEL_ITEM_TRANING_AUTO,//开启关闭自动获取实时数据
             {ConfigDataType::DATATYPE_INT,      "traningheart",             "190"  },//CONFIGMODEL_ITEM_TRAINING_HEART_MAX//训练最高心率
             {ConfigDataType::DATATYPE_INT,      "HeartRateDetected",        "0"     },// CONFIFMOFEL_ITEM_HEARTRATE_DETECTED//心率周期检测频率
             {ConfigDataType::DATATYPE_INT,      "HeartRateMax",             "0"     },// CONFIFMOFEL_ITEM_HEARTRATE_MAX//最大心率
diff --git a/code/sdk/application/wearable/fd230app/nativeui/takephotos/include/TakephotosPresenter.h b/code/sdk/application/wearable/fd230app/nativeui/takephotos/include/TakephotosPresenter.h
new file mode 100644 (file)
index 0000000..ed50f74
--- /dev/null
@@ -0,0 +1,32 @@
+#ifndef _Takephotos_PRESENTER_H
+#define _Takephotos_PRESENTER_H
+
+#include "Presenter.h"
+#include "TakephotosView.h"
+
+namespace OHOS
+{
+    class TakephotosView;
+
+    class TakephotosPresenter : public Presenter<TakephotosView>,
+                                public UIView::OnClickListener,
+                                public UIView::OnDragListener
+    {
+    public:
+        TakephotosPresenter();
+        virtual ~TakephotosPresenter();
+
+        void OnStart() override;
+        void OnPause() override;
+        void OnResume() override;
+        void OnStop() override;
+        static TakephotosPresenter *GetInstance();
+
+    private:
+        // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;
+        bool OnClick(UIView &view, const ClickEvent &event) override;
+        bool OnDrag(UIView &view, const DragEvent &event) override;
+    };
+} // namespace OHOS
+
+#endif // SLEEPDETAIL_PRESENTER_H
\ No newline at end of file
diff --git a/code/sdk/application/wearable/fd230app/nativeui/takephotos/include/TakephotosView.h b/code/sdk/application/wearable/fd230app/nativeui/takephotos/include/TakephotosView.h
new file mode 100644 (file)
index 0000000..dc83fa3
--- /dev/null
@@ -0,0 +1,80 @@
+/*** 
+ * @Date: 2024-05-08 16:11:48
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-05-08 18:11:27
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/takephotos/include/TakephotosView.h
+ */
+#ifndef _Takephotos_VIEW_H
+#define _Takephotos_VIEW_H
+
+#include "BaseView.h"
+#include "View.h"
+#include <ui_scroll_view.h>
+#include "components/ui_view_group.h"
+#include "components/ui_label.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_image_view.h"
+#include "components/ui_button.h"
+#include "components/ui_image_animator.h"
+#include "components/ui_label_button_ext.h"
+#include "components/ui_chart.h"
+#include "components/ui_list.h"
+#include "components/icon_adapter.h"
+#include "wearable_log.h"
+#include "ohos_types.h"
+#include "components/ui_card_page.h"
+
+#include "traing/include/TraingModel.h"
+#include "uicomponents/UIComponents.h"
+#include "traing/Training_UiConfig.h"
+#include "TakephotosPresenter.h"
+namespace OHOS
+{
+#define BUTTONGO "button_go"
+
+    enum class PopupPhoto
+    {
+        LackPopup,
+        RecordPopup
+    };
+
+    class TakephotosPresenter;
+    class TakephotosView : public View<TakephotosPresenter>
+    {
+    public:
+        TakephotosView();
+        virtual ~TakephotosView();
+        static TakephotosView *GetInstance(void);
+
+        void OnStart() override;
+        void OnSetUpView() override;
+        void OnTearDownView() override;
+        void OnStop() override;
+        void InitView();
+        void DeInit();
+        void PreLoad(void);
+
+        void ShowLackView();
+        void ShowRecordView();
+        void SetPopupViewStatus(PopupPhoto view, bool status);
+
+    private:
+        UIView::OnDragListener *draglistener{nullptr};
+        TakephotosView(TakephotosView &&) = delete;
+        TakephotosView &operator=(TakephotosView &&) = delete;
+        UIScrollView *container_ = nullptr;
+
+        /*拍照提醒界面*/
+        UIScrollView *lackView{nullptr};
+        UILabelExt *labeltitle_ = nullptr;
+        UILabel *labelrecord_ = nullptr;
+        UILabelButtonExt *buttongo = nullptr;
+        UIImageView *imagerecord = nullptr;
+
+        /*拍照界面*/
+        UIScrollView *recordView{nullptr};
+
+        bool viewiInitStatus{false};
+    };
+} // namespace OHOS
+#endif // Takephotos_PRESENTER_H
diff --git a/code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosPresenter.cpp b/code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosPresenter.cpp
new file mode 100644 (file)
index 0000000..f2429b4
--- /dev/null
@@ -0,0 +1,76 @@
+/*** 
+ * @Date: 2024-05-08 16:14:06
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-05-08 18:06:25
+ * @FilePath: /XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosPresenter.cpp
+ */
+#include "AppViewIDs.h"
+#include "components/ui_label_ext.h"
+#include "language/font/ui_resource_string.h"
+#include "NativeAbility.h"
+
+#include <iostream>
+#include <chrono>
+#include <thread>
+#include "takephotos/include/TakephotosPresenter.h"
+// #include "TakephotosView.h"
+
+namespace OHOS
+{
+    // 当前Presenter属性实例化的内存指针
+    static TakephotosPresenter *g_pTakephotosPresenter = nullptr;
+
+    TakephotosPresenter::TakephotosPresenter()
+    {
+        g_pTakephotosPresenter = this;
+    }
+
+    TakephotosPresenter::~TakephotosPresenter()
+    {
+        g_pTakephotosPresenter = nullptr;
+    }
+
+    TakephotosPresenter *TakephotosPresenter::GetInstance()
+    {
+        return g_pTakephotosPresenter;
+    }
+
+    void TakephotosPresenter::OnStart()
+    {
+        Presenter<TakephotosView>::OnStart();
+    }
+
+    void TakephotosPresenter::OnPause(void)
+    {
+        Presenter<TakephotosView>::OnPause();
+    }
+
+    void TakephotosPresenter::OnResume(void)
+    {
+        Presenter<TakephotosView>::OnResume();
+    }
+
+    void TakephotosPresenter::OnStop(void)
+    {
+        Presenter<TakephotosView>::OnStop();
+    }
+
+    bool TakephotosPresenter::OnDrag(UIView &view, const DragEvent &event)
+    {
+        if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
+        {
+            NativeAbility::GetInstance().Back();
+        }
+        return true;
+    }
+
+    bool TakephotosPresenter::OnClick(UIView &view, const ClickEvent &event)
+    {
+        // 返回按键
+        if (strcmp(view.GetViewId(), BUTTONGO) == 0)
+        {
+            //NativeAbility::GetInstance().EnterSlice(VIEW_TRAININGMORE);
+        }
+        return true;
+    }
+}
diff --git a/code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosView.cpp b/code/sdk/application/wearable/fd230app/nativeui/takephotos/src/TakephotosView.cpp
new file mode 100644 (file)
index 0000000..724136f
--- /dev/null
@@ -0,0 +1,238 @@
+
+#include "takephotos/include/TakephotosView.h"
+
+#include "common/image_cache_manager.h"
+#include "UiConfig.h"
+#include "ui_resource_image.h"
+#include <ui_scroll_view.h>
+#include "components/ui_button.h"
+#include "uicomponents/UIComponents.h"
+namespace OHOS
+{
+    static const uint32_t BACK_GROUND_COLOR = 0xfff6f6f6;
+
+    static TakephotosView *g_pTakephotosView{nullptr};
+
+    TakephotosView::TakephotosView()
+    {
+        g_pTakephotosView = this;
+    }
+
+    TakephotosView::~TakephotosView()
+    {
+        DeInit();
+        g_pTakephotosView = nullptr;
+    }
+
+    TakephotosView *TakephotosView::GetInstance()
+    {
+        return g_pTakephotosView;
+    }
+
+    /* InitView:初始化界面*/
+    void TakephotosView ::InitView()
+    {
+        if (container_ == nullptr)
+        {
+            container_ = new UIScrollView();
+            container_->SetPosition(0, 0, 466, 466);
+            container_->SetStyle(STYLE_BACKGROUND_OPA, 0);
+        }
+        // 展示无记录界面。后续需要加入函数判断
+        SetPopupViewStatus(PopupPhoto::LackPopup, true);
+    }
+
+    /* DeInit:删除组件 */
+    void TakephotosView::DeInit()
+    {
+        container_->RemoveAll();
+        if (labeltitle_ != nullptr)
+        {
+            lackView->Remove(labeltitle_);
+            delete labeltitle_;
+            labeltitle_ = nullptr;
+        }
+        if (labelrecord_ != nullptr)
+        {
+            lackView->Remove(labelrecord_);
+            delete labelrecord_;
+            labelrecord_ = nullptr;
+        }
+        if (buttongo != nullptr)
+        {
+            lackView->Remove(buttongo);
+            delete buttongo;
+            buttongo = nullptr;
+        }
+        if (imagerecord != nullptr)
+        {
+            lackView->Remove(imagerecord);
+            delete imagerecord;
+            imagerecord = nullptr;
+        }
+
+        if (lackView != nullptr)
+        {
+            lackView->RemoveAll();
+            delete lackView;
+            lackView = nullptr;
+        }
+        if (recordView != nullptr)
+        {
+            recordView->RemoveAll();
+            delete recordView;
+            recordView = nullptr;
+        }
+        if (container_ != nullptr)
+        {
+            container_->RemoveAll();
+            delete container_;
+            container_ = nullptr;
+        }
+    }
+
+    void TakephotosView::PreLoad(void)
+    {
+        if (!viewiInitStatus)
+        {
+            InitView();
+            viewiInitStatus = true;
+        }
+    }
+    /*显示无记录界面*/
+    void TakephotosView::ShowLackView()
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowLackView start");
+        lackView = new UIScrollView();
+        if (lackView == nullptr)
+        {
+            return;
+        }
+        lackView->SetPosition(0, 0);
+        lackView->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION);
+        lackView->SetScrollBlankSize(20);
+        lackView->SetReboundSize(50);
+        lackView->SetDirection(1);
+        /*初始化label*/
+        InitLabelExt(labeltitle_, 83, 50, 300, 35, "labletitle", STR_REMOTE_SHOOTING, DEFAULT_VECTOR_FONT_FILENAME, 30);
+
+        // 设置标签的位置和大小
+        labelrecord_ = new UILabel();
+        labelrecord_->SetPosition(53, 260);
+        labelrecord_->Resize(360, 200);
+        // 设置标签的视图 ID
+        labelrecord_->SetViewId("labelrecord");
+        // 设置标签的样式
+        labelrecord_->SetStyle(STYLE_TEXT_FONT, 30);
+        labelrecord_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+        // 设置标签的文本和其他属性
+        labelrecord_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+        labelrecord_->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
+        SetLabelId(labelrecord_, STR_TACK),
+        // InitLabelExt(labelrecord_, 53, 260, 360, 40, "labelrecord", STR_TACK, DEFAULT_VECTOR_FONT_FILENAME, 30);
+        
+        /*初始化image*/
+        InitImageView(imagerecord, 174, 120, 118, 120, "image", RECOED_IMAGE);
+        /*初始化按键*/
+        InitButtonExt(buttongo, 93, 330, 280, 90, BUTTONGO, STR_CLICK, 26);
+        buttongo->SetStyle(STYLE_BACKGROUND_COLOR, 0xff4fc34c); // 设置按键颜色
+        buttongo->SetOnClickListener(static_cast<UIView::OnClickListener *>(TakephotosPresenter::GetInstance()));
+
+        lackView->Add(labeltitle_);
+        lackView->Add(labelrecord_);
+        lackView->Add(imagerecord);
+        lackView->Add(buttongo);
+
+        RootView::GetInstance()->Add(lackView);
+        lackView->SetDraggable(true);
+        lackView->SetTouchable(true);
+
+        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(TakephotosPresenter::GetInstance());
+        if (draglistener == nullptr)
+        {
+            return;
+        }
+        lackView->SetOnDragListener(draglistener);
+
+        lackView->SetVisible(false); // 界面隐藏
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ShowLackView end");
+    }
+    /*记录列表界面*/
+    void TakephotosView::ShowRecordView()
+    {
+    }
+    /*控制显示界面*/
+    void TakephotosView::SetPopupViewStatus(PopupPhoto view, bool status)
+    {
+        WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetPopupViewStatus %d", view);
+        UIView *popupView = nullptr;
+        if (view == PopupPhoto::LackPopup)
+        {
+            popupView = lackView;
+        }
+        else if (view == PopupPhoto::RecordPopup)
+        {
+            popupView = recordView;
+        }
+
+        if (popupView == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PopupView is NULL");
+            return;
+        }
+
+        if (container_ != nullptr)
+        {
+            container_->SetVisible(!status);
+        }
+
+        popupView->SetVisible(status);
+    }
+
+    void TakephotosView::OnStart()
+    {
+        container_ = new UIScrollView();
+        if (container_ == nullptr)
+        {
+            WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "container_ new fail");
+            return;
+        }
+        container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+        // 创建 draglistener 实例并设置为拖动监听器
+        UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(TakephotosPresenter::GetInstance());
+        if (draglistener == nullptr)
+        {
+            return;
+        }
+        container_->SetOnDragListener(draglistener);
+        container_->SetTouchable(true);
+        container_->SetDraggable(true);
+        container_->SetStyle(STYLE_BACKGROUND_COLOR, BACK_GROUND_COLOR);
+        container_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+
+        ShowLackView();
+        PreLoad();
+        RootView::GetInstance()->Add(container_);
+    }
+
+    void TakephotosView::OnSetUpView()
+    {
+
+        View<TakephotosPresenter>::OnSetUpView();
+        Draw();
+    }
+
+    void TakephotosView::OnTearDownView()
+    {
+
+        View<TakephotosPresenter>::OnTearDownView();
+        return;
+    }
+
+    void TakephotosView::OnStop()
+    {
+        View<TakephotosPresenter>::OnStop();
+        RootView::GetInstance()->RemoveAll();
+        return;
+    }
+}