#include "gnss_http_server.h"
#endif
-//最长的有效期 目前为2天
-#define MAX_VALIDITY_PERIOD 2 * 24 * 60
+//最长的有效期 目前为7天
+#define MAX_VALIDITY_PERIOD 7 * 24 * 60
namespace OHOS {
-EphemerisDownloadModel::EphemerisDownloadModel() {}
+EphemerisDownloadModel::EphemerisDownloadModel()
+ : ephemerisDownloadStatus(EphemerisDownloadStatus::NOT_DOWNLOADED) {
+ // 初始化时检查星历数据是否有效,如果有效则更新状态
+#if defined(SUPPORT_GNSS)
+ if (GetValidityPeriod()) {
+ ephemerisDownloadStatus = EphemerisDownloadStatus::DOWNLOADED;
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "EphemerisDownloadModel: 检测到有效星历数据,状态设置为已下载");
+ }
+#endif
+}
EphemerisDownloadModel::~EphemerisDownloadModel() {}
// 更新下载状态显示
void EphemerisDownloadView::UpdateDownloadStatus() {
if (labelStatusValue_ == nullptr) return;
- //如果有效期大于0,则显示下载成功
+
+ // 先同步状态:如果有效期有效,确保状态为已下载
if(EphemerisDownloadModel::GetInstance().GetValidityPeriod())
{
+ // 如果有效期有效,但状态不是已下载,则更新状态
+ if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus() != EphemerisDownloadStatus::DOWNLOADED)
+ {
+ EphemerisDownloadModel::GetInstance().SetEphemerisDownloadStatus(EphemerisDownloadStatus::DOWNLOADED);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UpdateDownloadStatus: 同步状态为已下载");
+ }
labelStatusValue_->SetText("数据有效");
}
else
{
+ // 如果有效期无效,但状态是已下载,则更新状态
+ if(EphemerisDownloadModel::GetInstance().GetEphemerisDownloadStatus() == EphemerisDownloadStatus::DOWNLOADED)
+ {
+ EphemerisDownloadModel::GetInstance().SetEphemerisDownloadStatus(EphemerisDownloadStatus::NOT_DOWNLOADED);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UpdateDownloadStatus: 同步状态为未下载");
+ }
labelStatusValue_->SetText("未下载");
}
}