/* * Copyright (c) CompanyNameMagicTag 2024-2024. All rights reserved. * Description: TjdUiAppAodView * Author: * Create: 2024-10-30 */ #include "TjdUiAppAodView.h" #include "DialBinParser.h" #include "DialModelTime.h" #include "DialViewGroup.h" #include "TjdUiAppAodModel.h" #include "TjdUiAppAodPresenter.h" #include "TjdUiNativeAodAnalogView.h" #include "TjdUiNativeAodDigitalView.h" #include "common/graphic_utils.h" namespace TJD { TjdUiAppAodView::~TjdUiAppAodView() { if (clockDial_ != nullptr) { delete clockDial_; clockDial_ = nullptr; } } void TjdUiAppAodView::OnStart() { if (clockDial_ == nullptr) { clockDial_ = InitNativeAodDial(); } if (clockDial_ == nullptr) { WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "TjdUiAppAodView::OnStart: Failed to generate the AOD watch face.\n"); return; } OHOS::DialViewGroup *dial = dynamic_cast(clockDial_); if (dial != nullptr) { dial->PreLoad(); dial->OnActive(); presenter_->SetPeriod(dial->GetPeriod()); } else { TjdUiAppAodNativeView *clock = dynamic_cast(clockDial_); if (clock != nullptr) { clock->PreLoad(); presenter_->SetPeriod(clock->GetPeriod()); } } isLoaded_ = true; AddViewToRootContainer(clockDial_); } void TjdUiAppAodView::OnStop() { if (clockDial_ != nullptr) { OHOS::DialViewGroup *dial = dynamic_cast(clockDial_); if (dial != nullptr) { dial->OnInactive(); dial->UnLoad(); } isLoaded_ = false; } } OHOS::UIViewGroup *TjdUiAppAodView::InitNativeAodDial() { OHOS::UIViewGroup *nativeAodDial = nullptr; switch (TjdUiAppAodModel::GetInstance().GetNativeViewType()) { case TjdUiAppAodModel::AodNativeViewType::ANALOG_VIEW: nativeAodDial = new TjdUiNativeAodAnalogView(); break; case TjdUiAppAodModel::AodNativeViewType::DIGITAL_VIEW: nativeAodDial = new TjdUiNativeAodDigitalView(); break; } return nativeAodDial; } void TjdUiAppAodView::PeriodicUpdate() { if (clockDial_ == nullptr || !isLoaded_) { return; } OHOS::DialViewGroup *dial = dynamic_cast(clockDial_); if (dial != nullptr) { OHOS::DialModelTime::GetInstance()->UpdateTime(); dial->UpdateViewsByPeriodicUpdateData(); return; } TjdUiAppAodNativeView *clock = dynamic_cast(clockDial_); if (clockDial_ != nullptr) { clock->UpdateTime(); } } } // namespace TJD