mcu_hi3321_watch/tjd/ui/app/camera/TjdUiAppCameraToC.cpp
2025-05-26 20:15:20 +08:00

86 lines
2.8 KiB
C++

#include "TjdUiAppCameraToC.h"
#include "NativeAbility.h"
#include "TjdUiAppCameraModel.h"
#include "TjdUiAppCameraView.h"
#include "TjdUiAppOtaView.h"
#include "TjdUiMsgCenter.h"
#include "broadcast_feature.h"
#include <stdio.h>
#include <thread>
#ifdef __cplusplus
extern "C"
{
#endif
#include "power_display_service.h"
#include "rtc_api.h"
#include "service_ancillary.h"
void tjd_into_photo(void)
{
printf("tjd_into_photo\n");
TJD::TjdUiAppCameraModel::GetInstance().CloseAutoScreenOff();
int camera;
// TjdUiMsgEventPublish(TJDUI_TOPIC_EVENT_CAMERA, &camera, sizeof(camera))
OHOS::NativeAbility::GetInstance().ChangeSlice(TJD_APP_VIEW_CAMERA);;
}
void tjd_into_ota_view(void)
{
const power_display_svr_api_t *display_api = power_display_svr_get_api();
if (display_api->get_screen_state() != SCREEN_ON) {
display_api->turn_on_screen();
}
OHOS::NativeAbility::GetInstance().ChangeSlice(TJD_APP_VIEW_OTA, OHOS::TransitionType::TRANSITION_INVALID,
TJD_UI_PRIO_0);
}
void tjd_show_ota_interrupt_view(void)
{
if (TJD::TjdUiAppOtaView::GetInstance() == nullptr)
return;
TJD::TjdUiAppOtaView::GetInstance()->ShowView(TJD::OTA_UPGRADE_VIEW, TJD::OTA_INTERRUPT_VIEW);
}
void tjd_into_msgame_view(void)
{
const power_display_svr_api_t *display_api = power_display_svr_get_api();
if (display_api->get_screen_state() != SCREEN_ON) {
display_api->turn_on_screen();
}
OHOS::NativeAbility::GetInstance().ChangeSlice(TJD_APP_VIEW_MS_GAME);
}
void tjd_exit_app_view(void)
{
const power_display_svr_api_t *display_api = power_display_svr_get_api();
if (display_api->get_screen_state() != SCREEN_ON) {
display_api->turn_on_screen();
}
uint16_t cur_slice_id = OHOS::NativeAbility::GetInstance().GetCurSliceId();
if (cur_slice_id == TJD_APP_VIEW_CAMERA) {
display_api->set_screen_set_keepon_timeout(5000);
}
printf("tjd_exit_app_view cur_slice_id:%d\n", cur_slice_id);
if (cur_slice_id == TJD_APP_VIEW_MS_GAME || cur_slice_id == TJD_APP_VIEW_CAMERA)
OHOS::NativeAbility::GetInstance().ChangePreSlice();
else
TJD::gatts_send_to_app();
}
void tjd_into_app_view(uint16_t targetSliceId) { OHOS::NativeAbility::GetInstance().ChangeSlice(targetSliceId); }
void tjd_restart_device(void)
{
std::thread resetThread([]() {
printf("ResetSystem thread run\n");
const power_display_svr_api_t *displayApi = power_display_svr_get_api();
uint32_t ret = displayApi->turn_off_screen();
if (ret != ERRCODE_SUCC) {
printf("turn_off_screen failed %x\n", ret);
}
osDelay(1000);
OHOS::NativeAbility::GetInstance().StopAbility();
tjd_driver_rtc_save_time();
tjd_service_ancillary_device_restart();
});
resetThread.detach();
}
#ifdef __cplusplus
}
#endif