UILabelExt *GetDownloadLabel();
//获取有效期的label
UILabelExt *GetValidityPeriodLabel();
+ //更新下载状态显示
+ void UpdateDownloadStatus();
+ //更新有效期显示
+ void UpdateValidityPeriod();
+ //更新下载按钮状态
+ void UpdateDownloadButton();
private:
UILabelExt *labelTitle_{nullptr};
UILabelExt *labelStatus_{nullptr};
+ UILabelExt *labelStatusValue_{nullptr}; // 新增:状态值标签
UILabelExt *labelValidity_{nullptr};
+ UILabelExt *labelValidityValue_{nullptr}; // 新增:有效期值标签
UILabelButtonExt *btnDownload_{nullptr};
UILabelButtonExt *btnBack_{nullptr};
UILabelExt *labelNote_{nullptr};
int days = validityPeriod / (24 * 60);
int hours = (validityPeriod % (24 * 60)) / 60;
int minutes = validityPeriod % 60;
- ephemerisValidityPeriod = "有效期: " + std::to_string(days) + "天" +
+ ephemerisValidityPeriod = std::to_string(days) + "天" +
std::to_string(hours) + "小时" +
std::to_string(minutes) + "分钟";
} else {
else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() == 0)
{
EphemerisDownloadView::GetInstance()->GetDownloadLabel()->SetText(
- "下载中,正在链接网络");
+ "正在链接网络");
}
else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() > 0)
{
{
progress = 100;
}
- std::string progress_str = "下载中,正在下载"+std::to_string(progress)+"%";
+ std::string progress_str = "正在下载"+std::to_string(progress)+"%";
EphemerisDownloadView::GetInstance()->GetDownloadLabel()->SetText(progress_str.c_str());
}
else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() == 10)
#include "ui_resource_string.h"
#include "components/ui_scroll_view.h"
#include "wearable_log.h"
+#include "UiConfig.h"
+#include "uicomponents/UIComponents.h"
namespace OHOS {
delete labelStatus_;
labelStatus_ = nullptr;
}
+ if (labelStatusValue_!=nullptr)
+ {
+ delete labelStatusValue_;
+ labelStatusValue_ = nullptr;
+ }
if (labelValidity_!=nullptr)
{
delete labelValidity_;
labelValidity_ = nullptr;
}
+ if (labelValidityValue_!=nullptr)
+ {
+ delete labelValidityValue_;
+ labelValidityValue_ = nullptr;
+ }
if (btnDownload_!=nullptr)
{
delete btnDownload_;
}
bool EphemerisDownloadView::EphemerisDownloadInit() {
- // 初始化标题
+ // 初始化标题 - 居中显示
labelTitle_ = new UILabelExt();
if (labelTitle_ == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelTitle_ new failed");
return false;
}
- labelTitle_->SetPosition(83, 50, 350, 60);
+ labelTitle_->SetPosition(83, 50, 300, 50);
labelTitle_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
- labelTitle_->SetText("下载星历");
+ labelTitle_->SetText("星历下载");
labelTitle_->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
labelTitle_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ labelTitle_->SetTextColor(Color::White());
AddViewToRootContainer(labelTitle_);
- // 初始化状态标签
+ // 初始化状态标签 - 左对齐,带圆点前缀
labelStatus_ = new UILabelExt();
if (labelStatus_ == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelStatus_ new failed");
return false;
}
- labelStatus_->SetPosition(90, 120, 300, 40);
- labelStatus_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
- //如果有效期大于0,则显示下载成功
- if(EphemerisDownloadModel::GetInstance().GetValidityPeriod())
- {
- labelStatus_->SetText("数据有效");
- }
- else
- {
- labelStatus_->SetText("未下载");
- }
- labelStatus_->SetTextColor(Color::Yellow());
+ labelStatus_->SetPosition(50, 120, 360, 70);
+ labelStatus_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ labelStatus_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ labelStatus_->SetText("● 下载状态:");
+ labelStatus_->SetTextColor(Color::Yellow());//黄色
AddViewToRootContainer(labelStatus_);
- // 初始化有效期标签
+ // 初始化状态值标签 - 显示具体状态
+ labelStatusValue_ = new UILabelExt();
+ if (labelStatusValue_ == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelStatusValue_ new failed");
+ return false;
+ }
+ labelStatusValue_->SetPosition(220, 120, 360, 70);
+ labelStatusValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+ labelStatusValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ AddViewToRootContainer(labelStatusValue_);
+
+ // 初始化有效期标签 - 左对齐,带圆点前缀
labelValidity_ = new UILabelExt();
if (labelValidity_ == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelValidity_ new failed");
return false;
}
- labelValidity_->SetPosition(90, 170, 350, 40);
- labelValidity_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);
- labelValidity_->SetText("有效期: 无");
- labelValidity_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));
+ labelValidity_->SetPosition(50, 170, 360, 70);
+ labelValidity_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ labelValidity_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ labelValidity_->SetText("● 有效期:");
+ labelValidity_->SetTextColor(Color::Green());//绿色
AddViewToRootContainer(labelValidity_);
- // 初始化下载按钮
- btnDownload_ = new UILabelButtonExt();
- if (btnDownload_ == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btnDownload_ new failed");
- return false;
- }
- btnDownload_->SetPosition(50, 250, 300, 60);
- btnDownload_->SetText("下载");
- btnDownload_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
- btnDownload_->SetViewId(DOWNLOAD_ID);
- btnDownload_->SetOnClickListener(presenter_);
-
- //如果有效期大于0,则不能下载 下载按键显示灰色;否则显示绿色
- if(EphemerisDownloadModel::GetInstance().GetValidityPeriod())
- {
- btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);
- btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);
- }
- else
- {
- btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Blue().full);
- btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);
- }
-
- AddViewToRootContainer(btnDownload_);
-
- // 初始化返回按钮
- btnBack_ = new UILabelButtonExt();
- if (btnBack_ == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btnBack_ new failed");
+ // 初始化有效期值标签 - 显示具体有效期
+ labelValidityValue_ = new UILabelExt();
+ if (labelValidityValue_ == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelValidityValue_ new failed");
return false;
}
- btnBack_->SetPosition(50, 350, 300, 60);
- btnBack_->SetText("返回");
- btnBack_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
- btnBack_->SetViewId(BACK_ID);
- btnBack_->SetOnClickListener(presenter_);
- AddViewToRootContainer(btnBack_);
+ labelValidityValue_->SetPosition(220, 170, 360, 70);
+ labelValidityValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+ labelValidityValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ AddViewToRootContainer(labelValidityValue_);
- // 初始化说明标签
+ // 初始化说明标签 - 居中显示,灰色文字
labelNote_ = new UILabelExt();
if (labelNote_ == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelNote_ new failed");
return false;
}
- labelNote_->SetPosition(80, 420, 360, 40);
- labelNote_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 18);
- labelNote_->SetText("星历数据用于提高GPS定位精度");
- labelNote_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x5f));
+ labelNote_->SetPosition(50, 230, 366, 80);
+ labelNote_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);
+ labelNote_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ labelNote_->SetText("注:请打开4G,需要在网络连接状态下才可以下载");
+ labelNote_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff)); // 灰色
+ //修改为靠左对齐
+ labelNote_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
AddViewToRootContainer(labelNote_);
- //更新有效期
- EphemerisDownloadView::GetInstance()->GetValidityPeriodLabel()->SetText(
- EphemerisDownloadModel::GetInstance().GetEphemerisValidityPeriod().c_str());
+ InitButtonExt(btnDownload_, 58, 320, 170, 90, DOWNLOAD_ID, STR_EPHEMERIS_DOWNLOAD, 30);
+ btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); // 设置按键颜色
+ btnDownload_->SetText("下载");
+ btnDownload_->SetOnClickListener(presenter_);
+ InitButtonExt(btnBack_, 238, 320, 170, 90, BACK_ID, STR_CANCEL, 30);
+ btnBack_->SetStyle(STYLE_BACKGROUND_COLOR, 0xffFF8A36); // 设置按键颜色
+ btnBack_->SetOnClickListener(presenter_);
+ AddViewToRootContainer(btnDownload_);
+ AddViewToRootContainer(btnBack_);
+
+ // 初始化完成后更新所有状态
+ UpdateDownloadStatus();
+ UpdateValidityPeriod();
+ UpdateDownloadButton();
return true;
}
UILabelExt *EphemerisDownloadView::GetDownloadLabel() {
- return labelStatus_;
+ return labelStatusValue_;
}
UILabelExt *EphemerisDownloadView::GetValidityPeriodLabel() {
- return labelValidity_;
+ return labelValidityValue_;
+}
+
+// 更新下载状态显示
+void EphemerisDownloadView::UpdateDownloadStatus() {
+ if (labelStatusValue_ == nullptr) return;
+
+ auto status = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus();
+ int progress = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress();
+
+ switch (status) {
+ case EphemerisDownloadStatus::NOT_DOWNLOADED:
+ labelStatusValue_->SetText("未下载");
+ break;
+ case EphemerisDownloadStatus::DOWNLOADING:
+ labelStatusValue_->SetText(("下载中 " + std::to_string(progress) + "%").c_str());
+ break;
+ case EphemerisDownloadStatus::DOWNLOADED:
+ labelStatusValue_->SetText("已完成");
+ break;
+ case EphemerisDownloadStatus::FAILED:
+ labelStatusValue_->SetText("下载失败");
+ break;
+ }
+}
+
+// 更新有效期显示
+void EphemerisDownloadView::UpdateValidityPeriod() {
+ if (labelValidityValue_ == nullptr) return;
+
+ std::string period = EphemerisDownloadModel::GetInstance().GetEphemerisValidityPeriod();
+ if (period.empty()) {
+ labelValidityValue_->SetText("无数据");
+ } else {
+ labelValidityValue_->SetText(period.c_str());
+ }
+}
+
+// 更新下载按钮状态
+void EphemerisDownloadView::UpdateDownloadButton() {
+ if (btnDownload_ == nullptr) return;
+
+ auto status = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus();
+
+ switch (status) {
+ case EphemerisDownloadStatus::NOT_DOWNLOADED:
+ case EphemerisDownloadStatus::FAILED:
+ btnDownload_->SetText("未下载");
+ btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0xff, 0x8c, 0x00, 0xff).full); // 橙色
+ btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0xcc, 0x70, 0x00, 0xff).full, UIButton::PRESSED);
+ break;
+ case EphemerisDownloadStatus::DOWNLOADING:
+ btnDownload_->SetText("下载中");
+ btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff).full); // 灰色
+ btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x44, 0x44, 0x44, 0xff).full, UIButton::PRESSED);
+ break;
+ case EphemerisDownloadStatus::DOWNLOADED:
+ btnDownload_->SetText("已下载");
+ btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff).full); // 灰色
+ btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x44, 0x44, 0x44, 0xff).full, UIButton::PRESSED);
+ break;
+ }
}
} // namespace OHOS
UILabelExt *GetDownloadLabel();
//获取有效期的label
UILabelExt *GetValidityPeriodLabel();
+ //更新下载状态显示
+ void UpdateDownloadStatus();
+ //更新有效期显示
+ void UpdateValidityPeriod();
+ //更新下载按钮状态
+ void UpdateDownloadButton();
private:
UILabelExt *labelTitle_{nullptr};
UILabelExt *labelStatus_{nullptr};
+ UILabelExt *labelStatusValue_{nullptr}; // 新增:状态值标签
UILabelExt *labelValidity_{nullptr};
+ UILabelExt *labelValidityValue_{nullptr}; // 新增:有效期值标签
UILabelButtonExt *btnDownload_{nullptr};
UILabelButtonExt *btnBack_{nullptr};
UILabelExt *labelNote_{nullptr};
int days = validityPeriod / (24 * 60);
int hours = (validityPeriod % (24 * 60)) / 60;
int minutes = validityPeriod % 60;
- ephemerisValidityPeriod = "有效期: " + std::to_string(days) + "天" +
+ ephemerisValidityPeriod = std::to_string(days) + "天" +
std::to_string(hours) + "小时" +
std::to_string(minutes) + "分钟";
} else {
else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() == 0)
{
EphemerisDownloadView::GetInstance()->GetDownloadLabel()->SetText(
- "下载中,正在链接网络");
+ "正在链接网络");
}
else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() > 0)
{
{
progress = 100;
}
- std::string progress_str = "下载中,正在下载"+std::to_string(progress)+"%";
+ std::string progress_str = "正在下载"+std::to_string(progress)+"%";
EphemerisDownloadView::GetInstance()->GetDownloadLabel()->SetText(progress_str.c_str());
}
else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() == 10)
#include "ui_resource_string.h"
#include "components/ui_scroll_view.h"
#include "wearable_log.h"
+#include "UiConfig.h"
+#include "uicomponents/UIComponents.h"
namespace OHOS {
delete labelStatus_;
labelStatus_ = nullptr;
}
+ if (labelStatusValue_!=nullptr)
+ {
+ delete labelStatusValue_;
+ labelStatusValue_ = nullptr;
+ }
if (labelValidity_!=nullptr)
{
delete labelValidity_;
labelValidity_ = nullptr;
}
+ if (labelValidityValue_!=nullptr)
+ {
+ delete labelValidityValue_;
+ labelValidityValue_ = nullptr;
+ }
if (btnDownload_!=nullptr)
{
delete btnDownload_;
}
bool EphemerisDownloadView::EphemerisDownloadInit() {
- // 初始化标题
+ // 初始化标题 - 居中显示
labelTitle_ = new UILabelExt();
if (labelTitle_ == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelTitle_ new failed");
return false;
}
- labelTitle_->SetPosition(83, 50, 350, 60);
+ labelTitle_->SetPosition(83, 50, 300, 50);
labelTitle_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
- labelTitle_->SetText("下载星历");
+ labelTitle_->SetText("星历下载");
labelTitle_->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
labelTitle_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ labelTitle_->SetTextColor(Color::White());
AddViewToRootContainer(labelTitle_);
- // 初始化状态标签
+ // 初始化状态标签 - 左对齐,带圆点前缀
labelStatus_ = new UILabelExt();
if (labelStatus_ == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelStatus_ new failed");
return false;
}
- labelStatus_->SetPosition(90, 120, 300, 40);
- labelStatus_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
- //如果有效期大于0,则显示下载成功
- if(EphemerisDownloadModel::GetInstance().GetValidityPeriod())
- {
- labelStatus_->SetText("数据有效");
- }
- else
- {
- labelStatus_->SetText("未下载");
- }
- labelStatus_->SetTextColor(Color::Yellow());
+ labelStatus_->SetPosition(50, 120, 360, 70);
+ labelStatus_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ labelStatus_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ labelStatus_->SetText("● 下载状态:");
+ labelStatus_->SetTextColor(Color::Yellow());//黄色
AddViewToRootContainer(labelStatus_);
- // 初始化有效期标签
+ // 初始化状态值标签 - 显示具体状态
+ labelStatusValue_ = new UILabelExt();
+ if (labelStatusValue_ == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelStatusValue_ new failed");
+ return false;
+ }
+ labelStatusValue_->SetPosition(220, 120, 360, 70);
+ labelStatusValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+ labelStatusValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ AddViewToRootContainer(labelStatusValue_);
+
+ // 初始化有效期标签 - 左对齐,带圆点前缀
labelValidity_ = new UILabelExt();
if (labelValidity_ == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelValidity_ new failed");
return false;
}
- labelValidity_->SetPosition(90, 170, 350, 40);
- labelValidity_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);
- labelValidity_->SetText("有效期: 无");
- labelValidity_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));
+ labelValidity_->SetPosition(50, 170, 360, 70);
+ labelValidity_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ labelValidity_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ labelValidity_->SetText("● 有效期:");
+ labelValidity_->SetTextColor(Color::Green());//绿色
AddViewToRootContainer(labelValidity_);
- // 初始化下载按钮
- btnDownload_ = new UILabelButtonExt();
- if (btnDownload_ == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btnDownload_ new failed");
- return false;
- }
- btnDownload_->SetPosition(50, 250, 300, 60);
- btnDownload_->SetText("下载");
- btnDownload_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
- btnDownload_->SetViewId(DOWNLOAD_ID);
- btnDownload_->SetOnClickListener(presenter_);
-
- //如果有效期大于0,则不能下载 下载按键显示灰色;否则显示绿色
- if(EphemerisDownloadModel::GetInstance().GetValidityPeriod())
- {
- btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);
- btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);
- }
- else
- {
- btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Blue().full);
- btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);
- }
-
- AddViewToRootContainer(btnDownload_);
-
- // 初始化返回按钮
- btnBack_ = new UILabelButtonExt();
- if (btnBack_ == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btnBack_ new failed");
+ // 初始化有效期值标签 - 显示具体有效期
+ labelValidityValue_ = new UILabelExt();
+ if (labelValidityValue_ == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelValidityValue_ new failed");
return false;
}
- btnBack_->SetPosition(50, 350, 300, 60);
- btnBack_->SetText("返回");
- btnBack_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
- btnBack_->SetViewId(BACK_ID);
- btnBack_->SetOnClickListener(presenter_);
- AddViewToRootContainer(btnBack_);
+ labelValidityValue_->SetPosition(220, 170, 360, 70);
+ labelValidityValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+ labelValidityValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ AddViewToRootContainer(labelValidityValue_);
- // 初始化说明标签
+ // 初始化说明标签 - 居中显示,灰色文字
labelNote_ = new UILabelExt();
if (labelNote_ == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelNote_ new failed");
return false;
}
- labelNote_->SetPosition(80, 420, 360, 40);
- labelNote_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 18);
- labelNote_->SetText("星历数据用于提高GPS定位精度");
- labelNote_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x5f));
+ labelNote_->SetPosition(50, 230, 366, 80);
+ labelNote_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);
+ labelNote_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ labelNote_->SetText("注:请打开4G,需要在网络连接状态下才可以下载");
+ labelNote_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff)); // 灰色
+ //修改为靠左对齐
+ labelNote_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
AddViewToRootContainer(labelNote_);
- //更新有效期
- EphemerisDownloadView::GetInstance()->GetValidityPeriodLabel()->SetText(
- EphemerisDownloadModel::GetInstance().GetEphemerisValidityPeriod().c_str());
+ InitButtonExt(btnDownload_, 58, 320, 170, 90, DOWNLOAD_ID, STR_EPHEMERIS_DOWNLOAD, 30);
+ btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); // 设置按键颜色
+ btnDownload_->SetText("下载");
+ btnDownload_->SetOnClickListener(presenter_);
+ InitButtonExt(btnBack_, 238, 320, 170, 90, BACK_ID, STR_CANCEL, 30);
+ btnBack_->SetStyle(STYLE_BACKGROUND_COLOR, 0xffFF8A36); // 设置按键颜色
+ btnBack_->SetOnClickListener(presenter_);
+ AddViewToRootContainer(btnDownload_);
+ AddViewToRootContainer(btnBack_);
+
+ // 初始化完成后更新所有状态
+ UpdateDownloadStatus();
+ UpdateValidityPeriod();
+ UpdateDownloadButton();
return true;
}
UILabelExt *EphemerisDownloadView::GetDownloadLabel() {
- return labelStatus_;
+ return labelStatusValue_;
}
UILabelExt *EphemerisDownloadView::GetValidityPeriodLabel() {
- return labelValidity_;
+ return labelValidityValue_;
+}
+
+// 更新下载状态显示
+void EphemerisDownloadView::UpdateDownloadStatus() {
+ if (labelStatusValue_ == nullptr) return;
+
+ auto status = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus();
+ int progress = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress();
+
+ switch (status) {
+ case EphemerisDownloadStatus::NOT_DOWNLOADED:
+ labelStatusValue_->SetText("未下载");
+ break;
+ case EphemerisDownloadStatus::DOWNLOADING:
+ labelStatusValue_->SetText(("下载中 " + std::to_string(progress) + "%").c_str());
+ break;
+ case EphemerisDownloadStatus::DOWNLOADED:
+ labelStatusValue_->SetText("已完成");
+ break;
+ case EphemerisDownloadStatus::FAILED:
+ labelStatusValue_->SetText("下载失败");
+ break;
+ }
+}
+
+// 更新有效期显示
+void EphemerisDownloadView::UpdateValidityPeriod() {
+ if (labelValidityValue_ == nullptr) return;
+
+ std::string period = EphemerisDownloadModel::GetInstance().GetEphemerisValidityPeriod();
+ if (period.empty()) {
+ labelValidityValue_->SetText("无数据");
+ } else {
+ labelValidityValue_->SetText(period.c_str());
+ }
+}
+
+// 更新下载按钮状态
+void EphemerisDownloadView::UpdateDownloadButton() {
+ if (btnDownload_ == nullptr) return;
+
+ auto status = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus();
+
+ switch (status) {
+ case EphemerisDownloadStatus::NOT_DOWNLOADED:
+ case EphemerisDownloadStatus::FAILED:
+ btnDownload_->SetText("未下载");
+ btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0xff, 0x8c, 0x00, 0xff).full); // 橙色
+ btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0xcc, 0x70, 0x00, 0xff).full, UIButton::PRESSED);
+ break;
+ case EphemerisDownloadStatus::DOWNLOADING:
+ btnDownload_->SetText("下载中");
+ btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff).full); // 灰色
+ btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x44, 0x44, 0x44, 0xff).full, UIButton::PRESSED);
+ break;
+ case EphemerisDownloadStatus::DOWNLOADED:
+ btnDownload_->SetText("已下载");
+ btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff).full); // 灰色
+ btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x44, 0x44, 0x44, 0xff).full, UIButton::PRESSED);
+ break;
+ }
}
} // namespace OHOS
UILabelExt *GetDownloadLabel();
//获取有效期的label
UILabelExt *GetValidityPeriodLabel();
+ //更新下载状态显示
+ void UpdateDownloadStatus();
+ //更新有效期显示
+ void UpdateValidityPeriod();
+ //更新下载按钮状态
+ void UpdateDownloadButton();
private:
UILabelExt *labelTitle_{nullptr};
UILabelExt *labelStatus_{nullptr};
+ UILabelExt *labelStatusValue_{nullptr}; // 新增:状态值标签
UILabelExt *labelValidity_{nullptr};
+ UILabelExt *labelValidityValue_{nullptr}; // 新增:有效期值标签
UILabelButtonExt *btnDownload_{nullptr};
UILabelButtonExt *btnBack_{nullptr};
UILabelExt *labelNote_{nullptr};
int days = validityPeriod / (24 * 60);
int hours = (validityPeriod % (24 * 60)) / 60;
int minutes = validityPeriod % 60;
- ephemerisValidityPeriod = "有效期: " + std::to_string(days) + "天" +
+ ephemerisValidityPeriod = std::to_string(days) + "天" +
std::to_string(hours) + "小时" +
std::to_string(minutes) + "分钟";
} else {
else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() == 0)
{
EphemerisDownloadView::GetInstance()->GetDownloadLabel()->SetText(
- "下载中,正在链接网络");
+ "正在链接网络");
}
else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() > 0)
{
{
progress = 100;
}
- std::string progress_str = "下载中,正在下载"+std::to_string(progress)+"%";
+ std::string progress_str = "正在下载"+std::to_string(progress)+"%";
EphemerisDownloadView::GetInstance()->GetDownloadLabel()->SetText(progress_str.c_str());
}
else if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress() == 10)
#include "ui_resource_string.h"
#include "components/ui_scroll_view.h"
#include "wearable_log.h"
+#include "UiConfig.h"
+#include "uicomponents/UIComponents.h"
namespace OHOS {
delete labelStatus_;
labelStatus_ = nullptr;
}
+ if (labelStatusValue_!=nullptr)
+ {
+ delete labelStatusValue_;
+ labelStatusValue_ = nullptr;
+ }
if (labelValidity_!=nullptr)
{
delete labelValidity_;
labelValidity_ = nullptr;
}
+ if (labelValidityValue_!=nullptr)
+ {
+ delete labelValidityValue_;
+ labelValidityValue_ = nullptr;
+ }
if (btnDownload_!=nullptr)
{
delete btnDownload_;
}
bool EphemerisDownloadView::EphemerisDownloadInit() {
- // 初始化标题
+ // 初始化标题 - 居中显示
labelTitle_ = new UILabelExt();
if (labelTitle_ == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelTitle_ new failed");
return false;
}
- labelTitle_->SetPosition(83, 50, 350, 60);
+ labelTitle_->SetPosition(83, 50, 300, 50);
labelTitle_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
- labelTitle_->SetText("下载星历");
+ labelTitle_->SetText("星历下载");
labelTitle_->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS);
labelTitle_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ labelTitle_->SetTextColor(Color::White());
AddViewToRootContainer(labelTitle_);
- // 初始化状态标签
+ // 初始化状态标签 - 左对齐,带圆点前缀
labelStatus_ = new UILabelExt();
if (labelStatus_ == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelStatus_ new failed");
return false;
}
- labelStatus_->SetPosition(90, 120, 300, 40);
- labelStatus_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
- //如果有效期大于0,则显示下载成功
- if(EphemerisDownloadModel::GetInstance().GetValidityPeriod())
- {
- labelStatus_->SetText("数据有效");
- }
- else
- {
- labelStatus_->SetText("未下载");
- }
- labelStatus_->SetTextColor(Color::Yellow());
+ labelStatus_->SetPosition(50, 120, 360, 70);
+ labelStatus_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ labelStatus_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ labelStatus_->SetText("● 下载状态:");
+ labelStatus_->SetTextColor(Color::Yellow());//黄色
AddViewToRootContainer(labelStatus_);
- // 初始化有效期标签
+ // 初始化状态值标签 - 显示具体状态
+ labelStatusValue_ = new UILabelExt();
+ if (labelStatusValue_ == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelStatusValue_ new failed");
+ return false;
+ }
+ labelStatusValue_->SetPosition(220, 120, 360, 70);
+ labelStatusValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+ labelStatusValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ AddViewToRootContainer(labelStatusValue_);
+
+ // 初始化有效期标签 - 左对齐,带圆点前缀
labelValidity_ = new UILabelExt();
if (labelValidity_ == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelValidity_ new failed");
return false;
}
- labelValidity_->SetPosition(90, 170, 350, 40);
- labelValidity_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);
- labelValidity_->SetText("有效期: 无");
- labelValidity_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x7f));
+ labelValidity_->SetPosition(50, 170, 360, 70);
+ labelValidity_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ labelValidity_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ labelValidity_->SetText("● 有效期:");
+ labelValidity_->SetTextColor(Color::Green());//绿色
AddViewToRootContainer(labelValidity_);
- // 初始化下载按钮
- btnDownload_ = new UILabelButtonExt();
- if (btnDownload_ == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btnDownload_ new failed");
- return false;
- }
- btnDownload_->SetPosition(50, 250, 300, 60);
- btnDownload_->SetText("下载");
- btnDownload_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
- btnDownload_->SetViewId(DOWNLOAD_ID);
- btnDownload_->SetOnClickListener(presenter_);
-
- //如果有效期大于0,则不能下载 下载按键显示灰色;否则显示绿色
- if(EphemerisDownloadModel::GetInstance().GetValidityPeriod())
- {
- btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);
- btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);
- }
- else
- {
- btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Blue().full);
- btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::Black().full, UIButton::PRESSED);
- }
-
- AddViewToRootContainer(btnDownload_);
-
- // 初始化返回按钮
- btnBack_ = new UILabelButtonExt();
- if (btnBack_ == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "btnBack_ new failed");
+ // 初始化有效期值标签 - 显示具体有效期
+ labelValidityValue_ = new UILabelExt();
+ if (labelValidityValue_ == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelValidityValue_ new failed");
return false;
}
- btnBack_->SetPosition(50, 350, 300, 60);
- btnBack_->SetText("返回");
- btnBack_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 24);
- btnBack_->SetViewId(BACK_ID);
- btnBack_->SetOnClickListener(presenter_);
- AddViewToRootContainer(btnBack_);
+ labelValidityValue_->SetPosition(220, 170, 360, 70);
+ labelValidityValue_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 28);
+ labelValidityValue_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ AddViewToRootContainer(labelValidityValue_);
- // 初始化说明标签
+ // 初始化说明标签 - 居中显示,灰色文字
labelNote_ = new UILabelExt();
if (labelNote_ == nullptr) {
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "labelNote_ new failed");
return false;
}
- labelNote_->SetPosition(80, 420, 360, 40);
- labelNote_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 18);
- labelNote_->SetText("星历数据用于提高GPS定位精度");
- labelNote_->SetTextColor(Color::GetColorFromRGBA(0xff, 0xff, 0xff, 0x5f));
+ labelNote_->SetPosition(50, 230, 366, 80);
+ labelNote_->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 20);
+ labelNote_->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ labelNote_->SetText("注:请打开4G,需要在网络连接状态下才可以下载");
+ labelNote_->SetTextColor(Color::GetColorFromRGBA(0x99, 0x99, 0x99, 0xff)); // 灰色
+ //修改为靠左对齐
+ labelNote_->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
AddViewToRootContainer(labelNote_);
- //更新有效期
- EphemerisDownloadView::GetInstance()->GetValidityPeriodLabel()->SetText(
- EphemerisDownloadModel::GetInstance().GetEphemerisValidityPeriod().c_str());
+ InitButtonExt(btnDownload_, 58, 320, 170, 90, DOWNLOAD_ID, STR_EPHEMERIS_DOWNLOAD, 30);
+ btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); // 设置按键颜色
+ btnDownload_->SetText("下载");
+ btnDownload_->SetOnClickListener(presenter_);
+ InitButtonExt(btnBack_, 238, 320, 170, 90, BACK_ID, STR_CANCEL, 30);
+ btnBack_->SetStyle(STYLE_BACKGROUND_COLOR, 0xffFF8A36); // 设置按键颜色
+ btnBack_->SetOnClickListener(presenter_);
+ AddViewToRootContainer(btnDownload_);
+ AddViewToRootContainer(btnBack_);
+
+ // 初始化完成后更新所有状态
+ UpdateDownloadStatus();
+ UpdateValidityPeriod();
+ UpdateDownloadButton();
return true;
}
UILabelExt *EphemerisDownloadView::GetDownloadLabel() {
- return labelStatus_;
+ return labelStatusValue_;
}
UILabelExt *EphemerisDownloadView::GetValidityPeriodLabel() {
- return labelValidity_;
+ return labelValidityValue_;
+}
+
+// 更新下载状态显示
+void EphemerisDownloadView::UpdateDownloadStatus() {
+ if (labelStatusValue_ == nullptr) return;
+
+ auto status = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus();
+ int progress = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadProgress();
+
+ switch (status) {
+ case EphemerisDownloadStatus::NOT_DOWNLOADED:
+ labelStatusValue_->SetText("未下载");
+ break;
+ case EphemerisDownloadStatus::DOWNLOADING:
+ labelStatusValue_->SetText(("下载中 " + std::to_string(progress) + "%").c_str());
+ break;
+ case EphemerisDownloadStatus::DOWNLOADED:
+ labelStatusValue_->SetText("已完成");
+ break;
+ case EphemerisDownloadStatus::FAILED:
+ labelStatusValue_->SetText("下载失败");
+ break;
+ }
+}
+
+// 更新有效期显示
+void EphemerisDownloadView::UpdateValidityPeriod() {
+ if (labelValidityValue_ == nullptr) return;
+
+ std::string period = EphemerisDownloadModel::GetInstance().GetEphemerisValidityPeriod();
+ if (period.empty()) {
+ labelValidityValue_->SetText("无数据");
+ } else {
+ labelValidityValue_->SetText(period.c_str());
+ }
+}
+
+// 更新下载按钮状态
+void EphemerisDownloadView::UpdateDownloadButton() {
+ if (btnDownload_ == nullptr) return;
+
+ auto status = EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus();
+
+ switch (status) {
+ case EphemerisDownloadStatus::NOT_DOWNLOADED:
+ case EphemerisDownloadStatus::FAILED:
+ btnDownload_->SetText("未下载");
+ btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0xff, 0x8c, 0x00, 0xff).full); // 橙色
+ btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0xcc, 0x70, 0x00, 0xff).full, UIButton::PRESSED);
+ break;
+ case EphemerisDownloadStatus::DOWNLOADING:
+ btnDownload_->SetText("下载中");
+ btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff).full); // 灰色
+ btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x44, 0x44, 0x44, 0xff).full, UIButton::PRESSED);
+ break;
+ case EphemerisDownloadStatus::DOWNLOADED:
+ btnDownload_->SetText("已下载");
+ btnDownload_->SetStyle(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff).full); // 灰色
+ btnDownload_->SetStyleForState(STYLE_BACKGROUND_COLOR, Color::GetColorFromRGBA(0x44, 0x44, 0x44, 0xff).full, UIButton::PRESSED);
+ break;
+ }
}
} // namespace OHOS