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_SETTING);\r
+ NativeAbility::GetInstance().Back();\r
}\r
\r
void MainBluetoothView::DropEarPhoneView()\r
+/*\r
+ * @Author: luozheng 1732036298@qq.com\r
+ * @Date: 2024-04-25 11:50:51\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-07-23 10:15:46\r
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/include/ClassicBlueToothPresenter.h\r
+ */\r
#ifndef CLASSIC_BLUETOOTH_PRESENTER_H\r
#define CLASSIC_BLUETOOTH_PRESENTER_H\r
#include "Presenter.h"\r
public:\r
ClassicBlueToothPresenter();\r
virtual ~ClassicBlueToothPresenter();\r
+ static ClassicBlueToothPresenter *GetInstance();\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
-\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
bool OnKeyAct(UIView &view, const KeyEvent &event) override;\r
+\r
+ bool X_DRAG_FLAG{false};\r
};\r
}\r
\r
#include "UiConfig.h"
#include "wearable_log.h"
#include "PhoneService.h"
+#include "phoneservice/include/PhoneService.h"
#include "BluetoothModel.h"
+#include "ui_resource_string.h"
namespace OHOS
{
static BluetoothServiceOptionsView *g_pBluetoothServiceOptionsView{nullptr};
{
if (initViewStatus == true)
{
- BlueToothScrollView->RemoveAll();
-
- delete Title;
- Title = nullptr;
-
- delete HFP_Image;
- HFP_Image = nullptr;
-
- delete A2DP_Image;
- A2DP_Image = nullptr;
-
- delete HFP_Label;
- HFP_Label = nullptr;
-
- delete A2DP_Label;
- A2DP_Label = nullptr;
-
- delete HFP_ToggleButton;
- HFP_ToggleButton = nullptr;
-
- delete A2DP_ToggleButton;
- A2DP_ToggleButton = nullptr;
-
- delete BlueToothScrollView;
- BlueToothScrollView = nullptr;
+ if (BlueToothScrollView != nullptr)
+ {
+ BlueToothScrollView->RemoveAll();
+
+ if (Title != nullptr)
+ {
+ delete Title;
+ Title = nullptr;
+ }
+ if (HFP_Image != nullptr)
+ {
+ delete HFP_Image;
+ HFP_Image = nullptr;
+ }
+ if (A2DP_Image != nullptr)
+ {
+ delete A2DP_Image;
+ A2DP_Image = nullptr;
+ }
+ if (HFP_Label != nullptr)
+ {
+ delete HFP_Label;
+ HFP_Label = nullptr;
+ }
+ if (A2DP_Label != nullptr)
+ {
+ delete A2DP_Label;
+ A2DP_Label = nullptr;
+ }
+ if (HFP_ToggleButton != nullptr)
+ {
+ delete HFP_ToggleButton;
+ HFP_ToggleButton = nullptr;
+ }
+ if (A2DP_ToggleButton != nullptr)
+ {
+ delete A2DP_ToggleButton;
+ A2DP_ToggleButton = nullptr;
+ }
+ delete BlueToothScrollView;
+ BlueToothScrollView = nullptr;
+ }
}
}
label->SetPosition(labelconfig.left, labelconfig.top, labelconfig.width, labelconfig.height); // 位置大小
label->SetStyle(STYLE_TEXT_FONT, labelconfig.fontSize); // 字体大小
label->SetStyle(STYLE_LINE_HEIGHT, labelconfig.lineHeigh); // 字体行高
- //label->SetText(labelconfig.text); // 内容
- label->SetTextId(labelconfig.textId);
- label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。
+ label->SetTextId(labelconfig.textId);
+ label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。
label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);
return label;
}
{
LabelConfig labelconfig = {
.left = 93,
- .top = 52,
+ .top = 50,
.width = 280,
.height = 40,
.fontSize = 30,
.lineHeigh = 35,
- //.text = "蓝牙服务选项",
- .textId = STR_BLUETOOTH_SERVICE_OPTIONS,
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,
+ .textId = STR_BLUETOOTH_SERVICE_OPTIONS, /*蓝牙服务选项*/
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,
};
Title = SetBluetoothServiceOptionsViewLabel(labelconfig);
if (nullptr == Title)
.height = 40,
.fontSize = 30,
.lineHeigh = 35,
- //.text = "通话蓝牙",
- .textId = STR_HFP,
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,
+ .textId = STR_HFP, /*通话蓝牙*/
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,
};
HFP_Label = SetBluetoothServiceOptionsViewLabel(labelconfig);
if (nullptr == HFP_Label)
return false;
}
labelconfig.top = 273;
- //labelconfig.text = "媒体蓝牙";
- labelconfig.textId = STR_A2DP;
+ labelconfig.textId = STR_A2DP; /*媒体蓝牙*/
A2DP_Label = SetBluetoothServiceOptionsViewLabel(labelconfig);
if (nullptr == A2DP_Label)
{
return false;
}
HFP_ToggleButton->SetPosition(298, 145, 100, 50);
- HFP_ToggleButton->SetState(uapi_hfp_connect_state());//ConfigModel::GetInstance()->GetHFPState());
+ HFP_ToggleButton->SetState(uapi_hfp_connect_state()); // ConfigModel::GetInstance()->GetHFPState());
HFP_ToggleButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
HFP_ToggleButton->SetImages(PNG_TOGGLEBUTTON_ON_IMAGE, PNG_TOGGLEBUTTON_OFF_IMAGE);
/* -------------------------------------------------------------------------- */
A2DP_ToggleButton->SetImages(PNG_TOGGLEBUTTON_ON_IMAGE, PNG_TOGGLEBUTTON_OFF_IMAGE);
/* -------------------------------------------------------------------------- */
UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(BluetoothServiceOptionsPresenter::GetInstance());
+ if (nullptr == clickListener)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothServiceOptionsPresenter::GetInstance fail!!");
+ return false;
+ }
HFP_ToggleButton->SetOnClickListener(clickListener);
A2DP_ToggleButton->SetOnClickListener(clickListener);
/// @param void
void BluetoothServiceOptionsView::BluetoothServiceOptionsViewInit(void)
{
- if (!SetUpBlueToothScrollView())
- {
- return;
- }
-
- if (!SetUpBlueToothImageView())
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothServiceOptionsView::BluetoothServiceOptionsViewInit");
+ if (!SetUpBlueToothScrollView() || !SetUpBlueToothImageView() || !SetUpBlueToothLabel() || !SetUpBlueToothToggleButton())
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothServiceOptionsView::BluetoothServiceOptionsViewInit fail!!");
return;
}
-
- if (!SetUpBlueToothLabel())
- {
- return;
- }
-
- if (!SetUpBlueToothToggleButton())
- {
- return;
- }
-
- initViewStatus = true;
}
void BluetoothServiceOptionsView::OnStart()
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothServiceOptionsView::OnStart");
View<BluetoothServiceOptionsPresenter>::OnStart();
- BluetoothServiceOptionsViewInit();
+ if (!initViewStatus)
+ {
+ BluetoothServiceOptionsViewInit();
+ initViewStatus = true;
+ }
// 增加按键监听
RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::BluetoothServiceOptionsPresenter::GetInstance();
/*\r
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-04-25 11:50:57\r
- * @LastEditors: SnickerSun snickersun@163.com\r
- * @LastEditTime: 2024-07-03 15:18:50\r
+ * @LastEditors: luozheng 1732036298@qq.com\r
+ * @LastEditTime: 2024-07-23 10:18:06\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/classicbluetooth/src/ClassicBlueToothPresenter.cpp\r
*/\r
#include "classicbluetooth/include/ClassicBlueToothPresenter.h"\r
#include <ohos_types.h>\r
#include "wearable_log.h"\r
#include "ConfigModel.h"\r
+#include <UiConfig.h>\r
namespace OHOS\r
{\r
// 当前Presenter属性实例化的内存指针\r
\r
void ClassicBlueToothPresenter::OnStart()\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothPresenter::OnStart");\r
Presenter<ClassicBlueToothView>::OnStart();\r
}\r
\r
void ClassicBlueToothPresenter::OnPause(void)\r
{\r
-\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothPresenter::OnPause");\r
Presenter<ClassicBlueToothView>::OnPause();\r
}\r
\r
void ClassicBlueToothPresenter::OnResume(void)\r
{\r
-\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothPresenter::OnResume");\r
Presenter<ClassicBlueToothView>::OnResume();\r
}\r
\r
void ClassicBlueToothPresenter::OnStop(void)\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothPresenter::OnStop");\r
Presenter<ClassicBlueToothView>::OnStop();\r
}\r
\r
bool ClassicBlueToothPresenter::OnDrag(UIView &view, const DragEvent &event)\r
{\r
UNUSED(view);\r
- UNUSED(event);\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothPresenter::OnDrag");\r
+ if ((event.GetDeltaX() > X_DRAG_OFFSET) && (event.GetDeltaX() > (DOUBLES * MATH_ABS(event.GetDeltaY())))) // 拖动过程中判断是否是水平滑动\r
+ {\r
+ X_DRAG_FLAG = true;\r
+ }\r
return true;\r
}\r
\r
{\r
UNUSED(view);\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothPresenter::OnDragEnd");\r
- if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)\r
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT && X_DRAG_FLAG)\r
{\r
NativeAbility::GetInstance().Back();\r
+ X_DRAG_FLAG = false;\r
}\r
\r
return true;\r
\r
bool ClassicBlueToothPresenter::OnKeyAct(UIView &view, const KeyEvent &event)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothPresenter::OnKeyAct");\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothPresenter::OnKeyAct");\r
uint16 keyID = event.GetKeyId();\r
uint16 keyState = event.GetState();\r
// 如果是power键,且是亮屏状态,按键释放就返回上一级\r
ClassicBlueToothView::~ClassicBlueToothView()\r
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "~ClassicBlueToothView::ClassicBlueToothView");\r
- ClearAll();\r
g_pClassicBlueToothView = nullptr;\r
}\r
\r
{\r
if (initViewStatus == true)\r
{\r
- BlueToothScrollView->RemoveAll();\r
-\r
- delete Title;\r
- Title = nullptr;\r
-\r
- delete BlueToothEarPhoneButton;\r
- BlueToothEarPhoneButton = nullptr;\r
-\r
- delete TradionalBlueToothButton;\r
- TradionalBlueToothButton = nullptr;\r
-\r
- delete BluetoothServiceOptionsButton;\r
- BluetoothServiceOptionsButton = nullptr;\r
-\r
- delete BlueToothEarPhoneLabel;\r
- BlueToothEarPhoneLabel = nullptr;\r
-\r
- delete TradionalBlueToothLabel;\r
- TradionalBlueToothLabel = nullptr;\r
-\r
- delete AttentionLabel;\r
- AttentionLabel = nullptr;\r
-\r
- delete TradionalBlueToothToggleButton;\r
- TradionalBlueToothToggleButton = nullptr;\r
-\r
- delete BlueToothScrollView;\r
- BlueToothScrollView = nullptr;\r
+ if (BlueToothScrollView)\r
+ {\r
+ BlueToothScrollView->RemoveAll();\r
+ if (Title != nullptr)\r
+ {\r
+ delete Title;\r
+ Title = nullptr;\r
+ }\r
+ if (BlueToothEarPhoneButton != nullptr)\r
+ {\r
+ delete BlueToothEarPhoneButton;\r
+ BlueToothEarPhoneButton = nullptr;\r
+ }\r
+ if (TradionalBlueToothButton != nullptr)\r
+ {\r
+ delete TradionalBlueToothButton;\r
+ TradionalBlueToothButton = nullptr;\r
+ }\r
+ if (BluetoothServiceOptionsButton != nullptr)\r
+ {\r
+ delete BluetoothServiceOptionsButton;\r
+ BluetoothServiceOptionsButton = nullptr;\r
+ }\r
+ if (BlueToothEarPhoneLabel != nullptr)\r
+ {\r
+ delete BlueToothEarPhoneLabel;\r
+ BlueToothEarPhoneLabel = nullptr;\r
+ }\r
+ if (TradionalBlueToothLabel != nullptr)\r
+ {\r
+ delete TradionalBlueToothLabel;\r
+ TradionalBlueToothLabel = nullptr;\r
+ }\r
+ if (AttentionLabel != nullptr)\r
+ {\r
+ delete AttentionLabel;\r
+ AttentionLabel = nullptr;\r
+ }\r
+ if (TradionalBlueToothToggleButton != nullptr)\r
+ {\r
+ delete TradionalBlueToothToggleButton;\r
+ TradionalBlueToothToggleButton = nullptr;\r
+ }\r
+ delete BlueToothScrollView;\r
+ BlueToothScrollView = nullptr;\r
+ }\r
}\r
}\r
\r
return false;\r
}\r
BlueToothScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
- BlueToothScrollView->SetScrollBlankSize(35);\r
+ BlueToothScrollView->SetScrollBlankSize(50);\r
BlueToothScrollView->SetReboundSize(50);\r
BlueToothScrollView->SetDirection(1);\r
+ BlueToothScrollView->RequestFocus();\r
UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(ClassicBlueToothPresenter::GetInstance());\r
if (draglistener == 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->SetTextId(labelconfig.textId);\r
label->SetLineBreakMode(labelconfig.lineBreakMode); // 断行模式。\r
label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, labelconfig.fontSize);\r
{\r
LabelConfig labelconfig = {\r
.left = 93,\r
- .top = 52,\r
+ .top = 50,\r
.width = 300,\r
.height = 35,\r
.fontSize = 30,\r
.lineHeigh = 35,\r
- //.text = "蓝牙",\r
- .textId = STR_BLUETOOTH,\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .textId = STR_BLUETOOTH, /*蓝牙*/\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
Title = SetClassicBlueToothViewLabel(labelconfig);\r
if (nullptr == Title)\r
.height = 35,\r
.fontSize = 30,\r
.lineHeigh = 35,\r
- //.text = "蓝牙耳机",\r
- .textId = STR_BLUETOOTH_HEADPHONES,\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .textId = STR_BLUETOOTH_HEADPHONES, /*蓝牙耳机*/\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
BlueToothEarPhoneLabel = SetClassicBlueToothViewLabel(labelconfig);\r
if (nullptr == BlueToothEarPhoneLabel)\r
}\r
/* -------------------------------------------------------------------------- */\r
labelconfig.top = 273;\r
- // labelconfig.text = "传统蓝牙";\r
- labelconfig.textId = STR_TRADITIONAL_BLUETOOTH;\r
+ labelconfig.textId = STR_TRADITIONAL_BLUETOOTH; /*传统蓝牙*/\r
TradionalBlueToothLabel = SetClassicBlueToothViewLabel(labelconfig);\r
if (nullptr == TradionalBlueToothLabel)\r
{\r
}\r
/* -------------------------------------------------------------------------- */\r
labelconfig.top = 393;\r
- // labelconfig.text = "蓝牙服务选项";\r
- labelconfig.textId = STR_BLUETOOTH_SERVICE_OPTIONS;\r
+ labelconfig.textId = STR_BLUETOOTH_SERVICE_OPTIONS; /*蓝牙服务选项*/\r
BluetoothServiceOptionsLabel = SetClassicBlueToothViewLabel(labelconfig);\r
if (nullptr == BluetoothServiceOptionsLabel)\r
{\r
AttentionLabel->SetPosition(53, 499, 360, 180); // 位置大小\r
AttentionLabel->SetStyle(STYLE_TEXT_FONT, 20); // 字体大小\r
AttentionLabel->SetStyle(STYLE_LINE_HEIGHT, 30); // 字体行高\r
- //.text = "注:开启后10分钟没连接成功会自动关闭,因为传统蓝牙长时间打开会增加电耗,建议在有需要的时候使用\n\n(该功能主要用于电话拨打/通知、音乐控制/传输等)",\r
- //SetLabelId(AttentionLabel, STR_AUTO_OFF_BLUETOOTH_NOTE);\r
+ //.text = "注:开启后10分钟没连接成功会自动关闭,因为传统蓝牙长时间打开会增加电耗,建议在有需要的时候使用(该功能主要用于电话拨打/通知、音乐控制/传输等)",\r
AttentionLabel->SetTextId(STR_AUTO_OFF_BLUETOOTH_NOTE);\r
AttentionLabel->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));\r
+ AttentionLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
AttentionLabel->SetLineBreakMode(UILabel::LINE_BREAK_WRAP); // 断行模式。\r
AttentionLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);\r
/* -------------------------------------------------------------------------- */\r
BlueToothEarPhoneButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
BlueToothEarPhoneButton->SetImagePosition(326, 37);\r
BlueToothEarPhoneButton->SetImageSrc(PNG_SETTING_NEXT_IMAGE, PNG_SETTING_NEXT_IMAGE);\r
- BlueToothEarPhoneButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff191919, UIButton::PRESSED);\r
+ BlueToothEarPhoneButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
/* -------------------------------------------------------------------------- */\r
TradionalBlueToothButton = new UILabelButtonExt();\r
if (TradionalBlueToothButton == nullptr)\r
BluetoothServiceOptionsButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
BluetoothServiceOptionsButton->SetImagePosition(326, 37);\r
BluetoothServiceOptionsButton->SetImageSrc(PNG_SETTING_NEXT_IMAGE, PNG_SETTING_NEXT_IMAGE);\r
- BluetoothServiceOptionsButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff191919, UIButton::PRESSED);\r
+ BluetoothServiceOptionsButton->SetStyleForState(STYLE_BACKGROUND_COLOR, 0xff000000, UIButton::PRESSED);\r
/* -------------------------------------------------------------------------- */\r
- UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(ClassicBlueToothPresenter::GetInstance());\r
- BlueToothEarPhoneButton->SetOnClickListener(clickListener);\r
- BluetoothServiceOptionsButton->SetOnClickListener(clickListener);\r
+ BlueToothEarPhoneButton->SetOnClickListener(presenter_);\r
+ BluetoothServiceOptionsButton->SetOnClickListener(presenter_);\r
\r
return true;\r
}\r
TradionalBlueToothToggleButton->SetState(ConfigModel::GetInstance()->GetClassicBlueToothState());\r
TradionalBlueToothToggleButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);\r
TradionalBlueToothToggleButton->SetImages(PNG_TOGGLEBUTTON_ON_IMAGE, PNG_TOGGLEBUTTON_OFF_IMAGE);\r
- UICheckBox::OnChangeListener *changeListener = static_cast<UICheckBox::OnChangeListener *>(ClassicBlueToothPresenter::GetInstance());\r
- TradionalBlueToothToggleButton->SetOnChangeListener(changeListener);\r
+ TradionalBlueToothToggleButton->SetOnChangeListener(presenter_);\r
return true;\r
}\r
\r
/// @param void\r
void ClassicBlueToothView::ClassicBlueToothViewInit(void)\r
{\r
- if (!SetUpBlueToothScrollView())\r
- {\r
- return;\r
- }\r
-\r
- if (!SetUpBlueToothButton())\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::ClassicBlueToothViewInit");\r
+ if (!SetUpBlueToothScrollView() || !SetUpBlueToothButton() || !SetUpBlueToothLabel() || !SetUpBlueToothToggleButton())\r
{\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::ClassicBlueToothViewInit fail!!");\r
return;\r
}\r
-\r
- if (!SetUpBlueToothLabel())\r
- {\r
- return;\r
- }\r
-\r
- if (!SetUpBlueToothToggleButton())\r
- {\r
- return;\r
- }\r
-\r
- initViewStatus = true;\r
}\r
\r
void ClassicBlueToothView::OnStart()\r
{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ClassicBlueToothView::OnStart");\r
View<ClassicBlueToothPresenter>::OnStart();\r
- ClassicBlueToothViewInit();\r
+ if (!initViewStatus)\r
+ {\r
+ ClassicBlueToothViewInit();\r
+ initViewStatus = true;\r
+ }\r
\r
- // 增加按键监听\r
- RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::ClassicBlueToothPresenter::GetInstance();\r
- RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
+ RootView::GetInstance()->SetOnKeyActListener(presenter_); // 增加按键监听\r
}\r
\r
void ClassicBlueToothView::OnSetUpView()\r
BlueToothScrollView->Add(AttentionLabel);\r
BlueToothScrollView->Add(TradionalBlueToothToggleButton);\r
RootView::GetInstance()->Add(BlueToothScrollView);\r
+ container_ = BlueToothScrollView;\r
Draw();\r
}\r
\r
View<ClassicBlueToothPresenter>::OnStop();\r
RootView::GetInstance()->RemoveAll();\r
RootView::GetInstance()->ClearOnKeyActListener();\r
+ ClearAll();\r
return;\r
}\r
\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-12 11:44:04
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-27 09:51:49
+ * @LastEditTime: 2024-07-23 15:18:13
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/compass/include/CompassView.h
*/
#include "CompassCalibrationView.h"
namespace OHOS {
-static constexpr float VIEW_CENTERS = 227;
+static constexpr float VIEW_CENTERS = 233;/*233代表分辨率为466的屏幕*/
class CompassView : public AppGroupView {
public:
STR_EQUIPMENT_UNTYING$Equipment untying\r
STR_EQUIPMENT_UNTYING_NOTE$XX would like to unbind you\r
STR_DRINK_WATER_REMINDER$Drink water reminder\r
-STR_DRINK_WATER_REMINDER_NOTE$Time for some water! And stay hydrated (๑•̀ㅂ•́)\r
+STR_DRINK_WATER_REMINDER_NOTE$Time for some water! And stay hydrated\r
STR_SEDENTARY_REMINDER$Sedentary reminder\r
STR_SEDENTARY_REMINDER_NOTE$You haven't moved for XX hours. Get up and move.\r
STR_SYSTEM_UPGRADING$System upgrading\r
STR_EQUIPMENT_UNTYING$设备解绑\r
STR_EQUIPMENT_UNTYING_NOTE$XX想要与你进行解绑\r
STR_DRINK_WATER_REMINDER$喝水提醒\r
-STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足(๑•̀ㅂ•́)و✧\r
+STR_DRINK_WATER_REMINDER_NOTE$该喝水啦!记得按时保持水分充足\r
STR_SEDENTARY_REMINDER$久坐提醒\r
STR_SEDENTARY_REMINDER_NOTE$你已经XX小时未活动了,站起来活动一下吧。\r
STR_SYSTEM_UPGRADING$系统升级中\r
<lanstr id="STR_EQUIPMENT_UNTYING" value="Equipment untying"/>
<lanstr id="STR_EQUIPMENT_UNTYING_NOTE" value="XX would like to unbind you"/>
<lanstr id="STR_DRINK_WATER_REMINDER" value="Drink water reminder"/>
- <lanstr id="STR_DRINK_WATER_REMINDER_NOTE" value="Time for some water! And stay hydrated (๑•̀ㅂ•́)"/>
+ <lanstr id="STR_DRINK_WATER_REMINDER_NOTE" value="Time for some water! And stay hydrated"/>
<lanstr id="STR_SEDENTARY_REMINDER" value="Sedentary reminder"/>
<lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="You haven't moved for XX hours. Get up and move."/>
<lanstr id="STR_SYSTEM_UPGRADING" value="System upgrading"/>
<lanstr id="STR_EQUIPMENT_UNTYING" value="设备解绑"/>
<lanstr id="STR_EQUIPMENT_UNTYING_NOTE" value="XX想要与你进行解绑"/>
<lanstr id="STR_DRINK_WATER_REMINDER" value="喝水提醒"/>
- <lanstr id="STR_DRINK_WATER_REMINDER_NOTE" value="该喝水啦!记得按时保持水分充足(๑•̀ㅂ•́)و✧"/>
+ <lanstr id="STR_DRINK_WATER_REMINDER_NOTE" value="该喝水啦!记得按时保持水分充足"/>
<lanstr id="STR_SEDENTARY_REMINDER" value="久坐提醒"/>
<lanstr id="STR_SEDENTARY_REMINDER_NOTE" value="你已经XX小时未活动了,站起来活动一下吧。"/>
<lanstr id="STR_SYSTEM_UPGRADING" value="系统升级中"/>
#!/bin/bash
###
# @Date: 2024-07-10 21:03:33
- # @LastEditors: Caisking 3449750381@qq.com
- # @LastEditTime: 2024-07-10 21:03:37
+ # @LastEditors: luozheng 1732036298@qq.com
+ # @LastEditTime: 2024-07-23 11:29:39
# @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/languagemake.sh
###
# 进入目录 Language_xml
cd ~/XTS_FD230/FD230/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml
-
+#cd /home/luozheng/xts_origin/FD230/code/sdk/application/wearable/fd230app/nativeui/language/Language_xml
# 运行 languagetool.py
python languagetool.py
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-30 09:14:38
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-20 18:03:40
+ * @LastEditTime: 2024-07-23 17:10:22
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/LanguageInit.cpp
*/
#include <fstream>
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitLangues");
// 获取json里面的语言
int thelanguage = ConfigModel::GetInstance()->GetLanguage();
- if( thelanguage == -1 )
+ if(ConfigModel::GetInstance()->GetisFirstTimeStart() == true)
{
/**
* TODO:
- * 如果 thelanguage = -1 证明第一次启动,需要实现弹窗切换语言的功能。
+ * 如果 GetisFirstTimeStart()证明第一次启动,需要实现弹窗切换语言的功能。
* 在此之前,先设置成默认0
*/
//thelanguage = 0;
#include "custom_utils.h"
#include "traing/training_card/include/Training_CardView.h"
#include "dnotdisturb/include/DnotDisturbModel.h"
+#include "weather/include/WeatherModel.h"
#if USE_OFFLINE_DIAL
#include "DialViewGroup.h"
#endif
}
}
break;
+ case WEATHER:
+ if(WeatherModel::GetInstance().GetWeatherDataIsValid()) {
+ WeatherModel::GetInstance().UpdateWeatherCurTime();
+ }
+ break;
}
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-26 18:14:24
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-16 15:31:46
+ * @LastEditTime: 2024-07-23 18:13:38
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/main/src/PullUpDownView.cpp
*/
#include "dnotdisturb/include/DnotDisturbModel.h"
#include "custom_utils.h"
#include "custom_runtime.h"
+#include "bluetooth/include/BluetoothModel.h"
+#include "phoneservice/include/PhoneService.h"
namespace OHOS
{
}
else if (cat1_powerOn == 1 && sim == 1)
{
- if (signal == SIGNAL_NO_SIGNAL) //计算信号强度
+ if (signal == SIGNAL_NO_SIGNAL) // 计算信号强度
{
// 无信号UI显示
// UpdateCat1NoSignalisplay(true);
}
else
{
- if (cat1_network_type == NETWORK_TYPE_NO_NETWORK)
+ if (cat1_network_type == NETWORK_TYPE_NO_NETWORK)
{
// 无信号,无4G图标 显示
- //UpdateCat1NoSignalisplay(true);
+ // UpdateCat1NoSignalisplay(true);
UpdateCat14GDisplay(false);
UpdateCat1MobileDataDisplay(false);
// UpdateSignalBarDisplay(CalculateSignalBars(signal), false);
else if (cat1_network_type == NETWORK_TYPE_4G)
{
// 有4G图标,正常显示信号
- //UpdateCat1NoSignalisplay(false);
+ // UpdateCat1NoSignalisplay(false);
UpdateCat14GDisplay(true);
UpdateCat1MobileDataDisplay(true);
// UpdateSignalBarDisplay(CalculateSignalBars(signal), true);
else
{
// 无4G图标,正常显示信号
- //UpdateCat1NoSignalisplay(false);
+ // UpdateCat1NoSignalisplay(false);
UpdateCat14GDisplay(false);
UpdateCat1MobileDataDisplay(true);
// UpdateSignalBarDisplay(CalculateSignalBars(signal), true);
/*更新移动数据图标显示*/
void PullUpDownView::UpdateCat1MobileDataDisplay(bool state)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateCat1MobileDataDisplay %d",state);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateCat1MobileDataDisplay %d", state);
if (MobileData != nullptr)
{
MobileData->SetVisible(state);
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdateSignalStrengthStatusAndBatteryPosition");
updateSignalDisplay();
- //UpdateBatteryPosition(GetSignalStrength());
+
+ int a2dp = uapi_a2dp_snk_get_device_connect_state();
+ int hfp = uapi_hfp_connect_state();
+ bool bluetoothstatus = (a2dp == 0 || hfp == 0) ? false : true;
+ UpdateBlueToothStatus(bluetoothstatus);
+ // UpdateBatteryPosition(GetSignalStrength());
}
// 下拉视图初始化
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-07-12 09:55:29
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-07-22 11:33:17
+ * @LastEditTime: 2024-07-22 18:30:57
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingView.cpp
*/
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::scrollView is nullptr");
return;
}
- scrollView->Resize(HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+ scrollView->SetPosition(0, 0, 466, 466);
scrollView->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
scrollView->SetStyle(STYLE_BACKGROUND_OPA, UN_OPACITY);
scrollView->SetScrollBlankSize(SETTING_SCROLLBLANKSIZE);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::contentList is nullptr");
return;
}
- contentList->SetPosition(SETTING_LIST_POSITION_X, SETTING_LIST_POSITION_Y, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+ contentList->SetPosition(SETTING_LIST_POSITION_X, SETTING_LIST_POSITION_Y, 380, 400);
contentList->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
- contentList->SetScrollBlankSize(SETTING_SCROLLBLANKSIZE);
- contentList->SetSelectPosition(HORIZONTAL_RESOLUTION / SNUM_2); // middle position
+ contentList->SetScrollBlankSize(75);
+ // contentList->SetSelectPosition(820 / SNUM_2); // middle position
contentList->SetDraggable(true);
contentList->SetThrowDrag(true);
+ contentList->EnableAutoAlign(true);
contentList->SetReboundSize(REBOUNDSIZE);
contentList->SetMaxScrollDistance(MAX_SCR_DIS);
contentList->RequestFocus();
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-08 18:40:20
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-19 10:24:03
+ * @LastEditTime: 2024-07-23 14:41:27
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherModel.h
*/
#ifndef WEATHER_MODEL_H
static WeatherModel &GetInstance(void);
void InitFutureWeatherItem();
void TimestampToMonthDayString(time_t timestamp, char *buffer);
+ std::string GetWeatherCurTime();
std::string GetWeatherImage();
std::string GetWeatherTemperature();
std::string GetWeatherDescription();
void SetWeatherDataIsValid(bool value);
/* -------------------------------------------------------------------------- */
void UpdateMainWeatherData(void);
+ void UpdateWeatherCurTime(void);
private:
WeatherModel();
WeatherModel(const WeatherModel &) = delete;
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-30 09:14:38
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-15 16:31:50
+ * @LastEditTime: 2024-07-23 14:51:03
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/include/WeatherView.h
*/
#ifndef WEATHER_VIEW_H
virtual bool InitView(void *caller) override;
void ClearAll();
bool UpdateWeatherViewData(void);
+ bool UpdateWeatherTime(void);
private:
UILabelExt *InitLabelExt(int x, int y, int w, int h, const char *text, int textfont, int lineheight);
void DumpWeatherInfo();
bool SetImageSource(UIImageView *image, const std::string &source);
bool SetTextLabel(UILabel *label, const std::string &text);
- bool UpdateWeatherTime(void);
bool UpdateWeatherImag(void);
bool UpdateWeatherTemperature(void);
bool UpdateWeatherWeatherDescription(void);
{\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainWeatherPresenter::OnSwipe,current tab index = %d", view.GetCurrentPage());\r
// WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "the view index = %d,dragging direction = %d,current tab index = %d", view.GetViewIndex(), view.GetDirection(), view.GetCurrentPage());\r
- if (view.GetCurrentPage() == WEATHERREPORTVIEW)\r
+ if (view.GetCurrentPage() == MAINWEATHERVIEW)\r
{\r
- //MainWeatherView::GetInstance()->GetFutureWeatherView()->GetFutureWeatherList()->RefreshList();\r
+ WeatherModel::GetInstance().UpdateWeatherCurTime();\r
}\r
}\r
\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-08 18:40:09
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-19 10:24:12
+ * @LastEditTime: 2024-07-23 14:54:46
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherModel.cpp
*/
#include "weather/include/WeatherModel.h"
sprintf(buffer, "%02d.%02d", timeinfo.tm_mon + 1, timeinfo.tm_mday);
}
+ /*获取天气界面的当前时间*/
+ std::string WeatherModel::GetWeatherCurTime()
+ {
+ struct tm pTM;
+ time_t seconds;
+ time(&seconds);
+ localtime_r(&seconds, &pTM);
+
+ int hour = pTM.tm_hour;
+ int minute = pTM.tm_min;
+
+ std::string weatherTime = (hour < 10 ? "0" : "") + std::to_string(hour) + ":" + (minute < 10 ? "0" : "") + std::to_string(minute);
+
+ return weatherTime;
+ }
+
// 获取天气图片
std::string WeatherModel::GetWeatherImage()
{
/* 更新所有天气数据 */
void WeatherModel::UpdateMainWeatherData(void)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UpdateMainWeatherData");
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UpdateMainWeatherData");
MainWeatherView *p_MainWeatherView = MainWeatherView::GetInstance();
if (p_MainWeatherView != nullptr)
p_WeatherControlView->UpdateWeatherControlViewVisibility();
}
}
+
+ /*更新天气界面的时间显示*/
+ void WeatherModel::UpdateWeatherCurTime(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UpdateWeatherCurTime");
+ MainWeatherView *p_MainWeatherView = MainWeatherView::GetInstance();
+ if (p_MainWeatherView != nullptr)
+ {
+ p_MainWeatherView->GetWeatherView()->UpdateWeatherTime();
+ }
+ }
}
\ No newline at end of file
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-12 11:44:04
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-06-19 10:51:02
+ * @LastEditTime: 2024-07-23 14:44:07
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/weather/src/WeatherView.cpp
*/
#include "weather/include/WeatherView.h"
SetViewIndex(0); // 视图索引
WeatherModel *p_WeatherModel = &WeatherModel::GetInstance();
+ WeatherTime = p_WeatherModel->GetWeatherCurTime();
WeatherImag = p_WeatherModel->GetWeatherImage();
Temperature = p_WeatherModel->GetWeatherTemperature();
WeatherDescription = p_WeatherModel->GetWeatherDescription();
showWeatherImage->SetResizeMode(UIImageView::CONTAIN);
showWeatherImage->SetSrc(WeatherImag.c_str());
/* -------------------------------------------------------------------------- */
- showCurrentTimeLabel = InitLabelExt(CURRENT_TIME_LABEL_X, CURRENT_TIME_LABEL_Y, CURRENT_TIME_LABEL_W, CURRENT_TIME_LABEL_H, "",
+ showCurrentTimeLabel = InitLabelExt(CURRENT_TIME_LABEL_X, CURRENT_TIME_LABEL_Y, CURRENT_TIME_LABEL_W, CURRENT_TIME_LABEL_H, WeatherTime.c_str(),
CURRENT_TIME_LABEL_TEXT_FONT, CURRENT_TIME_LABEL_LINE_HEIGHT);
if (showCurrentTimeLabel == nullptr)
{
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "WeatherView::UpdateWeatherTime");
- struct tm pTM;
- time_t seconds;
- time(&seconds);
- localtime_r(&seconds, &pTM);
-
- int hour = pTM.tm_hour;
- int minute = pTM.tm_min;
-
- std::string weatherTime = (hour < 10 ? "0" : "") + std::to_string(hour) + ":" + (minute < 10 ? "0" : "") + std::to_string(minute);
+ std::string weatherTime = WeatherModel::GetInstance().GetWeatherCurTime();
return SetTextLabel(showCurrentTimeLabel, weatherTime);
}
version https://git-lfs.github.com/spec/v1
-oid sha256:415ed08d7a18c8ae54261cccab21f908cba231c8a64954d9703f02273277f36b
+oid sha256:bdb3fef91dd660c63d6c0a52e4bc34fbd20b5f5a3ce77fa5b8d24066a4bd562c
size 52664