RootView::GetInstance()->SetOnKeyActListener(keyActListener_);
}
}
- PullUpDown_StartTimer(1000);
}
void MainPresenterSample::OnPause(void) {}
UNUSED(event);
UNUSED(view);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainPresenterSample OnDrag");
-
- uint8_t cardId = view_->GetHorCurrentCard();
- if (cardId == WATCH_FACE)
- {
- PRINT("WATCH_FACE!\r\n");
- if (event.GetDragDirection() == DragEvent::DIRECTION_TOP_TO_BOTTOM)
- {
- PRINT("DIRECTION_TOP_TO_BOTTOM!\r\n");
- if (PullUpDownView::GetInstance() == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TempPresenter::OnDrag TempMainView::GetInstance() nullptr");
- return false;
- }
- UpdataBaseData();
- }
- }
return true;
}
void MainPresenterSample::SetPage(int8_t id)
void MainPresenterSample::OnSwipe(UISwipeView &view)
{
- //UNUSED(view);
- // if(MainViewSample::GetInstance()->IsPullUpViewPage())
- // {
- // UpdataBaseData();
- // }
+ // UNUSED(view);
+ /* -------------------------------------------------------------------------- */
+ /*
+ * @brief 如果当前是下拉界面,先更新一次下拉窗口的数据包括,电池电量,时间,信号强度等等数据,
+ * 然后开启一个每2秒更新数据的定时器。
+ * 如果不在下拉界面了停止定时器
+ */
+ if (MainViewSample::GetInstance()->IsPullUpViewPage())
+ {
+ UpdataBaseData();
+ PullUpDownView::GetInstance()->UpdateSignalStrengthStatusAndBatteryPosition();
+ PullUpDown_StartTimer(1000);
+ }
+ else
+ {
+ PullUpDown_StopTimer();
+ }
+ /* -------------------------------------------------------------------------- */
CardId cardId = view_->GetHorCurrentCard();
callback_->OnSwipe(view);
dynamic_cast<MainClockView *>(view_->GetViewById(WATCH_FACE))->UpdateTime();
}
}
- //当前在下拉界面
- // if (view_->IsPullUpViewPage())
- // {
- // UpdataBaseData();
- // }
}
void MainPresenterSample::InitCardSettings(void)
return MainModel::GetInstance().GetDialSetting();
}
+ // 更新时间
+ void MainPresenterSample::UpdataTime()
+ {
+ // 获取当前时间
+ char *timeStr = (char *)malloc(9);
+ if (!timeStr || uapi_get_HHMMSS_Time(timeStr, ':', false) != ERRCODE_SUCC)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "Failed to get start time");
+ free(timeStr);
+ return;
+ }
+ PullUpDownView::GetInstance()->GetTimeLabel()->SetText(timeStr);
+ free(timeStr);
+ }
+
void MainPresenterSample::UpdataBaseData()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDownView::UpdataBaseData");
- // è\8e·å\8f\96å½\93å\89\8dæ\97¶é\97´
+ // è§£æ\9e\90æ\97¥æ\9c\9fä¿¡æ\81¯
char *dateStr = (char *)malloc(9);
if (uapi_get_YYMMDD_Time(dateStr, '/') != ERRCODE_SUCC)
{
free(dateStr);
return;
}
- // è§£æ\9e\90æ\97¥æ\9c\9fä¿¡æ\81¯
+ // è\8e·å\8f\96å½\93å\89\8dæ\97¶é\97´
char *timeStr = (char *)malloc(9);
if (uapi_get_HHMMSS_Time(timeStr, ':', false) != ERRCODE_SUCC)
{
free(weekStr);
return;
}
- PRINT("Read ALLData!\n");
// 获取电池电量信息
float voltage = 0.0F;
if (value <= (i + 1) * 10)
{
progressImageSrc = progressImages[i];
- PRINT("Update progressImageSrc!\n");
+ // PRINT("Update progressImageSrc!\n");
break;
}
}
free(dateStr);
free(timeStr);
free(weekStr);
+
+ PRINT("ALLData are refresh!\n");
}
/* -------------------------------------------------------------------------- */
// 声明定时器变量
static osTimerId_t g_timer = NULL;
- uint8_t MainPresenterSample::g_PullUpDownTimes = 5;//5秒
+ static uint8_t UPDATETIME = 2;
+ uint8_t MainPresenterSample::g_PullUpDownTimes = UPDATETIME; // 2秒
/*定时器到期时的处理*/
static void PullUpDown_TimerCallbackProc(int data)
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "PullUpDown_TimerCallbackProc");
MainPresenterSample::g_PullUpDownTimes--;
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "%d",MainPresenterSample::g_PullUpDownTimes);
- if(MainPresenterSample::g_PullUpDownTimes <= 0)
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "%d", MainPresenterSample::g_PullUpDownTimes);
+ if (MainPresenterSample::g_PullUpDownTimes <= 0)
{
- MainPresenterSample::g_PullUpDownTimes = 5;//每5秒更新一次,时间
- MainPresenterSample::GetInstance()->UpdataBaseData();
+ MainPresenterSample::g_PullUpDownTimes = UPDATETIME; //
+ MainPresenterSample::GetInstance()->UpdataTime();
PullUpDownView::GetInstance()->UpdateSignalStrengthStatusAndBatteryPosition();
}
+
+ if (uapi_get_screen_state() == 1) // 息屏停止更新数据
+ {
+ GraphicService::GetInstance()->PostGraphicEvent(std::bind(&MainPresenterSample::PullUpDown_StopTimer, MainPresenterSample::GetInstance()));
+ }
+
return;
}
-
+
/*
* @brief 回调函数
*/
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "osTimerDelete failed, ret = %lx!!", ret);
}
g_timer = NULL;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "g_timer stop success");
}
}