STR_BLUETOOTH_NAME$Bluetooth Name\r
STR_BLUETOOTH_ADDRESS$Bluetooth Address\r
STR_LATEST_VERSION$Latest Version\r
+STR_UPDATENOW$Update Now\r
STR_LATER$Later\r
STR_UP_TO_DATE$The system has been upgraded to the latest version\r
STR_NO_UPDATE$No update \r
STR_BLUETOOTH_NAME$蓝牙名称\r
STR_BLUETOOTH_ADDRESS$蓝牙地址\r
STR_LATEST_VERSION$最新版本\r
+STR_UPDATENOW$立即更新\r
STR_LATER$稍后再说\r
STR_UP_TO_DATE$当前已升级到最新版本\r
STR_NO_UPDATE$暂无更新\r
<lanstr id="STR_BLUETOOTH_NAME" value="Bluetooth Name"/>
<lanstr id="STR_BLUETOOTH_ADDRESS" value="Bluetooth Address"/>
<lanstr id="STR_LATEST_VERSION" value="Latest Version"/>
+ <lanstr id="STR_UPDATENOW" value="Update Now"/>
<lanstr id="STR_LATER" value="Later"/>
<lanstr id="STR_UP_TO_DATE" value="The system has been upgraded to the latest version"/>
<lanstr id="STR_NO_UPDATE" value="No update"/>
<lanstr id="STR_BLUETOOTH_NAME" value="蓝牙名称"/>
<lanstr id="STR_BLUETOOTH_ADDRESS" value="蓝牙地址"/>
<lanstr id="STR_LATEST_VERSION" value="最新版本"/>
+ <lanstr id="STR_UPDATENOW" value="立即更新"/>
<lanstr id="STR_LATER" value="稍后再说"/>
<lanstr id="STR_UP_TO_DATE" value="当前已升级到最新版本"/>
<lanstr id="STR_NO_UPDATE" value="暂无更新"/>
STR_BLUETOOTH_NAME = 312,\r
STR_BLUETOOTH_ADDRESS = 313,\r
STR_LATEST_VERSION = 314,\r
- STR_LATER = 315,\r
- STR_UP_TO_DATE = 316,\r
- STR_NO_UPDATE = 317,\r
- STR_LANGUAGE_SELECTION = 318,\r
- STR_RESET_CONFIRM = 319,\r
- STR_SHUTDOWN_CONFIRM = 320,\r
- STR_RESET_CONFIRM_NOTE = 321,\r
- STR_MAX_ID = 322,\r
+ STR_UPDATENOW = 315,\r
+ STR_LATER = 316,\r
+ STR_UP_TO_DATE = 317,\r
+ STR_NO_UPDATE = 318,\r
+ STR_LANGUAGE_SELECTION = 319,\r
+ STR_RESET_CONFIRM = 320,\r
+ STR_SHUTDOWN_CONFIRM = 321,\r
+ STR_RESET_CONFIRM_NOTE = 322,\r
+ STR_MAX_ID = 323,\r
}; // UIResourceTextId\r
enum FontLanguageId : uint8_t {
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-30 09:14:38
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-23 19:24:51
+ * @LastEditTime: 2024-05-07 20:06:31
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/include/SettingItemView.h
*/
/*
virtual void SetItemInfo(const SettingItem itemInfo);
virtual void SetUpChild();
SettingIndex GetSettingIndex();
+ UIImageView *GetNeedToUpdateImage(void);
private:
SettingItemView(const SettingItemView &);
UILabelExt settingLabelExt;
UILabelButtonExt settingLabelButtonExt;
SettingItem sItemInfo = {SETTING_ITEM_ZERO, nullptr, STR_EXERCISE_GENERAL, false};
+ /* -------------------------------------------------------------------------- */
+ void NeedToUpdateImageinit(void);
+ UIImageView NeedToUpdateImage; //提示需要系统更新的icon图片
+ /* -------------------------------------------------------------------------- */
};
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-01-29 15:37:44
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-03 14:11:14
+ * @LastEditTime: 2024-05-07 20:11:17
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingAdapter.cpp
*/
#include "SettingAdapter.h"
UIView *SettingAdapter::GetView(UIView *inView, int16_t index)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingAdapter::GetView:%d",index);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "SettingAdapter::GetView:%d", index);
if (listData.empty())
{
return nullptr;
item->SetItemInfo(itemData);
item->SetOnClickListener(itemClickListener);
+ UIImageView *view = dynamic_cast<UIImageView *>(item->GetNeedToUpdateImage());
+ if (view != nullptr && index == 6)
+ {
+ item->GetNeedToUpdateImage()->SetVisible(true);
+ }
+ else
+ {
+ item->GetNeedToUpdateImage()->SetVisible(false);
+ }
return item;
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-27 19:48:49
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-24 16:19:53
+ * @LastEditTime: 2024-05-07 20:03:34
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/settings/src/SettingItemView.cpp
*/
#include "wearable_log.h"
#include "SettingItemView.h"
#include "common/image_cache_manager.h"
-
+#include "systemupdate/include/SystemUpdateModel.h"
namespace OHOS
{
static constexpr int16_t SETTING_ICON_X = 19;
SettingItemView::~SettingItemView()
{
- Remove(&settingLabelButtonExt);
- Remove(&settingLabelExt);
- Remove(&Icon);
+ // Remove(&settingLabelButtonExt);
+ // Remove(&settingLabelExt);
+ // Remove(&Icon);
+ RemoveAll();
}
void SettingItemView::SetItemInfo(const SettingItem itemInfo)
Icon.SetSrc(itemInfo.icon);
//WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%d", itemInfo.textId);
settingLabelExt.SetTextId(itemInfo.textId);
+
+ if (itemInfo.textId == STR_SYSTEM && SystemUpdateModel::GetInstance().IsLatestVersion() == false) // 如果不是最新系统版本出现小圆点
+ {
+ NeedToUpdateImageinit();
+ }
}
void SettingItemView::SetUpChild()
{
return sItemInfo.index;
}
+
+ void SettingItemView::NeedToUpdateImageinit(void)
+ {
+ NeedToUpdateImage.SetPosition(280, 40, 20, 20);
+ NeedToUpdateImage.SetStyle(STYLE_BORDER_RADIUS, 200);
+ char *imagesPath = "/user/res/system/SYSTEM_UPDATE_FLAG.bin";
+ NeedToUpdateImage.SetSrc(imagesPath);
+ NeedToUpdateImage.SetVisible(false);
+
+ Add(&NeedToUpdateImage);
+ }
+
+ UIImageView *SettingItemView::GetNeedToUpdateImage(void)
+ {
+ return &NeedToUpdateImage;
+ }
}
\ No newline at end of file
* @Author: luozheng 1732036298@qq.com\r
* @Date: 2024-03-30 18:29:39\r
* @LastEditors: luozheng 1732036298@qq.com\r
- * @LastEditTime: 2024-05-06 20:35:44\r
+ * @LastEditTime: 2024-05-07 18:30:05\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemView.h\r
*/\r
#ifndef SYSTEM_VIEW_H\r
void ClearAll(void);\r
bool SetTheSystemScrollView(void);\r
bool SetTheTitle(void);\r
+ void NeedToUpdateImageinit(void);\r
UILabelButtonExt *SetTheButton_ext(ButtonConfig_ext_t &ButtonConfig_ext, UIView::OnClickListener *clickListener);\r
SystemAboutTheWatchView *p_SystemAboutTheWatchView{nullptr}; // 关于手表\r
SystemupgradeView *p_SystemupgradeView{nullptr}; // 系统升级\r
UIScrollView *SystemScrollView[10]{nullptr};\r
UILabelExt *Title{nullptr}; // 标题\r
UILabelButtonExt *SystemViewButton[5]{nullptr};\r
+ /* -------------------------------------------------------------------------- */\r
+ UIImageView *NeedToUpdateImage{nullptr}; //提示需要系统更新的icon图片\r
+ /* -------------------------------------------------------------------------- */\r
};\r
} // namespace OHOS\r
\r
#include "battery_hal.h"\r
#include "language/font/ui_resource_string.h"\r
extern uint8_t battery_get_voltage(float *voltage);\r
+#include "systemupdate/include/SystemUpdateModel.h"\r
namespace OHOS\r
{\r
\r
p_SystemFactoryResetView = nullptr;\r
}\r
\r
+ if (NeedToUpdateImage != nullptr)\r
+ {\r
+ delete NeedToUpdateImage;\r
+ NeedToUpdateImage = nullptr;\r
+ }\r
+\r
delete SystemScrollView[SYSTEMVIEW];\r
SystemScrollView[SYSTEMVIEW] = nullptr;\r
}\r
return SystemScrollView[ViewId];\r
}\r
\r
+ void SystemView::NeedToUpdateImageinit(void)\r
+ {\r
+ if (NeedToUpdateImage == nullptr)\r
+ {\r
+ NeedToUpdateImage = new UIImageView();\r
+ if (NeedToUpdateImage == nullptr)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SystemView");\r
+ return;\r
+ }\r
+ NeedToUpdateImage->SetPosition(323, 280, 20, 20);\r
+ NeedToUpdateImage->SetStyle(STYLE_BORDER_RADIUS, 200);\r
+ char *imagesPath = "/user/res/system/SYSTEM_UPDATE_FLAG.bin";\r
+ NeedToUpdateImage->SetSrc(imagesPath);\r
+\r
+ SystemScrollView[SYSTEMVIEW]->Add(NeedToUpdateImage);\r
+ }\r
+ }\r
+\r
void SystemView::OnStart()\r
{\r
View<SystemPresenter>::OnStart();\r
{\r
SystemScrollView[SYSTEMVIEW]->Add(SystemViewButton[i]);\r
}\r
+ if (SystemUpdateModel::GetInstance().IsLatestVersion() == false) // 如果不是最新系统版本出现小圆点\r
+ {\r
+ NeedToUpdateImageinit();\r
+ }\r
RootView::GetInstance()->Add(SystemScrollView[SYSTEMVIEW]);\r
Draw();\r
}\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-05-07 11:25:27
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-05-07 16:13:06
+ * @LastEditTime: 2024-05-07 18:10:03
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/systemupdate/include/SystemUpdateView.h
*/
bool SetSystemUpdateScrollView(void);
UILabelExt *InitLabel_Ext(LabelConfig &labelConfig);
void SystemUpdateViewInit(void);
+ void NoNeedUpdateViewInit(void);
void ClearAll(void);
UIScrollView *SystemUpdateScrollView{nullptr};
UILabelExt *TryAgainLaterLabel{nullptr}; // 稍后再试标签
UIButton *UpdateNowButtton{nullptr}; // 立即升级按钮
UIButton *TryAgainLaterButton{nullptr}; // 稍后再试按钮
+ /* -------------------------------------------------------------------------- */
+ UIScrollView *NoNeedUpdateScrollView{nullptr};
+ UILabelExt *NoNeedUpdateTitle{nullptr};
+ UILabelExt *NoNeedUpdateNote[2]{nullptr};
+ /* -------------------------------------------------------------------------- */
};
}
#endif
\ No newline at end of file
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-05-07 11:26:25
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-05-07 16:32:26
+ * @LastEditTime: 2024-05-07 18:10:26
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/systemupdate/src/SystemUpdateModel.cpp
*/
#include "systemupdate/include/SystemUpdateModel.h"
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-05-07 11:25:58
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-05-07 17:15:10
+ * @LastEditTime: 2024-05-07 18:03:07
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/systemupdate/src/SystemUpdateView.cpp
*/
delete SystemUpdateScrollView;
SystemUpdateScrollView = nullptr;
}
+
+ if (NoNeedUpdateScrollView != nullptr)
+ {
+ NoNeedUpdateScrollView->RemoveAll();
+
+ delete NoNeedUpdateTitle;
+ NoNeedUpdateTitle = nullptr;
+
+ for (int i = 0; i < 2; i++)
+ {
+ delete NoNeedUpdateNote[i];
+ NoNeedUpdateNote[i] = nullptr;
+ }
+
+ delete NoNeedUpdateScrollView;
+ NoNeedUpdateScrollView = nullptr;
+ }
}
UILabelExt *SystemUpdateView::InitLabel_Ext(LabelConfig &labelConfig)
.height = 35,
.fontSize = 30,
.lineHeigh = 35,
- .textId = STR_LATEST_VERSION,
+ .textId = STR_UPDATENOW,
.lineBreakMode = UILabel::LINE_BREAK_MARQUEE,
};
UpdateNowLabel = InitLabel_Ext(Config);
TryAgainLaterButton->SetPosition(63, 427, 340, 100);
TryAgainLaterButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
TryAgainLaterButton->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);
-
+ TryAgainLaterButton->SetStyleForState(STYLE_BACKGROUND_OPA, 0x00, UIButton::PRESSED);
/* ----------------------------- OnClickListener ---------------------------- */
UIView::OnClickListener *listener = static_cast<UIView::OnClickListener *>(SystemUpdatePresenter::GetInstance());
if (listener == nullptr)
SystemUpdateScrollView->Add(KUMILOGOImage);
SystemUpdateScrollView->Add(LatestVersionLabel);
SystemUpdateScrollView->Add(VersionIdLabel);
- SystemUpdateScrollView->Add(UpdateNowLabel);
- SystemUpdateScrollView->Add(TryAgainLaterLabel);
SystemUpdateScrollView->Add(UpdateNowButtton);
SystemUpdateScrollView->Add(TryAgainLaterButton);
+ SystemUpdateScrollView->Add(UpdateNowLabel);
+ SystemUpdateScrollView->Add(TryAgainLaterLabel);
RootView::GetInstance()->Add(SystemUpdateScrollView);
}
+ void SystemUpdateView::NoNeedUpdateViewInit(void)
+ {
+ if (NoNeedUpdateScrollView == nullptr)
+ {
+ NoNeedUpdateScrollView = new UIScrollView();
+ if (NoNeedUpdateScrollView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemAboutTheWatchView::NoNeedUpdateScrollView new fail!");
+ return;
+ }
+ NoNeedUpdateScrollView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+ NoNeedUpdateScrollView->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ NoNeedUpdateScrollView->SetStyle(STYLE_BORDER_RADIUS, 1294);
+ NoNeedUpdateScrollView->SetScrollBlankSize(35);
+ NoNeedUpdateScrollView->SetReboundSize(50);
+ NoNeedUpdateScrollView->SetDirection(1);
+ UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(SystemUpdatePresenter::GetInstance());
+ if (draglistener == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemAboutTheWatchView::draglistener can not be nullptr!");
+ return;
+ }
+ NoNeedUpdateScrollView->SetOnDragListener(draglistener);
+ NoNeedUpdateScrollView->SetTouchable(true);
+ NoNeedUpdateScrollView->SetDraggable(true);
+ }
+ /* -------------------------------------------------------------------------- */
+ LabelConfig Config = {
+ .left = 83,
+ .top = 52,
+ .width = 300,
+ .height = 35,
+ .fontSize = 30,
+ .lineHeigh = 35,
+ //.text = "系统",
+ .textId = STR_SYSTEM,
+ .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,
+ };
+ NoNeedUpdateTitle = InitLabel_Ext(Config);
+ if (NoNeedUpdateTitle == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemUpdateView::NoNeedUpdateTitle new fail!");
+ return;
+ }
+ NoNeedUpdateScrollView->Add(NoNeedUpdateTitle);
+ /* -------------------------------------------------------------------------- */
+ for (int i = 0; i < 2; i++)
+ {
+ if (NoNeedUpdateNote[i] == nullptr)
+ {
+ NoNeedUpdateNote[i] = new UILabelExt();
+ if (NoNeedUpdateNote[i] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemAboutTheWatchView:: NoNeedUpdateNote[%d] can not be nullptr!", i);
+ return;
+ }
+ uint16_t textId = i ? STR_UP_TO_DATE : STR_NO_UPDATE;
+ uint16_t posY = i ? 227 : 262;
+ NoNeedUpdateNote[i]->SetPosition(33, posY, 400, 35);
+ NoNeedUpdateNote[i]->SetTextId(textId);
+ NoNeedUpdateNote[i]->SetStyle(STYLE_TEXT_FONT, 30);
+ NoNeedUpdateNote[i]->SetStyle(STYLE_LINE_HEIGHT, 35);
+ NoNeedUpdateNote[i]->SetLineBreakMode(UILabel::LINE_BREAK_MARQUEE);
+ NoNeedUpdateNote[i]->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ NoNeedUpdateNote[i]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ }
+ NoNeedUpdateScrollView->Add(NoNeedUpdateNote[i]);
+ }
+ RootView::GetInstance()->Add(NoNeedUpdateScrollView);
+ }
+
void SystemUpdateView::OnStart()
{
View<SystemUpdatePresenter>::OnStart();
- if (SystemUpdateModel::GetInstance().IsLatestVersion() == true) //如果是最新版本显示不需要更新界面
+ if (SystemUpdateModel::GetInstance().IsLatestVersion() == true) // 如果是最新版本显示不需要更新界面
{
-
+ NoNeedUpdateViewInit();
}
else
{
STR_BLUETOOTH_NAME = 312,\r
STR_BLUETOOTH_ADDRESS = 313,\r
STR_LATEST_VERSION = 314,\r
- STR_LATER = 315,\r
- STR_UP_TO_DATE = 316,\r
- STR_NO_UPDATE = 317,\r
- STR_LANGUAGE_SELECTION = 318,\r
- STR_RESET_CONFIRM = 319,\r
- STR_SHUTDOWN_CONFIRM = 320,\r
- STR_RESET_CONFIRM_NOTE = 321,\r
- STR_MAX_ID = 322,\r
+ STR_UPDATENOW = 315,\r
+ STR_LATER = 316,\r
+ STR_UP_TO_DATE = 317,\r
+ STR_NO_UPDATE = 318,\r
+ STR_LANGUAGE_SELECTION = 319,\r
+ STR_RESET_CONFIRM = 320,\r
+ STR_SHUTDOWN_CONFIRM = 321,\r
+ STR_RESET_CONFIRM_NOTE = 322,\r
+ STR_MAX_ID = 323,\r
}; // UIResourceTextId\r
enum FontLanguageId : uint8_t {