${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/MainCompassView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/MainCompassPresenter.cpp
+ #经典蓝牙
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/classicbluetooth/src/ClassicBlueToothModel.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/classicbluetooth/src/ClassicBlueToothPresenter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/classicbluetooth/src/ClassicBlueToothView.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
VIEW_MAIN_ALARM, // 闹钟
VIEW_ALARM_POP_UP, // 闹铃界面
VIEW_BLUETOOTH_EARPHONE, // 连接蓝牙耳机界面
+ VIEW_CLASSIC_BLUETOOTH, // 经典蓝牙
VIEW_CALLER_LOG, // 通话记录界面
VIEW_INCOMING_CALL, // 来电界面
VIEW_BLOODOXY, // 血氧饱和度界面
void InitMessageSlice(void);
/* -------------------------------------------------------------------------- */
void InitDisplayBrightnessSlice(void);
+ /* --------------------------------- 经典蓝牙界面 --------------------------------- */
+ void InitClassicBluetoothSlice(void);
/* --------------------------------测试界面------------------------------------ */
void InitBloodSlice(void);
#include "UISampleView.h"
#include "UISamplePresenter.h"
-
#include "blood/include/BloodCardView.h"
#include "weather/include/MainWeatherPresenter.h"
#include "secondaryfunction/include/QuickAccessPresenter.h"
#include "secondaryfunction/include/QuickAccessView.h"
+#include "classicbluetooth/include/ClassicBlueToothPresenter.h"
+#include "classicbluetooth/include/ClassicBlueToothView.h"
+
#include "BluetoothHeadsetEvent.h"
#include "graphic_hardware_config.h"
#include "graphic_service.h"
{VIEW_SYSTEM, &NativeLauncher::InitSystemSlice}, // 系统实例化地址
{VIEW_SOUND_VIBRATION, &NativeLauncher::InitSoundAndVibrationSlice}, // 声音与震动实例化地址
{VIEW_SYSTEM_VOLUME, &NativeLauncher::InitSystemVolumeSlice}, // 系统音量
-
- {VIEW_DISPLAY_BRIGHTNESS, &NativeLauncher::InitDisplayBrightnessSlice}, // 显示与亮度的实例化地址
+ {VIEW_CLASSIC_BLUETOOTH, &NativeLauncher::InitClassicBluetoothSlice}, // 经典蓝牙slice
+ {VIEW_DISPLAY_BRIGHTNESS, &NativeLauncher::InitDisplayBrightnessSlice}, // 显示与亮度的实例化地址
{VIEW_SECONDARY_FUNCTION, &NativeLauncher::InitSecondaryFunction},
{VIEW_QUICK_ACCESS, &NativeLauncher::InitQuickAccessSlice}, // 快速访问实例化地址
{VIEW_FAST_TRAINING, &NativeLauncher::InitFastTrainingSlice},
NativeAbility::GetInstance().AddSliceProxy(VIEW_UISAMPLE, uisampleView);
}
-
void NativeLauncher::InitWeatherSlice(void) // 天气
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitWeatherSlice");
NativeAbility::GetInstance().AddSliceProxy(VIEW_DISPLAY_BRIGHTNESS, uidisplaybrightnessView);
}
-
void NativeLauncher::InitSecondaryFunction(void) // 辅助功能
{
SliceProxy *secondaryfunction = new AbilitySliceProxy<SecondaryFunctionView, SecondaryFunctionPresenter>;
NativeAbility::GetInstance().AddSliceProxy(VIEW_FAST_TRAINING_ATTENTION, fasttrainingattention);
}
+ void NativeLauncher::InitClassicBluetoothSlice(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitClassicBluetoothSlice");
+ SliceProxy *classicbluetooth = new AbilitySliceProxy<ClassicBlueToothView, ClassicBlueToothPresenter>;
+ if (classicbluetooth == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "classicbluetooth");
+ return;
+ }
+ NativeAbility::GetInstance().AddSliceProxy(VIEW_CLASSIC_BLUETOOTH, classicbluetooth);
+ }
+
}
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainBluetoothView::ChangeSettingView");\r
BluetoothModel::GetInstance()->SetTagConnectView(false);\r
BluetoothModel::GetInstance()->SetTagScanDeviceClicked(false);\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_CLASSIC_BLUETOOTH);\r
}\r
\r
void MainBluetoothView::DropEarPhoneView()\r
--- /dev/null
+#ifndef CLASSIC_BLUETOOTH_MODEL_H\r
+#define CLASSIC_BLUETOOTH_MODEL_H\r
+\r
+#include "wearable_log.h"\r
+\r
+namespace OHOS\r
+{\r
+ class ClassicBlueToothModel\r
+ {\r
+ public:\r
+ static ClassicBlueToothModel *GetInstance(void);\r
+ void MarkTradionalBlueToothToggleButtonStatus(bool value);\r
+ bool TradionalBlueToothToggleButtonStatusInit();\r
+\r
+ private:\r
+ ClassicBlueToothModel();\r
+ ClassicBlueToothModel(const ClassicBlueToothModel &);\r
+ ClassicBlueToothModel &operator=(const ClassicBlueToothModel &);\r
+ virtual ~ClassicBlueToothModel();\r
+\r
+ private:\r
+ // 用来记录蓝牙开关状态,默认关闭状态\r
+ bool TradionalBlueToothToggleButtonState{false}; \r
+ };\r
+} // namespace OHOS\r
+#endif
\ No newline at end of file
--- /dev/null
+#ifndef CLASSIC_BLUETOOTH_PRESENTER_H\r
+#define CLASSIC_BLUETOOTH_PRESENTER_H\r
+#include "Presenter.h"\r
+#include "ClassicBlueToothView.h"\r
+#include "wearable_log.h"\r
+namespace OHOS\r
+{\r
+ class ClassicBlueToothView;\r
+ class ClassicBlueToothPresenter : public Presenter<ClassicBlueToothView>,\r
+ public UIView::OnClickListener,\r
+ public UIView::OnDragListener,\r
+ public UICheckBox::OnChangeListener\r
+ {\r
+ public:\r
+ ClassicBlueToothPresenter();\r
+ virtual ~ClassicBlueToothPresenter();\r
+\r
+ virtual void OnStart() override;\r
+ virtual void OnPause() override;\r
+ virtual void OnResume() override;\r
+ virtual void OnStop() override;\r
+\r
+ static ClassicBlueToothPresenter *GetInstance();\r
+ void SetBluetoothDeviceSwitchState(bool value);\r
+ private:\r
+ // 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
+ bool OnClick(UIView &view, const ClickEvent &event) override;\r
+ bool OnDrag(UIView &view, const DragEvent &event) override;\r
+ bool OnDragEnd(UIView &view, const DragEvent &event) override;\r
+ bool OnChange(UICheckBox::UICheckBoxState state) override;\r
+ };\r
+}\r
+\r
+#endif
\ No newline at end of file
--- /dev/null
+#ifndef CLASSIC_BLUETOOTH_VIEW_H\r
+#define CLASSIC_BLUETOOTH_VIEW_H\r
+\r
+#include "BaseView.h"\r
+#include "View.h"\r
+#include "components/root_view.h"\r
+#include "components/ui_scroll_view.h"\r
+#include "components/ui_label.h"\r
+#include "components/ui_button.h"\r
+#include "components/ui_image_view.h"\r
+#include "components/ui_toggle_button.h"\r
+#include "wearable_log.h"\r
+namespace OHOS\r
+{\r
+ static const char *BLUETOOTHEARPHONEBUTTON = "BlueToothEarPhoneButton"; // 蓝牙耳机按钮ID\r
+ // 返回setting视图界面\r
+ class ClassicBlueToothPresenter;\r
+ class ClassicBlueToothView : public View<ClassicBlueToothPresenter>\r
+ {\r
+ public:\r
+ struct LabelConfig\r
+ {\r
+ int16_t left;\r
+ int16_t top;\r
+ int16_t width;\r
+ int16_t height;\r
+ int16_t fontSize; // 字体大小\r
+ int16_t lineHeigh; // 行高\r
+ const char *text; // 文本\r
+ uint8_t lineBreakMode; // 断行模式。\r
+ };\r
+ ClassicBlueToothView();\r
+ virtual ~ClassicBlueToothView();\r
+ static ClassicBlueToothView *GetInstance(void);\r
+ void ClassicBlueToothViewInit(void);\r
+ void ClearAll(void);\r
+ bool GetTradionalBlueToothToggleButtonState(void);\r
+ void SetTradionalBlueToothToggleButtonState(bool state);\r
+\r
+ public:\r
+ virtual void OnStart() override;\r
+ virtual void OnSetUpView() override;\r
+ virtual void OnTearDownView() override;\r
+ virtual void OnStop() override;\r
+\r
+ private:\r
+ bool SetUpBlueToothScrollView(void);\r
+ UILabel *SetClassicBlueToothViewLabel(LabelConfig &labelconfig);\r
+ bool SetUpBlueToothLabel(void);\r
+ bool SetUpBlueToothEarPhoneButton(void);\r
+ bool SetUpBlueToothToggleButton(void);\r
+ bool SetUpImageView(void);\r
+ UIScrollView *BlueToothScrollView = nullptr;\r
+ UILabel *Title = nullptr;\r
+ UILabel *BlueToothEarPhoneLabel = nullptr;\r
+ UILabel *TradionalBlueToothLabel = nullptr;\r
+ UILabel *AttentionLabel = nullptr;\r
+ UIImageView *image[2]{nullptr};\r
+ UIButton *BlueToothEarPhoneButton = nullptr;\r
+ UIToggleButton *TradionalBlueToothToggleButton = nullptr;\r
+ bool initViewStatus{false};\r
+ };\r
+}\r
+#endif\r
--- /dev/null
+#include "classicbluetooth/include/ClassicBlueToothModel.h"\r
+#include "classicbluetooth/include/ClassicBlueToothPresenter.h"\r
+\r
+namespace OHOS\r
+{\r
+ ClassicBlueToothModel::ClassicBlueToothModel() {}\r
+\r
+ ClassicBlueToothModel::~ClassicBlueToothModel() {}\r
+\r
+ ClassicBlueToothModel *ClassicBlueToothModel::GetInstance(void)\r
+ {\r
+ static ClassicBlueToothModel instance;\r
+ return &instance;\r
+ }\r
+\r
+ /// @brief 标记蓝牙开关的状态\r
+ /// @param value true 开启状态 false 关闭状态\r
+ void ClassicBlueToothModel::MarkTradionalBlueToothToggleButtonStatus(bool value)\r
+ {\r
+ TradionalBlueToothToggleButtonState = value;\r
+ }\r
+\r
+ /// @brief 根据标记蓝牙开关的状态来确定蓝牙切换按钮是"开"还是"关状态\r
+ /// @return true 初始化成功 false 初始化失败\r
+ bool ClassicBlueToothModel::TradionalBlueToothToggleButtonStatusInit(void)\r
+ {\r
+ ClassicBlueToothPresenter *Classicbluetoothpresenter = ClassicBlueToothPresenter::GetInstance();\r
+ if (Classicbluetoothpresenter == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TradionalBlueToothToggleButtonStatusInit ClassicBlueToothPresenter GetInstance fail");\r
+ return false;\r
+ }\r
+ Classicbluetoothpresenter->SetBluetoothDeviceSwitchState(TradionalBlueToothToggleButtonState); // 蓝牙开关状态\r
+ return true;\r
+ }\r
+} // namespace OHOS\r
--- /dev/null
+#include "AppViewIDs.h"\r
+#include "NativeAbility.h"\r
+#include "graphic_math.h"\r
+#include "classicbluetooth/include/ClassicBlueToothPresenter.h"\r
+#include "classicbluetooth/include/ClassicBlueToothModel.h"\r
+namespace OHOS\r
+{\r
+ // 当前Presenter属性实例化的内存指针\r
+ static ClassicBlueToothPresenter *g_pClassicBlueToothPresenter = nullptr;\r
+\r
+ ClassicBlueToothPresenter::ClassicBlueToothPresenter()\r
+ {\r
+ g_pClassicBlueToothPresenter = this;\r
+ }\r
+\r
+ ClassicBlueToothPresenter::~ClassicBlueToothPresenter()\r
+ {\r
+ g_pClassicBlueToothPresenter = nullptr;\r
+ }\r
+\r
+ ClassicBlueToothPresenter *ClassicBlueToothPresenter::GetInstance()\r
+ {\r
+ return g_pClassicBlueToothPresenter;\r
+ }\r
+\r
+ void ClassicBlueToothPresenter::OnStart()\r
+ {\r
+ Presenter<ClassicBlueToothView>::OnStart();\r
+ }\r
+\r
+ void ClassicBlueToothPresenter::OnPause(void)\r
+ {\r
+\r
+ Presenter<ClassicBlueToothView>::OnPause();\r
+ }\r
+\r
+ void ClassicBlueToothPresenter::OnResume(void)\r
+ {\r
+\r
+ Presenter<ClassicBlueToothView>::OnResume();\r
+ }\r
+\r
+ void ClassicBlueToothPresenter::OnStop(void)\r
+ {\r
+ Presenter<ClassicBlueToothView>::OnStop();\r
+ }\r
+\r
+ /// @brief 设置蓝牙设备的开关状态\r
+ /// @param value true 开启蓝牙 false 关闭蓝牙\r
+ void ClassicBlueToothPresenter::SetBluetoothDeviceSwitchState(bool value)\r
+ {\r
+ ClassicBlueToothView *classicBlueToothView = ClassicBlueToothView::GetInstance();\r
+ if (classicBlueToothView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetBluetoothDeviceSwitchState ClassicBlueToothView GetInstance fail");\r
+ return;\r
+ }\r
+ if (value != false)\r
+ {\r
+ classicBlueToothView->SetTradionalBlueToothToggleButtonState(true);\r
+ ClassicBlueToothModel::GetInstance()->MarkTradionalBlueToothToggleButtonStatus(false); // 将Model层保存的状态清除\r
+ }\r
+ }\r
+\r
+ bool ClassicBlueToothPresenter::OnClick(UIView &view, const ClickEvent &event)\r
+ {\r
+ UNUSED(event);\r
+ ClassicBlueToothView *classicBlueToothView = ClassicBlueToothView::GetInstance();\r
+ if (classicBlueToothView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::GetInstance");\r
+ return false;\r
+ }\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::OnClick");\r
+ if (strcmp(view.GetViewId(), BLUETOOTHEARPHONEBUTTON) == 0)\r
+ {\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_BLUETOOTH_EARPHONE);\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ bool ClassicBlueToothPresenter::OnDrag(UIView &view, const DragEvent &event)\r
+ {\r
+ return true;\r
+ }\r
+\r
+ bool ClassicBlueToothPresenter::OnDragEnd(UIView &view, const DragEvent &event)\r
+ {\r
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
+ {\r
+ uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId(); // 上一个SliceId\r
+ uint16_t currentSlice = NativeAbility::GetInstance().GetCurSliceId(); // 当前SliceId\r
+\r
+ if (preSlice == VIEW_MAIN)\r
+ {\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN);\r
+ }\r
+ else\r
+ {\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_SETTING);\r
+ }\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ bool ClassicBlueToothPresenter::OnChange(UICheckBox::UICheckBoxState state)\r
+ {\r
+ switch (state)\r
+ {\r
+ case UICheckBox::SELECTED:\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BlueTooth Capability Is Enabled");\r
+\r
+ break;\r
+ case UICheckBox::UNSELECTED:\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BlueTooth Capability Is Disabled");\r
+\r
+ break;\r
+ default:\r
+ break;\r
+ }\r
+ return true;\r
+ }\r
+}\r
--- /dev/null
+#include "classicbluetooth/include/ClassicBlueToothView.h"\r
+#include "classicbluetooth/include/ClassicBlueToothPresenter.h"\r
+#include "classicbluetooth/include/ClassicBlueToothModel.h"\r
+\r
+namespace OHOS\r
+{\r
+ static ClassicBlueToothView *g_pClassicBlueToothView{nullptr};\r
+\r
+ ClassicBlueToothView::ClassicBlueToothView()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::ClassicBlueToothView");\r
+ g_pClassicBlueToothView = this;\r
+ }\r
+\r
+ ClassicBlueToothView::~ClassicBlueToothView()\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "~ClassicBlueToothView::ClassicBlueToothView");\r
+ ClearAll();\r
+ g_pClassicBlueToothView = nullptr;\r
+ }\r
+\r
+ ClassicBlueToothView *ClassicBlueToothView::GetInstance()\r
+ {\r
+ return g_pClassicBlueToothView;\r
+ }\r
+\r
+ void ClassicBlueToothView::ClearAll()\r
+ {\r
+ if (initViewStatus == true)\r
+ {\r
+ BlueToothScrollView->RemoveAll();\r
+\r
+ bool state = GetTradionalBlueToothToggleButtonState();\r
+ if (state == true)\r
+ {\r
+ ClassicBlueToothModel::GetInstance()->MarkTradionalBlueToothToggleButtonStatus(true);\r
+ }\r
+\r
+ delete Title;\r
+ Title = nullptr;\r
+\r
+ delete BlueToothEarPhoneLabel;\r
+ BlueToothEarPhoneLabel = nullptr;\r
+\r
+ delete TradionalBlueToothLabel;\r
+ TradionalBlueToothLabel = nullptr;\r
+\r
+ delete AttentionLabel;\r
+ AttentionLabel = nullptr;\r
+\r
+ for (int i = 0; i < 2; i++)\r
+ {\r
+ delete image[i];\r
+ image[i] = nullptr;\r
+ }\r
+\r
+ delete BlueToothEarPhoneButton;\r
+ BlueToothEarPhoneButton = nullptr;\r
+\r
+ delete TradionalBlueToothToggleButton;\r
+ TradionalBlueToothToggleButton = nullptr;\r
+\r
+ delete BlueToothScrollView;\r
+ BlueToothScrollView = nullptr;\r
+ }\r
+ }\r
+\r
+ bool ClassicBlueToothView::SetUpBlueToothScrollView(void)\r
+ {\r
+ BlueToothScrollView = new UIScrollView();\r
+ if (BlueToothScrollView == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::BlueToothScrollView new fail!");\r
+ return false;\r
+ }\r
+ BlueToothScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
+ BlueToothScrollView->SetScrollBlankSize(35);\r
+ BlueToothScrollView->SetReboundSize(50);\r
+ BlueToothScrollView->SetDirection(1);\r
+ UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(ClassicBlueToothPresenter::GetInstance());\r
+ if (draglistener == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::draglistener can not be nullptr!");\r
+ return false;\r
+ }\r
+ BlueToothScrollView->SetOnDragListener(draglistener);\r
+ BlueToothScrollView->SetTouchable(true);\r
+ BlueToothScrollView->SetDraggable(true);\r
+\r
+ return true;\r
+ }\r
+\r
+ // 标签配置\r
+ UILabel *ClassicBlueToothView::SetClassicBlueToothViewLabel(LabelConfig &labelconfig)\r
+ {\r
+ UILabel *label = new UILabel();\r
+ if (label == nullptr)\r
+ {\r
+ return nullptr;\r
+ }\r
+ label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); // 位置大小\r
+ label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize); // 字体大小\r
+ label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh); // 字体行高\r
+ label->SetText(labelconfig.text); // 内容\r
+ label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。\r
+ label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
+ label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
+ return label;\r
+ }\r
+\r
+ // 标签初始化\r
+ bool ClassicBlueToothView::SetUpBlueToothLabel(void)\r
+ {\r
+ LabelConfig labelconfig = {\r
+ .left = 203,\r
+ .top = 52,\r
+ .width = 65,\r
+ .height = 35,\r
+ .fontSize = 30,\r
+ .lineHeigh = 35,\r
+ .text = "蓝牙",\r
+ .lineBreakMode = UILabel::LINE_BREAK_ADAPT,\r
+ };\r
+ Title = SetClassicBlueToothViewLabel(labelconfig);\r
+ if (nullptr == Title)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::Title is nullptr!");\r
+ return false;\r
+ }\r
+ labelconfig = {\r
+ .left = 90,\r
+ .top = 153,\r
+ .width = 120,\r
+ .height = 35,\r
+ .fontSize = 30,\r
+ .lineHeigh = 35,\r
+ .text = "蓝牙耳机",\r
+ .lineBreakMode = UILabel::LINE_BREAK_ADAPT,\r
+ };\r
+ BlueToothEarPhoneLabel = SetClassicBlueToothViewLabel(labelconfig);\r
+ if (nullptr == BlueToothEarPhoneLabel)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::BlueToothEarPhoneLabel is nullptr!");\r
+ return false;\r
+ }\r
+ labelconfig.top = 273;\r
+ labelconfig.text = "传统蓝牙";\r
+ TradionalBlueToothLabel = SetClassicBlueToothViewLabel(labelconfig);\r
+ if (nullptr == TradionalBlueToothLabel)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::TradionalBlueToothLabel is nullptr!");\r
+ return false;\r
+ }\r
+\r
+ labelconfig = {\r
+ .left = 53,\r
+ .top = 379,\r
+ .width = 360,\r
+ .height = 180,\r
+ .fontSize = 20,\r
+ .lineHeigh = 30,\r
+ .text = "注:开启后10分钟没连接成功会自动关闭,因为传统蓝牙长时间打开会增加电耗,建议在有需要的时候使用\n\n(该功能主要用于电话拨打/通知、音乐控制/传输等)",\r
+ .lineBreakMode = UILabel::LINE_BREAK_WRAP,\r
+ };\r
+ AttentionLabel = SetClassicBlueToothViewLabel(labelconfig);\r
+ if (nullptr == AttentionLabel)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::AttentionLabel is nullptr!");\r
+ return false;\r
+ }\r
+\r
+ return true;\r
+ }\r
+\r
+ // 蓝牙耳机按钮\r
+ bool ClassicBlueToothView::SetUpBlueToothEarPhoneButton(void)\r
+ {\r
+ BlueToothEarPhoneButton = new UIButton();\r
+ if (BlueToothEarPhoneButton == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " ClassicBlueToothView::BlueToothEarPhoneButton new fail!");\r
+ return false;\r
+ }\r
+ BlueToothEarPhoneButton->SetPosition(43, 120, 380, 100);\r
+ BlueToothEarPhoneButton->SetViewId(BLUETOOTHEARPHONEBUTTON);\r
+ BlueToothEarPhoneButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+ BlueToothEarPhoneButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff4fc34c, UIButton::PRESSED);\r
+ BlueToothEarPhoneButton->SetStyleForState(STYLE_BORDER_COLOR, 0xffffffff, UIButton::PRESSED);\r
+ BlueToothEarPhoneButton->SetStyleForState(STYLE_BORDER_OPA, 0x00, UIButton::PRESSED);\r
+\r
+ UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(ClassicBlueToothPresenter::GetInstance());\r
+ BlueToothEarPhoneButton->SetOnClickListener(clickListener);\r
+\r
+ return true;\r
+ }\r
+\r
+ // 手表蓝牙开关按钮\r
+ bool ClassicBlueToothView::SetUpBlueToothToggleButton()\r
+ {\r
+ TradionalBlueToothToggleButton = new UIToggleButton();\r
+ if (nullptr == TradionalBlueToothToggleButton)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " ClassicBlueToothView::BlueToothEarPhoneButton new fail!");\r
+ return false;\r
+ }\r
+ TradionalBlueToothToggleButton->SetPosition(298, 265, 100, 50);\r
+ TradionalBlueToothToggleButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
+ TradionalBlueToothToggleButton->SetImages("/user/res/TOGGLEBUTTON_ON.bin", "/user/res/TOGGLEBUTTON_OFF.bin");\r
+ UICheckBox::OnChangeListener *changeListener = static_cast<UICheckBox::OnChangeListener *>(ClassicBlueToothPresenter::GetInstance());\r
+ TradionalBlueToothToggleButton->SetOnChangeListener(changeListener);\r
+ return true;\r
+ }\r
+\r
+ bool ClassicBlueToothView::SetUpImageView(void)\r
+ {\r
+ image[0] = new UIImageView();\r
+ if (nullptr == image[0])\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " ClassicBlueToothView::image[0] new fail!");\r
+ return false;\r
+ }\r
+ image[0]->SetPosition(369, 157, 14, 26);\r
+ image[0]->SetSrc("/user/res/SETTING_NEXT.bin");\r
+\r
+ image[1] = new UIImageView();\r
+ if (nullptr == image[1])\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " ClassicBlueToothView::image[1] new fail!");\r
+ return false;\r
+ }\r
+ image[1]->SetPosition(43, 240, 380, 100);\r
+ image[1]->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
+ image[1]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
+ image[1]->SetStyle(STYLE_BORDER_RADIUS, 100);\r
+ return true;\r
+ }\r
+\r
+ /// @brief 获取蓝牙切换按钮的状态\r
+ /// @param void\r
+ /// @return true 表示开启状态 false 表示开启状态\r
+ bool ClassicBlueToothView::GetTradionalBlueToothToggleButtonState(void)\r
+ {\r
+ return TradionalBlueToothToggleButton->GetState();\r
+ }\r
+\r
+ /// @brief 设置蓝牙切换按钮的状态\r
+ /// @param state true 开启 false 关闭\r
+ void ClassicBlueToothView::SetTradionalBlueToothToggleButtonState(bool state)\r
+ {\r
+ if (TradionalBlueToothToggleButton == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TradionalBlueToothToggleButton is nullptr!");\r
+ return;\r
+ }\r
+ TradionalBlueToothToggleButton->SetState(state);\r
+ }\r
+\r
+ /// @brief 蓝牙界面初始化\r
+ /// @param void\r
+ void ClassicBlueToothView::ClassicBlueToothViewInit(void)\r
+ {\r
+ if (!SetUpBlueToothScrollView())\r
+ {\r
+ return;\r
+ }\r
+\r
+ if (!SetUpBlueToothLabel())\r
+ {\r
+ return;\r
+ }\r
+\r
+ if (!SetUpBlueToothEarPhoneButton())\r
+ {\r
+ return;\r
+ }\r
+\r
+ if (!SetUpBlueToothToggleButton())\r
+ {\r
+ return;\r
+ }\r
+\r
+ if (!SetUpImageView())\r
+ {\r
+ return;\r
+ }\r
+ ClassicBlueToothModel::GetInstance()->TradionalBlueToothToggleButtonStatusInit();\r
+ initViewStatus = true;\r
+ }\r
+\r
+ void ClassicBlueToothView::OnStart()\r
+ {\r
+ View<ClassicBlueToothPresenter>::OnStart();\r
+ ClassicBlueToothViewInit();\r
+ }\r
+\r
+ void ClassicBlueToothView::OnSetUpView()\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::OnSetUpView");\r
+ View<ClassicBlueToothPresenter>::OnSetUpView();\r
+ BlueToothScrollView->Add(Title);\r
+ BlueToothScrollView->Add(BlueToothEarPhoneButton);\r
+ BlueToothScrollView->Add(image[0]);\r
+ BlueToothScrollView->Add(image[1]);\r
+ BlueToothScrollView->Add(BlueToothEarPhoneLabel);\r
+ BlueToothScrollView->Add(TradionalBlueToothLabel);\r
+ BlueToothScrollView->Add(AttentionLabel);\r
+ BlueToothScrollView->Add(TradionalBlueToothToggleButton);\r
+ RootView::GetInstance()->Add(BlueToothScrollView);\r
+ Draw();\r
+ }\r
+\r
+ void ClassicBlueToothView::OnTearDownView()\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::OnTearDownView");\r
+ View<ClassicBlueToothPresenter>::OnTearDownView();\r
+ RootView::GetInstance()->RemoveAll();\r
+ return;\r
+ }\r
+\r
+ void ClassicBlueToothView::OnStop()\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::OnStop");\r
+ View<ClassicBlueToothPresenter>::OnStop();\r
+ return;\r
+ }\r
+\r
+}\r
DisplayBrightnessPresenter *displayBrightnessPresent = DisplayBrightnessPresenter::GetInstance();
if (displayBrightnessPresent == nullptr)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RaiseToBrightnessCheckBoxButtonStateInit DisplayBrightnessPresenter GetInstance fail");
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DisplayBrightnessViewAndSubViewComponentsStatusInit DisplayBrightnessPresenter GetInstance fail");
return false;
}
displayBrightnessPresent->SetRaiseToBrightnessState(RaiseToBrightnessCheckBoxButtonState); // 抬腕按钮的状态
DisplayBrightnessView *displayBrightnessView = DisplayBrightnessView::GetInstance();\r
if (displayBrightnessView == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetPlayerState playersView GetInstance fail");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetRaiseToBrightnessState displayBrightnessView GetInstance fail");\r
return;\r
}\r
if (value != false)\r
{\r
if (RaiseToBrightnessCheckBoxButton == nullptr)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "PlayersView::SetPlayerButtonState playerButton NULL");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "RaiseToBrightnessCheckBoxButton is nullptr!");\r
return;\r
}\r
RaiseToBrightnessCheckBoxButton->SetState(state);\r
{
map<string, AppViewId> g_jumpView = {
- {MAIN_CLICK_WEATHER, VIEW_MAIN}, // 天气界面
- {MAIN_CLICK_ACTIVITY, VIEW_MAIN_ACTIVITY}, // 活动记录界面
- {MAIN_CLICK_MESSAGE, VIEW_MAIN}, // 消息app
- {MAIN_CLICK_HEARTRATE, VIEW_MAIN}, // 心率界面
{DROPDOWN_CLICK_SETTING, VIEW_SETTING}, // 设置
- {DROPDOWN_CLICK_BLUETOOTH, VIEW_BLUETOOTH_EARPHONE}, // 蓝牙
+ {DROPDOWN_CLICK_BLUETOOTH, VIEW_CLASSIC_BLUETOOTH}, // 蓝牙
};
// map<string, int> g_chanColor = { { DROPDOWN_CLICK_FINDMYPHONE, DROPDOWN_DROPDOWN_FIND_PHONE_B },
SendMsgToUIService(SCREEN_OFF_ENABLE_TO_UI, 0, &enable, sizeof(int32_t));
}
}
-
+ #endif
if (g_jumpView.count(curViewId) != 0)
{
NativeAbility::GetInstance().ChangeSlice(g_jumpView[curViewId]);
}
-#endif
return true;
}
settings[4] = {SETTING_ITEM_FOUR, PNG_SETTINGS_SYSTEM, "系统", true};
settings[5] = {SETTING_ITEM_FIVE, PNG_SETTINGS_SETTINGS_POWER_CONTROL, "关机和重启", true};
settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_ZERO, VIEW_DISPLAY_BRIGHTNESS));
- settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_ONE, VIEW_BLUETOOTH_EARPHONE));
+ settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_ONE, VIEW_CLASSIC_BLUETOOTH));
settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_TWO, VIEW_SOUND_VIBRATION));
settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_THREE, VIEW_SECONDARY_FUNCTION));
settingIdToViewId.insert(std::pair<SettingIndex, AppViewId>(SETTING_ITEM_FOUR, VIEW_SYSTEM));