* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-20 15:14:43
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-07 11:14:50
+ * @LastEditTime: 2024-09-21 11:07:14
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/include/AiVoiceModel.h
*/
#ifndef AI_VOICE_MODEL_H
int GetSelectAiModel(void);
int GetAiModelTextId(void);
+ bool CreateDirectory(const char* path);
+
private:
AiVoiceModel();
~AiVoiceModel();
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-20 15:14:50
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-07 17:08:17
+ * @LastEditTime: 2024-09-21 11:13:21
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/AiVoiceModel.cpp
*/
#include "aivoice/include/AiVoiceModel.h"
#include <unistd.h>
#include "ConfigModel.h"
#include "settings/include/SettingModel.h"
+#include <unistd.h>
+#include <sys/stat.h>
namespace OHOS
{
// 声明定时器变量
static int Time = THIRTY_TIME;
static int AiModelConnectTimeout = 5;
- AiVoiceModel::AiVoiceModel() {}
+ AiVoiceModel::AiVoiceModel()
+ {
+ CreateDirectory("/user/userdata/AiRecording/");
+ }
AiVoiceModel::~AiVoiceModel() {}
return instance;
}
+ bool AiVoiceModel::CreateDirectory(const char* path)
+ {
+ if (access(path, F_OK) == -1) { // 如果路径不存在
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Directory %s not exist, creating directory\n", path);
+ if (mkdir(path, 0777)!= 0) { // 尝试创建目录,如果创建失败
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Create directory %s failed\n", path);
+ return false;
+ }
+ } else { // 如果路径存在
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "Directory %s already exists\n", path);
+ }
+ return true;
+ }
+
// 跳转到返回结果界面
bool AiVoiceModel::ChangeToReturnResultTextView(void)
{
/*
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-28 14:28:03
- * @LastEditors: SnickerSun snickersun@163.com
- * @LastEditTime: 2024-08-30 20:49:17
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-09-19 16:35:47
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/LanguageSwitchListitemView.cpp
*/
#include "languagecode/include/LanguageSwitchListitemView.h"
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchListitemView::~LanguageSwitchListitemView");
Remove(&m_LabelButtonExt);
+ Remove(&languae_Image);
}
void LanguageSwitchListitemView::SetItemInfo(const Language itemInfo)
static constexpr int16_t MAX_SCROLL_DIS = 1000;
static constexpr int16_t MAX_REBOUND_SIZE = 40;
static constexpr int16_t MAX_LANGUAGE_LIST_SCROLLBLANKSIZE = 50;
- static constexpr int16_t ROTATEFACTORVALUE = 4;
-
+ static constexpr int16_t ROTATEFACTORVALUE = 1.0;
+
static LanguageSwitchView *g_pLanguageSwitchView{nullptr};
LanguageSwitchView::LanguageSwitchView()
{
void LanguageSwitchView::ClearAll(void)
{
- if (LanguageSwitchScrollView != nullptr)
+ if (container_ != nullptr)
{
- LanguageSwitchScrollView->RemoveAll();
-
- delete LanguageSwitchViewTitleLabel;
- LanguageSwitchViewTitleLabel = nullptr;
-
- delete p_LanguageSwitchListAdapter;
- p_LanguageSwitchListAdapter = nullptr;
-
- delete LanguageList;
- LanguageList = nullptr;
-
- delete LanguageSwitchScrollView;
- LanguageSwitchScrollView = nullptr;
-
- if(group)
+ container_->RemoveAll();
+ if (LanguageSwitchScrollView != nullptr)
+ {
+ LanguageSwitchScrollView->RemoveAll();
+ if (LanguageSwitchViewTitleLabel)
+ {
+ delete LanguageSwitchViewTitleLabel;
+ LanguageSwitchViewTitleLabel = nullptr;
+ }
+ if (p_LanguageSwitchListAdapter)
+ {
+ delete p_LanguageSwitchListAdapter;
+ p_LanguageSwitchListAdapter = nullptr;
+ }
+ if (LanguageList)
+ {
+ delete LanguageList;
+ LanguageList = nullptr;
+ }
+ delete LanguageSwitchScrollView;
+ LanguageSwitchScrollView = nullptr;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::ClearAll LanguageSwitchScrollView over!!");
+ }
+ if (group != nullptr)
{
group->RemoveAll();
-
- delete button_cancel;
- button_cancel = nullptr;
-
- delete button_ensure;
- button_ensure = nullptr;
-
- delete LanguageSwitchViewhintLabel;
- LanguageSwitchViewhintLabel = nullptr;
+ if (button_cancel)
+ {
+ delete button_cancel;
+ button_cancel = nullptr;
+ }
+ if (button_ensure)
+ {
+ delete button_ensure;
+ button_ensure = nullptr;
+ }
+ if (LanguageSwitchViewhintLabel)
+ {
+ delete LanguageSwitchViewhintLabel;
+ LanguageSwitchViewhintLabel = nullptr;
+ }
+ delete group;
+ group = nullptr;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::ClearAll group over!!");
}
+ delete container_;
+ container_ = nullptr;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::ClearAll over!!");
}
}
return false;
}
LanguageSwitchScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
- LanguageSwitchScrollView->SetScrollBlankSize(MAX_LANGUAGE_LIST_SCROLLBLANKSIZE);
+ // LanguageSwitchScrollView->SetScrollBlankSize(MAX_LANGUAGE_LIST_SCROLLBLANKSIZE);
LanguageSwitchScrollView->SetHorizontalScrollState(false);
LanguageSwitchScrollView->SetTouchable(true);
LanguageSwitchScrollView->SetDraggable(true);
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::LanguageList is nullptr!");
return false;
}
- LanguageList->SetPosition(LANGUAGE_LIST_X, LANGUAGE_LIST_Y, HORIZONTAL_RESOLUTION, VERTICAL_RESOLUTION);
+ LanguageList->SetPosition(LANGUAGE_LIST_X, LANGUAGE_LIST_Y, HORIZONTAL_RESOLUTION, 346);
LanguageList->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
- LanguageList->SetScrollBlankSize(MAX_LANGUAGE_LIST_SCROLLBLANKSIZE);
- LanguageList->EnableAutoAlign(true); // 设置此列表的自动对齐状态。当滚动停止时,子视图被选中,其位置自动与预设位置对齐
- LanguageList->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。
- LanguageList->SetMaxScrollDistance(MAX_SCROLL_DIS); // 设置手指抬起屏幕后的最大滚动距离。
- LanguageList->SetReboundSize(MAX_REBOUND_SIZE);
- LanguageList->SetRotateFactor(ROTATEFACTORVALUE);
+ LanguageList->EnableAutoAlign(true); // 设置此列表的自动对齐状态。当滚动停止时,子视图被选中,其位置自动与预设位置对齐
+ LanguageList->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。
+ LanguageList->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。
+ LanguageList->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/
+ LanguageList->SetReboundSize(30);
+ LanguageList->SetScrollBlankSize(20);
+ LanguageList->SetStartIndex(0);
FocusManager::GetInstance()->RequestFocus(LanguageList);
+ FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_UP);
+ LanguageList->SetRotateFactor(1.0);
return true;
}
}
}
- void LanguageSwitchView::show_hint_group(std::string code,bool data)
+ void LanguageSwitchView::show_hint_group(std::string code, bool data)
{
group->SetVisible(data);
RootView::GetInstance()->Invalidate();
- if(data)
+ if (data)
{
- hint_id_code=code;
+ hint_id_code = code;
}
return;
}
return button_cancel;
}
-
UIButton *LanguageSwitchView::GetLanguagebutton_ensure(void)
{
return button_ensure;
}
- //Take effect after restart
+ // Take effect after restart
void LanguageSwitchView::InithintView()
{
-
group = new UIViewGroup();
- if(group==nullptr)
+ if (group == nullptr)
{
return;
}
group->SetDraggable(true);
group->SetOnDragListener(presenter_);
-
- if (LanguageSwitchViewhintLabel == nullptr) {
- LanguageSwitchViewhintLabel = new UILabel();
+ if (LanguageSwitchViewhintLabel == nullptr)
+ {
+ LanguageSwitchViewhintLabel = new UILabel();
}
- LanguageSwitchViewhintLabel->SetPosition(47, 194); // widget's left position and top position
- LanguageSwitchViewhintLabel->Resize(370, 60); // widget's width and height
- LanguageSwitchViewhintLabel->SetViewId("label1");// Set style
+ LanguageSwitchViewhintLabel->SetPosition(47, 194); // widget's left position and top position
+ LanguageSwitchViewhintLabel->Resize(370, 60); // widget's width and height
+ LanguageSwitchViewhintLabel->SetViewId("label1"); // Set style
LanguageSwitchViewhintLabel->SetStyle(STYLE_TEXT_FONT, 30);
LanguageSwitchViewhintLabel->SetText("Take effect after restart");
group->Add(LanguageSwitchViewhintLabel);
LanguageSwitchViewhintLabel->SetVisible(true);
-
-
button_cancel = new UIButton();
if (button_cancel == nullptr)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemShutdown::new button_cancel fail!");
- return ;
+ return;
}
button_cancel->SetPosition(97, 299, 130, 130);
button_cancel->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
if (button_ensure == nullptr)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemShutdown::new button_ensure fail!");
- return ;
+ return;
}
button_ensure->SetPosition(240, 299, 130, 130);
button_ensure->SetStyle(STYLE_BACKGROUND_COLOR, 0xffffffff);
button_cancel->SetOnClickListener(presenter_);
button_ensure->SetOnClickListener(presenter_);
group->SetVisible(false);
-
}
-
void LanguageSwitchView::OnStart()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::OnStart");
View<LanguageSwitchPresenter>::OnStart();
SetContainerView(new UIViewGroup());
+ if (GetContainer() == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SetContainerView fail!!");
+ return;
+ }
container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
container_->SetTouchable(true);
container_->SetDraggable(true);
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::OnStop");
View<LanguageSwitchPresenter>::OnStop();
- if (container_ != nullptr)
- {
- container_->RemoveAll();
- delete container_;
- container_ = nullptr;
- }
RootView::GetInstance()->ClearOnKeyActListener();
FocusManager::GetInstance()->ClearFocus();
ClearAll();
}
note->SetStyle(STYLE_TEXT_FONT, 26);
note->SetStyle(STYLE_LINE_HEIGHT, 40);
- note->SetText("注:启用4G,可能会加速消耗电量");
+ note->SetText("开启此功能后,手表可以4G SIM卡拨打电话,耗电会增加。");
note->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff));
note->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
note->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-20 15:11:17
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-29 17:39:15
+ * @LastEditTime: 2024-09-19 14:21:00
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/aivoice/src/RebootAndShutdownPresenter.cpp
*/
#include "AppViewIDs.h"
#include "rebootandshutdown/include/RebootAndShutdownView.h"
#include "rebootandshutdown/include/RebootAndShutdownModel.h"
#include "dial_sos_c.h"
+#include "vibrator_service.h"
namespace OHOS
{
}
else if (strcmp(view.GetViewId(), FACTORY_RESET_BUTTON_CHECK_ON) == 0) // 恢复出厂设置确认
{
+ ui_api_vibrate_once_func(); //恢复出厂增加震动
do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_RESTORE_FACTORY_SETTING, NULL, 0);
return true;
}
#include "wearable_log.h"
#include <custom_utils.h>
#include "uicomponents/UIComponents.h"
+#include "vibrator_service.h"
namespace OHOS
{
shutDownImageAnimatorView->Start();
isShutDownImageAnimatorStart = true;
ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);//关机动画已经开始了不能息屏
+
+ //关机增加震动
+ ui_api_vibrate_once_func();
}
// 获取开机动画是否已经开始
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-27 19:48:49
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-18 10:12:06
+ * @LastEditTime: 2024-09-20 15:44:27
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingItemView.cpp
*/
SettingItemView::SettingItemView()
{
- SetPosition(0, 120, 380, 120);
+ SetPosition(43, 120, 380, 120);
SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
SetStyle(STYLE_BACKGROUND_OPA, UN_OPACITY);
SetTouchable(true);
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-07-12 09:55:29
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-09-18 10:49:14
+ * @LastEditTime: 2024-09-20 20:42:55
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingView.cpp
*/
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);
scrollView->SetHorizontalScrollState(false);
scrollView->SetTouchable(true);
scrollView->SetThrowDrag(true);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingView::OnStart::contentList is nullptr");
return;
}
- contentList->SetPosition(SETTING_LIST_POSITION_X, SETTING_LIST_POSITION_Y, 380, 360);
+ contentList->SetPosition(SETTING_LIST_POSITION_X, SETTING_LIST_POSITION_Y, HORIZONTAL_RESOLUTION, 346);
contentList->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
+ contentList->EnableAutoAlign(true); // 设置此列表的自动对齐状态。当滚动停止时,子视图被选中,其位置自动与预设位置对齐
+ contentList->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。
+ contentList->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。
+ contentList->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/
+ contentList->SetReboundSize(30);
contentList->SetScrollBlankSize(30);
- contentList->SetDraggable(true);
- contentList->SetThrowDrag(true);
- contentList->EnableAutoAlign(true);
- contentList->SetReboundSize(REBOUNDSIZE);
- contentList->SetMaxScrollDistance(MAX_SCR_DIS);
- contentList->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/
- contentList->RequestFocus();
+ FocusManager::GetInstance()->RequestFocus(contentList);
+ FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_UP);
contentList->SetRotateFactor(1.0);
/* ----------------------------------- Add ---------------------------------- */
scrollView->Add(title);
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-04-19 21:03:26\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-07-24 17:33:52\r
+ * @LastEditTime: 2024-09-20 15:01:12\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/include/SoundAndVibrationView.h\r
*/\r
#ifndef SOUND_AND_VIBRATION_VIEW_H\r
UILabelExt *SilentModeLabel{nullptr}; // 静音模式标签\r
UIToggleButton *SilentModeToggleButton{nullptr}; // 静音模式切换按钮\r
bool initViewStatus{false};\r
+ UIImageView *temp{nullptr};\r
};\r
} // namespace OHOS\r
\r
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-02-19 10:39:14\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-07-24 17:48:13\r
+ * @LastEditTime: 2024-09-20 15:12:30\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/soundandvibration/src/SoundAndVibrationView.cpp\r
*/\r
#include "soundandvibration/include/SoundAndVibrationView.h"\r
delete SilentModeLabel;\r
SilentModeLabel = nullptr;\r
\r
+ delete temp;\r
+ temp = nullptr;\r
+\r
delete SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW];\r
SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW] = nullptr;\r
}\r
}\r
SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
- SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetScrollBlankSize(75);\r
- SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetReboundSize(35);\r
- SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetDirection(1);\r
- SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetMaxScrollDistance(1000);\r
SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetThrowDrag(true);\r
SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetTouchable(true);\r
SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetDraggable(true);\r
- SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->RequestFocus();\r
- SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetRotateFactor(2.0);\r
+ SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetScrollBlankSize(30);\r
+ SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetReboundSize(30);\r
+ SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetDirection(1);\r
+ SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。\r
+ SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/\r
+ FocusManager::GetInstance()->RequestFocus(SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]);\r
+ FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_UP);\r
+ SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->SetRotateFactor(1.0);\r
container_->Add(SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]);\r
\r
return true;\r
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::CreateSoundAndVibrationView fail!!");\r
return;\r
}\r
+ /* ------------------- 该组件的使用是为了解决不能单独设置滚动视图底部空白大小问题,用一个不可见组件占位置 ------------------ */\r
+ /* ---------------------------- 因为使用SetScrollBlankSize设置大小后下拉后无法恢复到原位置,有向下偏移 --------------------------- */\r
+ if (temp == nullptr)\r
+ {\r
+ temp = new UIImageView();\r
+ if (temp == nullptr)\r
+ {\r
+ return;\r
+ }\r
+ temp->SetPosition(43, 480 + 120, 380, 40);\r
+ temp->SetVisible(false);\r
+ SoundAndVibrationScrollView[SOUNDANDVIBRATIONVIEW]->Add(temp);\r
+ }\r
initViewStatus = true;\r
}\r
\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SoundAndVibrationView::OnStop");\r
View<SoundAndVibrationPresenter>::OnStop();\r
RootView::GetInstance()->ClearOnKeyActListener();\r
+ FocusManager::GetInstance()->ClearFocus();\r
ClearAll();\r
return;\r
}\r
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-03-30 18:29:39\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-08-28 19:43:28\r
+ * @LastEditTime: 2024-09-19 20:07:09\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemView.h\r
*/\r
#ifndef SYSTEM_VIEW_H\r
void NeedToUpdateImageinit(void);\r
UILabelExt *Title{nullptr}; // 标题\r
UIScrollView *SystemScrollView[MAX_SYSTEMVIEWID]{nullptr};\r
- UILabelButtonExt *SystemViewLabelButton[5]{nullptr};\r
- UILabelExt *SystemViewLabel[5]{nullptr};\r
+ UILabelButtonExt *SystemViewLabelButton[7]{nullptr};\r
+ UILabelExt *SystemViewLabel[7]{nullptr};\r
UIImageView *NeedToUpdateImage{nullptr}; // 提示需要系统更新的icon图片\r
+ UIImageView *temp{nullptr};\r
bool viewInitStatus{false};\r
};\r
} // namespace OHOS\r
\r
namespace OHOS\r
{\r
- static constexpr uint16_t SYSTEM_ABOUT_THEWATCH_TITLE_X = 93;\r
- static constexpr uint16_t SYSTEM_ABOUT_THEWATCH_TITLE_Y = 52;\r
- static constexpr uint16_t SYSTEM_ABOUT_THEWATCH_TITLE_W = 280;\r
- static constexpr uint16_t SYSTEM_ABOUT_THEWATCH_TITLE_H = 40;\r
+ static constexpr uint16_t SYSTEM_ABOUT_THEWATCH_TITLE_X = 83;\r
+ static constexpr uint16_t SYSTEM_ABOUT_THEWATCH_TITLE_Y = 50;\r
+ static constexpr uint16_t SYSTEM_ABOUT_THEWATCH_TITLE_W = 300;\r
+ static constexpr uint16_t SYSTEM_ABOUT_THEWATCH_TITLE_H = 35;\r
static constexpr uint16_t SYSTEM_ABOUT_THEWATCH_TITLE_FONTSIZE = 30;\r
static constexpr uint16_t SYSTEM_ABOUT_THEWATCH_TITLE_LINEHEIGHT = 35;\r
\r
static constexpr uint16_t TITLE_LABEL_X = 53;\r
static constexpr uint16_t TITLE_LABEL_W = 360;\r
- static constexpr uint16_t TITLE_LABEL_H = 40;\r
+ static constexpr uint16_t TITLE_LABEL_H = 35;\r
static constexpr uint16_t TITLE_LABEL_FONTSIZE = 30;\r
static constexpr uint16_t TITLE_LABEL_LINEHEIGHT = 35;\r
\r
static constexpr uint16_t LABEL_X = 33;\r
static constexpr uint16_t LABEL_W = 400;\r
- static constexpr uint16_t LABEL_H = 40;\r
+ static constexpr uint16_t LABEL_H = 35;\r
static constexpr uint16_t LABEL_FONTSIZE = 30;\r
static constexpr uint16_t LABEL_LINEHEIGHT = 35;\r
\r
delete CyweeVersion;\r
CyweeVersion = nullptr;\r
\r
+ FocusManager::GetInstance()->ClearFocus();\r
delete SystemAboutTheWatchScrollView;\r
SystemAboutTheWatchScrollView = nullptr;\r
}\r
SystemAboutTheWatchScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
SystemAboutTheWatchScrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
SystemAboutTheWatchScrollView->SetStyle(STYLE_BORDER_RADIUS, 1294);\r
- SystemAboutTheWatchScrollView->SetScrollBlankSize(TITLE_LABEL_LINEHEIGHT);\r
- SystemAboutTheWatchScrollView->SetReboundSize(50);\r
+ SystemAboutTheWatchScrollView->SetScrollBlankSize(30);\r
+ SystemAboutTheWatchScrollView->SetReboundSize(30);\r
SystemAboutTheWatchScrollView->SetDirection(1);\r
+ SystemAboutTheWatchScrollView->SetThrowDrag(true);\r
+ SystemAboutTheWatchScrollView->SetMaxScrollDistance(1000);\r
+ SystemAboutTheWatchScrollView->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/\r
+ FocusManager::GetInstance()->RequestFocus(SystemAboutTheWatchScrollView);\r
+ FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_UP);\r
+ SystemAboutTheWatchScrollView->SetRotateFactor(1.0);\r
UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(SystemPresenter::GetInstance());\r
if (draglistener == nullptr)\r
{\r
.lineHeigh = SYSTEM_ABOUT_THEWATCH_TITLE_LINEHEIGHT,\r
.text = "关于手表",\r
.textId = STR_ABOUT_WATCH,\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
SystemAboutTheWatchTitle = InitLabel_Ext(Config);\r
if (SystemAboutTheWatchTitle == nullptr)\r
.lineHeigh = TITLE_LABEL_LINEHEIGHT,\r
.text = "手表名称",\r
.textId = STR_WATCH_NAME,\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
WatchNameTitle = InitLabel_Ext(Config);\r
if (WatchNameTitle == nullptr)\r
.lineHeigh = TITLE_LABEL_LINEHEIGHT,\r
.text = "固件版本",\r
.textId = STR_FIRMWARE_VERSION,\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
FirmwareVersionTitle = InitLabel_Ext(Config);\r
if (FirmwareVersionTitle == nullptr)\r
.lineHeigh = TITLE_LABEL_LINEHEIGHT,\r
.text = "蓝牙名称",\r
.textId = STR_BLUETOOTH_NAME,\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
BluetoothNameTitle = InitLabel_Ext(Config);\r
if (BluetoothNameTitle == nullptr)\r
.lineHeigh = TITLE_LABEL_LINEHEIGHT,\r
.text = "蓝牙地址",\r
.textId = STR_BLUETOOTH_ADDRESS,\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
BluetoothAddressTitle = InitLabel_Ext(Config);\r
if (BluetoothAddressTitle == nullptr)\r
.fontSize = TITLE_LABEL_FONTSIZE,\r
.lineHeigh = TITLE_LABEL_LINEHEIGHT,\r
.text = "4G Modem",\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
Network4GTitle = InitLabel(Config);\r
if (Network4GTitle == nullptr)\r
.fontSize = TITLE_LABEL_FONTSIZE,\r
.lineHeigh = TITLE_LABEL_LINEHEIGHT,\r
.text = "pyVer",\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
PyVerTitle = InitLabel(Config);\r
if (PyVerTitle == nullptr)\r
.fontSize = TITLE_LABEL_FONTSIZE,\r
.lineHeigh = TITLE_LABEL_LINEHEIGHT,\r
.text = "IMEI",\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
IMELTitle = InitLabel(Config);\r
if (IMELTitle == nullptr)\r
.fontSize = TITLE_LABEL_FONTSIZE,\r
.lineHeigh = TITLE_LABEL_LINEHEIGHT,\r
.text = "OS Version",\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
FONTTitle = InitLabel(Config);\r
if (FONTTitle == nullptr)\r
.fontSize = TITLE_LABEL_FONTSIZE,\r
.lineHeigh = TITLE_LABEL_LINEHEIGHT,\r
.text = "HW Version",\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
HWVERTitle = InitLabel(Config);\r
if (HWVERTitle == nullptr)\r
.fontSize = TITLE_LABEL_FONTSIZE,\r
.lineHeigh = TITLE_LABEL_LINEHEIGHT,\r
.text = "Cywee Version",\r
- .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,\r
+ .lineBreakMode = UILabel::LINE_BREAK_OSCILLATION,\r
};\r
CyweeVersionTitle = InitLabel(Config);\r
if (CyweeVersionTitle == nullptr)\r
#include "languagecode/LanguageInit.h"\r
#include "ui_resource_string.h"\r
#include "ConfigModel.h"\r
+#include "vibrator_service.h"\r
namespace OHOS\r
{\r
\r
}\r
else if (strcmp(view.GetViewId(), FACTORYRESET_CHECKON) == 0) // 恢复出厂设置确认\r
{\r
+ ui_api_vibrate_once_func(); //恢复出厂增加震动\r
do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_RESTORE_FACTORY_SETTING, NULL, 0);\r
return true;\r
}\r
\r
void SystemView::ClearAll()\r
{\r
+ if (container_ != nullptr)\r
+ {\r
+ container_->RemoveAll();\r
+ delete container_;\r
+ container_ = nullptr;\r
+ }\r
+ \r
if (viewInitStatus)\r
{\r
if (SystemScrollView[SYSTEMVIEW] != nullptr)\r
delete Title;\r
Title = nullptr;\r
}\r
- for (int i = 0; i < 5; i++)\r
+ for (int i = 0; i < sizeof(SystemViewLabelButton) / sizeof(SystemViewLabelButton[0]); i++)\r
{\r
if (SystemViewLabelButton[i] != nullptr)\r
{\r
delete NeedToUpdateImage;\r
NeedToUpdateImage = nullptr;\r
}\r
+ if (temp != nullptr)\r
+ {\r
+ delete temp;\r
+ temp = nullptr;\r
+ }\r
delete SystemScrollView[SYSTEMVIEW];\r
SystemScrollView[SYSTEMVIEW] = nullptr;\r
}\r
\r
bool SystemView::CreateSystemViewLabel(void)\r
{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemViewLabel");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemViewLabel");\r
LabelConfig labelConfig = {\r
.left = 83,\r
.top = 50,\r
\r
bool SystemView::CreateSystemViewLabelButton(void)\r
{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemViewLabelButton");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemViewLabelButton");\r
struct ButtonSetup\r
{\r
int y;\r
\r
bool SystemView::CreateSystemScrollView(void)\r
{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemScrollView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemScrollView");\r
SystemScrollView[SYSTEMVIEW] = new UIScrollView();\r
if (SystemScrollView[SYSTEMVIEW] == nullptr)\r
{\r
}\r
SystemScrollView[SYSTEMVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
SystemScrollView[SYSTEMVIEW]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
- SystemScrollView[SYSTEMVIEW]->SetScrollBlankSize(75);\r
- SystemScrollView[SYSTEMVIEW]->SetReboundSize(35);\r
+ SystemScrollView[SYSTEMVIEW]->SetScrollBlankSize(30);\r
+ SystemScrollView[SYSTEMVIEW]->SetReboundSize(30);\r
SystemScrollView[SYSTEMVIEW]->SetDirection(1);\r
SystemScrollView[SYSTEMVIEW]->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。\r
SystemScrollView[SYSTEMVIEW]->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。\r
- SystemScrollView[SYSTEMVIEW]->RequestFocus();\r
+ SystemScrollView[SYSTEMVIEW]->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/\r
+ FocusManager::GetInstance()->RequestFocus(SystemScrollView[SYSTEMVIEW]);\r
+ FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_UP);\r
SystemScrollView[SYSTEMVIEW]->SetRotateFactor(1.0);\r
SystemScrollView[SYSTEMVIEW]->SetOnDragListener(presenter_);\r
SystemScrollView[SYSTEMVIEW]->SetTouchable(true);\r
\r
void SystemView::CreateSystemView(void)\r
{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemView");\r
if (!CreateSystemScrollView() || !CreateSystemViewLabelButton() || !CreateSystemViewLabel())\r
{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::CreateSystemView fail!!");\r
return;\r
}\r
+ /* ------------------- 该组件的使用是为了解决不能单独设置滚动视图底部空白大小问题,用一个不可见组件占位置 ------------------ */\r
+ /* ---------------------------- 因为使用SetScrollBlankSize设置过大后,下拉后无法恢复到原位置,有明显的向下偏移 --------------------------- */\r
+ if (temp == nullptr)\r
+ {\r
+ temp = new UIImageView();\r
+ if (temp == nullptr)\r
+ {\r
+ return;\r
+ }\r
+ temp->SetPosition(43, 960, 380, 40);\r
+ temp->SetVisible(false);\r
+ SystemScrollView[SYSTEMVIEW]->Add(temp);\r
+ }\r
viewInitStatus = true;\r
}\r
\r
{\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SystemView::OnStop");\r
View<SystemPresenter>::OnStop();\r
- if (container_ != nullptr)\r
- {\r
- container_->RemoveAll();\r
- delete container_;\r
- container_ = nullptr;\r
- }\r
RootView::GetInstance()->ClearOnKeyActListener();\r
+ FocusManager::GetInstance()->ClearFocus();\r
ClearAll();\r
return;\r
}\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-14 09:40:13
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-19 18:24:49
+ * @LastEditTime: 2024-09-20 15:31:42
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/themestyle/include/ThemeStyleView.h
*/
UIImageView *ThemeStyleImage[MAX_STYLE]{nullptr};
UILabelButtonExt *ExitLabelButton{nullptr};
UILabelExt *ExitLabel{nullptr};
+ UIImageView *temp{nullptr};
bool initViewStatus{false};
};
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-06-14 09:40:20
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-08-19 18:48:59
+ * @LastEditTime: 2024-09-20 15:36:31
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/themestyle/src/ThemeStyleView.cpp
*/
#include "themestyle/include/ThemeStyleView.h"
#include "themestyle/include/ThemeStylePresenter.h"
#include "ui_resource_string.h"
-
+#include "dock/focus_manager.h"
namespace OHOS
{
static ThemeStyleView *g_pThemeStyleView{nullptr};
void ThemeStyleView::ClearAll(void)
{
+ if (container_ != nullptr)
+ {
+ container_->RemoveAll();
+ delete container_;
+ container_ = nullptr;
+ }
+
if (initViewStatus)
{
if (scrollView != nullptr)
{
scrollView->RemoveAll();
-
- delete titleText;
- titleText = nullptr;
-
+ if (titleText)
+ {
+ delete titleText;
+ titleText = nullptr;
+ }
for (int i = 0; i < MAX_STYLE; i++)
{
delete ThemeStyleLabelButton[i];
delete ThemeStyleImage[i];
ThemeStyleImage[i] = nullptr;
}
-
- delete ExitLabelButton;
- ExitLabelButton = nullptr;
-
- delete ExitLabel;
- ExitLabel = nullptr;
-
+ if (ExitLabelButton)
+ {
+ delete ExitLabelButton;
+ ExitLabelButton = nullptr;
+ }
+ if (ExitLabel)
+ {
+ delete ExitLabel;
+ ExitLabel = nullptr;
+ }
+ if(temp)
+ {
+ delete temp;
+ temp = nullptr;
+ }
delete scrollView;
scrollView = nullptr;
}
return false;
}
scrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
- scrollView->SetScrollBlankSize(SCROLLBLANKSIZE);
- scrollView->SetReboundSize(REBOUNDSIZE);
- scrollView->SetHorizontalScrollState(false);
- scrollView->RequestFocus();
+ scrollView->SetScrollBlankSize(30);
+ scrollView->SetReboundSize(30);
+ scrollView->SetDirection(1);
+ scrollView->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。
+ scrollView->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。
+ scrollView->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/
+ FocusManager::GetInstance()->RequestFocus(scrollView);
+ FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_UP);
scrollView->SetRotateFactor(1.0);
- scrollView->SetMaxScrollDistance(1000);
- scrollView->SetDragACCLevel(5);
- scrollView->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/
+ scrollView->SetOnDragListener(presenter_);
scrollView->SetTouchable(true);
scrollView->SetDraggable(true);
container_->Add(scrollView);
}
UpdateSelectedStyle();
+ /* ------------------- 该组件的使用是为了解决不能单独设置滚动视图底部空白大小问题,用一个不可见组件占位置 ------------------ */
+ /* ---------------------------- 因为使用SetScrollBlankSize设置过大后,下拉后无法恢复到原位置,有明显的向下偏移 --------------------------- */
+ if (temp == nullptr)
+ {
+ temp = new UIImageView();
+ if (temp == nullptr)
+ {
+ return;
+ }
+ if (ExitLabelButton)
+ {
+ temp->SetPosition(43, ExitLabelButton->GetY() + ExitLabelButton->GetHeight(), 380, 40);
+ }
+ temp->SetVisible(false);
+ scrollView->Add(temp);
+ }
initViewStatus = true;
}
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThemeStyleView::OnStart");
View<ThemeStylePresenter>::OnStart();
SetContainerView(new UIViewGroup());
+ if (GetContainer() == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "container_ new fail!!");
+ return;
+ }
container_->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
- container_->SetOnDragListener(presenter_);
container_->SetTouchable(true);
container_->SetDraggable(true);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ThemeStyleView::OnStop");
View<ThemeStylePresenter>::OnStop();
RootView::GetInstance()->ClearOnKeyActListener();
- if (container_ != nullptr)
- {
- container_->RemoveAll();
- delete container_;
- container_ = nullptr;
- }
+ FocusManager::GetInstance()->ClearFocus();
ClearAll();
}