${CMAKE_CURRENT_SOURCE_DIR}/nativelauncher/include/slices/main
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/screennotify/include
${CMAKE_CURRENT_SOURCE_DIR}/nativeui
-
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/include
)
set(PRIVATE_HEADER
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_card/include
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/add_card/include
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial_style/include
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/key/include
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/phone/include
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/include
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/include
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/include/AlipayList
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/include/AlipayTrans
-
+
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/themestyle/include
+
${UI_SAMPLE_ROOT}/components
${CMAKE_CURRENT_SOURCE_DIR}/../service/smart_voice/smart_voice_service/interfaces/innerkits/native_c/include
${CMAKE_CURRENT_SOURCE_DIR}/../service/smart_voice/voice_engine_hal/interfaces/innerkits/native_c/include
${CMAKE_CURRENT_SOURCE_DIR}/../../battery
${CMAKE_CURRENT_SOURCE_DIR}/../../../drivers/drivers/driver/rtc_unified
${CMAKE_CURRENT_SOURCE_DIR}/../../../kernel/liteos/liteos_v207.1.0/Huawei_LiteOS/compat/linux/include/uapi/linux/
-
${ROOT_DIR}/middleware/services/gui/uikit/proprietary/src/utils/innerkits
${ROOT_DIR}/middleware/services/gui/uikit/proprietary/include
${ROOT_DIR}/middleware/services/gui/uikit/proprietary/src/ui/frameworks
${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/kits
${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils
${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/innerkits
+ ${ROOT_DIR}/middleware/services/gui/uikit/ui/interfaces/innerkits
+ ${ROOT_DIR}/middleware/services/gui/uikit/ui/frameworks
${ROOT_DIR}/middleware/services/gui/uikit/surface/interfaces/kits
${ROOT_DIR}/middleware/services/gui/uikit/ui/interfaces/kits
${ROOT_DIR}/middleware/services/gui/uikit/ui/interfaces/kits/components
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothPresenter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothHeadsetEvent.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothModel.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothWrapper.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/MainBluetoothView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothEarPhoneView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/TipsConnFailMessageView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial/src/SetDialModel.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial/src/SetDialPresenter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial/src/SetDialView.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial_style/src/SetDialStyleModel.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial_style/src/SetDialStylePresenter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/set_dial_style/src/SetDialStyleView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/key/src/KeyInputListener.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/screennotify/src/ui_screennotify.cpp
static constexpr const char *PNG_APPLIST_AIVOICE_IMAGE = APP_LIST_PATH "/aivoice.bin"; // AI Voice(人工智能语音)
static constexpr const char *PNG_APPLIST_SLEEP_IMAGE = APP_LIST_PATH "/sleeping.bin"; // 睡眠
+ // AppList hexagon icon
+ static constexpr const char *PNG_APPLIST_DEFAULT_IMG = APP_RES_PATH"/regular_hexagon.bin";
+ static constexpr const char *PNG_APPLIST_NOTSETUSE_IMG = APP_RES_PATH"/regular_hexagon_inverse.bin";
+
/* ---------------------------------- 快速训练 ---------------------------------- */
static constexpr const char *PNG_TRAING_BOUTTONMORE_IMAGE = APP_RES_PATH "/Training/More.bin";
static constexpr const char *PNG_TRAING_BUTTONGRONG_IMAGE = APP_RES_PATH "/Training/Bouttonground.bin";
/*
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-08 16:43:48
- * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-05-06 16:52:38
+ * @LastEditors: SnickerSun snickersun@163.com
+ * @LastEditTime: 2024-07-02 19:45:18
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/applist/include/AppItemView.h
*/
//UILabel label_;
//AppItem itemInfo_ = { VIEW_INVALID, nullptr, nullptr, nullptr, nullptr };
UILabelExt labelExt_;
- AppItem itemInfo_ = { VIEW_INVALID, nullptr, nullptr, nullptr,STR_EXERCISE_GENERAL, nullptr };
+ AppItem itemInfo_ = { VIEW_INVALID, nullptr, nullptr, nullptr,nullptr,STR_EXERCISE_GENERAL, nullptr };
};
class HexagonsItemView : public UIImageView {
private:
HexagonsItemView(const HexagonsItemView &);
HexagonsItemView &operator = (const HexagonsItemView &);
- AppItem itemInfo_ = { VIEW_INVALID, nullptr, nullptr, nullptr,STR_EXERCISE_GENERAL, nullptr };
+ AppItem itemInfo_ = { VIEW_INVALID, nullptr, nullptr, nullptr,nullptr,STR_EXERCISE_GENERAL, nullptr };
};
}
/*
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-08 16:43:48
- * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-05-06 16:57:20
+ * @LastEditors: SnickerSun snickersun@163.com
+ * @LastEditTime: 2024-07-02 20:03:25
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/applist/include/ApplistModel.h
*/
/*
#include"language/font/ui_resource_string.h"
#include "ohos_types.h"
+#include "ThemeStyleModel.h"
#define APP_MAX_NUM 50
namespace OHOS {
AppViewId id;
const char *iconLarge;
const char *iconSmall;
+ const char *iconHexagon;
const char *label;
uint16_t TextId;
const char *uid;
} AppItem;
+
+#define AppListStyle ThemeStyle
+
+// typedef enum : uint16_t
+// {
+// APPLIST_STYLE, // 列表显示
+// HEXAGONS_STYLE, // 蜂窝显示
+// FOOTBALL_STYLE, //足球
+// MAX_THEME_STYLE,
+// } AppListStyle;
class ApplistPresenter;
class ApplistModel {
public:
int GetHeadItemY(void);
void ApplistUpdate(void);
void SetPresenter(ApplistPresenter *p);
- bool GetIsUseListStyle(void);
+ AppListStyle GetCurrentStyle(void);
+
private:
ApplistModel();
ApplistModel(const ApplistModel &);
virtual ~ApplistModel();
ApplistPresenter *presenter{nullptr};
- AppItem applist[APP_MAX_NUM] = { VIEW_INVALID, nullptr, nullptr, nullptr,STR_EXERCISE_GENERAL, nullptr };
+ AppItem applist[APP_MAX_NUM] = { VIEW_INVALID, nullptr, nullptr, nullptr,nullptr,STR_EXERCISE_GENERAL, nullptr };
BundleInfo *bundleInfos = nullptr;
int32 bundleLen = 0;
uint8 appLen = 0;
#include "applist/include/ApplistPresenter.h"
#include "SetDesktopModel.h"
#include "themestyle/include/ThemeStyleModel.h"
-
+#include "set_desktop/include/SetDesktopView.h"
namespace OHOS
{
/**- APPLSIT
* - 设置
*/
const AppItem g_nativeAppList[] = {
- {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_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_COMPASS, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_COMPASS_IMAGE, "指南针", STR_COMPASS, nullptr},
- {VIEW_MAIN_PHONE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, "电话", STR_PHONE, nullptr},
- {VIEW_CALLER_LOG, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_CALLLOG_IMAGE, "常用联系人", STR_FAVORITE_CONTACTS, nullptr},
- {VIEW_WEATHER, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_WEATHER_IMAGE, "天气", STR_WEATHER, nullptr},
- {VIEW_GOAL, PNG_APPLIST_GOAL_IMAGE, PNG_APPLIST_GOAL_IMAGE, "活动", STR_ACTIVITY, nullptr},
- {VIEW_SET_DIAL, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_CHANGEDIAL_IMAGE, "更换表盘", STR_WATCH_FACE, nullptr},
- {VIEW_THEME_STYLE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, "显示方式", STR_DISPLAY_MODE, nullptr},
- {VIEW_ADD_CARD, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_CARDSET_IMAGE, "卡片管理", STR_CARD_MANAGEMENT, nullptr},
- {VIEW_SLEEP, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_SLEEP_IMAGE, "睡眠", STR_SLEEP, nullptr},
- {VIEW_RECORD, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_RECORD_IMAGE, "录音", STR_RECORD, nullptr},
- {VIEW_RESPIRATORY_TRAINING, PNG_APPLIST_BREATHE_IMAGE, PNG_APPLIST_BREATHE_IMAGE, "呼吸训练", STR_BREATH_TRAINING, nullptr},
- {VIEW_TAKEPHOTOS, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_TACKEPHOTOS_IMAGE, "遥控拍照", STR_REMOTE_SHOOTING, nullptr},
+ {VIEW_BLOODOXY, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_SPO2_IMAGE, PNG_APPLIST_DEFAULT_IMG,"血氧", STR_BLOOD_OXYGEN, nullptr},
+ {VIEW_HEART, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_HEART_IMAGE, PNG_APPLIST_DEFAULT_IMG,"心率", STR_HEART_RATE, nullptr},
+ {VIEW_TRAINING, PNG_APPLIST_TRAINING_IMAGE, PNG_APPLIST_TRAINING_IMAGE, PNG_APPLIST_DEFAULT_IMG,"训练", STR_TRAINING, nullptr},
+ {VIEW_TRAINING_RECORD, PNG_APPLIST_TRAINING_RECORD_IMAGE, PNG_APPLIST_TRAINING_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG,"训练记录", STR_TRAINING_RECORD, nullptr},
+ {VIEW_COMPASS, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_DEFAULT_IMG,"指南针", STR_COMPASS, nullptr},
+ {VIEW_MAIN_PHONE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE,PNG_APPLIST_DEFAULT_IMG,"电话", STR_PHONE, nullptr},
+ {VIEW_CALLER_LOG, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_CALLLOG_IMAGE, PNG_APPLIST_DEFAULT_IMG,"常用联系人", STR_FAVORITE_CONTACTS, nullptr},
+ {VIEW_WEATHER, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_WEATHER_IMAGE, PNG_APPLIST_DEFAULT_IMG,"天气", STR_WEATHER, nullptr},
+ {VIEW_GOAL, PNG_APPLIST_GOAL_IMAGE, PNG_APPLIST_GOAL_IMAGE, PNG_APPLIST_DEFAULT_IMG,"活动", STR_ACTIVITY, nullptr},
+ {VIEW_SET_DIAL, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_CHANGEDIAL_IMAGE, PNG_APPLIST_DEFAULT_IMG,"更换表盘", STR_WATCH_FACE, nullptr},
+ {VIEW_THEME_STYLE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_THEME_IMAGE, PNG_APPLIST_DEFAULT_IMG,"显示方式", STR_DISPLAY_MODE, nullptr},
+ {VIEW_ADD_CARD, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_CARDSET_IMAGE, PNG_APPLIST_DEFAULT_IMG,"卡片管理", STR_CARD_MANAGEMENT, nullptr},
+ {VIEW_SLEEP, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_SLEEP_IMAGE, PNG_APPLIST_DEFAULT_IMG,"睡眠", STR_SLEEP, nullptr},
+ {VIEW_RECORD, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG,"录音", STR_RECORD, nullptr},
+ {VIEW_RESPIRATORY_TRAINING, PNG_APPLIST_BREATHE_IMAGE, PNG_APPLIST_BREATHE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"呼吸训练", STR_BREATH_TRAINING, nullptr},
+ {VIEW_TAKEPHOTOS, PNG_APPLIST_TACKEPHOTOS_IMAGE, PNG_APPLIST_TACKEPHOTOS_IMAGE,PNG_APPLIST_DEFAULT_IMG, "遥控拍照", 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, PNG_APPLIST_DEFAULT_IMG,"支付宝", STR_ALIPAY, nullptr},
#endif
- {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_BRIGHTNESSLEVEL, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, "亮度调节", STR_BRIGHTNESS_ADJUSTMENT, nullptr},
- {VIEW_SOUND_VIBRATION, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_VOICE_IMAGE, "声音", STR_SOUND, 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_MESSAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_MESSAGE_IMAGE, "消息通知", STR_MESSAGE_NOTIFICATION, nullptr},
- {VIEW_SAVEELE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_SAVEELE_IMAGE, "省电模式", STR_POWER_SAVE_MODE, nullptr},
- {VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_FLASHLIGHT_IMAGE, "手电筒", STR_FLASHLIGHT, nullptr},
- {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, "设置", STR_SETTINGS, nullptr},
- //{VIEW_AI_VOICE, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_AIVOICE_IMAGE, "AI Voice", STR_AI_VOICE, nullptr},
+ {VIEW_MAIN_COUNTDOWN, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_COUNTDOWN_IMAGE, PNG_APPLIST_DEFAULT_IMG,"计时器", STR_TIMER, nullptr},
+ {VIEW_FIND_PHONE, PNG_APPLIST_FINDPHONE_IMAGE, PNG_APPLIST_FINDPHONE_IMAGE,PNG_APPLIST_DEFAULT_IMG, "查找手机", STR_FIND_PHONE, nullptr},
+ {VIEW_BRIGHTNESSLEVEL, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE, PNG_APPLIST_BRIGHTNESSLEVEL_IMAGE,PNG_APPLIST_DEFAULT_IMG, "亮度调节", STR_BRIGHTNESS_ADJUSTMENT, nullptr},
+ {VIEW_SOUND_VIBRATION, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_VOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"声音", STR_SOUND, nullptr},
+ {VIEW_CLASSIC_BLUETOOTH, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_BLUETOOTH_IMAGE, PNG_APPLIST_DEFAULT_IMG,"蓝牙", STR_BLUETOOTH, nullptr},
+ {VIEW_DNOTDISTURB, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DISTURB_IMAGE, PNG_APPLIST_DEFAULT_IMG,"勿扰模式", STR_DO_NOT_DISTURB, nullptr},
+ {VIEW_MESSAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"消息通知", STR_MESSAGE_NOTIFICATION, nullptr},
+ {VIEW_SAVEELE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_SAVEELE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"省电模式", STR_POWER_SAVE_MODE, nullptr},
+ {VIEW_FLASHLIGHT, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_FLASHLIGHT_IMAGE, PNG_APPLIST_DEFAULT_IMG,"手电筒", STR_FLASHLIGHT, nullptr},
+ {VIEW_SETTING, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_SETTING_IMAGE, PNG_APPLIST_DEFAULT_IMG,"设置", STR_SETTINGS, nullptr},
+ //{VIEW_AI_VOICE, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_AIVOICE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"AI Voice", STR_AI_VOICE, nullptr},
#if 0
/*屏蔽Slice*/
- {VIEW_LANGUAGE_SWITCH, PNG_CONNECT_PHONE_IMAGE, PNG_CONNECT_PHONE_IMAGE, "语言切换", nullptr},
- {VIEW_MAIN_TEMP, PNG_APPLIST_TEMP_IMAGE, PNG_APPLIST_TEMP_IMAGE, "体温", nullptr},
- {VIEW_OFFLINEVOICE, PNG_APPLIST_VOCASSIST_IMAGE, PNG_APPLIST_VOCASSIST_IMAGE, "语音助手", nullptr},
- {VIEW_UISAMPLE, PNG_APPLIST_UI_SAMPLE_IMAGE, PNG_APPLIST_UI_SAMPLE_IMAGE, "示例", nullptr},
- {VIEW_MESSAGE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, "信息通知", nullptr},
- {VIEW_INDOORWALK, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_WALK_IMAGE, "室内步行", nullptr},
- {VIEW_INDOORWALK, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_WALK_IMAGE, "室内步行",STR_ACTIVITY, nullptr},
+ {VIEW_LANGUAGE_SWITCH, PNG_CONNECT_PHONE_IMAGE, PNG_CONNECT_PHONE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"语言切换", nullptr},
+ {VIEW_MAIN_TEMP, PNG_APPLIST_TEMP_IMAGE, PNG_APPLIST_TEMP_IMAGE, PNG_APPLIST_DEFAULT_IMG,"体温", nullptr},
+ {VIEW_OFFLINEVOICE, PNG_APPLIST_VOCASSIST_IMAGE, PNG_APPLIST_VOCASSIST_IMAGE, PNG_APPLIST_DEFAULT_IMG,"语音助手", nullptr},
+ {VIEW_UISAMPLE, PNG_APPLIST_UI_SAMPLE_IMAGE, PNG_APPLIST_UI_SAMPLE_IMAGE, PNG_APPLIST_DEFAULT_IMG,"示例", nullptr},
+ {VIEW_MESSAGE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_CALLER_IMAGE, PNG_APPLIST_DEFAULT_IMG,"信息通知", nullptr},
+ {VIEW_INDOORWALK, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_DEFAULT_IMG,"室内步行", nullptr},
+ {VIEW_INDOORWALK, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_WALK_IMAGE, PNG_APPLIST_DEFAULT_IMG,"室内步行",STR_ACTIVITY, nullptr},
#endif
};
applist[appLen].id = VIEW_EXTERN_APP;
applist[appLen].iconLarge = bundleInfos[len].smallIconPath;
applist[appLen].iconSmall = bundleInfos[len].smallIconPath;
+ applist[appLen].iconHexagon = bundleInfos[len].bigIconPath;
applist[appLen].label = bundleInfos[len].label;
applist[appLen].uid = bundleInfos[len].bundleName;
presenter = p;
}
- bool ApplistModel::GetIsUseListStyle(void)
+ AppListStyle ApplistModel::GetCurrentStyle(void)
{
- return (ThemeStyleModel::GetInstance().GetAppListDisplayStyle() == APPLIST_STYLE);
+ uint8_t currenStyle = SetDesktopView::GetInstance()->GetCurrentSelectedStyle();
+ if (currenStyle == 1) { // 1: hexagons desktop style
+ return HEXAGONS_STYLE;
+ } else if (currenStyle == 2) { // 2: football desktop style
+ return FOOTBALL_STYLE;
+ } else {
+ return APPLIST_STYLE;
+ }
}
}
bool ApplistPresenter::GetIsUseListStyle(void)
{
- return model->GetIsUseListStyle();
+ return model->GetCurrentStyle() == APPLIST_STYLE;
}
ApplistView* ApplistPresenter::GetAppListView()
--- /dev/null
+/*\r
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
+ * Description: BluetoothWrapper\r
+ * Author:\r
+ * Create: 2021-10-13\r
+ */\r
+#ifndef BLUETOOTH_WRAPPER_H\r
+#define BLUETOOTH_WRAPPER_H\r
+\r
+#include "common_def.h"\r
+#include "bts_def.h"\r
+#include "bts_gatt_stru.h"\r
+#include "bts_gatt_server.h"\r
+#include "bts_le_gap.h"\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+errcode_t wrapper_gap_ble_register_callbacks(gap_ble_callbacks_t *func);\r
+errcode_t wrapper_gatts_register_callbacks(gatts_callbacks_t *func);\r
+void wrapper_ble_register(void);\r
+errcode_t wrapper_gatts_register_server(bt_uuid_t *app_uuid, uint8_t *server_id);\r
+errcode_t wrapper_gatts_add_service(uint8_t server_id, bt_uuid_t *service_uuid, bool is_primary);\r
+void wrapper_gatts_service_start(void);\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
+\r
+#endif
\ No newline at end of file
--- /dev/null
+/*\r
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.\r
+ * Description: BluetoothModel view\r
+ * Author:\r
+ * Create: 2021-10-13\r
+ */\r
+\r
+#include <list>\r
+#include "BluetoothWrapper.h"\r
+\r
+#ifdef __cplusplus\r
+extern "C" {\r
+#endif\r
+\r
+static bool gatts_register_flag = false;\r
+static uint8_t gatts_server_id = 0;\r
+std::list<gap_ble_callbacks_t> g_gap_ble_callback_list;\r
+std::list<gatts_callbacks_t> g_gatts_callback_list;\r
+std::list<bt_uuid_t> g_uuid_list;\r
+std::list<uint16_t> g_svr_handle_list;\r
+\r
+errcode_t wrapper_gap_ble_register_callbacks(gap_ble_callbacks_t *func)\r
+{\r
+ g_gap_ble_callback_list.push_back(*func);\r
+ return ERRCODE_SUCC;\r
+}\r
+\r
+errcode_t wrapper_gatts_register_callbacks(gatts_callbacks_t *func)\r
+{\r
+ g_gatts_callback_list.push_back(*func);\r
+ return ERRCODE_SUCC;\r
+}\r
+\r
+void wrapper_gap_ble_enable_callback(errcode_t status)\r
+{\r
+ for (auto callback : g_gap_ble_callback_list) {\r
+ if (callback.ble_enable_cb != nullptr) {\r
+ callback.ble_enable_cb(status);\r
+ }\r
+ }\r
+}\r
+\r
+void wrapper_gap_ble_disable_callback(errcode_t status)\r
+{\r
+ for (auto callback : g_gap_ble_callback_list) {\r
+ if (callback.ble_disable_cb != nullptr) {\r
+ callback.ble_disable_cb(status);\r
+ }\r
+ }\r
+}\r
+\r
+void wrapper_gap_ble_start_adv_callback(uint8_t adv_id, adv_status_t status)\r
+{\r
+ for (auto callback : g_gap_ble_callback_list) {\r
+ if (callback.start_adv_cb) {\r
+ callback.start_adv_cb(adv_id, status);\r
+ }\r
+ }\r
+}\r
+\r
+void wrapper_gap_ble_stop_adv_callback(uint8_t adv_id, adv_status_t status)\r
+{\r
+ for (auto callback : g_gap_ble_callback_list) {\r
+ if (callback.stop_adv_cb) {\r
+ callback.stop_adv_cb(adv_id, status);\r
+ }\r
+ }\r
+}\r
+\r
+void wrapper_gap_ble_set_adv_data_callback(uint8_t adv_id, errcode_t status)\r
+{\r
+ for (auto callback : g_gap_ble_callback_list) {\r
+ if (callback.set_adv_data_cb) {\r
+ callback.set_adv_data_cb(adv_id, status);\r
+ }\r
+ }\r
+}\r
+\r
+void wrapper_gap_ble_set_adv_param_callback(uint8_t adv_id, errcode_t status)\r
+{\r
+ for (auto callback : g_gap_ble_callback_list) {\r
+ if (callback.set_adv_param_cb) {\r
+ callback.set_adv_param_cb(adv_id, status);\r
+ }\r
+ }\r
+}\r
+\r
+void wrapper_gap_ble_scan_result_callback(gap_scan_result_data_t *scan_result_data)\r
+{\r
+ for (auto callback : g_gap_ble_callback_list) {\r
+ if (callback.scan_result_cb) {\r
+ callback.scan_result_cb(scan_result_data);\r
+ }\r
+ }\r
+}\r
+\r
+void wrapper_gap_ble_set_scan_param_callback(errcode_t status)\r
+{\r
+ for (auto callback : g_gap_ble_callback_list) {\r
+ if (callback.set_scan_param_cb) {\r
+ callback.set_scan_param_cb(status);\r
+ }\r
+ }\r
+}\r
+\r
+void wrapper_gap_ble_connect_state_changed_callback(uint16_t conn_id, bd_addr_t *addr, gap_ble_conn_state_t conn_state,\r
+ gap_ble_pair_state_t pair_state, gap_ble_disc_reason_t disc_reason)\r
+{\r
+ for (auto callback : g_gap_ble_callback_list) {\r
+ if (callback.conn_state_change_cb) {\r
+ callback.conn_state_change_cb(conn_id, addr, conn_state, pair_state, disc_reason);\r
+ }\r
+ }\r
+}\r
+\r
+void wrapper_gap_ble_paired_complete_callback(uint16_t conn_id, const bd_addr_t *addr, errcode_t status)\r
+{\r
+ for (auto callback : g_gap_ble_callback_list) {\r
+ if (callback.pair_result_cb) {\r
+ callback.pair_result_cb(conn_id, addr, status);\r
+ }\r
+ }\r
+}\r
+\r
+void wrapper_gap_ble_terminate_adv_callback(uint8_t adv_id, adv_status_t status)\r
+{\r
+ for (auto callback : g_gap_ble_callback_list) {\r
+ if (callback.terminate_adv_cb) {\r
+ callback.terminate_adv_cb(adv_id, status);\r
+ }\r
+ }\r
+}\r
+\r
+void wrapper_gap_ble_read_rssi_callback(uint16_t conn_id, int8_t rssi, errcode_t status)\r
+{\r
+ for (auto callback : g_gap_ble_callback_list) {\r
+ if (callback.read_rssi_cb) {\r
+ callback.read_rssi_cb(conn_id, rssi, status);\r
+ }\r
+ }\r
+}\r
+\r
+void wrapper_gap_ble_auth_complete_callback(uint16_t conn_id, const bd_addr_t *addr,\r
+ errcode_t status, const ble_auth_info_evt_t* evt)\r
+{\r
+ for (auto callback : g_gap_ble_callback_list) {\r
+ if (callback.auth_complete_cb) {\r
+ callback.auth_complete_cb(conn_id, addr, status, evt);\r
+ }\r
+ }\r
+}\r
+\r
+void wrapper_gap_ble_connect_param_update_callback(uint16_t conn_id, errcode_t status,\r
+ const gap_ble_conn_param_update_t *param)\r
+{\r
+ for (auto callback : g_gap_ble_callback_list) {\r
+ if (callback.conn_param_update_cb) {\r
+ callback.conn_param_update_cb(conn_id, status, param);\r
+ }\r
+ }\r
+}\r
+\r
+void wrapper_gatts_add_service_callback(uint8_t server_id, bt_uuid_t *uuid, uint16_t handle, errcode_t status)\r
+{\r
+ g_svr_handle_list.push_back(handle);\r
+ for (auto callback : g_gatts_callback_list) {\r
+ if (callback.add_service_cb) {\r
+ callback.add_service_cb(server_id, uuid, handle, status);\r
+ }\r
+ }\r
+}\r
+void wrapper_gatts_add_characteristic_callback(uint8_t server_id, bt_uuid_t *uuid, uint16_t service_handle,\r
+ gatts_add_character_result_t *result, errcode_t status)\r
+{\r
+ for (auto callback : g_gatts_callback_list) {\r
+ if (callback.add_characteristic_cb) {\r
+ callback.add_characteristic_cb(server_id, uuid, service_handle, result, status);\r
+ }\r
+ }\r
+}\r
+void wrapper_gatts_add_descriptor_callback(uint8_t server_id, bt_uuid_t *uuid, uint16_t service_handle,\r
+ uint16_t handle, errcode_t status)\r
+{\r
+ for (auto callback : g_gatts_callback_list) {\r
+ if (callback.add_descriptor_cb) {\r
+ callback.add_descriptor_cb(server_id, uuid, service_handle, handle, status);\r
+ }\r
+ }\r
+}\r
+void wrapper_gatts_start_service_callback(uint8_t server_id, uint16_t handle, errcode_t status)\r
+{\r
+ bool skip_flag = true;\r
+ for (auto svr_handle : g_svr_handle_list) {\r
+ if (svr_handle == handle) {\r
+ skip_flag = false;\r
+ }\r
+ }\r
+ if (!skip_flag) {\r
+ for (auto callback : g_gatts_callback_list) {\r
+ if (callback.start_service_cb) {\r
+ callback.start_service_cb(server_id, handle, status);\r
+ }\r
+ }\r
+ wrapper_gatts_service_start();\r
+ }\r
+}\r
+void wrapper_gatts_stop_service_callback(uint8_t server_id, uint16_t handle, errcode_t status)\r
+{\r
+ for (auto callback : g_gatts_callback_list) {\r
+ if (callback.stop_service_cb) {\r
+ callback.stop_service_cb(server_id, handle, status);\r
+ }\r
+ }\r
+}\r
+void wrapper_gatts_delete_all_service_callback(uint8_t server_id, errcode_t status)\r
+{\r
+ for (auto callback : g_gatts_callback_list) {\r
+ if (callback.delete_service_cb) {\r
+ callback.delete_service_cb(server_id, status);\r
+ }\r
+ } \r
+}\r
+void wrapper_gatts_read_request_callback(uint8_t server_id, uint16_t conn_id, gatts_req_read_cb_t *read_cb_para, errcode_t status)\r
+{\r
+ for (auto callback : g_gatts_callback_list) {\r
+ if (callback.read_request_cb) {\r
+ callback.read_request_cb(server_id, conn_id, read_cb_para, status);\r
+ }\r
+ }\r
+}\r
+void wrapper_gatts_write_request_callback(uint8_t server_id, uint16_t conn_id, gatts_req_write_cb_t *write_cb_para, errcode_t status)\r
+{\r
+ for (auto callback : g_gatts_callback_list) {\r
+ if (callback.write_request_cb) {\r
+ callback.write_request_cb(server_id, conn_id, write_cb_para, status);\r
+ }\r
+ }\r
+}\r
+void wrapper_gatts_mtu_changed_callback(uint8_t server_id, uint16_t conn_id, uint16_t mtu_size, errcode_t status)\r
+{\r
+ for (auto callback : g_gatts_callback_list) {\r
+ if (callback.mtu_changed_cb) {\r
+ callback.mtu_changed_cb(server_id, conn_id, mtu_size, status);\r
+ }\r
+ }\r
+}\r
+\r
+static gap_ble_callbacks_t g_wrapper_gap_ble_callbacks = {\r
+ .ble_enable_cb = wrapper_gap_ble_enable_callback,\r
+ .ble_disable_cb = wrapper_gap_ble_disable_callback,\r
+ .set_adv_data_cb = wrapper_gap_ble_set_adv_data_callback,\r
+ .set_adv_param_cb = wrapper_gap_ble_set_adv_param_callback,\r
+ .set_scan_param_cb = wrapper_gap_ble_set_scan_param_callback,\r
+ .start_adv_cb = wrapper_gap_ble_start_adv_callback,\r
+ .stop_adv_cb = wrapper_gap_ble_stop_adv_callback,\r
+ .scan_result_cb = wrapper_gap_ble_scan_result_callback,\r
+ .conn_state_change_cb = wrapper_gap_ble_connect_state_changed_callback,\r
+ .pair_result_cb = wrapper_gap_ble_paired_complete_callback,\r
+ .read_rssi_cb = wrapper_gap_ble_read_rssi_callback,\r
+ .terminate_adv_cb = wrapper_gap_ble_terminate_adv_callback,\r
+ .auth_complete_cb = wrapper_gap_ble_auth_complete_callback,\r
+ .conn_param_update_cb = wrapper_gap_ble_connect_param_update_callback, \r
+};\r
+\r
+static gatts_callbacks_t g_wrapper_gatts_callbacks = {\r
+ .add_service_cb = wrapper_gatts_add_service_callback,\r
+ .add_characteristic_cb = wrapper_gatts_add_characteristic_callback,\r
+ .add_descriptor_cb = wrapper_gatts_add_descriptor_callback,\r
+ .start_service_cb = wrapper_gatts_start_service_callback,\r
+ .stop_service_cb = wrapper_gatts_stop_service_callback,\r
+ .delete_service_cb = wrapper_gatts_delete_all_service_callback,\r
+ .read_request_cb = wrapper_gatts_read_request_callback,\r
+ .write_request_cb = wrapper_gatts_write_request_callback,\r
+ .mtu_changed_cb = wrapper_gatts_mtu_changed_callback, \r
+};\r
+\r
+void wrapper_ble_register(void)\r
+{\r
+ gap_ble_register_callbacks(&g_wrapper_gap_ble_callbacks);\r
+ gatts_register_callbacks(&g_wrapper_gatts_callbacks);\r
+}\r
+\r
+\r
+errcode_t wrapper_gatts_register_server(bt_uuid_t *app_uuid, uint8_t *server_id)\r
+{\r
+ errcode_t ret = ERRCODE_SUCC;\r
+ if (gatts_register_flag) {\r
+ *server_id = gatts_server_id;\r
+ ret = ERRCODE_SUCC;\r
+ } else {\r
+ gatts_register_flag = true;\r
+ ret = gatts_register_server(app_uuid, server_id);\r
+ gatts_server_id = *server_id;\r
+ }\r
+ return ret;\r
+}\r
+\r
+errcode_t wrapper_gatts_add_service(uint8_t server_id, bt_uuid_t *service_uuid, bool is_primary)\r
+{\r
+ g_uuid_list.push_back(*service_uuid);\r
+ return ERRCODE_SUCC;\r
+}\r
+\r
+void wrapper_gatts_service_start(void)\r
+{\r
+ if (!g_uuid_list.empty()) {\r
+ bt_uuid_t &uuid = g_uuid_list.front();\r
+ // 服务异步添加,需要保证当前服务start后,再添加下一个服务\r
+ (void)gatts_add_service(gatts_server_id, &uuid, true);\r
+ g_uuid_list.pop_front();\r
+ } else {\r
+ g_svr_handle_list.clear();\r
+ }\r
+}\r
+\r
+#ifdef __cplusplus\r
+}\r
+#endif\r
#include "wearable_log.h"\r
#include "UiConfig.h"\r
#include "ConnectPhonePresenter.h"\r
-\r
+#include "custom_utils.h"\r
namespace OHOS {\r
static ConnectOpenView *g_pConnectOpenView{nullptr};\r
ConnectOpenView::ConnectOpenView()\r
return;\r
}\r
watchNameLabel->SetPosition(0, 165, HORIZONTAL_RESOLUTION, 45); // 0:x 244:y 454:width 45:height\r
- watchNameLabel->SetText(ConnectPhonePresenter::GetInstance()->getWatchName());\r
+ uint8_t btname[32]={0};\r
+ uint32_t len=sizeof(btname);\r
+ uapi_get_nv_btname(btname,&len);\r
+ watchNameLabel->SetText((char*)btname);\r
watchNameLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40); // 40:font data\r
watchNameLabel->SetStyle(STYLE_BACKGROUND_COLOR, OPA_OPAQUE);\r
watchNameLabel->SetAlign(UITextLanguageAlignment::TEXT_ALIGNMENT_CENTER,\r
#include "bts_le_gap.h"\r
#include "drag_event.h"\r
#include "cmsis_os.h"\r
-#include "tcxo.h"\r
#include "UiConfig.h"\r
#include "wearable_log.h"\r
\r
unsigned int connedDevicesNum = 0;\r
\r
bool ret = gap_get_paired_devices_num(&connedDevicesNum);\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Setup GetPariedDevicesNum ret = %d, num = %d", ret, connedDevicesNum);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Setup GapGetPariedDevicesNum ret = %d, num = %d", ret, connedDevicesNum);\r
\r
if (connedDevicesNum != 0) {\r
gap_paired_device_info_t *devInfo = (gap_paired_device_info_t *)malloc(sizeof(gap_paired_device_info_t) * connedDevicesNum);\r
- if (devInfo == NULL) {\r
+ if (devInfo == nullptr) {\r
return;\r
}\r
ret = gap_get_paired_devices_list(devInfo, (int *)&connedDevicesNum);\r
}\r
free(devInfo);\r
}\r
+\r
+ (void)gap_ble_remove_all_pairs();\r
}\r
\r
void ConnectPhonePresenter::ConfirmOnClick()\r
{\r
bool ret;\r
-\r
- memset_s(watchName, sizeof(watchName), 0, sizeof(watchName));\r
- (void)sprintf_s(watchName, sizeof(watchName), "Watch%x", ((uint32_t)uapi_tcxo_get_us() & 0xFFFF));\r
-\r
- ret = bluetooth_set_local_name((unsigned char*)watchName, strlen((char*)watchName) + 1);\r
- if (ret == false) {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConnectPhonePresenter: bt SetLocalName ret = 0x%x", ret);\r
- }\r
-\r
ret = gap_br_set_bt_scan_mode(GAP_SCAN_MODE_CONNECTABLE_GENERAL_DISCOVERABLE, 60); // start scan\r
- if (ret == false) {\r
+ if (!ret) {\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ConnectPhonePresenter bt gap_br_set_bt_scan_mode ret = 0x%x", ret);\r
}\r
-#ifndef SUPPORT_ALIPAY_SEC\r
BleAdvStart();\r
-#endif\r
}\r
\r
bool ConnectPhonePresenter::OnDrag(UIView& view, const DragEvent& event)\r
return true;\r
}\r
\r
-char* ConnectPhonePresenter::getWatchName()\r
-{\r
- return watchName;\r
}\r
-\r
-}
\ No newline at end of file
private:
void SetNumImg(UIImageView* img, const ImageInfo *info);
void FillIntegerPart(uint16_t intVal);
- void FillDecimalPart(uint16_t intVal);
+ void FillDecimalPart(float data);
void HandlePosition();
bool CreateImageViews(float data);
* @brief This function is invoked when the function SetHorCurrentPage() is called.
*/
void OnActive(void) override;
-
+
+ void OnInactive(void) override;
+
private:
bool resLoadStatus{false};
+
private:
void ProcessData(DialDataType type, DialView* view);
std::unordered_map<int16_t, DialView*> dataTypeMap_;
{
return;
}
- state_ = playersView->GetPlayerButtonState();
- if (state_ == UICheckBox::UICheckBoxState::SELECTED)
- {
- int32_t playerState;
- PlayersModel::GetInstance()->GetPlayerCtr()->GetPlayerState(playerState);
- if (playerState != PLAYER_STARTED)
- {
- playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED);
- return;
- }
+ int32_t playerState;
+ PlayersModel::GetInstance()->GetPlayerCtr()->GetPlayerState(playerState);
+ state_ = playersView->GetPlayerButtonState();
+ if ((playerState != PLAYER_STARTED) && (state_ == UICheckBox::UICheckBoxState::SELECTED)) {
+ playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::UNSELECTED);
+ } else if ((playerState == PLAYER_STARTED) && (state_ == UICheckBox::UICheckBoxState::UNSELECTED)) {
+ playersView->SetPlayerButtonState(UICheckBox::UICheckBoxState::SELECTED);
+ }
+ if (state_ == UICheckBox::UICheckBoxState::SELECTED) {
PlayersModel::GetInstance()->GetPlayerCtr()->GetCurrentTime(playerCurrentTime_);
PlayersModel::GetInstance()->GetDuration(playerMusicDuration_);
if (playerMusicDuration_ != 0)
currentIndex_++;
}
+static uint8_t GetValueLength(uint16_t value)
+{
+ uint8_t length = 1;
+ if (value > 0) {
+ length = log10(value) + 1;
+ }
+ return length;
+}
+
void DialDigitalImgView::FillIntegerPart(uint16_t intVal)
{
- uint8_t length = log10(intVal) + 1;
+ uint8_t length = GetValueLength(intVal);
if (length < allocIntegerLen_) {
for (uint8_t i = 0; i < (allocIntegerLen_ - length); i++) {
SetNumImg(imgs_[currentIndex_], numInfo_[0]);
}
}
-void DialDigitalImgView::FillDecimalPart(uint16_t intVal)
+void DialDigitalImgView::FillDecimalPart(float data)
{
- uint8_t length = log10(intVal) + 1;
- if (length < decimalPrecision_) {
- for (uint8_t i = 0; i < (decimalPrecision_ - length); i++) {
+ uint8_t startIndex = GetValueLength(static_cast<uint16_t>(abs(data))) + 1;
+ char dataStr[10] = {'\0'}; // 10: max number of digits.
+ sprintf_s(dataStr, 10, "%f", data); // 10: size of dataStr
+
+ for (uint8_t i = 0; i < decimalPrecision_; i++) {
+ uint8_t index = startIndex + i;
+ if ((index < 10) && (dataStr[index] != '\0')) { // 10: size of dataStr
+ uint8_t val = dataStr[index] - '0';
+ SetNumImg(imgs_[currentIndex_], numInfo_[val]);
+ } else {
SetNumImg(imgs_[currentIndex_], numInfo_[0]);
}
}
- for (uint8_t i = 0; i < length; i++) {
- uint8_t curNum = static_cast<uint16_t>(intVal / (pow(10, length - i - 1))) % 10; // 10: conversion
- SetNumImg(imgs_[currentIndex_], numInfo_[curNum]);
- }
}
void DialDigitalImgView::HandlePosition()
for (uint8_t i = 0; i < currentIndex_; i++) {
parent_->Add(imgs_[i]);
imgs_[i]->SetPosition(curX, alignPos_.y);
+ imgs_[i]->Invalidate();
curX += imgs_[i]->GetWidth() + space_;
}
}
bool DialDigitalImgView::CreateImageViews(float data)
{
uint8_t imgCnt = 0;
- uint32_t integer = static_cast<uint32_t>(abs(data));
- uint8_t actualIntegerLen = log10(integer) + 1;
+ uint16_t integer = static_cast<uint16_t>(abs(data));
+
+ uint8_t actualIntegerLen = GetValueLength(integer);
if (integerLength_ == 0) {
imgCnt = actualIntegerLen;
if (imgCnt_ != 0) {
for (uint8_t i = 0; i < imgCnt_; i++) {
if (parent_ != nullptr) {
+ imgs_[i]->Invalidate();
parent_->Remove(imgs_[i]);
}
}
if (decimalPrecision_ != 0 && decimalPointInfo_ != nullptr) {
SetNumImg(imgs_[currentIndex_], decimalPointInfo_);
- // 10: conversion
- uint16_t decimalVal = static_cast<uint16_t>((abs(data) - intVal) * (pow(10, decimalPrecision_)));
- FillDecimalPart(decimalVal);
+ FillDecimalPart(data);
}
HandlePosition();
value_ = data;
kaleidoscope_->StartRotateAnimator();
}
}
+
+void DialViewGroup::OnInactive(void)
+{
+ if (video_ != nullptr) {
+ if (!video_->IsStopped()) {
+ video_->StopPlay();
+ }
+ } else if (kaleidoscope_ != nullptr) {
+ kaleidoscope_->StopRotateAnimator();
+ kaleidoscope_->ClearFocus();
+ }
+}
}
\r
if (memcpy_s(info->dialName, DIAL_NAME_MAX_LEN, dialHeader->dialName, DIAL_NAME_MAX_LEN) != EOK) {\r
GRAPHIC_LOGE("[%s: %d]memcpy_s dial name fail!\n", __FUNCTION__, __LINE__);\r
- free(dialHeader);\r
+ UIFree(dialHeader);\r
return false;\r
}\r
\r
if (memcpy_s(info->description, DIAL_DESCRIPTION_MAX_LEN,\r
dialHeader->description, DIAL_DESCRIPTION_MAX_LEN) != EOK) {\r
GRAPHIC_LOGE("[%s: %d]memcpy_s dial description fail!\n", __FUNCTION__, __LINE__);\r
- free(dialHeader);\r
+ UIFree(dialHeader);\r
return false;\r
}\r
\r
info->imgId = dialHeader->previewImgId | dirId_;\r
info->offset = dialHeader->imageOffset;\r
\r
- free(dialHeader);\r
+ UIFree(dialHeader);\r
return true;\r
}\r
\r
{
int32 ret;
uint32 size = sizeof(hfp_hf_calls_info_t);
- Request *request = nullptr;
BroadcastApi *broadcastApi = nullptr;
IUnknown *api = nullptr;
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HfpIncomingEventPublish topic=%u!!", topic);
- /* alloc request */
- request = SAMGR_AllocRequestMsg(0, PLATFORM_CORE, BROADCAST_SVR_ID, size);
- if (request == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SAMGR_AllocRequestMsg failed");
+ void *publishData = malloc(size);
+ if (publishData == nullptr) {
return;
}
- request->msgId = topic;
- ret = memcpy_s(request->data, size, (const void *)&callsInfo, size);
+ ret = memcpy_s(publishData, size, (const void *)&callsInfo, size);
if (ret != EOK) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HfpIncomingEventPublish memcpy_s rateDataTmp fail! ret:%d", ret);
+ free(publishData);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "HfpIncomingEventPublish memcpy_s fail! ret = %d", ret);
return;
}
- request->len = size;
- request->msgValue = 0;
+
+ Request request = {
+ .msgId = topic,
+ .len = size,
+ .msgValue = 0,
+ .data = publishData,
+ };
/* public request */
api = SAMGR_GetInstance()->GetFeatureApi(BROADCAST_SERVICE_NAME, BROADCAST_FEATURE_NAME);
if (api == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetFeatureApi failed");
- SAMGR_FreeRequestMsg(request);
+ free(publishData);
return;
}
ret = api->QueryInterface(api, DEFAULT_VERSION, (void **)&broadcastApi);
if (ret != 0 || broadcastApi == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "QueryInterface failed");
- SAMGR_FreeRequestMsg(request);
+ free(publishData);
return;
}
- broadcastApi->PublishTopic((IUnknown *)broadcastApi, request);
+ broadcastApi->PublishTopic((IUnknown *)broadcastApi, &request);
broadcastApi->Release((IUnknown *)broadcastApi);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "HfpIncomingEventPublish end!!");
if (request == nullptr) {
return FALSE;
}
- SAMGR_FreeRequestMsg(request);
return TRUE;
}
typedef enum {
APPLIST_STYLE, //列表显示
HEXAGONS_STYLE, //蜂窝显示
+ FOOTBALL_STYLE
} DesktopStyle;
namespace OHOS {
namespace OHOS {
static const char *SET_DESKTOP_LIST = "setdesktopList";
static const char *SET_DESKTOP_HEXAGONS = "setdesktopHexagons";
+static const char *SET_DESKTOP_FOOTBALL = "setdesktopFootball";
class SetDesktopView;
class SetDesktopModel;
bool OnDrag(UIView& view, const DragEvent& event) override;
bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
- bool GetHexagonsStyleState(void);
+ uint8_t GetCurrentStyle(void);
private:
};
void OnSetUpView() override;
void OnTearDownView() override;
void OnStop() override;
- void UpdateSelectedStyle(bool hexagonsSelected);
+ void UpdateSelectedStyle(uint8_t selectedStyle);
+ uint8_t GetCurrentSelectedStyle(void);
+
private:
+ void InitFootballItem();
UILabel titleText;
UIToggleButton hexagonsBtn;
UIToggleButton listBtn;
+ UIToggleButton footballBtn_;
UIImageView hexagonsImage;
UIImageView listImage;
+ UIImageView footballImage_;
UILabel listText;
UILabel hexagonsText;
+ UILabel footballText_;
};
}
#endif // SET_DESKTOP_VIEW_H
(void)UtilsGetValue("applist_style", temp, STYLE_VALUE_LEN);
if (strcmp(temp, "hexagons") == 0) {
style = HEXAGONS_STYLE;
+ } else if (strcmp(temp, "football") == 0) {
+ style = FOOTBALL_STYLE;
} else {
style = APPLIST_STYLE;
}
(void)UtilsSetValue("applist_style", "list");
} else if (style == HEXAGONS_STYLE) {
(void)UtilsSetValue("applist_style", "hexagons");
+ } else if (style == FOOTBALL_STYLE) {
+ (void)UtilsSetValue("applist_style", "football");
}
}
SetDesktopModel::GetInstance().SetDesktopStyle(HEXAGONS_STYLE);
} else if (strcmp(view.GetViewId(), SET_DESKTOP_LIST) == 0) {
SetDesktopModel::GetInstance().SetDesktopStyle(APPLIST_STYLE);
+ } else if (strcmp(view.GetViewId(), SET_DESKTOP_FOOTBALL) == 0) {
+ SetDesktopModel::GetInstance().SetDesktopStyle(FOOTBALL_STYLE);
}
//uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
//NativeAbility::GetInstance().ChangeSlice(preSlice);
NativeAbility::GetInstance().Back();
return true;
}
- bool SetDesktopPresenter::GetHexagonsStyleState(void)
+ uint8_t SetDesktopPresenter::GetCurrentStyle(void)
{
- return (SetDesktopModel::GetInstance().GetDesktopStyle() == HEXAGONS_STYLE);
+ DesktopStyle style = SetDesktopModel::GetInstance().GetDesktopStyle();
+ if (style == HEXAGONS_STYLE) {
+ return 1; // 1: hexagons style enum index
+ } else if (style == FOOTBALL_STYLE) {
+ return 2; // 2: football style enum index
+ }
+ return 0;
}
+
bool SetDesktopPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetDesktopPresenter::OnKeyAct");
titleText.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
container_->Add(&titleText);
- listImage.SetPosition(25, 135, 190, 190);
+ listImage.SetPosition(0, 135, 190, 190);
listImage.SetSrc(PNG_SET_DESKTOP_BG_IMAGE);
container_->Add(&listImage);
- listBtn.SetPosition(47, 157, 148, 148);
+ listBtn.SetPosition(22, 157, 148, 148);
listBtn.SetImages(PNG_SET_DESKTOP_LIST_IMAGE, PNG_SET_DESKTOP_LIST_IMAGE);
listBtn.SetViewId(SET_DESKTOP_LIST);
container_->Add(&listBtn);
- listText.SetPosition(96, 328, 200, 60);
+ listText.SetPosition(61, 328, 200, 60);
listText.SetText("列表");
listText.SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
listText.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
listText.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
container_->Add(&listText);
- hexagonsImage.SetPosition(247, 135, 190, 190);
+ hexagonsImage.SetPosition(150, 135, 190, 190);
hexagonsImage.SetSrc(PNG_SET_DESKTOP_BG_IMAGE);
container_->Add(&hexagonsImage);
- hexagonsBtn.SetPosition(267, 157, 148, 148);
+ hexagonsBtn.SetPosition(172, 157, 148, 148);
hexagonsBtn.SetImages(PNG_SET_DESKTOP_HEXAGONS_IMAGE, PNG_SET_DESKTOP_HEXAGONS_IMAGE);
hexagonsBtn.SetViewId(SET_DESKTOP_HEXAGONS);
container_->Add(&hexagonsBtn);
- hexagonsText.SetPosition(305, 328, 200, 60);
+ hexagonsText.SetPosition(218, 328, 200, 60);
hexagonsText.SetText("蜂窝");
hexagonsText.SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
hexagonsText.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
hexagonsText.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
container_->Add(&hexagonsText);
+ InitFootballItem();
listBtn.SetOnClickListener(presenter_);
hexagonsBtn.SetOnClickListener(presenter_);
- UpdateSelectedStyle(presenter_->GetHexagonsStyleState());
+ footballBtn_.SetOnClickListener(presenter_);
+ UpdateSelectedStyle(presenter_->GetCurrentStyle());
}
void SetDesktopView::OnTearDownView()
}
}
-void SetDesktopView::UpdateSelectedStyle(bool hexagonsSelected)
+void SetDesktopView::UpdateSelectedStyle(uint8_t selectedStyle)
{
- listImage.SetVisible(!hexagonsSelected);
- hexagonsImage.SetVisible(hexagonsSelected);
- hexagonsBtn.SetState(hexagonsSelected);
- listBtn.SetState(!hexagonsSelected);
+ hexagonsImage.SetVisible(false);
+ hexagonsBtn.SetState(false);
+ listImage.SetVisible(false);
+ listBtn.SetState(false);
+ footballImage_.SetVisible(false);
+ footballBtn_.SetState(false);
+
+ if (selectedStyle == 1) { // 1: select hexagons style
+ hexagonsImage.SetVisible(true);
+ hexagonsBtn.SetState(true);
+ } else if (selectedStyle == 2) { // 2: select football style
+ footballImage_.SetVisible(true);
+ footballBtn_.SetState(true);
+ } else {
+ listImage.SetVisible(true);
+ listBtn.SetState(true);
+ }
+}
+
+void SetDesktopView::InitFootballItem()
+{
+ footballImage_.SetPosition(300, 135, 190, 190);
+ footballImage_.SetSrc(PNG_SET_DESKTOP_BG_IMAGE);
+ container_->Add(&footballImage_);
+
+ footballBtn_.SetPosition(322, 157, 148, 148);
+ footballBtn_.SetImages(PNG_SET_DESKTOP_HEXAGONS_IMAGE, PNG_SET_DESKTOP_HEXAGONS_IMAGE);
+ footballBtn_.SetViewId(SET_DESKTOP_FOOTBALL);
+ container_->Add(&footballBtn_);
+
+ footballText_.SetPosition(368, 328, 200, 60);
+ footballText_.SetText("足球");
+ footballText_.SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
+ footballText_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ footballText_.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ container_->Add(&footballText_);
+}
+
+uint8_t SetDesktopView::GetCurrentSelectedStyle()
+{
+ return presenter_->GetCurrentStyle();
}
}
#include "SetDialModel.h"
#include "Presenter.h"
#include "components/ui_view.h"
+#include "components/ui_roller_view.h"
#include "KeyInputListener.h"
#include "ModelListenerSample.h"
class SetDialModel;
class SetDialPresenter : public Presenter<SetDialView>,
public UIView::OnClickListener, public ModelListenerSample,
- public UICoverflowView::OnCoverflowScrollListener {
+ public UICoverflowView::OnCoverflowScrollListener,
+ public UIRollerView::OnScrollListener {
public:
SetDialPresenter();
~SetDialPresenter() override;
void OnTickEvent() override;
void Notify() override {}
bool OnScroll() override;
+ void OnScroll(UIRollerView* roller, std::string currentItemName, float currentItemAngle) override;
bool OnClick(UIView &view, const ClickEvent &event) override;
void ResetTickTimer(void);
private:
#include "View.h"
#include "components/ui_view_group.h"
#include "components/ui_coverflow_view.h"
+#include "components/ui_roller_view.h"
#include "window/window.h"
#include "BaseView.h"
#include "ChangeSliceListener.h"
static constexpr uint8_t DIVISOR_TWO = 2;
class SetDialPresenter;
+enum class DialStyle {
+ COVERFLOW = 0,
+ ROLLER,
+ STYLE_NUM
+};
+
class SetDialView : public View<SetDialPresenter> {
public:
SetDialView();
void OnTearDownView() override;
void OnStop() override;
void CoverflowViewScroll(void);
+ void RollerViewScroll(std::string currentItemName, float currentItemAngle);
uint8_t GetCoverflowPage(void);
private:
void SetUpCoverflowView(void);
+ void SetUpRollerView(void);
UICoverflowView coverflow_;
+ UIRollerView rollerView_;
+ int16_t rollerItemNum_ = 0;
UILabel label_;
uint8_t lastIndex_;
};
return true;
}
+ void SetDialPresenter::OnScroll(UIRollerView* roller, std::string currentItemName, float currentItemAngle)
+ {
+ view_->RollerViewScroll(currentItemName, currentItemAngle);
+ }
+
size_t SetDialPresenter::GetDialCount(void)
{
return model->GetDialCount();
#include <string>
#include "SetDialView.h"
#include "SetDialPresenter.h"
+#include "SetDialStyleModel.h"
namespace OHOS {
SetDialView::SetDialView()
View<SetDialPresenter>::OnStart();
SetContainerView(new UIViewGroup());
container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
- SetUpCoverflowView();
+ if (SetDialStyleModel::GetInstance().GetStyle() == DialStyle::COVERFLOW) {
+ SetUpCoverflowView();
+ } else {
+ SetUpRollerView();
+ }
}
void SetDialView::SetUpCoverflowView(void)
coverflow_.SetIntercept(true);
coverflow_.SetOnCoverflowListener(presenter_);
coverflow_.SetOnClickListener(presenter_);
+ coverflow_.SetThrowDrag(true);
std::vector<SetDialInfo> &dialInfo = presenter_->GetDialInfo();
for (auto iter : dialInfo) {
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetDialView::SetUpCoverflowView %s",
label_.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
label_.SetText(dialInfo[lastIndex_].dialName.c_str());
label_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
-
+
container_->Add(&coverflow_);
container_->Add(&label_);
}
+void SetDialView::SetUpRollerView(void)
+{
+ rollerView_.SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+ rollerView_.SetItemSize(150, 150); // 150: item size
+ rollerView_.SetThrowDrag(true);
+ rollerView_.SetItemPadding(80); // 80: item padding
+ container_->Add(&rollerView_);
+
+ std::vector<SetDialInfo> &dialInfo = presenter_->GetDialInfo();
+ for (auto iter : dialInfo) {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetDialView::SetUpRollerView %s",
+ iter.dialName.c_str());
+ bool succ = rollerView_.AddItem(iter.dialName, iter.preImageInfo);
+ rollerItemNum_ += succ ? 1 : 0;
+ }
+ float scalerCoef = 0.55;
+ uint16_t w = Screen::GetInstance().GetWidth();
+ uint16_t h = Screen::GetInstance().GetHeight();
+ rollerView_.SetItemSize(w * scalerCoef, h * scalerCoef);
+ lastIndex_ = presenter_->GetPageIndex();
+ rollerView_.SetCurrentItem(dialInfo[lastIndex_].dialName);
+ rollerView_.SetOnClickListener(presenter_);
+ rollerView_.SetOnScrollListener(presenter_);
+
+ label_.SetPosition(127, 50, 200, 50);
+ label_.SetTextColor(Color::White());
+ label_.SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ label_.SetText(dialInfo[lastIndex_].dialName.c_str());
+ label_.SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ container_->Add(&label_);
+}
+
void SetDialView::OnSetUpView()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetDialView::OnSetUpView");
presenter_->ResetTickTimer();
}
+void SetDialView::RollerViewScroll(std::string currentItemName, float currentItemAngle)
+{
+ const float baseAngle = 360.0;
+ const float halfBaseAngle = 180.0;
+ if (FloatMoreEqual(currentItemAngle, halfBaseAngle)) {
+ currentItemAngle -= baseAngle;
+ }
+ if (currentItemAngle < 0) {
+ currentItemAngle = -currentItemAngle;
+ }
+ float maxAngle = baseAngle / rollerItemNum_;
+ float coef = 1.0 - 1.0 / (maxAngle) * currentItemAngle;
+ label_.SetStyle(STYLE_TEXT_OPA, coef * OPA_OPAQUE);
+ label_.SetText(currentItemName.c_str());
+ std::vector<SetDialInfo> &dialInfo = presenter_->GetDialInfo();
+ for (uint8_t i = 0; i < dialInfo.size(); ++i) {
+ if (dialInfo[i].dialName == currentItemName) {
+ lastIndex_ = i;
+ }
+ }
+ presenter_->ResetTickTimer();
+}
+
uint8_t SetDialView::GetCoverflowPage(void)
{
return lastIndex_;
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2024. All rights reserved.
+ * Description: SetDialStyleModel.h
+ * Author:
+ * Create: 2024-06-06
+ */
+
+#ifndef SET_DIAL_STYLE_MODEL_H
+#define SET_DIAL_STYLE_MODEL_H
+#include "SetDialView.h"
+#include "components/ui_view.h"
+
+namespace OHOS {
+class SetDialStyleModel {
+public:
+ static SetDialStyleModel& GetInstance()
+ {
+ static SetDialStyleModel model;
+ return model;
+ }
+
+ void SetStyle(DialStyle style);
+ DialStyle GetStyle();
+
+private:
+ constexpr static uint8_t MAX_LEN = 32;
+ const char key_[MAX_LEN] = "set_dial_style";
+ struct {
+ const DialStyle style;
+ const char value[MAX_LEN];
+ } values_[static_cast<int>(DialStyle::STYLE_NUM)] = {
+ {DialStyle::COVERFLOW, "DialStyle::COVERFLOW"},
+ {DialStyle::ROLLER, "DialStyle::ROLLER"},
+ };
+ SetDialStyleModel();
+ ~SetDialStyleModel();
+ SetDialStyleModel(const SetDialStyleModel&) = delete;
+ SetDialStyleModel& operator=(const SetDialStyleModel&) = delete;
+};
+} // OHOS
+#endif
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2024. All rights reserved.
+ * Description: SetDialStylePresenter.h
+ * Author:
+ * Create: 2024-06-06
+ */
+
+#ifndef SET_DIAL_STYLE_PRESENTER_H
+#define SET_DIAL_STYLE_PRESENTER_H
+#include "SetDialView.h"
+#include "components/ui_view.h"
+#include "Presenter.h"
+
+namespace OHOS {
+class SetDialStyleModel;
+class SetDialStyleView;
+class SetDialStylePresenter : public Presenter<SetDialStyleView, SetDialStyleModel>,
+ public UIView::OnClickListener,
+ public UIView::OnDragListener {
+public:
+ SetDialStylePresenter();
+ ~SetDialStylePresenter();
+ SetDialStylePresenter(const SetDialStylePresenter&) = delete;
+ SetDialStylePresenter& operator=(const SetDialStylePresenter&) = delete;
+ bool OnClick(UIView &view, const ClickEvent &event) override;
+ bool OnDrag(UIView& view, const DragEvent& event) override;
+ DialStyle GetCurrentStyle() const
+ {
+ return curStyle_;
+ }
+
+private:
+ DialStyle curStyle_ = DialStyle::COVERFLOW;
+};
+
+} // OHOS
+#endif
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2024. All rights reserved.
+ * Description: SetDialStyleView.h
+ * Author:
+ * Create: 2024-06-06
+ */
+
+#ifndef SET_DIAL_STYLE_VIEW_H
+#define SET_DIAL_STYLE_VIEW_H
+#include "components/ui_view.h"
+#include "components/ui_label.h"
+#include "components/ui_view_group.h"
+#include "components/ui_toggle_button.h"
+#include "SetDialView.h"
+#include "View.h"
+
+namespace OHOS {
+class SetDialStylePresenter;
+class SetDialStyleView : public View<SetDialStylePresenter> {
+public:
+ SetDialStyleView();
+ ~SetDialStyleView() override;
+ SetDialStyleView(const SetDialStyleView &) = delete;
+ SetDialStyleView& operator=(const SetDialStyleView &) = delete;
+
+ void OnStart() override;
+ void OnSetUpView() override;
+ void OnStop() override;
+ void OnClick(UIView &view);
+
+private:
+ UILabel labelCover_;
+ UILabel labelRoller_;
+ UIToggleButton btnCover_;
+ UIToggleButton btnRoller_;
+ struct {
+ UIToggleButton *btn;
+ DialStyle style;
+ } styleTable_[static_cast<int>(DialStyle::STYLE_NUM)] = {
+ {&btnCover_, DialStyle::COVERFLOW},
+ {&btnRoller_, DialStyle::ROLLER},
+ };
+};
+} // OHOS
+#endif
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2024. All rights reserved.
+ * Description: SetDialStyleModel.cpp
+ * Author:
+ * Create: 2024-06-06
+ */
+
+#include "SetDialStyleModel.h"
+#include "kv_store.h"
+
+namespace OHOS {
+void SetDialStyleModel::SetStyle(DialStyle style)
+{
+ int len = sizeof(values_) / sizeof(values_[0]);
+ for (int i = 0; i < len; ++i) {
+ if (values_[i].style == style) {
+ UtilsSetValue(key_, values_[i].value);
+ break;
+ }
+ }
+}
+
+DialStyle SetDialStyleModel::GetStyle()
+{
+ int len = sizeof(values_) / sizeof(values_[0]);
+ char temp[MAX_LEN];
+ UtilsGetValue(key_, temp, MAX_LEN);
+ for (int i = 0; i < len; ++i) {
+ if (strcmp(temp, values_[i].value) == 0) {
+ return values_[i].style;
+ }
+ }
+ return DialStyle::COVERFLOW;
+}
+
+SetDialStyleModel::SetDialStyleModel()
+{
+}
+
+SetDialStyleModel::~SetDialStyleModel()
+{
+}
+} // OHOS
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2024. All rights reserved.
+ * Description: SetDialStylePresenter.cpp
+ * Author:
+ * Create: 2024-06-06
+ */
+
+#include "SetDialStyleView.h"
+#include "SetDialStyleModel.h"
+#include "SetDialStylePresenter.h"
+
+namespace OHOS {
+SetDialStylePresenter::SetDialStylePresenter()
+{
+ Attach(&SetDialStyleModel::GetInstance());
+}
+
+SetDialStylePresenter::~SetDialStylePresenter()
+{
+}
+
+bool SetDialStylePresenter::OnClick(UIView &view, const ClickEvent &event)
+{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetDialStylePresenter::OnClick");
+ view_->OnClick(view);
+ return true;
+}
+
+bool SetDialStylePresenter::OnDrag(UIView& view, const DragEvent& event)
+{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SetDialStylePresenter::OnDrag");
+ UNUSED(view);
+ if ((event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) &&
+ (event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingPresenter::OnDrag ChangeSlice");
+ uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();
+ NativeAbility::GetInstance().ChangeSlice(preSlice);
+ }
+ return true;
+}
+} // OHOS
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2024. All rights reserved.
+ * Description: SetDialStyleView.cpp
+ * Author:
+ * Create: 2024-06-06
+ */
+
+#include "SetDialStyleView.h"
+#include "SetDialStyleModel.h"
+#include "SetDialStylePresenter.h"
+
+namespace OHOS {
+SetDialStyleView::SetDialStyleView()
+{
+}
+
+SetDialStyleView::~SetDialStyleView()
+{
+}
+
+void SetDialStyleView::OnStart()
+{
+ View<SetDialStylePresenter>::OnStart();
+ SetContainerView(new UIViewGroup);
+ if (container_ == nullptr) {
+ return;
+ }
+ container_->SetDraggable(true);
+ container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+ container_->SetOnDragListener(presenter_);
+ container_->SetTouchable(true);
+}
+
+void SetDialStyleView::OnSetUpView()
+{
+ if (container_ == nullptr) {
+ return;
+ }
+ View<SetDialStylePresenter>::OnSetUpView();
+ labelCover_.SetPosition(96, 328, 200, 60);
+ labelCover_.SetText("Coverflow");
+ container_->Add(&labelCover_);
+
+ labelRoller_.SetPosition(305, 328, 200, 60);
+ labelRoller_.SetText("Roller");
+ container_->Add(&labelRoller_);
+
+ btnCover_.SetPosition(47, 157, 148, 148);
+ container_->Add(&btnCover_);
+ btnRoller_.SetPosition(267, 157, 148, 148);
+ container_->Add(&btnRoller_);
+
+ const DialStyle style = SetDialStyleModel::GetInstance().GetStyle();
+ int len = sizeof(styleTable_) / sizeof(styleTable_[0]);
+ for (int i = 0; i < len; ++i) {
+ if (style == styleTable_[i].style) {
+ styleTable_[i].btn->SetState(true);
+ } else {
+ styleTable_[i].btn->SetState(false);
+ }
+ }
+
+ btnCover_.SetOnClickListener(presenter_);
+ btnRoller_.SetOnClickListener(presenter_);
+}
+
+void SetDialStyleView::OnStop()
+{
+ View<SetDialStylePresenter>::OnStop();
+ if (container_ != nullptr) {
+ container_->RemoveAll();
+ delete container_;
+ container_ = nullptr;
+ }
+}
+
+void SetDialStyleView::OnClick(UIView &view)
+{
+ const UIToggleButton *ptr = dynamic_cast<UIToggleButton*>(&view);
+ if (ptr == nullptr) {
+ return;
+ }
+ int len = sizeof(styleTable_) / sizeof(styleTable_[0]);
+ for (int i = 0; i < len; ++i) {
+ if (ptr == styleTable_[i].btn) {
+ styleTable_[i].btn->SetState(true);
+ SetDialStyleModel::GetInstance().SetStyle(styleTable_[i].style);
+ } else {
+ styleTable_[i].btn->SetState(false);
+ }
+ }
+}
+} // OHOS
\ No newline at end of file
/*
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-14 09:40:13
- * @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-18 14:42:57
+ * @LastEditors: SnickerSun snickersun@163.com
+ * @LastEditTime: 2024-07-02 20:02:35
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/themestyle/include/ThemeStyleModel.h
*/
#ifndef SET_THEMESTYLE_MODEL_H
static constexpr const char *THEMESTYLE_KEY = "applist_style";
static constexpr const char *THEMESTYLE_VALUE_LIST = "list";
static constexpr const char *THEMESTYLE_VALUE_HEXAGONS = "hexagons";
+ static constexpr const char *THEMESTYLE_VALUE_FOOTBALL = "football";
typedef enum : uint16_t
{
APPLIST_STYLE, // 列表显示
HEXAGONS_STYLE, // 蜂窝显示
+ FOOTBALL_STYLE, //足球
MAX_THEME_STYLE,
} ThemeStyle;
const std::map<ThemeStyle, std::string> ThemeStyleMap = {
{ThemeStyle::APPLIST_STYLE, THEMESTYLE_VALUE_LIST},
{ThemeStyle::HEXAGONS_STYLE, THEMESTYLE_VALUE_HEXAGONS},
+ {ThemeStyle::FOOTBALL_STYLE, THEMESTYLE_VALUE_FOOTBALL},
// 在此处添加更多的映射关系
};
const std::unordered_map<std::string, ThemeStyle> ReverseThemeStyleMap = {
{THEMESTYLE_VALUE_LIST, ThemeStyle::APPLIST_STYLE},
{THEMESTYLE_VALUE_HEXAGONS, ThemeStyle::HEXAGONS_STYLE},
+ {THEMESTYLE_VALUE_FOOTBALL, ThemeStyle::FOOTBALL_STYLE},
// 在此处添加更多的映射关系
};
std::bind(&OHOS::DisplayBrightnessModel::UpdateBrightnessValueOfSlider, OHOS::DisplayBrightnessModel::GetInstance()));
break;
}
- SAMGR_FreeRequestMsg(request);
#endif
/* -------------------------------------------------------------------------- */
WEARABLE_LOGI(WEARABLE_LOG_MODULE_UI_SERVICE, "UiServiceMsgId = %d",request->msgId);
break;
}
}
- //释放请求消息
- SAMGR_FreeRequestMsg(request);
/* -------------------------------------------------------------------------- */
}
//发送msg
static int32_t SendMsg(int32_t msgId, uint32_t msgValue, void *data, int32_t dataLen)
{
- Request *request = SAMGR_AllocRequestMsg(0, PLATFORM_CORE, UI_SVR_ID, dataLen);
- if (request == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_UI_SERVICE, "SAMGR_AllocRequestMsg failed");
- return FALSE;
- }
- request->msgId = msgId;
- request->msgValue = msgValue;
- if (data != nullptr) {
- (void)memcpy_s(request->data, dataLen, data, dataLen);
+ int32_t ret;
+ void *sendData = nullptr;
+ if (dataLen > 0) {
+ sendData = malloc(dataLen);
+ if (sendData == nullptr) {
+ return FALSE;
+ }
+ ret = memcpy_s(sendData, dataLen, data, dataLen);
+ if (ret != EOK) {
+ free(sendData);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uiservice sendMsg memcpy_s fail! ret = %d", ret);
+ return FALSE;
+ }
}
- int32_t ret = SAMGR_SendRequest(IUNKNOWN_GetIdentity(GET_IUNKNOWN(g_uiService)), request, nullptr);
+ Request request = {
+ .msgId = msgId,
+ .len = dataLen,
+ .msgValue = msgValue,
+ .data = sendData,
+ };
+
+ ret = SAMGR_SendRequest(IUNKNOWN_GetIdentity(GET_IUNKNOWN(g_uiService)), &request, nullptr);
if (ret != 0) {
+ if (sendData != nullptr) {
+ free(sendData);
+ }
WEARABLE_LOGE(WEARABLE_LOG_MODULE_UI_SERVICE, "SendMsg failed ret = %d ", ret);
return FALSE;
}