From: SnickerSun Date: Mon, 29 Jan 2024 07:33:16 +0000 (+0800) Subject: Merge branch 'xts_origin' of codeup.aliyun.com:64191456b9581d62e8f81ac0/FD230 into... X-Git-Tag: release_V1.2.70_20241020_135402~1321 X-Git-Url: http://git.snicker.com.cn/Users/apple/Desktop/static/gitweb.css?a=commitdiff_plain;h=a75ecfd2bab8ee61276fe19b3bb3cdda157bac36;p=mirrors%2FFD230.git Merge branch 'xts_origin' of codeup.aliyun.com:64191456b9581d62e8f81ac0/FD230 into xts_origin --- a75ecfd2bab8ee61276fe19b3bb3cdda157bac36 diff --cc code/sdk/application/wearable/fd230app/CMakeLists.txt index fe697a007,000000000..bdadde925 mode 100644,000000..100644 --- a/code/sdk/application/wearable/fd230app/CMakeLists.txt +++ b/code/sdk/application/wearable/fd230app/CMakeLists.txt @@@ -1,349 -1,0 +1,349 @@@ +set(COMPONENT_NAME "fd230launcher") +set(MODULE_NAME "app") +set(AUTO_DEF_FILE_ID TRUE) +set(UI_SAMPLE_ROOT ${ROOT_DIR}/middleware/services/gui/uikit/sample/uitest) + +set(PUBLIC_HEADER + ${CMAKE_CURRENT_SOURCE_DIR}/nativelauncher/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/screennotify/include + +) + +set(PRIVATE_HEADER + ${ROOT_DIR}/open_source/openharmony/foundation/ace/ace_engine_lite/interfaces/base + ${ROOT_DIR}/open_source/openharmony/third_party/cJSON + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/clock/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodoxygen/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/indoorwalk/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/rebootdevice/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/activity/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/heartrate/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/callerlog/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/makephone/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/rtcservice/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/connectnewphone/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarmclockmanage/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarmclocktimerconfig/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarm/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/offlinevoice/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/settings/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/key/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/applist/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/phoneservice/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/screensetting/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/uiservice/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/uisample/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/ + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/UIInitializer/ + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/InitComponent/include + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/uisample/uitest/framework/include + ${UI_SAMPLE_ROOT}/components + ${CMAKE_CURRENT_SOURCE_DIR}/../service/smart_voice/smart_voice_service/interfaces/innerkits/native_c/include + ${CMAKE_CURRENT_SOURCE_DIR}/../service/smart_voice/voice_engine_hal/interfaces/innerkits/native_c/include + ${CMAKE_CURRENT_SOURCE_DIR}/../ohos_deps + ${CMAKE_CURRENT_SOURCE_DIR}/../../battery + ${CMAKE_CURRENT_SOURCE_DIR}/../../../drivers/drivers/driver/rtc_unified + ${CMAKE_CURRENT_SOURCE_DIR}/../../../kernel/liteos/liteos_v207.1.0/Huawei_LiteOS/compat/linux/include/uapi/linux/ + + ${ROOT_DIR}/middleware/services/gui/uikit/proprietary/src/utils/innerkits + ${ROOT_DIR}/middleware/services/gui/uikit/proprietary/include + ${ROOT_DIR}/middleware/services/gui/uikit/proprietary/src/ui/frameworks + ${ROOT_DIR}/middleware/services/gui/uikit/proprietary/include/service + ${ROOT_DIR}/middleware/services/gui/uikit/ui/interfaces/innerkits + ${ROOT_DIR}/middleware/services/gui/lvgl/src/hal + + ${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/kits + ${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/kits/gfx_utils + ${ROOT_DIR}/middleware/services/gui/uikit/utils/interfaces/innerkits + ${ROOT_DIR}/middleware/services/gui/uikit/surface/interfaces/kits + ${ROOT_DIR}/middleware/services/gui/uikit/ui/interfaces/kits + ${ROOT_DIR}/middleware/services/gui/uikit/ui/interfaces/kits/components + ${ROOT_DIR}/middleware/services/gui/uikit/ui/interfaces/kits/events + ${ROOT_DIR}/middleware/services/gui/uikit/ui/frameworks/ + + + ${ROOT_DIR}/open_source/openharmony/foundation/graphic/ui/interfaces/kits/events + ${ROOT_DIR}/open_source/openharmony/foundation/graphic/ui/interfaces/kits + ${ROOT_DIR}/open_source/openharmony/foundation/graphic/utils/interfaces/kits + ${ROOT_DIR}/open_source/openharmony/foundation/graphic/utils/interfaces/kits/gfx_utils + ${ROOT_DIR}/open_source/openharmony/foundation/graphic/utils/interfaces/innerkits + ${ROOT_DIR}/open_source/openharmony/foundation/graphic/ui/interfaces/innerkits + ${ROOT_DIR}/open_source/openharmony/foundation/graphic/ui/frameworks + ${ROOT_DIR}/open_source/openharmony/foundation/graphic/surface/interfaces/kits + ${ROOT_DIR}/open_source/openharmony/foundation/graphic/ui/interfaces/kits/components + ${ROOT_DIR}/open_source/openharmony/foundation/multimedia/player/interfaces/kits/ + + ${ROOT_DIR}/include/middleware/services/bts/common + ${ROOT_DIR}/include/middleware/services/bts/ble + ${ROOT_DIR}/include/middleware/services/bts/br + + ${ROOT_DIR}/open_source/openharmony/drivers/peripheral/display/interfaces/include + ${ROOT_DIR}/open_source/openharmony/foundation/distributedschedule/samgr_lite/interfaces/kits/samgr + + +) + +set(SOURCES + ${CMAKE_CURRENT_SOURCE_DIR}/nativelauncher/src/NativeLauncher.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/MainViewSample.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/MainPresenterSample.cpp + + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/ModelListenerSample.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/PresenterTask.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/HealthModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/PullUpDownView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/applist/src/AppItemView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/applist/src/ApplistAdapter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/applist/src/ApplistModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/applist/src/ApplistPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/applist/src/ApplistView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/applist/src/ApplistCardView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/clock/src/MainClockView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodoxygen/src/BloodOxygenView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodoxygen/src/BloodBandoffView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodoxygen/src/BloodOxygenPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bloodoxygen/src/BloodOxygenModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothDeviceCaseListAdapter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothDeviceListView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothHeadsetEvent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/MainBluetoothView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothEarPhoneView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/TipsConnFailMessageView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/TipsFailMessageView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/TipsSuccMessageView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothEarListView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothOptionsView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothReconnectView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothItemView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/bluetooth/src/BluetoothCaseListAdapter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/indoorwalk/src/IndoorWalkView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/indoorwalk/src/IndoorWalkPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/indoorwalk/src/IndoorWalkModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/indoorwalk/src/IndoorWalkPreparedView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/indoorwalk/src/IndoorWalkMotionView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/indoorwalk/src/MotionPageFirst.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/indoorwalk/src/MotionPageSecond.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/indoorwalk/src/MotionPageThird.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/indoorwalk/src/MotionPageFourth.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/indoorwalk/src/MotionPageFifth.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/indoorwalk/src/CustomizationView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/indoorwalk/src/IndoorWalkEndView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/connectnewphone/src/ConnectPhoneView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/connectnewphone/src/ConnectSelectView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/connectnewphone/src/ConnectOpenView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/connectnewphone/src/ConnectPhonePresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/rebootdevice/src/RebootView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/rebootdevice/src/RebootPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/rebootdevice/src/RebootModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/rebootdevice/src/RebootDeviceView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/rebootdevice/src/ShutdownDeviceView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/callerlog/src/CallerLogView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/callerlog/src/CallerLogPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/callerlog/src/CallerLogModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/callerlog/src/CallerItemView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/makephone/src/CallerDisplayView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/makephone/src/WaitingHintsView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/makephone/src/CallingView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/makephone/src/MainCallingPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/makephone/src/DialingScreenView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/makephone/src/MainCallingView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/VolumeSettingView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/main/src/VolumeSettingPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/src/BluetoothView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/src/PlayersView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/src/PlayersPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/src/PlayersModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/src/PlayersCaseListAdapter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/src/PlayerListDelSongView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/player/src/PlayerListitemView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/activity/src/MainActivityView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/activity/src/ActivityWeekView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/activity/src/ActivityPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/activity/src/ActivityModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/heartrate/src/HeartRateView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/heartrate/src/HeartModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarm/src/AlarmClockModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarm/src/MainAlarmView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarm/src/AlarmConfigView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarm/src/AlarmPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarm/src/AlarmSetTimeView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarm/src/AlarmSetWeekView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarm/src/AlarmJudgeView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarm/src/AlarmPopUpView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarm/src/AlarmRingView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarm/src/AlarmCloseRingView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarm/src/AlarmNewTimeView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarm/src/AlarmPopUpPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarm/src/AlarmMaxClock.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempJoinStudy.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempMainView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempMeasure.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempExitInter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempPromptWear.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempClickMea.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempRemindWear.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempMeaProcess.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempInitInter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempWarn.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempLittleTip.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempExitPrompt.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempStudyAbout.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempContinueWarn.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/temperature/src/TempReport.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/settings/src/SettingAdapter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/settings/src/SettingPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/settings/src/SettingView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/settings/src/SettingModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/settings/src/SettingItemView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/key/src/KeyInputListener.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/screennotify/src/ui_screennotify.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/blood/src/BloodView.cpp ++ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/blood/src/BloodCardView.cpp + + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/dial/src/Digital_clockView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/dial/src/DialView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/dial/src/DialPresenter.cpp + + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/traing/src/TraingView.cpp + + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/MainWeatherPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/MainWeatherView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/WeatherReportPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/WeatherReportView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/FutureWeatherPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/FutureWeatherView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/GetWeatherDataErrorPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/GetWeatherDataErrorView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/WeatherControlView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/weather/src/WeatherView.cpp + + #系统 + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/system/src/SystemPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/system/src/SystemView.cpp ++ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/system/src/SystemModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/system/src/SystemAboutTheWatchView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/system/src/SystemSuperviseView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/system/src/SystemLanguageView.cpp - ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/system/src/SystemFactoryResetPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/system/src/SystemFactoryResetView.cpp + + #声音与震动 + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/SoundAndVibrationPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/SoundAndVibrationView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/SystemVolumePresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/SystemVolumeView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/CallVolumePresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/CallVolumeView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/MediaVolumePresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/soundandvibration/src/MediaVolumeView.cpp + + #显示与亮度 + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/DisplayBrightnessModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/DisplayBrightnessPresent.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/DisplayBrightnessView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/BrightnessControlPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/BrightnessControlView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/ScreenDurationPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/displaybrightness/src/ScreenDurationView.cpp + + #辅助功能 + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/SecondaryFunctionPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/SecondaryFunctionView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/FastTrainingAttentionPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/FastTrainingAttentionView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/FastTrainingPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/FastTrainingView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/QuickAccessPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/secondaryfunction/src/QuickAccessView.cpp + + #指南针 + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/CompassControlView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/CompassCalibrationView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/CompassModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/CompassPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/CompassView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/MainCompassView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/compass/src/MainCompassPresenter.cpp + + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageAdapter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageItemView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessagePresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/message/src/MessageCardView.cpp + + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/phoneservice/src/PhoneService.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/phoneservice/src/PhoneAudio.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/offlinevoice/src/VocassistModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/offlinevoice/src/VocassistPresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/offlinevoice/src/VocassistView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/offlinevoice/src/MainVocassistView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/screensetting/src/ScreenModels.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarmclockmanage/src/AlarmClockManage.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alarmclocktimerconfig/src/AlarmClockTimerConfig.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/rtcservice/src/RtcService.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/uiservice/src/ui_service.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/uisample/src/UISampleView.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/uisample/src/UISamplePresenter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/uisample/src/UISampleModel.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/uisample/uitest/framework/src/test_case_list_adapter.cpp + ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/uisample/uitest/framework/src/ui_test_group.cpp + + ${UI_SAMPLE_ROOT}/components/ui_test_tiger/tiger_view.cpp + ${UI_SAMPLE_ROOT}/components/ui_test_tiger/ui_test_tiger.cpp + ${UI_SAMPLE_ROOT}/components/ui_test_running_ball/ui_test_running_ball.cpp + ${UI_SAMPLE_ROOT}/components/ui_test_breath/ui_test_breath.cpp + ${UI_SAMPLE_ROOT}/components/ui_test_card_switch/ui_test_card_switch.cpp + ${UI_SAMPLE_ROOT}/components/ui_test_countdown/ui_test_countdown.cpp + ${UI_SAMPLE_ROOT}/components/ui_test_list_fps/image_text_adapter.cpp + ${UI_SAMPLE_ROOT}/components/ui_test_list_fps/ui_test_list_fps.cpp + ${UI_SAMPLE_ROOT}/components/ui_test_message/ui_test_message.cpp + ${UI_SAMPLE_ROOT}/components/ui_test_cube_rotate/cube_rotate_view.cpp + ${UI_SAMPLE_ROOT}/components/ui_test_cube_rotate/ui_test_cube_rotate.cpp + ${UI_SAMPLE_ROOT}/components/ui_test_video_play/ui_test_video_play.cpp + # ${UI_SAMPLE_ROOT}/components/ui_test_video_play/media_video_play.cpp +) + +set(COMPONENT_PUBLIC_CCFLAGS +) + +set(COMPONENT_CCFLAGS + -std=c++11 + -Wno-error + -Wno-unused-parameter + -fno-exceptions + -fno-unwind-tables + -fno-asynchronous-unwind-tables + -Wno-undef + -Wno-bitwise-op-parentheses + -Wno-shift-op-parentheses + -nostdlibinc + -nostdinc + -nostdlib + -Wno-c++11-narrowing + -Wno-error=unused-function +) + +set(WHOLE_LINK + true +) + +set(MAIN_COMPONENT + false +) + +set(PUBLIC_DEFINES + SUPPORT_NATIVE_UI +) + +set(PRIVATE_DEFINES +) + +build_component() diff --cc code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h index 8ef146e42,000000000..26c098c18 mode 100644,000000..100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/AppViewIDs.h @@@ -1,86 -1,0 +1,86 @@@ + +/* + * Copyright (c) 2020-2021 CompanyNameMagicTag. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#ifndef APP_VIEW_IDS_H +#define APP_VIEW_IDS_H + +#include + +/* + * 基础应用的view id,与MVP的V一一对应 + * 枚举命名要求:参考View名字,名字尽量简短 + */ +typedef enum : uint16_t +{ + VIEW_INVALID = 0, // 无效视图 + /* ----------------------------- 每一个id对应一个slice ----------------------------- */ + VIEW_MAIN = 1, // 主界面 + VIEW_SETTING, // 设置 + VIEW_APPLIST, // App应用 + VIEW_MAIN_ALARM, // 闹钟 + VIEW_ALARM_POP_UP, // 闹铃界面 + VIEW_BLUETOOTH_EARPHONE, // 连接蓝牙耳机界面 + VIEW_CALLER_LOG, // 通话记录界面 + VIEW_INCOMING_CALL, // 来电界面 + VIEW_BLOODOXY, // 血氧饱和度界面 + VIEW_COMPASS, // 指南针界面 + VIEW_CONNECT_PHONE, // 连接手机界面 + VIEW_INDOORWALK, // 室内步行 + VIEW_SHUTDOWN_OR_REBOOT, // 关机或重启界面 - VIEW_DIAL, // 切换表盘 + VIEW_WEATHER, // 天气 + VIEW_WEATHER_REPORT, // 气象报告 + VIEW_FUTURE_WEATHER, // 未来天气 + VIEW_GET_WEATHER_DATA_ERROR, // 获取天气数据失败 + VIEW_SYSTEM, // 系统 - VIEW_SYSTEM_FACTORY_RESET, // 系统:恢复出厂设置 + VIEW_SOUND_VIBRATION, // 声音与震动 + VIEW_SYSTEM_VOLUME, // 系统音量 + VIEW_CALL_VOLUME, // 通话音量 + VIEW_MEDIA_VOLUME, // 媒体音量 + VIEW_DISPLAY_BRIGHTNESS, // 屏幕与亮度 + VIEW_BRIGHTNESS_CONTROL, // 亮度调节 + VIEW_SCREEN_DURATION, // 亮屏时长 + VIEW_SECONDARY_FUNCTION, // 辅助功能 + VIEW_QUICK_ACCESS, // 快速访问 + VIEW_FAST_TRAINING, // 快速训练 + VIEW_FAST_TRAINING_ATTENTION,// 快速训练项目选择超出提示 + /* ---------------------------------- 测试界面 ---------------------------------- */ ++ VIEW_DIAL, // 切换表盘 + VIEW_MESSAGE, // 信息通知 ++ VIEW_BLOODO, // 血氧监测 + /* -------------------------------------------------------------------------- */ + VIEW_MAIN_TEMP, // 体温界面(暂时不用) + VIEW_OFFLINEVOICE, // 语音助手界面(暂时不用) + VIEW_MAIN_ACTIVITY, // 记录步数界面(暂时不用) + VIEW_UISAMPLE, // 示例(暂时不用) + /* -------------------------------------------------------------------------- */ + VIEW_MAX_INTER_APP, // 在此之前添加native应用ID. + VIEW_EXTERN_APP = 0xFFFE, // 三方应用 + VIEW_INVALIDE_APP = 0xFFFF, +} AppViewId; + +/* + * Slice页面优先级,越小优先级越高 + */ +typedef enum : uint16_t +{ + PRIO_0 = 0, + PRIO_1, + PRIO_2, + PRIO_3, + PRIO_4 +} AppPriority; + +#endif diff --cc code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h index 2b334b65e,000000000..cc325012f mode 100644,000000..100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/NativeLauncher.h @@@ -1,79 -1,0 +1,80 @@@ + +/*** + * @Author: Caisking 3449750381@qq.com + * @Date: 2023-12-13 19:33:14 + * @LastEditors: Caisking 3449750381@qq.com + * @LastEditTime: 2024-01-22 16:32:42 + * @FilePath: /FD230/code/sdk/application/wearable/nativeapp/nativelauncher/include/NativeLauncher.h + * @Description: + * @Description: + * @ + * @Copyright (c) 2024 by Caisking , All Rights Reserved. + * @Copyright (c) 2024 by Caisking , All Rights Reserved. + */ + +#ifndef NATIVE_LAUNCHER_H +#define NATIVE_LAUNCHER_H +#include "AppViewIDs.h" + +namespace OHOS +{ + class NativeLauncher + { + public: + static NativeLauncher &GetInstance(void); + void InitNativeLauncher(void); + void InitMainSampleSlice(void); + void InitSettingSlice(void); + void InitApplistSlice(void); + void InitMainAlarmSlice(void); + void InitAlarmPopUpSlice(void); + void InitActivitySlice(void); + void InitWeekStepSlice(void); + void InitBluetoothSlice(void); + void InitWifiView(void); + void InitMainBloodOxyView(void); + void InitMainCallerLogView(void); + void InitMainMakePhoneView(void); + void InitCompassSlice(void); + void InitOfflineVoice(void); + void InitConnectPhoneSlice(void); + void InitMainTempSlice(void); + void InitIndoorWalkSlice(void); + void InitRebootSlice(void); + void InitUISampleSlice(void); - void InitDialSlice(void); + /* ----------------------------------- 天气 ----------------------------------- */ + void InitWeatherSlice(void); + void InitWeatherReportSlice(void); + void InitFutureWeatherSlice(void); + void InitGetWeatherDataErrorSlice(void); + /* -------------------------------------------------------------------------- */ + void InitSystemSlice(void); - void InitSystemFactoryResetSlice(void); + /* -------------------------------------------------------------------------- */ + void InitSoundAndVibrationSlice(void); + void InitSystemVolumeSlice(void); + void InitCallVolumeSlice(void); + void InitMediaVolumeSlice(void); + void InitMessageSlice(void); + /* -------------------------------------------------------------------------- */ + void InitUIDisplayBrightnessSlice(void); + void InitBrightnessControlSlice(void); + void InitScreenDurationSlice(void); ++ /* --------------------------------测试界面------------------------------------ */ ++ void InitDialSlice(void); ++ void InitBloodSlice(void); + /* -------------------------------------------------------------------------- */ + void InitSecondaryFunction(void); + void InitQuickAccessSlice(void); + void InitFastTrainingSlice(void); + void InitFastTrainingAttentionSlice(void); + + private: + void InitAllNativeSlices(void); + + NativeLauncher(); + NativeLauncher(const NativeLauncher &); + NativeLauncher &operator=(const NativeLauncher &); + ~NativeLauncher(); + }; +} +#endif // NATIVE_LAUNCHER_H diff --cc code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h index 06c4d1bb6,000000000..8f3f0b2b7 mode 100644,000000..100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h +++ b/code/sdk/application/wearable/fd230app/nativelauncher/include/UiConfig.h @@@ -1,271 -1,0 +1,338 @@@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: UiConfig for application resource + * Author: + * Create: 2021-12-03 + */ + +#ifndef UI_CONFIG_H +#define UI_CONFIG_H + +#include +#include "ohos_types.h" +#include "graphic_config.h" + +namespace OHOS +{ +#ifndef UNUSED +#define UNUSED(x) ((void)(x)) +#endif + +#define LA_HORIZONTAL_RESOLUTION 400 // watch width +#define LA_VERTICAL_RESOLUTION 400 // watch height +#define NORMAL_BUTTON_WIDTH 100 // normal button width +#define NORMAL_BUTTON_HEIGHT 50 // normal button height +#define NORMAL_MARGIN 5 // normal margin +#define DIAL_SQUARE 250 // watch plate sauqre +#define SETTING_ITEM_HEIGHT 100 // setting item height +#define UN_OPACITY 255 // UN_OPACITY + +#define MILLESECOND 1 +#define SECOND 1000 // 1s 1000ms +#define MINUTE (60 * SECOND) // 1min 60s +#define HOUR (60 * MINUTE) // 1hour 60min + +#define FONT_COMMON 20 // 20px +#define X_DRAG_OFFSET 20 +#define DOUBLES 2 + +#define APP_RES_PATH "/user/res" +#define APP_MUSIC_PATH "/user/music" +#define APP_VIDEO_PATH "/user/video" + + static constexpr const char *CARD_CONFIG_PATH = "/user/cardconfig.bin"; + static constexpr const char *CLOCK_IAMGES = APP_RES_PATH "/clock/clock.bin"; + static constexpr const char *PLAYER_IAMGES = APP_RES_PATH "/player/player.bin"; + static constexpr const char *COMPASS_IAMGES = APP_RES_PATH "/compass/compass.bin"; + static constexpr const char *DROPDOWN_IAMGES = APP_RES_PATH "/dropdown/dropdown.bin"; + static constexpr const char *HEART_IAMGES = APP_RES_PATH "/heart/heart.bin"; + /* ----------------------------------- 打电话图片 ---------------------------------- */ + static constexpr const char *PNG_AGREEING_IMAGE_PATH = APP_RES_PATH "/AGREEING.bin"; + static constexpr const char *PNG_DISSGREE_IMAGE_PATH = APP_RES_PATH "/DISSGREE.bin"; + static constexpr const char *PNG_BLUETOOTH_HINTS_PATH = APP_RES_PATH "/BLUETOOTH_HINTS.bin"; + static constexpr const char *PNG_MICROPHONE_OPEN_IMAGE_PATH = APP_RES_PATH "/MICRO_PHONE_OPEN.bin"; + static constexpr const char *PNG_MICROPHONE_CLOSE_IMAGE_PATH = APP_RES_PATH "/MICRO_PHONE_CLOSE.bin"; + static constexpr const char *PNG_HANDUP_IMAGE_PATH = APP_RES_PATH "/HANDUP.bin"; + static constexpr const char *PNG_ANSWER_TMAGE_PATH = APP_RES_PATH "/ANSWER_PHONE.bin"; + static constexpr const char *PNG_CALLING_TMAGE_PATH = APP_RES_PATH "/CALLING_PHONE.bin"; + static constexpr const char *PNG_CALLER_TMAGE_PATH = APP_RES_PATH "/CALLER_LOG_IMAGE.bin"; + static constexpr const char *PNG_NO_CALLER_LOG_IMAGE = APP_RES_PATH "/NO_CALLER_LOG_IMAGE.bin"; + static constexpr const char *PNG_SOUNDBUTTON2 = APP_RES_PATH "/SOUND_IMAGE.bin"; + /* ---------------------------------- 血氧中图片 --------------------------------- */ + static constexpr const char *PNG_BLOODOXYGEN_IMAGE_PATH = APP_RES_PATH "/BLOODOXYGEN_VIEW.bin"; + static constexpr const char *PNG_PULLBUTTON_FACE_IMAGE = APP_RES_PATH "/BLOOD_FLOW_IMAGE_01.bin"; + static constexpr const char *PNG_BLOOD_ICON_ENTER = APP_RES_PATH "/BLOOD_ICON_ENTER.bin"; + static constexpr const char *PNG_PROGRESS_BAR_TMAGE = APP_RES_PATH "/PROGRESS_BAR_TMAGE.bin"; + /* --------------------------------- 血氧动画图片 --------------------------------- */ + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_0 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_02.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_1 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_03.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_2 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_04.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_3 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_05.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_4 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_06.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_5 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_07.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_6 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_08.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_7 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_09.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_8 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_10.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_9 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_11.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_10 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_12.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_11 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_13.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_12 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_14.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_13 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_15.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_14 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_16.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_15 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_17.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_16 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_18.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_17 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_19.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_18 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_20.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_19 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_21.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_20 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_22.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_21 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_23.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_22 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_24.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_23 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_25.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_24 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_26.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_25 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_27.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_26 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_28.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_27 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_29.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_28 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_30.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_29 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_31.bin"; + static constexpr const char *PNG_BLOOD_FLOW_IMAGE_30 = APP_RES_PATH "/BLOOD_FLOW_IMAGE_32.bin"; - /* -------------------------------- 血氧倒计时动画图片 ------------------------------- */ - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_0 = APP_RES_PATH "/COUNTDOWN_IMAGE_01.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_1 = APP_RES_PATH "/COUNTDOWN_IMAGE_02.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_2 = APP_RES_PATH "/COUNTDOWN_IMAGE_03.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_3 = APP_RES_PATH "/COUNTDOWN_IMAGE_04.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_4 = APP_RES_PATH "/COUNTDOWN_IMAGE_05.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_5 = APP_RES_PATH "/COUNTDOWN_IMAGE_06.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_6 = APP_RES_PATH "/COUNTDOWN_IMAGE_07.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_7 = APP_RES_PATH "/COUNTDOWN_IMAGE_08.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_8 = APP_RES_PATH "/COUNTDOWN_IMAGE_09.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_9 = APP_RES_PATH "/COUNTDOWN_IMAGE_10.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_10 = APP_RES_PATH "/COUNTDOWN_IMAGE_11.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_11 = APP_RES_PATH "/COUNTDOWN_IMAGE_12.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_12 = APP_RES_PATH "/COUNTDOWN_IMAGE_13.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_13 = APP_RES_PATH "/COUNTDOWN_IMAGE_14.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_14 = APP_RES_PATH "/COUNTDOWN_IMAGE_15.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_15 = APP_RES_PATH "/COUNTDOWN_IMAGE_16.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_16 = APP_RES_PATH "/COUNTDOWN_IMAGE_17.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_17 = APP_RES_PATH "/COUNTDOWN_IMAGE_18.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_18 = APP_RES_PATH "/COUNTDOWN_IMAGE_19.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_19 = APP_RES_PATH "/COUNTDOWN_IMAGE_20.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_20 = APP_RES_PATH "/COUNTDOWN_IMAGE_21.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_21 = APP_RES_PATH "/COUNTDOWN_IMAGE_22.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_22 = APP_RES_PATH "/COUNTDOWN_IMAGE_23.bin"; - static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_23 = APP_RES_PATH "/COUNTDOWN_IMAGE_24.bin"; ++ /* -------------------------------- 血氧动画 ------------------------------------------------- */ ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_0 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_1.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_1 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_2.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_2 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_3.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_3 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_4.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_4 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_5.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_5 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_6.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_6 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_7.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_7 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_8.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_8 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_9.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_9 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_10.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_10 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_11.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_11 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_12.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_12 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_13.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_13 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_14.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_14 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_15.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_15 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_16.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_16 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_17.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_17 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_18.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_18 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_19.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_19 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_20.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_20 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_21.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_21 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_22.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_22 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_23.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_23 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_24.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_24 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_25.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_25 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_26.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_26 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_27.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_27 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_28.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_28 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_29.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_29 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_30.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_30 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_31.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_31 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_32.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_32 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_33.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_33 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_34.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_34 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_35.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_35 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_36.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_36 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_37.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_37 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_38.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_38 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_39.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_39 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_40.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_40 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_41.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_41 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_42.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_42 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_43.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_43 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_44.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_44 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_45.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_45 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_46.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_46 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_47.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_47 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_48.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_48 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_49.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_49 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_50.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_50 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_51.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_51 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_52.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_52 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_53.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_53 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_54.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_54 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_55.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_55 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_56.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_56 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_57.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_57 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_58.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_58 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_59.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_59 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_60.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_60 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_61.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_61 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_62.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_62 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_63.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_63 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_64.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_64 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_65.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_65 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_66.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_66 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_67.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_67 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_68.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_68 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_69.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_69 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_70.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_70 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_71.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_71 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_72.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_72 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_73.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_73 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_74.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_74 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_75.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_75 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_76.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_76 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_77.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_77 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_78.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_78 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_79.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_79 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_80.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_80 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_81.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_81 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_82.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_82 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_83.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_83 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_84.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_84 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_85.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_85 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_86.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_86 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_87.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_87 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_88.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_88 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_89.bin"; ++ static constexpr const char *PNG_COUNTDOWN_TIME_IMAGE_89 = APP_RES_PATH "/Blood/SPO2H/BLOOD_IMAGE_90.bin"; ++ + /* ---------------------------------- 闹钟图片 ---------------------------------- */ + static constexpr const char *ALARM_ADD_BUTTON_PATH = APP_RES_PATH "/BLUE_ADD.bin"; + static constexpr const char *ALARM_CLOCK_CLOSE_ADD_PATH = APP_RES_PATH "/CLOSE_RING_CLOCK.bin"; + static constexpr const char *ALARM_CLOCK_ADD_PATH = APP_RES_PATH "/POP_UP_CLOCK.bin"; + static constexpr const char *ALARM_CLOCK_POP_ADD_PATH = APP_RES_PATH "/RING_CLOCK.bin"; + static constexpr const char *ALARM_DELETE_ADD_PATH = APP_RES_PATH "/DELETE.bin"; + static constexpr const char *ALARM_TRUE_ADD_PATH = APP_RES_PATH "/TRUE_ADD.bin"; + /* ---------------------------------- 心率动画图片 ---------------------------------- */ + static constexpr const char *PNG_A004_070_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_01.bin"; + static constexpr const char *PNG_A004_071_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_02.bin"; + static constexpr const char *PNG_A004_072_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_03.bin"; + static constexpr const char *PNG_A004_073_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_04.bin"; + static constexpr const char *PNG_A004_074_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_05.bin"; + static constexpr const char *PNG_A004_075_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_06.bin"; + static constexpr const char *PNG_A004_076_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_07.bin"; + static constexpr const char *PNG_A004_077_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_08.bin"; + static constexpr const char *PNG_A004_078_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_09.bin"; + static constexpr const char *PNG_A004_079_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_10.bin"; + static constexpr const char *PNG_A004_080_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_11.bin"; + static constexpr const char *PNG_A004_081_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_12.bin"; + static constexpr const char *PNG_A004_082_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_13.bin"; + static constexpr const char *PNG_A004_083_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_14.bin"; + static constexpr const char *PNG_A004_084_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_15.bin"; + static constexpr const char *PNG_A004_085_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_16.bin"; + static constexpr const char *PNG_A004_086_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_17.bin"; + static constexpr const char *PNG_A004_087_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_18.bin"; + static constexpr const char *PNG_A004_088_IMAGE_PATH = APP_RES_PATH "/HEARTBEAT_IMAGE_19.bin"; + /* -------------------------------- 蓝牙搜索的动画图片 ------------------------------- */ + static constexpr const char *PNG_A019_080_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_01.bin"; + static constexpr const char *PNG_A019_081_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_02.bin"; + static constexpr const char *PNG_A019_082_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_03.bin"; + static constexpr const char *PNG_A019_083_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_04.bin"; + static constexpr const char *PNG_A019_084_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_05.bin"; + static constexpr const char *PNG_A019_085_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_06.bin"; + static constexpr const char *PNG_A019_086_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_07.bin"; + static constexpr const char *PNG_A019_087_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_08.bin"; + static constexpr const char *PNG_A019_088_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_09.bin"; + static constexpr const char *PNG_A019_089_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_10.bin"; + static constexpr const char *PNG_A019_090_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_11.bin"; + static constexpr const char *PNG_A019_091_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_12.bin"; + static constexpr const char *PNG_A019_092_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_13.bin"; + static constexpr const char *PNG_A019_093_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_14.bin"; + static constexpr const char *PNG_A019_094_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_15.bin"; + static constexpr const char *PNG_A019_095_IMAGE_PATH = APP_RES_PATH "/BLUETOOTH_IMAGE_16.bin"; + static constexpr const char *PNG_BLUETOOTHEAR = APP_RES_PATH "/BLUETOOTHEAR.bin"; + /* --------------------------------- AppList -------------------------------- */ + static constexpr const char *PNG_APPLIST_ALARM_IMAGE = APP_RES_PATH "/APPLIST_ALARM.bin"; // 闹钟 + static constexpr const char *PNG_APPLIST_SPO2_IMAGE = APP_RES_PATH "/APPLIST_SPO2.bin"; // 血氧 + static constexpr const char *PNG_APPLIST_SETTING_IMAGE = APP_RES_PATH "/APPLIST_SETTING.bin"; // 设置 + static constexpr const char *PNG_APPLIST_CALLER_IMAGE = APP_RES_PATH "/APPLIST_CALLER_IMAGE.bin"; // 打电话 + static constexpr const char *PNG_APPLIST_COMPASS_IMAGE = APP_RES_PATH "/APPLIST_COMPASS_IMAGE.bin"; // 指南针 + static constexpr const char *PNG_APPLIST_WEATHER_IMAGE = APP_RES_PATH "/APPLIST_WEATHER_IMAGE.bin"; // 天气 + /* ---------------------------------- 快速训练 ---------------------------------- */ + static constexpr const char *PNG_TRAING_BOUTTONMORE_IMAGE = APP_RES_PATH "/Training/More.bin"; + static constexpr const char *PNG_TRAING_BUTTONGRONG_IMAGE = APP_RES_PATH "/Training/Bouttonground.bin"; + static constexpr const char *PNG_TRAING_BUTTONGRONG2_IMAGE = APP_RES_PATH "/Training/Buttonground2.bin"; + static constexpr const char *PNG_TRAING_RIDINGBIG_IMAGE = APP_RES_PATH "/Training/riding-big2.bin"; + static constexpr const char *PNG_TRAING_RUNNINGBIG_IMAGE = APP_RES_PATH "/Training/running-big.bin"; + static constexpr const char *PNG_TRAING_WALKINGBIG_IMAGE = APP_RES_PATH "/Training/walking-big.bin"; + /* ---------------------------------- 室内步行 ---------------------------------- */ + static constexpr const char *PNG_APPLIST_WALK_IMAGE = APP_RES_PATH "/APPLIST_WALK.bin"; // Applist图标 + static constexpr const char *PNG_WALK_BACK_GROUND = APP_RES_PATH "/WALK_BACK_GROUND.bin"; + static constexpr const char *PNG_WALK_IMAGE = APP_RES_PATH "/INDOORWALK.bin"; + static constexpr const char *PNG_AEROBIC_IMAGE = APP_RES_PATH "/AEROBIC.bin"; + static constexpr const char *PNG_ANAEROBIC_IMAGE = APP_RES_PATH "/ANAEROBIC.bin"; + static constexpr const char *PNG_OPTIONS_BOX1_IMAGE = APP_RES_PATH "/OPTIONS_BOX1.bin"; + static constexpr const char *PNG_OPTIONS_BOX2_IMAGE = APP_RES_PATH "/OPTIONS_BOX2.bin"; + static constexpr const char *PNG_OPTIONS_BOX3_IMAGE = APP_RES_PATH "/OPTIONS_BOX3.bin"; + static constexpr const char *PNG_OPTIONS_BOX4_IMAGE = APP_RES_PATH "/OPTIONS_BOX4.bin"; + static constexpr const char *PNG_WALK_TIME_IMAGE = APP_RES_PATH "/TIME_IMAGE.bin"; + static constexpr const char *PNG_WALK_DISTANCES_IMAGE = APP_RES_PATH "/DISTANCES_IMAGE.bin"; + static constexpr const char *PNG_WALK_HEART_IMAGE = APP_RES_PATH "/HEART_IMAGE.bin"; + static constexpr const char *PNG_WALK_SPEED_IMAGE = APP_RES_PATH "/SPEED_IMAGE.bin"; + static constexpr const char *PNG_WALK_STEPS_IMAGE = APP_RES_PATH "/STEPS_IMAGE.bin"; + /* ----------------------------------- 设置 ----------------------------------- */ + static constexpr const char *PNG_SETTINGS_DISPLAY_BRIGHTNESS = APP_RES_PATH "/settings/SETTINGS_DISPLAY_BRIGHTNESS.bin"; // 显示与亮度 + static constexpr const char *PNG_SETTINGS_BLUETOOTH = APP_RES_PATH "/settings/SETTINGS_BLUETOOTH.bin"; // 蓝牙 + static constexpr const char *PNG_SETTINGS_SOUND_VIBRATION = APP_RES_PATH "/settings/SETTINGS_SOUND_VIBRATION.bin"; // 声音与震动 + static constexpr const char *PNG_SETTINGS_SECONDARY_FUNCTION = APP_RES_PATH "/settings/SETTINGS_QUICK_ACCESS.bin"; // 辅助功能 + static constexpr const char *PNG_SETTINGS_SYSTEM = APP_RES_PATH "/settings/SETTINGS_SYSTEM.bin"; // 系统 + static constexpr const char *PNG_SETTINGS_SETTINGS_POWER_CONTROL = APP_RES_PATH "/settings/SETTINGS_POWER_CONTROL.bin"; // 关机和重启 + /* ---------------------------------- 消息中心 ---------------------------------- */ + static constexpr const char *PNG_Message_System = APP_RES_PATH "/message/system-icon.bin"; // 系统消息 + static constexpr const char *PNG_Message_Note = APP_RES_PATH "/message/message-icon.bin"; // 短信 + static constexpr const char *PNG_Message_Wechat = APP_RES_PATH "/message/WeChat-icon.bin"; // 微信消息 + static constexpr const char *PNG_Message_QQ = APP_RES_PATH "/message/QQ-icon.bin"; // QQ消息 + /* ---------------------------------- 通用图片 ---------------------------------- */ + static constexpr const char *PNG_CHECKBOX_OFF_IMAGE = APP_RES_PATH "/CHECKBOX_OFF.bin"; // checkbox未选中图片 + static constexpr const char *PNG_CHECKBOX_ON_IMAGE = APP_RES_PATH "/CHECKBOX_ON.bin"; // checkbox选中图片 + static constexpr const char *PNG_SETTING_NEXT_IMAGE = APP_RES_PATH "/SETTING_NEXT.bin"; // 箭头图片 + static constexpr const char *PNG_SETTING_BACKGROUND_IMAGE = APP_RES_PATH "/SETTING_BACKGROUND.bin"; // 按钮的背景图片 + static constexpr const char *PNG_VOLUME_CONTROL_VECTOR = APP_RES_PATH "/VolumeControlVector.bin"; // 调节音量图片 + static constexpr const char *PNG_BRIGHTNESS_CONTROL_VECTOR = APP_RES_PATH "/BringhtnessContuolVector.bin"; // 调节亮度图片 + static constexpr const char *PNG_SYSTEM_CHECK_ON_IMAGE = APP_RES_PATH "/SYSTEM_CheckOn.bin"; // 勾 + static constexpr const char *PNG_SYSTEM_CHECK_OFF_IMAGE = APP_RES_PATH "/SYSTEM_CheckOff.bin"; // 叉 + static constexpr const char *PNG_TOGGLEBUTTON_OFF_IMAGE = APP_RES_PATH "/TOGGLEBUTTON_OFF.bin"; // togglebuttton未选中图片 + static constexpr const char *PNG_TOGGLEBUTTON_ON_IMAGE = APP_RES_PATH "/TOGGLEBUTTON_ON.bin"; // togglebuttton选中图片 + static constexpr const char *PNG_SYSTEM_VOLUME_IMAGE = APP_RES_PATH "/SYSTEM_VOLUME.bin"; // 系统音量 + static constexpr const char *PNG_CALL_VOLUME_IMAGE = APP_RES_PATH "/CALL_VOLUME.bin"; // 通话音量 + static constexpr const char *PNG_MEDIA_VOLUME_IMAGE = APP_RES_PATH "/MEDIA_VOLUME.bin"; // 媒体音量 + static constexpr const char *PNG_ORANGE_ATTENTION_VECTOR_IMAGE = APP_RES_PATH "/OrangeAttentionVector.bin"; // 橘黄色感叹号图标 + static constexpr const char *PNG_ANIMATOR1_IMAGE = APP_RES_PATH "/Record/animator1.bin"; + static constexpr const char *PNG_ANIMATOR2_IMAGE = APP_RES_PATH "/Record/animator2.bin"; + /* -------------------------------- 已删除的不必要图片 ------------------------------- */ + static constexpr const char *PNG_APPLIST_UI_SAMPLE_IMAGE = APP_RES_PATH "/APPLIST_UI_SAMPLE.bin"; // Applist图标 + static constexpr const char *PNG_APPLIST_TEMP_IMAGE = APP_RES_PATH "/TEMP_IMAGE.bin"; + static constexpr const char *TEMP_MEASURE = APP_RES_PATH "/TEMP_MEASURE.bin"; + static constexpr const char *TEMP_UP_DROP = APP_RES_PATH "/TEMP_UP_DROP.bin"; + static constexpr const char *TEMP_EXIT = APP_RES_PATH "/TEMP_EXIT.bin"; + static constexpr const char *TEMP_ROTATE = APP_RES_PATH "/TEMP_ROTATE.bin"; + static constexpr const char *TEMP_ICON_ENTER = APP_RES_PATH "/TEMP_ICON_ENTER.bin"; + static constexpr const char *TEMP_BACKGROUND = APP_RES_PATH "/TEMP_BACKGROUND.bin"; + static constexpr const char *TEMP_WARN = APP_RES_PATH "/TEMP_WARN.bin"; + static constexpr const char *TEMP_LITTLE_MEASURE = APP_RES_PATH "/TEMP_LITTLE_MEASURE.bin"; + static constexpr const char *TEMP_HOT = APP_RES_PATH "/TEMP_HOT.bin"; + static constexpr const char *TEMP_COLD = APP_RES_PATH "/TEMP_COLD.bin"; + static constexpr const char *TEMP_LIT_TIP = APP_RES_PATH "/TEMP_LIT_TIP.bin"; + static constexpr const char *TEMP_ABOUT_STUDY = APP_RES_PATH "/TEMP_ABOUT_STUDY.bin"; + static constexpr const char *TEMP_TRUE = APP_RES_PATH "/TEMP_TRUE.bin"; + static constexpr const char *TEMP_DELETE = APP_RES_PATH "/TEMP_DELETE.bin"; + static constexpr const char *TEMP_WAITING = APP_RES_PATH "/TEMP_WAITING.bin"; + static constexpr const char *TEMP_REPORT = APP_RES_PATH "/TEMP_REPORT.bin"; + static constexpr const char *TEMP_POINT = APP_RES_PATH "/TEMP_POINT.bin"; + static constexpr const char *TEMP_REV_POINTER = APP_RES_PATH "/TEMP_REV_POINTER.bin"; + static constexpr const char *PNG_MAIN_FACE_IMAGE = APP_RES_PATH "/MAIN_FACE_IMAGE.bin"; + static constexpr const char *B024_009_IMAGE_PATH = APP_RES_PATH "/HOURHAND.bin"; + static constexpr const char *B024_010_IMAGE_PATH = APP_RES_PATH "/SECONDHAND.bin"; + static constexpr const char *B024_011_IMAGE_PATH = APP_RES_PATH "/MINUTEHAND.bin"; + /* -------------------------------------------------------------------------- */ + static constexpr const char *PNG_NEW_WLAN_WIFI = APP_RES_PATH "/FULL_SIGNAL_OPEN.bin"; + static constexpr const char *FULL_SIGNAL_ENCRYPTION = APP_RES_PATH "/FULL_SIGNAL_ENCRYPTION.bin"; + /* ------------------------------- 不确定是否要删除的图片 ------------------------------ */ + static constexpr const char *COMPASS_CALIBRATE_IMAGE = APP_RES_PATH "/COMPASS_CALIBRATE_IMAGE.bin"; + static constexpr const char *PNG_STEP_SHOE_IMAGE_PATH = APP_RES_PATH "/SHOE_IMAGE.bin"; + static constexpr const char *PNG_SETTTING_BUTTON_IMAGE = APP_RES_PATH "/SETTTING_BUTTON.bin"; + static constexpr const char *PNG_REBOOT_BUTTON_IMAGE = APP_RES_PATH "/REBOOT_BUTTON.bin"; + static constexpr const char *PNG_SHUTDOWN_BUTTON_IMAGE = APP_RES_PATH "/SHUTDOWN_BUTTON.bin"; + static constexpr const char *PNG_SETTTING_REBOOT_IMAGE = APP_RES_PATH "/SETTTING_REBOOT.bin"; + static constexpr const char *PNG_SETTTING_SHUTDOWN_IMAGE = APP_RES_PATH "/SETTTING_SHUTDOWN.bin"; + static constexpr const char *PNG_CONNECT_PHONE_IMAGE = APP_RES_PATH "/CONNECT_PHONE.bin"; + static constexpr const char *PNG_BLUETOOTH_STITLE = APP_RES_PATH "/BLUETOOTH_TITLE.bin"; + static constexpr const char *PNG_NEW_DEVICE = APP_RES_PATH "/NEW_DEVICE.bin"; + static constexpr const char *PNG_BT_LIST = APP_RES_PATH "/BT_LIST.bin"; + static constexpr const char *PNG_SELECTION_BOX = APP_RES_PATH "/SELECTION_BOX.bin"; + static constexpr const char *PNG_GANTAN = APP_RES_PATH "/GANTAN.bin"; + static constexpr const char *PNG_RIGHT = APP_RES_PATH "/RIGHT.bin"; +} + +#endif // UI_CONFIG_H diff --cc code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp index b82253864,000000000..77a6b5ec7 mode 100644,000000..100644 --- a/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp +++ b/code/sdk/application/wearable/fd230app/nativelauncher/src/NativeLauncher.cpp @@@ -1,609 -1,0 +1,598 @@@ +/* + * Copyright (c) 2020-2021 CompanyNameMagicTag. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +#include "NativeLauncher.h" +#include "SliceProxy.h" +#include "AbilitySliceProxy.h" +#include "wearable_log.h" +#include "MainViewSample.h" +#include "MainPresenterSample.h" +#include "SettingView.h" +#include "SettingPresenter.h" +#include "ApplistView.h" +#include "ApplistPresenter.h" +#include "BloodOxygenView.h" +#include "BloodOxygenPresenter.h" +#include "CallerLogView.h" +#include "CallerLogPresenter.h" +#include "MainCallingView.h" +#include "MainCallingPresenter.h" +#include "ActivityPresenter.h" +#include "MainAlarmView.h" +#include "AlarmPresenter.h" +#include "AlarmPopUpPresenter.h" +#include "AlarmPopUpView.h" +#include "MainBluetoothView.h" +#include "BluetoothPresenter.h" +#include "PlayersModel.h" +#include "HealthModel.h" +#include "PresenterTask.h" +#include "MainCompassPresenter.h" +#include "MainCompassView.h" +#include "CallerLogModel.h" +#include "VocassistPresenter.h" +#include "MainVocassistView.h" +#include "VocassistModel.h" +#include "ConnectPhonePresenter.h" +#include "ConnectPhoneView.h" +#include "ScreenModels.h" +#include "TempMainView.h" +#include "TempPresenter.h" +#include "IndoorWalkPresenter.h" +#include "IndoorWalkView.h" +#include "RebootView.h" +#include "RebootPresenter.h" +#include "UISampleView.h" +#include "UISamplePresenter.h" + +#include "dial/include/DialPresenter.h" +#include "dial/include/DialView.h" ++#include "blood/include/BloodCardView.h" ++ + +#include "weather/include/MainWeatherPresenter.h" +#include "weather/include/MainWeatherView.h" +#include "weather/include/WeatherReportPresenter.h" +#include "weather/include/WeatherReportView.h" +#include "weather/include/FutureWeatherPresenter.h" +#include "weather/include/FutureWeatherView.h" +#include "weather/include/GetWeatherDataErrorPresenter.h" +#include "weather/include/GetWeatherDataErrorView.h" + +#include "system/include/SystemPresenter.h" +#include "system/include/SystemView.h" - #include "system/include/SystemFactoryResetPresenter.h" - #include "system/include/SystemFactoryResetView.h" + +#include "soundandvibration/include/SoundAndVibrationPresenter.h" +#include "soundandvibration/include/SoundAndVibrationView.h" +#include "soundandvibration/include/SystemVolumePresenter.h" +#include "soundandvibration/include/SystemVolumeView.h" + +#include "displaybrightness/include/DisplayBrightnessPresenter.h" +#include "displaybrightness/include/DisplayBrightnessView.h" +#include "displaybrightness/include/BrightnessControlPresenter.h" +#include "displaybrightness/include/BrightnessControlView.h" +#include "displaybrightness/include/ScreenDurationPresenter.h" +#include "displaybrightness/include/ScreenDurationView.h" + +#include "message/include/MessageAdapter.h" +#include "message/include/MessageView.h" +#include "message/include/MessageItemView.h" +#include "message/include/MessageModel.h" +#include "message/include/MessagePresenter.h" + +#include "secondaryfunction/include/SecondaryFunctionPresenter.h" +#include "secondaryfunction/include/SecondaryFunctionView.h" +#include "secondaryfunction/include/FastTrainingPresenter.h" +#include "secondaryfunction/include/FastTrainingView.h" +#include "secondaryfunction/include/FastTrainingAttentionPresenter.h" +#include "secondaryfunction/include/FastTrainingAttentionView.h" +#include "secondaryfunction/include/QuickAccessPresenter.h" +#include "secondaryfunction/include/QuickAccessView.h" + +#include "BluetoothHeadsetEvent.h" +#include "graphic_hardware_config.h" +#include "graphic_service.h" +#include "common/graphic_startup.h" + +namespace OHOS +{ + struct AppViewMapper + { + AppViewId id; + void (NativeLauncher::*func)(void); + }; + + struct ViewIdToString + { + AppViewId id; + char idForUikit[256]; + }; + + static const AppViewMapper SLICE_MAPPER[] = { + {VIEW_MAIN, &NativeLauncher::InitMainSampleSlice}, + {VIEW_SETTING, &NativeLauncher::InitSettingSlice}, + {VIEW_APPLIST, &NativeLauncher::InitApplistSlice}, + {VIEW_MAIN_ALARM, &NativeLauncher::InitMainAlarmSlice}, + {VIEW_ALARM_POP_UP, &NativeLauncher::InitAlarmPopUpSlice}, + {VIEW_BLUETOOTH_EARPHONE, &NativeLauncher::InitBluetoothSlice}, + {VIEW_CALLER_LOG, &NativeLauncher::InitMainCallerLogView}, + {VIEW_INCOMING_CALL, &NativeLauncher::InitMainMakePhoneView}, + {VIEW_BLOODOXY, &NativeLauncher::InitMainBloodOxyView}, + {VIEW_COMPASS, &NativeLauncher::InitCompassSlice}, + {VIEW_CONNECT_PHONE, &NativeLauncher::InitConnectPhoneSlice}, + {VIEW_INDOORWALK, &NativeLauncher::InitIndoorWalkSlice}, + {VIEW_SHUTDOWN_OR_REBOOT, &NativeLauncher::InitRebootSlice}, + {VIEW_DIAL, &NativeLauncher::InitDialSlice}, + {VIEW_WEATHER, &NativeLauncher::InitWeatherSlice}, // 天气 + {VIEW_WEATHER_REPORT, &NativeLauncher::InitWeatherReportSlice}, // 气象报告 + {VIEW_FUTURE_WEATHER, &NativeLauncher::InitFutureWeatherSlice}, // 未来天气 + {VIEW_GET_WEATHER_DATA_ERROR, &NativeLauncher::InitGetWeatherDataErrorSlice}, // 获取天气数据失败 + {VIEW_SYSTEM, &NativeLauncher::InitSystemSlice}, // 系统实例化地址 - {VIEW_SYSTEM_FACTORY_RESET, &NativeLauncher::InitSystemFactoryResetSlice}, // 系统:恢复出厂设置实例化地址 + {VIEW_SOUND_VIBRATION, &NativeLauncher::InitSoundAndVibrationSlice}, // 声音与震动实例化地址 + {VIEW_SYSTEM_VOLUME, &NativeLauncher::InitSystemVolumeSlice}, // 系统音量 + + {VIEW_DISPLAY_BRIGHTNESS, &NativeLauncher::InitUIDisplayBrightnessSlice}, // 显示与亮度的实例化地址 + {VIEW_BRIGHTNESS_CONTROL, &NativeLauncher::InitBrightnessControlSlice}, // 调节亮度的实例化地址 + {VIEW_SCREEN_DURATION, &NativeLauncher::InitScreenDurationSlice}, // 亮屏时长实例化地址 + + {VIEW_SECONDARY_FUNCTION, &NativeLauncher::InitSecondaryFunction}, + {VIEW_QUICK_ACCESS,&NativeLauncher::InitQuickAccessSlice}, //快速访问实例化地址 + {VIEW_FAST_TRAINING, &NativeLauncher::InitFastTrainingSlice}, + {VIEW_FAST_TRAINING_ATTENTION, &NativeLauncher::InitFastTrainingAttentionSlice}, + + {VIEW_MESSAGE, &NativeLauncher::InitMessageSlice}, + +#if 0 + {VIEW_MAIN_ACTIVITY, &NativeLauncher::InitActivitySlice}, + {VIEW_OFFLINEVOICE, &NativeLauncher::InitOfflineVoice}, + {VIEW_MAIN_TEMP, &NativeLauncher::InitMainTempSlice}, + {VIEW_UISAMPLE, &NativeLauncher::InitUISampleSlice} +#endif + }; + + static const ViewIdToString VIEW_MAPPER[] = { + {VIEW_MAIN, "mainView"}, + {VIEW_SETTING, "setting"}, + {VIEW_APPLIST, "applist"}, + {VIEW_MAIN_ALARM, "mainAlarmView"}, + {VIEW_ALARM_POP_UP, "alarmPopUpView"}, + {VIEW_BLUETOOTH_EARPHONE, "mainBluetoothView"}, + {VIEW_CALLER_LOG, "callerLogView"}, + {VIEW_INCOMING_CALL, "makePhoneView"}, + {VIEW_BLOODOXY, "bloodOxygenView"}, + {VIEW_COMPASS, "mainCompassView"}, + {VIEW_CONNECT_PHONE, "ConnectPhoneView"}, + {VIEW_INDOORWALK, "IndoorWalkView"}, + {VIEW_SHUTDOWN_OR_REBOOT, "RebootView"}}; + + NativeLauncher::NativeLauncher() {} + NativeLauncher::~NativeLauncher() {} + + NativeLauncher &NativeLauncher::GetInstance(void) + { + static NativeLauncher instance; + return instance; + } + + void NativeLauncher::InitNativeLauncher() + { + GraphicStartUp::InitFontEngine(MEM_POOL_UI_FONT, MEM_POOL_UI_FONT_SIZE, OHOS::VECTOR_FONT_DIR, DEFAULT_VECTOR_FONT_FILENAME); + WEARABLE_LOGI(WEARABLE_LOG_MODULE_LAUNCHER_FWK, "NativeLauncher::InitNativeLauncher"); + // 初始化所有预加载slice + InitBtHeadsetEvent(); // 蓝牙ct和tg适配初始化 + InitAllNativeSlices(); + CallerLogModel::GetInstance()->InitPhoneService(); + PresenterTask::GetInstance()->Init(); + PlayersModel::GetInstance()->AudioInit(); + ActivityModel::GetInstance()->Init(); + ScreenModels::GetInstance()->InitCardConfig(); + VocassistModel::GetInstance()->Init(); + HeartModel::GetInstance()->Init(); + BluetoothModel::GetInstance()->Init(); + // 初始化默认首页 + ScreenModels::GetInstance()->PreLoadAppimages(); + NativeAbility::GetInstance().SetDefaultSliceId(VIEW_MAIN); + } + + void NativeLauncher::InitAllNativeSlices(void) + { + uint16_t size = sizeof(SLICE_MAPPER) / sizeof(SLICE_MAPPER[0]); + for (int index = 0; index < size; index++) + { + if ((SLICE_MAPPER[index].id >= VIEW_MAX_INTER_APP)) + { + continue; + } + (this->*(SLICE_MAPPER[index].func))(); + } + return; + } + + void NativeLauncher::InitMainSampleSlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitMainSampleSlice"); + SliceProxy *mainViewSample = new AbilitySliceProxy; + if (mainViewSample == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainViewSample is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_MAIN, mainViewSample); + } + + void NativeLauncher::InitMainAlarmSlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitMainAlarmSlice"); + SliceProxy *mainAlarmView = new AbilitySliceProxy; + if (mainAlarmView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainAlarmView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_MAIN_ALARM, mainAlarmView); + } + + void NativeLauncher::InitMainTempSlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitMainTempSlice"); + SliceProxy *mainTempView = new AbilitySliceProxy; + if (mainTempView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainTempView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_MAIN_TEMP, mainTempView); + } + + void NativeLauncher::InitCompassSlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::MainCompassView"); + SliceProxy *mainCompassView = new AbilitySliceProxy; + if (mainCompassView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainCompassView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_COMPASS, mainCompassView); + } + + void NativeLauncher::InitIndoorWalkSlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::IndoorWalkView"); + SliceProxy *indoorWalkView = new AbilitySliceProxy; + if (indoorWalkView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "indoorWalkView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_INDOORWALK, indoorWalkView); + } + + void NativeLauncher::InitRebootSlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::RebootView"); + SliceProxy *rebootView = new AbilitySliceProxy; + if (rebootView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "rebootView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_SHUTDOWN_OR_REBOOT, rebootView); + } + + void NativeLauncher::InitConnectPhoneSlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::ConnectPhoneView"); + SliceProxy *connectPhoneView = new AbilitySliceProxy; + if (connectPhoneView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "connectPhoneView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_CONNECT_PHONE, connectPhoneView); + } + + void NativeLauncher::InitAlarmPopUpSlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitAlarmPopUpSlice"); + SliceProxy *alarmPopUpView = new AbilitySliceProxy; + if (alarmPopUpView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainAlarmView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_ALARM_POP_UP, alarmPopUpView); + } + + void NativeLauncher::InitMainBloodOxyView(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitMainBloodOxyView"); + SliceProxy *bloodOxygenView = new AbilitySliceProxy; + if (bloodOxygenView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bloodOxygenView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_BLOODOXY, bloodOxygenView); + } + + void NativeLauncher::InitMainMakePhoneView(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitMainMakePhoneView"); + SliceProxy *makePhoneView = new AbilitySliceProxy; + if (makePhoneView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "makePhoneView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_INCOMING_CALL, makePhoneView); + } + + void NativeLauncher::InitMainCallerLogView(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitMainCallerLogView"); + SliceProxy *callerLogView = new AbilitySliceProxy; + if (callerLogView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "callerLogView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_CALLER_LOG, callerLogView); + } + + void NativeLauncher::InitActivitySlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitWeekStepSlice"); + SliceProxy *mainActivityView = new AbilitySliceProxy; + if (mainActivityView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainActivityView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_MAIN_ACTIVITY, mainActivityView); + } + + void NativeLauncher::InitBluetoothSlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeAbility::InitBluetoothSlice"); + SliceProxy *mainBluetoothView = new AbilitySliceProxy; + if (mainBluetoothView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainBluetoothView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_BLUETOOTH_EARPHONE, mainBluetoothView); + } + + void NativeLauncher::InitSettingSlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitSettingSlice"); + SliceProxy *settingView = new AbilitySliceProxy; + if (settingView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "settingView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_SETTING, settingView); + } + + void NativeLauncher::InitApplistSlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitApplistSlice"); + SliceProxy *applistView = new AbilitySliceProxy; + if (applistView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "applistView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_APPLIST, applistView); + } + + void NativeLauncher::InitOfflineVoice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitOfflineVoice"); + SliceProxy *offlineVoiceView = new AbilitySliceProxy; + if (offlineVoiceView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "offlineVoiceView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_OFFLINEVOICE, offlineVoiceView); + } + + void NativeLauncher::InitUISampleSlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitUISampleSlice"); + SliceProxy *uisampleView = new AbilitySliceProxy; + if (uisampleView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uisampleView"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_UISAMPLE, uisampleView); + } + void NativeLauncher::InitDialSlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitDialSlice"); + SliceProxy *dialview = new AbilitySliceProxy; + if (dialview == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dialview"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_DIAL, dialview); + } + + void NativeLauncher::InitWeatherSlice(void) // 天气 + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitWeatherSlice"); + SliceProxy *mainweather = new AbilitySliceProxy; + if (mainweather == nullptr) + { + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_WEATHER, mainweather); + } + + void NativeLauncher::InitWeatherReportSlice(void) // 气象报告 + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitWeatherReportSlice"); + SliceProxy *weatherreport = new AbilitySliceProxy; + if (weatherreport == nullptr) + { + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_WEATHER_REPORT, weatherreport); + } + + void NativeLauncher::InitFutureWeatherSlice(void) // 未来天气 + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitFutureWeatherSlice"); + SliceProxy *futureweather = new AbilitySliceProxy; + if (futureweather == nullptr) + { + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_FUTURE_WEATHER, futureweather); + } + + void NativeLauncher::InitGetWeatherDataErrorSlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitGetWeatherDataErrorSlice"); + SliceProxy *getweatherdataerror = new AbilitySliceProxy; + if (getweatherdataerror == nullptr) + { + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_GET_WEATHER_DATA_ERROR, getweatherdataerror); + } + + void NativeLauncher::InitSystemSlice(void) // 系统 + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitSystemSlice"); + SliceProxy *system = new AbilitySliceProxy; + if (system == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "system is nullptr!"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_SYSTEM, system); + } + - void NativeLauncher::InitSystemFactoryResetSlice(void) // 系统:恢复出厂设置 - { - SliceProxy *systemfactoryreset = new AbilitySliceProxy; - if (systemfactoryreset == nullptr) - { - return; - } - NativeAbility::GetInstance().AddSliceProxy(VIEW_SYSTEM_FACTORY_RESET, systemfactoryreset); - } - + void NativeLauncher::InitMessageSlice(void) // 消息中心 + { + SliceProxy *messageview = new AbilitySliceProxy; + if (messageview == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MessageView is nullptr"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_MESSAGE, messageview); + } + + void NativeLauncher::InitSoundAndVibrationSlice(void) // 声音与震动 + { + SliceProxy *SoundAndVibration = new AbilitySliceProxy; + if (SoundAndVibration == nullptr) + { + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_SOUND_VIBRATION, SoundAndVibration); + } + + void NativeLauncher::InitSystemVolumeSlice(void) // 系统音量 + { + SliceProxy *systemvolume = new AbilitySliceProxy; + if (systemvolume == nullptr) + { + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_SYSTEM_VOLUME, systemvolume); + } + + // DisplayBrightness的实例化 + void NativeLauncher::InitUIDisplayBrightnessSlice(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitUISampleSlice"); + SliceProxy *uidisplaybrightnessView = new AbilitySliceProxy; + if (uidisplaybrightnessView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uidisplaybrightnessView"); + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_DISPLAY_BRIGHTNESS, uidisplaybrightnessView); + } + + void NativeLauncher::InitBrightnessControlSlice(void) + { + SliceProxy *brightnesscontrol = new AbilitySliceProxy; + if (brightnesscontrol == nullptr) + { + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_BRIGHTNESS_CONTROL, brightnesscontrol); + } + + void NativeLauncher::InitScreenDurationSlice(void) + { + SliceProxy *ScreenDuration = new AbilitySliceProxy; + if (ScreenDuration == nullptr) + { + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_SCREEN_DURATION, ScreenDuration); + } + + void NativeLauncher::InitSecondaryFunction(void) // 辅助功能 + { + SliceProxy *secondaryfunction = new AbilitySliceProxy; + if (secondaryfunction == nullptr) + { + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_SECONDARY_FUNCTION, secondaryfunction); + } + + void NativeLauncher::InitQuickAccessSlice(void) // 快速访问 + { + SliceProxy *QuickAccess = new AbilitySliceProxy; + if (QuickAccess == nullptr) + { + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_QUICK_ACCESS, QuickAccess); + } + + void NativeLauncher::InitFastTrainingSlice(void) + { + SliceProxy *fasttraining = new AbilitySliceProxy; + if (fasttraining == nullptr) + { + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_FAST_TRAINING, fasttraining); + } + + void NativeLauncher::InitFastTrainingAttentionSlice(void) + { + SliceProxy *fasttrainingattention = new AbilitySliceProxy; + if (fasttrainingattention == nullptr) + { + return; + } + NativeAbility::GetInstance().AddSliceProxy(VIEW_FAST_TRAINING_ATTENTION, fasttrainingattention); + } + +} diff --cc code/sdk/application/wearable/fd230app/nativeui/blood/include/BloodNoteView.h index 000000000,c54634d10..c54634d10 mode 000000,100644..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/blood/include/BloodNoteView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/blood/include/BloodNoteView.h diff --cc code/sdk/application/wearable/fd230app/nativeui/blood/include/BloodOxygenView.h index 000000000,a8d5095d0..a8d5095d0 mode 000000,100644..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/blood/include/BloodOxygenView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/blood/include/BloodOxygenView.h diff --cc code/sdk/application/wearable/fd230app/nativeui/blood/include/BloodPresenter.h index 000000000,e69de29bb..e69de29bb mode 000000,100644..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/blood/include/BloodPresenter.h +++ b/code/sdk/application/wearable/fd230app/nativeui/blood/include/BloodPresenter.h diff --cc code/sdk/application/wearable/fd230app/nativeui/blood/include/BloodTestView.h index 000000000,e69de29bb..e69de29bb mode 000000,100644..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/blood/include/BloodTestView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/blood/include/BloodTestView.h diff --cc code/sdk/application/wearable/fd230app/nativeui/blood/include/BloodWarnView.h index 000000000,e69de29bb..e69de29bb mode 000000,100644..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/blood/include/BloodWarnView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/blood/include/BloodWarnView.h diff --cc code/sdk/application/wearable/fd230app/nativeui/blood/src/BloodNoteView.cpp index 000000000,ecd217a2f..ecd217a2f mode 000000,100644..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/blood/src/BloodNoteView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/blood/src/BloodNoteView.cpp diff --cc code/sdk/application/wearable/fd230app/nativeui/blood/src/BloodOxygenView.cpp index 000000000,e69de29bb..e69de29bb mode 000000,100644..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/blood/src/BloodOxygenView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/blood/src/BloodOxygenView.cpp diff --cc code/sdk/application/wearable/fd230app/nativeui/blood/src/BloodPresenter.cpp index 000000000,be391576a..be391576a mode 000000,100644..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/blood/src/BloodPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/blood/src/BloodPresenter.cpp diff --cc code/sdk/application/wearable/fd230app/nativeui/blood/src/BloodTestView.cpp index 000000000,979cf2763..979cf2763 mode 000000,100644..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/blood/src/BloodTestView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/blood/src/BloodTestView.cpp diff --cc code/sdk/application/wearable/fd230app/nativeui/blood/src/BloodWarnView.cpp index 000000000,dace7812c..dace7812c mode 000000,100644..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/blood/src/BloodWarnView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/blood/src/BloodWarnView.cpp diff --cc code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodBandoffView.h index 874efe7a2,000000000..c9f0b3f28 mode 100644,000000..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodBandoffView.h +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/include/BloodBandoffView.h @@@ -1,38 -1,0 +1,53 @@@ ++/*** ++ * @Author: Caisking 3449750381@qq.com ++ * @Date: 2023-12-13 19:33:14 ++ * @LastEditors: Caisking 3449750381@qq.com ++ * @LastEditTime: 2024-01-26 18:24:46 ++ * @FilePath: /FD230/code/sdk/application/wearable/nativeapp/nativeui/bloodoxygen/include/BloodBandoffView.h ++ * @Description: ++ * @ ++ * @Copyright (c) 2024 by Caisking , All Rights Reserved. ++ */ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: bloodBandoff view + * Author: + * Create: 2021-08-01 + */ + +#ifndef BLOOD_BANDOFF_VIEW_H +#define BLOOD_BANDOFF_VIEW_H + +#include "components/ui_label.h" +#include "components/ui_view_group.h" +#include "components/ui_image_animator.h" ++#include "components/ui_button.h" ++#include "components/ui_label_button.h" +#include "BaseView.h" +#include "View.h" +#include "ohos_types.h" + - namespace OHOS { - class BloodBandoffView { - public: - BloodBandoffView(); - virtual ~BloodBandoffView(); ++namespace OHOS ++{ ++ class BloodBandoffView ++ { ++ public: ++ BloodBandoffView(); ++ virtual ~BloodBandoffView(); + - UIViewGroup *CreateUIViewGroup(); - static BloodBandoffView *GetInstance(void); ++ UIViewGroup *CreateUIViewGroup(); ++ static BloodBandoffView *GetInstance(void); + - UIViewGroup *GetBandoffViewGroup(); - UIImageAnimatorView *GetImageAnimator(); - private: - UILabel *label; - UIViewGroup *group; - UIImageView *imageView; - UIImageAnimatorView *imageAnimator; - }; - } ++ UIViewGroup *GetBandoffViewGroup(); ++ UIImageAnimatorView *GetImageAnimator(); + ++ private: ++ UILabel *label; ++ UILabelButton *testButton; ++ UIViewGroup *group; ++ UIImageView *imageView; ++ UIImageAnimatorView *imageAnimator; ++ }; ++} + - #endif // 血氧跳转界面 ++#endif // 血氧跳转界面 diff --cc code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/src/BloodBandoffView.cpp index f24fbd2ac,000000000..6fec8f0bd mode 100644,000000..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/src/BloodBandoffView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/src/BloodBandoffView.cpp @@@ -1,146 -1,0 +1,232 @@@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: bloodBandoff view + * Author: + * Create: 2021-08-01 + */ +#include "UiConfig.h" +#include "wearable_log.h" +#include "BloodBandoffView.h" +#include "BloodOxygenModel.h" + - namespace OHOS { - // 动态显示图片设置 - static constexpr uint16_t IMAGE_SIZE = 96; - static constexpr uint16_t IMAGE_POSITION_Y = 276; - static constexpr uint16_t IMAGE_POSITION_X = 179; - static constexpr uint16_t IMAGEANIMATOERVIEW_SIZE = 24; - static constexpr uint16_t IMAGEANIMATOERVIEW_SPEED = 40; - - // 标签设置 - static constexpr uint16_t LABEL_POSITION_X = 87; - static constexpr uint16_t LABEL_POSITION_Y = 200; - static constexpr uint16_t LABEL_POSITION_WIDTH = 288; - static constexpr uint16_t LABEL_POSITION_HEIGHT = 50; - - // 图片设置 - static constexpr uint16_t IMAGE_ENTER_POSITION_X = 131; - static constexpr uint16_t IMAGE_ENTER_POSITION_Y = 70; - - static constexpr uint16_t TITLE_LABEL_DEFAULT_HEIGHT = 30; - static constexpr uint16_t FONT_DEFAULT_SIZE = 25; - static constexpr uint16_t VIEW_DISTANCE_TO_LEFT_SIDE = 48; - static constexpr uint16_t TEXT_DISTANCE_TO_LEFT_SIDE = 50; - static constexpr uint16_t TEXT_DISTANCE_TO_TOP_SIDE = 11; - - static ImageAnimatorInfo g_imageAnimatorInfo_Time[IMAGEANIMATOERVIEW_SIZE] = { - {PNG_COUNTDOWN_TIME_IMAGE_0, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_1, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_2, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_3, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_4, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_5, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_6, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_7, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_8, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_9, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_10, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_11, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_12, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_13, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_14, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_15, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_16, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_17, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_18, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_19, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_20, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_21, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_22, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_COUNTDOWN_TIME_IMAGE_23, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - }; - static BloodBandoffView *g_pMainView = nullptr; - BloodBandoffView::BloodBandoffView() ++namespace OHOS +{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::BloodBandoffView"); - label = nullptr; - imageView = nullptr; - group = nullptr; - imageAnimator = nullptr; - g_pMainView = this; - } ++ // 动态显示图片设置 ++ static constexpr uint16_t IMAGE_SIZE = 180; ++ static constexpr uint16_t IMAGE_POSITION_Y = 134; ++ static constexpr uint16_t IMAGE_POSITION_X = 150; ++ static constexpr uint16_t IMAGEANIMATOERVIEW_SIZE = 90; ++ static constexpr uint16_t IMAGEANIMATOERVIEW_SPEED = 30; + - BloodBandoffView::~BloodBandoffView() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::~BloodBandoffView"); - group->RemoveAll(); - delete label; - delete imageView; - delete group; - delete imageAnimator; - label = nullptr; - imageView = nullptr; - group = nullptr; - imageAnimator = nullptr; - g_pMainView = nullptr; - } ++ // 标签设置 ++ static constexpr uint16_t LABEL_POSITION_X = 173; ++ static constexpr uint16_t LABEL_POSITION_Y = 52; ++ static constexpr uint16_t LABEL_POSITION_WIDTH = 120; ++ static constexpr uint16_t LABEL_POSITION_HEIGHT = 35; + - BloodBandoffView *BloodBandoffView::GetInstance(void) - { - return g_pMainView; - } ++ // 图片设置 ++ static constexpr uint16_t IMAGE_ENTER_POSITION_X = 131; ++ static constexpr uint16_t IMAGE_ENTER_POSITION_Y = 70; + - UIViewGroup *BloodBandoffView::GetBandoffViewGroup() - { - return group; - } ++ static constexpr uint16_t TITLE_LABEL_DEFAULT_HEIGHT = 30; ++ static constexpr uint16_t FONT_DEFAULT_SIZE = 30; ++ static constexpr uint16_t VIEW_DISTANCE_TO_LEFT_SIDE = 48; ++ static constexpr uint16_t TEXT_DISTANCE_TO_LEFT_SIDE = 50; ++ static constexpr uint16_t TEXT_DISTANCE_TO_TOP_SIDE = 11; + - UIImageAnimatorView *BloodBandoffView::GetImageAnimator() - { - return imageAnimator; - } ++ static ImageAnimatorInfo g_imageAnimatorInfo_Time[IMAGEANIMATOERVIEW_SIZE] = { ++ {PNG_COUNTDOWN_TIME_IMAGE_0, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_1, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_2, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_3, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_4, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_5, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_6, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_7, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_8, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_9, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_10, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_11, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_12, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_13, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_14, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_15, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_16, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_17, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_18, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_19, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_20, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_21, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_22, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_23, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_24, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_25, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_26, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_27, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_28, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_29, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_30, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_31, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_32, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_33, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_34, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_35, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_36, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_37, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_38, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_39, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_40, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_41, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_42, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_43, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_44, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_45, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_46, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_47, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_48, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_49, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_50, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_51, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_52, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_53, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_54, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_55, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_56, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_57, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_58, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_59, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_60, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_61, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_62, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_63, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_64, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_65, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_66, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_67, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_68, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_69, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_70, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_71, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_72, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_73, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_74, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_75, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_76, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_77, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_78, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_79, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_80, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_81, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_82, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_83, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_84, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_85, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_86, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_87, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_88, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_COUNTDOWN_TIME_IMAGE_89, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ }; ++ static BloodBandoffView *g_pMainView = nullptr; ++ BloodBandoffView::BloodBandoffView() ++ { ++ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::BloodBandoffView"); ++ label = nullptr; ++ imageView = nullptr; ++ group = nullptr; ++ imageAnimator = nullptr; ++ g_pMainView = this; ++ } + - UIViewGroup *BloodBandoffView::CreateUIViewGroup() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::CreateUIViewGroup"); - group = new UIViewGroup(); - if (group == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::new group fail"); - return nullptr; ++ BloodBandoffView::~BloodBandoffView() ++ { ++ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::~BloodBandoffView"); ++ group->RemoveAll(); ++ delete label; ++ delete imageView; ++ delete group; ++ delete imageAnimator; ++ label = nullptr; ++ imageView = nullptr; ++ group = nullptr; ++ imageAnimator = nullptr; ++ g_pMainView = nullptr; + } - group->SetPosition(0, 0); - group->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION); + - label = new UILabel(); - if (label == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::new Label fail"); - return nullptr; ++ BloodBandoffView *BloodBandoffView::GetInstance(void) ++ { ++ return g_pMainView; + } - group->Add(label); - label->SetPosition(LABEL_POSITION_X, LABEL_POSITION_Y, LABEL_POSITION_WIDTH, LABEL_POSITION_HEIGHT); - label->SetText("偏紧佩戴,保持静止"); - label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE); - label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); + - imageAnimator = new UIImageAnimatorView(); - if (imageAnimator == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::new UIImageAnimatorView fail"); - return nullptr; ++ UIViewGroup *BloodBandoffView::GetBandoffViewGroup() ++ { ++ return group; + } - imageAnimator->SetImageAnimatorSrc(g_imageAnimatorInfo_Time, IMAGEANIMATOERVIEW_SIZE, IMAGEANIMATOERVIEW_SPEED); - imageAnimator->Start(); - imageAnimator->SetRepeat(false); - group->Add(imageAnimator); + ++ UIImageAnimatorView *BloodBandoffView::GetImageAnimator() ++ { ++ return imageAnimator; ++ } ++ ++ UIViewGroup *BloodBandoffView::CreateUIViewGroup() ++ { ++ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::CreateUIViewGroup"); ++ group = new UIViewGroup(); ++ if (group == nullptr) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::new group fail"); ++ return nullptr; ++ } ++ group->SetPosition(0, 0); ++ group->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION); ++ ++ label = new UILabel(); ++ if (label == nullptr) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::new Label fail"); ++ return nullptr; ++ } ++ group->Add(label); ++ label->SetPosition(LABEL_POSITION_X, LABEL_POSITION_Y, LABEL_POSITION_WIDTH, LABEL_POSITION_HEIGHT); ++ label->SetText("正在检测"); ++ label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_DEFAULT_SIZE); ++ label->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER); ++ ++ imageAnimator = new UIImageAnimatorView(); ++ if (imageAnimator == nullptr) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::new UIImageAnimatorView fail"); ++ return nullptr; ++ } ++ imageAnimator->SetImageAnimatorSrc(g_imageAnimatorInfo_Time, IMAGEANIMATOERVIEW_SIZE, IMAGEANIMATOERVIEW_SPEED); ++ imageAnimator->Start(); ++ imageAnimator->SetRepeat(false); ++ group->Add(imageAnimator); ++ ++ if (testButton == nullptr) ++ { ++ testButton = new UILabelButton(); ++ } ++ testButton->SetPosition(118, 336); // widget's left position and top position ++ testButton->Resize(230, 80); // widget's width and height ++ testButton->SetViewId("labelButton"); // Set style ++ testButton->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919); ++ ++ // Set additional property ++ testButton->SetText("停止检测"); ++ testButton->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 26); ++ testButton->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED); ++ group->Add(testButton); ++ ++#if 0 + imageView = new UIImageView(); + if (imageView == nullptr) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodBandoffView::new UIImageView fail"); + return nullptr; + } + imageView->SetPosition(IMAGE_ENTER_POSITION_X, IMAGE_ENTER_POSITION_Y); // 30 : offset + imageView->SetSrc(PNG_BLOOD_ICON_ENTER); + group->Add(imageView); - - return group; - } ++#endif ++ return group; ++ } +} diff --cc code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/src/BloodOxygenPresenter.cpp index 676165c60,000000000..0949112c6 mode 100644,000000..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/src/BloodOxygenPresenter.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/src/BloodOxygenPresenter.cpp @@@ -1,151 -1,0 +1,151 @@@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: bloodOxygen view + * Author: + * Create: 2021-08-01 + */ + +#include "BloodOxygenPresenter.h" +#include "common/task_manager.h" +#include "BloodOxygenView.h" +#include "BloodOxygenModel.h" +#include "components/ui_label.h" +#include "BloodBandoffView.h" +#include "ChangeSliceListener.h" + +namespace OHOS { +static BloodOxygenPresenter *g_pMainView = nullptr; +static constexpr uint16_t PROGRESS_VALUE_MIN = 0; +static constexpr uint16_t PROGRESS_VALUE_MAX = 100; + +BloodOxygenPresenter::BloodOxygenPresenter() +{ + count = PROGRESS_VALUE_MAX; + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenPresenter::new BloodOxygenPresenter"); + g_pMainView = this; +} + +BloodOxygenPresenter::~BloodOxygenPresenter() +{ + g_pMainView = nullptr; +} + +BloodOxygenPresenter* BloodOxygenPresenter::GetInstance() +{ + return g_pMainView; +} + +void BloodOxygenPresenter::OnStart() +{ + Presenter::OnStart(); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenPresenter::On Start "); +} + +void BloodOxygenPresenter::OnPause(void) {} + +void BloodOxygenPresenter::OnResume(void) {} + +void BloodOxygenPresenter::OnStop(void) {} + +bool BloodOxygenPresenter::CheckPointersValue() +{ + if (BloodOxygenView::GetInstance() == nullptr) { + return false; + } + + if (BloodBandoffView::GetInstance() == nullptr) { + return false; + } + + if (BloodOxygenModel::GetInstance() == nullptr) { + return false; + } + return true; +} + + +bool BloodOxygenPresenter::OnDrag(UIView& view, const DragEvent& event) +{ + UNUSED(view); + if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT) { + BloodOxygenModel::GetInstance()->SetBloodOxygenViewStatus(false); + BloodOxygenView::GetInstance()->GetTestButton()->SetTouchable(true); + NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST); + } + return false; +} + + +bool BloodOxygenPresenter::OnClick(UIView& view, const ClickEvent& event) +{ + UNUSED(view); + UNUSED(event); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenPresenter::OnClick"); + if (CheckPointersValue() == false) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenPresenter::Pointers is empty"); + return false; + } + BloodOxygenView::GetInstance()->GetPercent()->SetText(""); + BloodOxygenView::GetInstance()->GetBloodOxygenGroup()->SetVisible(false); + BloodBandoffView::GetInstance()->GetBandoffViewGroup()->SetVisible(true); + BloodBandoffView::GetInstance()->GetImageAnimator()->Stop(); + BloodBandoffView::GetInstance()->GetImageAnimator()->SetRepeat(false); + BloodBandoffView::GetInstance()->GetImageAnimator()->Start(); + BloodOxygenModel::GetInstance()->SetBloodBandoffViewStatus(true); + BloodOxygenView::GetInstance()->GetTestButton()->SetTouchable(false); + return true; +} + +//增加按键事件 +bool BloodOxygenPresenter::OnKeyAct(UIView& view, const KeyEvent& event) +{ + WEARABLE_LOGD("","into the view is: %s\n", typeid(view).name()); + uint16 keyID = event.GetKeyId(); + WEARABLE_LOGD("","into key! keyID %u\n",keyID); + //如果是power键就返回上一级 + if (keyID == static_cast(ZliteKeyCode::ZLITE_KEY_POWER)) + { - uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId(); ++ //uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId(); + NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST); + } + return true; +} +void BloodOxygenPresenter::ProgressNotify(void) +{ + if (CheckPointersValue() == false) { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenPresenter::Pointers is empty"); + return; + } + + if (BloodOxygenModel::GetInstance()->GetBloodOxygenViewStatus() == true) { + count--; + BloodOxygenView::GetInstance()->GetCircleProgress()->SetValue(count); + if (count == PROGRESS_VALUE_MIN) { + BloodOxygenView::GetInstance()->GetPercent()->SetText("98%"); + BloodOxygenModel::GetInstance()->SetBloodOxygenViewStatus(false); + count = PROGRESS_VALUE_MAX; + BloodOxygenView::GetInstance()->GetCircleProgress()->SetValue(count); + BloodOxygenView::GetInstance()->GetTestButton()->SetTouchable(true); + } + } +} + +void BloodOxygenPresenter::ReturnInterface() +{ + if (BloodOxygenModel::GetInstance()->GetBloodBandoffViewStatus() == true) { + if (BloodBandoffView::GetInstance()->GetImageAnimator()->GetState() == false) { + BloodOxygenModel::GetInstance()->SetBloodBandoffViewStatus(false); + BloodOxygenModel::GetInstance()->SetBloodOxygenViewStatus(true); + + BloodBandoffView::GetInstance()->GetBandoffViewGroup()->SetVisible(false); + BloodOxygenView::GetInstance()->GetBloodOxygenGroup()->SetVisible(true); + } + } +} + +void BloodOxygenPresenter::Notify(void) +{ + ProgressNotify(); + ReturnInterface(); +} +} diff --cc code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/src/BloodOxygenView.cpp index c088ef0e8,000000000..064601917 mode 100644,000000..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/src/BloodOxygenView.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/bloodoxygen/src/BloodOxygenView.cpp @@@ -1,399 -1,0 +1,417 @@@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: bloodOxygen view + * Author: + * Create: 2021-08-01 + */ + +#include "BloodOxygenView.h" +#include "BloodOxygenModel.h" + - namespace OHOS { - // 按钮设置 - static constexpr uint16_t TESTBUTTON_ZERO = 0; - static constexpr uint16_t TESTBUTTON_X = 167; - static constexpr uint16_t TESTBUTTON_Y = 360; - - // 进度条参数设置 - static constexpr uint16_t CIRCLE_PROGRESS_VALUE = 100; - static constexpr uint16_t CIRCLE_PROGRESS_RADIUS = 43; - static constexpr uint16_t CIRCLE_PROGRESS_STARTANGLE = 360; - static constexpr uint16_t CIRCLE_PROGRESS_ENDANGLE = 0; - static constexpr uint16_t CIRCLE_PROGRESS_WIDTH = 10; - static constexpr uint16_t CIRCLE_PROGRESS_POSITION_X = 10; - static constexpr uint16_t CIRCLE_PROGRESS_POSITION_Y = 10; - static constexpr uint16_t CIRCLE_PROGRESS_CENTER_X = 195; - static constexpr uint16_t CIRCLE_PROGRESS_CENTER_Y = 37; - static constexpr uint16_t CIRCLE_PROGRESS_POSITION_WIDTH = 275; - static constexpr uint16_t CIRCLE_PROGRESS_POSITION_HEIGHT = 130; - static constexpr uint16_t CIRCLE_PROGRESS_LEFT = 10; - static constexpr uint16_t CIRCLE_PROGRESS_TOP = 5; - - // 动态刷新设置 - static constexpr uint16_t IMAGE_SIZE = 60; - static constexpr uint16_t IMAGE_POSITION_X = 186; - static constexpr uint16_t IMAGE_POSITION_Y = 23; - static constexpr uint16_t IMAGEANIMATORVIEW_SIZE = 31; - static constexpr uint16_t IMAGEANIMATORVIEW_SPEED = 40; - - // 血氧主图设置 - static constexpr uint16_t IMAGE_PROGRESS_POSITION_X = 176; - static constexpr uint16_t IMAGE_PROGRESS_POSITION_Y = 13; - - // 血氧%显示 - static constexpr uint16_t LABEL_PERCENT_POSITION_X = 258; - static constexpr uint16_t LABEL_PERCENT_POSITION_Y = 40; - - // 血氧柱状图 - static constexpr int16 VIEW_MAX_X = 415; - static constexpr int16 VIEW_MIN_X = 35; - static constexpr int16 VIEW_MAX_Y = 150; - static constexpr int16 VIEW_MIN_Y = 0; - static constexpr int16 VIEW_WIDTH = 7; - static constexpr int16 VIEW_HEIGHT = 300; - static constexpr uint16_t VIEW_BACKGROUND_OPA = 127; - static constexpr uint16_t VIEW_BORDER_RADIUS = 5; - static constexpr uint16_t BORDER_OPA = 127; - static constexpr uint16_t BORDER_WIDTH = 20; - - static constexpr uint16_t TITLE_LABEL_DEFAULT_HEIGHT = 30; - static constexpr uint16_t FONT_DEFAULT_SIZE = 20; - static constexpr uint16_t VIEW_DISTANCE_TO_LEFT_SIDE = 48; - static constexpr uint16_t TEXT_DISTANCE_TO_LEFT_SIDE = 50; - static constexpr uint16_t TEXT_DISTANCE_TO_TOP_SIDE = 11; - static constexpr uint16_t BUTTON_LABEL_SIZE = 40; - static constexpr uint8_t BUTTON_STYLE_BORDER_RADIUS_VALUE = 20; - static constexpr uint32 BUTTON_STYLE_BACKGROUND_COLOR_VALUE = 0xFFFFFF; - static constexpr uint16_t BUTTON_WIDHT2 = 120; - static constexpr uint16_t BUTTON_HEIGHT2 = 60; - - // 字体大小 - static constexpr uint16_t PERCENT_FONT_SIZE = 25; - - static constexpr uint16_t MATH_ZERO = 0; - - static BloodOxygenView *g_pMainView = nullptr; - static ImageAnimatorInfo g_imageAnimatorInfo_new[31] = { - {PNG_BLOOD_FLOW_IMAGE_0, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_1, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_2, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_3, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_4, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_5, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_6, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_7, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_8, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_9, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_10, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_11, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_12, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_13, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_14, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_15, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_16, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_17, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_18, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_19, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_20, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_21, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_22, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_23, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_24, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_25, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_26, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_27, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_28, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_29, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - {PNG_BLOOD_FLOW_IMAGE_30, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, - }; - - BloodOxygenView::BloodOxygenView() ++namespace OHOS +{ - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::BloodOxygenView"); - imageViewMain = nullptr; - imageViewProgress = nullptr; - group = nullptr; - percent = nullptr; - testButton = nullptr; - circleProgress = nullptr; - imageAnimator = nullptr; - g_pMainView = this; - bloodbandoff = new BloodBandoffView(); - if (bloodbandoff == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new BloodBandoffView fail"); ++ // 按钮设置 ++ static constexpr uint16_t TESTBUTTON_ZERO = 0; ++ static constexpr uint16_t TESTBUTTON_X = 118; ++ static constexpr uint16_t TESTBUTTON_Y = 336; ++ ++ // 进度条参数设置 ++ static constexpr uint16_t CIRCLE_PROGRESS_VALUE = 100; ++ static constexpr uint16_t CIRCLE_PROGRESS_RADIUS = 43; ++ static constexpr uint16_t CIRCLE_PROGRESS_STARTANGLE = 360; ++ static constexpr uint16_t CIRCLE_PROGRESS_ENDANGLE = 0; ++ static constexpr uint16_t CIRCLE_PROGRESS_WIDTH = 10; ++ static constexpr uint16_t CIRCLE_PROGRESS_POSITION_X = 10; ++ static constexpr uint16_t CIRCLE_PROGRESS_POSITION_Y = 10; ++ static constexpr uint16_t CIRCLE_PROGRESS_CENTER_X = 195; ++ static constexpr uint16_t CIRCLE_PROGRESS_CENTER_Y = 37; ++ static constexpr uint16_t CIRCLE_PROGRESS_POSITION_WIDTH = 275; ++ static constexpr uint16_t CIRCLE_PROGRESS_POSITION_HEIGHT = 130; ++ static constexpr uint16_t CIRCLE_PROGRESS_LEFT = 10; ++ static constexpr uint16_t CIRCLE_PROGRESS_TOP = 5; ++ ++ // 动态刷新设置 ++ static constexpr uint16_t IMAGE_SIZE = 60; ++ static constexpr uint16_t IMAGE_POSITION_X = 186; ++ static constexpr uint16_t IMAGE_POSITION_Y = 23; ++ static constexpr uint16_t IMAGEANIMATORVIEW_SIZE = 31; ++ static constexpr uint16_t IMAGEANIMATORVIEW_SPEED = 40; ++ ++ // 血氧主图设置 ++ static constexpr uint16_t IMAGE_PROGRESS_POSITION_X = 176; ++ static constexpr uint16_t IMAGE_PROGRESS_POSITION_Y = 13; ++ ++ // 血氧%显示 ++ static constexpr uint16_t LABEL_PERCENT_POSITION_X = 258; ++ static constexpr uint16_t LABEL_PERCENT_POSITION_Y = 40; ++ ++ // 血氧柱状图 ++ static constexpr int16 VIEW_MAX_X = 415; ++ static constexpr int16 VIEW_MIN_X = 35; ++ static constexpr int16 VIEW_MAX_Y = 150; ++ static constexpr int16 VIEW_MIN_Y = 0; ++ static constexpr int16 VIEW_WIDTH = 7; ++ static constexpr int16 VIEW_HEIGHT = 300; ++ static constexpr uint16_t VIEW_BACKGROUND_OPA = 127; ++ static constexpr uint16_t VIEW_BORDER_RADIUS = 5; ++ static constexpr uint16_t BORDER_OPA = 127; ++ static constexpr uint16_t BORDER_WIDTH = 20; ++ ++ static constexpr uint16_t TITLE_LABEL_DEFAULT_HEIGHT = 30; ++ static constexpr uint16_t FONT_DEFAULT_SIZE = 20; ++ static constexpr uint16_t VIEW_DISTANCE_TO_LEFT_SIDE = 48; ++ static constexpr uint16_t TEXT_DISTANCE_TO_LEFT_SIDE = 50; ++ static constexpr uint16_t TEXT_DISTANCE_TO_TOP_SIDE = 11; ++ static constexpr uint16_t BUTTON_LABEL_SIZE = 26; ++ static constexpr uint8_t BUTTON_STYLE_BORDER_RADIUS_VALUE = 20; ++ static constexpr uint32 BUTTON_STYLE_BACKGROUND_COLOR_VALUE = 0xff0b1928; ++ static constexpr uint16_t BUTTON_WIDHT2 = 230; ++ static constexpr uint16_t BUTTON_HEIGHT2 = 80; ++ ++ // 字体大小 ++ static constexpr uint16_t PERCENT_FONT_SIZE = 25; ++ ++ static constexpr uint16_t MATH_ZERO = 0; ++ ++ static BloodOxygenView *g_pMainView = nullptr; ++ static ImageAnimatorInfo g_imageAnimatorInfo_new[31] = { ++ {PNG_BLOOD_FLOW_IMAGE_0, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_1, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_2, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_3, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_4, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_5, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_6, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_7, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_8, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_9, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_10, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_11, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_12, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_13, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_14, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_15, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_16, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_17, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_18, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_19, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_20, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_21, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_22, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_23, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_24, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_25, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_26, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_27, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_28, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_29, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ {PNG_BLOOD_FLOW_IMAGE_30, {IMAGE_POSITION_X, IMAGE_POSITION_Y}, IMAGE_SIZE, IMAGE_SIZE, IMG_SRC_FILE_PATH}, ++ }; ++ ++ BloodOxygenView::BloodOxygenView() ++ { ++ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::BloodOxygenView"); ++ imageViewMain = nullptr; ++ imageViewProgress = nullptr; ++ group = nullptr; ++ percent = nullptr; ++ testButton = nullptr; ++ circleProgress = nullptr; ++ imageAnimator = nullptr; ++ g_pMainView = this; ++ bloodbandoff = new BloodBandoffView(); ++ if (bloodbandoff == nullptr) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new BloodBandoffView fail"); ++ } + } - } - - BloodOxygenView::~BloodOxygenView() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::~BloodOxygenView"); - group->RemoveAll(); - delete imageViewMain; - delete imageViewProgress; - delete group; - delete testButton; - delete percent; - delete circleProgress; - delete imageAnimator; - delete bloodbandoff; - imageViewMain = nullptr; - imageViewProgress = nullptr; - group = nullptr; - percent = nullptr; - testButton = nullptr; - circleProgress = nullptr; - imageAnimator = nullptr; - g_pMainView = nullptr; - bloodbandoff = nullptr; - } - - BloodOxygenView *BloodOxygenView::GetInstance(void) - { - return g_pMainView; - } - - UILabel *BloodOxygenView::GetPercent() - { - return percent; - } - - UIViewGroup *BloodOxygenView::GetBloodOxygenGroup() - { - return group; - } - - UILabelButton *BloodOxygenView::GetTestButton() - { - return testButton; - } + - UICircleProgress *BloodOxygenView::GetCircleProgress() - { - return circleProgress; - } - - UILabelButton *BloodOxygenView::CreateAndSetUIButton(const char *title) - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::CreateAndSetUIButton"); - UILabelButton* btn = new UILabelButton(); - if (btn == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new UILabelButton fail"); - return nullptr; ++ BloodOxygenView::~BloodOxygenView() ++ { ++ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::~BloodOxygenView"); ++ group->RemoveAll(); ++ delete imageViewMain; ++ delete imageViewProgress; ++ delete group; ++ delete testButton; ++ delete percent; ++ delete circleProgress; ++ delete imageAnimator; ++ delete bloodbandoff; ++ imageViewMain = nullptr; ++ imageViewProgress = nullptr; ++ group = nullptr; ++ percent = nullptr; ++ testButton = nullptr; ++ circleProgress = nullptr; ++ imageAnimator = nullptr; ++ g_pMainView = nullptr; ++ bloodbandoff = nullptr; + } - btn->SetPosition(TESTBUTTON_X, TESTBUTTON_Y, BUTTON_WIDHT2, BUTTON_HEIGHT2); - btn->SetText(title); - btn->SetTextColor(Color::Red()); - btn->SetFont(DEFAULT_VECTOR_FONT_FILENAME, BUTTON_LABEL_SIZE); - btn->SetAlign(TEXT_ALIGNMENT_CENTER); - btn->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::RELEASED); - btn->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::PRESSED); - btn->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::INACTIVE); - btn->SetStyleForState(STYLE_BACKGROUND_COLOR, BUTTON_STYLE_BACKGROUND_COLOR_VALUE, UIButton::RELEASED); - btn->SetStyleForState(STYLE_BACKGROUND_COLOR, BUTTON_STYLE_BACKGROUND_COLOR_VALUE, UIButton::PRESSED); - btn->SetStyleForState(STYLE_BACKGROUND_COLOR, BUTTON_STYLE_BACKGROUND_COLOR_VALUE, UIButton::INACTIVE); - UIView::OnClickListener* clickLeftListener = (UIView::OnClickListener*)OHOS::BloodOxygenPresenter::GetInstance(); - if (clickLeftListener == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new clickLeftListener fail"); - return nullptr; - } - btn->SetOnClickListener(clickLeftListener); - return btn; - } + - - bool BloodOxygenView::SetOnDragListener() - { - UIView::OnDragListener *dragListener = (UIView::OnDragListener*)OHOS::BloodOxygenPresenter::GetInstance(); - if (dragListener == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::OnDragListener fail"); - return false; ++ BloodOxygenView *BloodOxygenView::GetInstance(void) ++ { ++ return g_pMainView; + } - group->SetDraggable(true); - group->SetTouchable(true); - group->SetOnDragListener(dragListener); - return true; - } + - UIView *BloodOxygenView::CreateAndSetUIView(int16 x, int16 y) const - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::CreateAndSetUIView"); - UIView* view = new UIView(); - if (view == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new View fail"); - return nullptr; - } - if (x > VIEW_MAX_X || x < VIEW_MIN_X) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::X error"); - return nullptr; - } - if (y < VIEW_MIN_Y || y >VIEW_MAX_Y) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::Y error"); - return nullptr; ++ UILabel *BloodOxygenView::GetPercent() ++ { ++ return percent; + } - view->SetStyle(STYLE_BACKGROUND_COLOR, Color::Green().full); - view->SetStyle(STYLE_BACKGROUND_OPA, VIEW_BACKGROUND_OPA); // 127 : background opacity - view->SetStyle(STYLE_BORDER_RADIUS, VIEW_BORDER_RADIUS); // 5 : radius value - view->SetStyle(STYLE_BORDER_COLOR, Color::Gray().full); - view->SetStyle(STYLE_BORDER_OPA, BORDER_OPA); // 127 : border opacity - view->SetStyle(STYLE_BORDER_WIDTH, BORDER_WIDTH); // 20 : border width - view->SetStyle(STYLE_PADDING_LEFT, MATH_ZERO); - view->SetStyle(STYLE_PADDING_RIGHT, MATH_ZERO); - view->SetStyle(STYLE_PADDING_TOP, MATH_ZERO); - view->SetStyle(STYLE_PADDING_BOTTOM, MATH_ZERO); - view->SetStyle(STYLE_MARGIN_LEFT, MATH_ZERO); - view->SetStyle(STYLE_MARGIN_RIGHT, MATH_ZERO); - view->SetStyle(STYLE_MARGIN_TOP, MATH_ZERO); - view->SetStyle(STYLE_MARGIN_BOTTOM, MATH_ZERO); - - view->SetPosition(x, VIEW_HEIGHT - y); - view->SetStyle(STYLE_BORDER_WIDTH, MATH_ZERO); - view->SetStyle(STYLE_BORDER_RADIUS, MATH_ZERO); // 2 : half width 10 : offset - view->Resize(VIEW_WIDTH, y); - return view; - } + - UICircleProgress *BloodOxygenView::CreateAndSetUICircleProgress() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::CreateAndSetUICircleProgress"); - UICircleProgress *circle = new UICircleProgress(); - circle->SetPosition(CIRCLE_PROGRESS_POSITION_X, CIRCLE_PROGRESS_POSITION_Y, - CIRCLE_PROGRESS_POSITION_WIDTH, CIRCLE_PROGRESS_POSITION_HEIGHT); - circle->SetCenterPosition(CIRCLE_PROGRESS_CENTER_X, CIRCLE_PROGRESS_CENTER_Y); - circle->SetRadius(CIRCLE_PROGRESS_RADIUS); - circle->SetValue(CIRCLE_PROGRESS_VALUE); - circle->SetBackgroundStyle(STYLE_LINE_WIDTH, - circle->GetBackgroundStyle(STYLE_LINE_WIDTH) + CIRCLE_PROGRESS_WIDTH); - circle->SetForegroundStyle(STYLE_LINE_WIDTH, - circle->GetForegroundStyle(STYLE_LINE_WIDTH) + CIRCLE_PROGRESS_WIDTH); - circle->SetStyle(STYLE_PADDING_LEFT, CIRCLE_PROGRESS_LEFT); - circle->SetStyle(STYLE_PADDING_TOP, CIRCLE_PROGRESS_TOP); - circle->SetStartAngle(CIRCLE_PROGRESS_STARTANGLE); - circle->SetEndAngle(CIRCLE_PROGRESS_ENDANGLE); - circle->SetImage(nullptr, PNG_PROGRESS_BAR_TMAGE); - circle->SetLineColor(Color::Black()); - - return circle; - } - - bool BloodOxygenView::InitImageDisplay() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::InitImageDisplay"); - imageViewMain = new UIImageView(); - if (imageViewMain == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new UIImageView fail"); - return false; - } - imageViewMain->SetPosition(MATH_ZERO, MATH_ZERO); // 30 : offset - imageViewMain->SetSrc(PNG_BLOODOXYGEN_IMAGE_PATH); - group->Add(imageViewMain); - - imageAnimator = new UIImageAnimatorView(); - if (imageAnimator == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new UIImageAnimatorView fail"); - return false; - } - imageAnimator->SetImageAnimatorSrc(g_imageAnimatorInfo_new, IMAGEANIMATORVIEW_SIZE, IMAGEANIMATORVIEW_SPEED); - imageAnimator->Start(); - imageAnimator->SetRepeat(true); - group->Add(imageAnimator); - - imageViewProgress = new UIImageView(); - if (imageViewProgress == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new UIImageView fail"); - return false; ++ UIViewGroup *BloodOxygenView::GetBloodOxygenGroup() ++ { ++ return group; + } - imageViewProgress->SetPosition(IMAGE_PROGRESS_POSITION_X, IMAGE_PROGRESS_POSITION_Y); // 30 : offset - imageViewProgress->SetSrc(PNG_PROGRESS_BAR_TMAGE); - group->Add(imageViewProgress); + - return true; - } ++ UILabelButton *BloodOxygenView::GetTestButton() ++ { ++ return testButton; ++ } + - void BloodOxygenView::OnStart() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::OnStart"); - View::OnStart(); ++ UICircleProgress *BloodOxygenView::GetCircleProgress() ++ { ++ return circleProgress; ++ } + ++ UILabelButton *BloodOxygenView::CreateAndSetUIButton(const char *title) ++ { ++ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::CreateAndSetUIButton"); ++ UILabelButton *btn = new UILabelButton(); ++ if (btn == nullptr) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new UILabelButton fail"); ++ return nullptr; ++ } ++ btn->SetPosition(TESTBUTTON_X, TESTBUTTON_Y, BUTTON_WIDHT2, BUTTON_HEIGHT2); ++ btn->SetText(title); ++ btn->SetTextColor(Color::White()); ++ btn->SetFont(DEFAULT_VECTOR_FONT_FILENAME, BUTTON_LABEL_SIZE); ++ btn->SetAlign(TEXT_ALIGNMENT_CENTER); ++ btn->SetStyle(STYLE_BACKGROUND_COLOR, 0xffCD492C); ++ btn->SetStyleForState(STYLE_BACKGROUND_COLOR, BUTTON_STYLE_BACKGROUND_COLOR_VALUE, UIButton::INACTIVE); ++#if 0 ++ btn->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::RELEASED); ++ btn->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::PRESSED); ++ btn->SetStyleForState(STYLE_BORDER_RADIUS, BUTTON_STYLE_BORDER_RADIUS_VALUE, UIButton::INACTIVE); ++ btn->SetStyleForState(STYLE_BACKGROUND_COLOR, BUTTON_STYLE_BACKGROUND_COLOR_VALUE, UIButton::RELEASED); ++ btn->SetStyleForState(STYLE_BACKGROUND_COLOR, BUTTON_STYLE_BACKGROUND_COLOR_VALUE, UIButton::PRESSED); ++#endif ++ UIView::OnClickListener *clickLeftListener = (UIView::OnClickListener *)OHOS::BloodOxygenPresenter::GetInstance(); ++ if (clickLeftListener == nullptr) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new clickLeftListener fail"); ++ return nullptr; ++ } ++ btn->SetOnClickListener(clickLeftListener); ++ return btn; ++ } + - group = new UIViewGroup(); - if (group == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new group fail"); - return; ++ bool BloodOxygenView::SetOnDragListener() ++ { ++ UIView::OnDragListener *dragListener = (UIView::OnDragListener *)OHOS::BloodOxygenPresenter::GetInstance(); ++ if (dragListener == nullptr) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::OnDragListener fail"); ++ return false; ++ } ++ group->SetDraggable(true); ++ group->SetTouchable(true); ++ group->SetOnDragListener(dragListener); ++ return true; + } - group->SetPosition(MATH_ZERO, MATH_ZERO); - group->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION); + - //增加按键监听 - RootView::OnKeyActListener*keyactListener = (RootView::OnKeyActListener*)OHOS::BloodOxygenPresenter::GetInstance(); - RootView::GetInstance()->SetOnKeyActListener(keyactListener); ++ UIView *BloodOxygenView::CreateAndSetUIView(int16 x, int16 y) const ++ { ++ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::CreateAndSetUIView"); ++ UIView *view = new UIView(); ++ if (view == nullptr) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new View fail"); ++ return nullptr; ++ } ++ if (x > VIEW_MAX_X || x < VIEW_MIN_X) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::X error"); ++ return nullptr; ++ } ++ if (y < VIEW_MIN_Y || y > VIEW_MAX_Y) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::Y error"); ++ return nullptr; ++ } ++ view->SetStyle(STYLE_BACKGROUND_COLOR, Color::Green().full); ++ view->SetStyle(STYLE_BACKGROUND_OPA, VIEW_BACKGROUND_OPA); // 127 : background opacity ++ view->SetStyle(STYLE_BORDER_RADIUS, VIEW_BORDER_RADIUS); // 5 : radius value ++ view->SetStyle(STYLE_BORDER_COLOR, Color::Gray().full); ++ view->SetStyle(STYLE_BORDER_OPA, BORDER_OPA); // 127 : border opacity ++ view->SetStyle(STYLE_BORDER_WIDTH, BORDER_WIDTH); // 20 : border width ++ view->SetStyle(STYLE_PADDING_LEFT, MATH_ZERO); ++ view->SetStyle(STYLE_PADDING_RIGHT, MATH_ZERO); ++ view->SetStyle(STYLE_PADDING_TOP, MATH_ZERO); ++ view->SetStyle(STYLE_PADDING_BOTTOM, MATH_ZERO); ++ view->SetStyle(STYLE_MARGIN_LEFT, MATH_ZERO); ++ view->SetStyle(STYLE_MARGIN_RIGHT, MATH_ZERO); ++ view->SetStyle(STYLE_MARGIN_TOP, MATH_ZERO); ++ view->SetStyle(STYLE_MARGIN_BOTTOM, MATH_ZERO); ++ ++ view->SetPosition(x, VIEW_HEIGHT - y); ++ view->SetStyle(STYLE_BORDER_WIDTH, MATH_ZERO); ++ view->SetStyle(STYLE_BORDER_RADIUS, MATH_ZERO); // 2 : half width 10 : offset ++ view->Resize(VIEW_WIDTH, y); ++ return view; ++ } + - if (InitImageDisplay() == false) { - return; ++ UICircleProgress *BloodOxygenView::CreateAndSetUICircleProgress() ++ { ++ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::CreateAndSetUICircleProgress"); ++ UICircleProgress *circle = new UICircleProgress(); ++ circle->SetPosition(CIRCLE_PROGRESS_POSITION_X, CIRCLE_PROGRESS_POSITION_Y, ++ CIRCLE_PROGRESS_POSITION_WIDTH, CIRCLE_PROGRESS_POSITION_HEIGHT); ++ circle->SetCenterPosition(CIRCLE_PROGRESS_CENTER_X, CIRCLE_PROGRESS_CENTER_Y); ++ circle->SetRadius(CIRCLE_PROGRESS_RADIUS); ++ circle->SetValue(CIRCLE_PROGRESS_VALUE); ++ circle->SetBackgroundStyle(STYLE_LINE_WIDTH, ++ circle->GetBackgroundStyle(STYLE_LINE_WIDTH) + CIRCLE_PROGRESS_WIDTH); ++ circle->SetForegroundStyle(STYLE_LINE_WIDTH, ++ circle->GetForegroundStyle(STYLE_LINE_WIDTH) + CIRCLE_PROGRESS_WIDTH); ++ circle->SetStyle(STYLE_PADDING_LEFT, CIRCLE_PROGRESS_LEFT); ++ circle->SetStyle(STYLE_PADDING_TOP, CIRCLE_PROGRESS_TOP); ++ circle->SetStartAngle(CIRCLE_PROGRESS_STARTANGLE); ++ circle->SetEndAngle(CIRCLE_PROGRESS_ENDANGLE); ++ circle->SetImage(nullptr, PNG_PROGRESS_BAR_TMAGE); ++ circle->SetLineColor(Color::Black()); ++ ++ return circle; + } + - if (SetOnDragListener() == false) { - return; ++ bool BloodOxygenView::InitImageDisplay() ++ { ++ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::InitImageDisplay"); ++ imageViewMain = new UIImageView(); ++ if (imageViewMain == nullptr) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new UIImageView fail"); ++ return false; ++ } ++ imageViewMain->SetPosition(MATH_ZERO, MATH_ZERO); // 30 : offset ++ imageViewMain->SetSrc(PNG_BLOODOXYGEN_IMAGE_PATH); ++ group->Add(imageViewMain); ++ ++ imageAnimator = new UIImageAnimatorView(); ++ if (imageAnimator == nullptr) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new UIImageAnimatorView fail"); ++ return false; ++ } ++ imageAnimator->SetImageAnimatorSrc(g_imageAnimatorInfo_new, IMAGEANIMATORVIEW_SIZE, IMAGEANIMATORVIEW_SPEED); ++ imageAnimator->Start(); ++ imageAnimator->SetRepeat(true); ++ group->Add(imageAnimator); ++ ++ imageViewProgress = new UIImageView(); ++ if (imageViewProgress == nullptr) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new UIImageView fail"); ++ return false; ++ } ++ imageViewProgress->SetPosition(IMAGE_PROGRESS_POSITION_X, IMAGE_PROGRESS_POSITION_Y); // 30 : offset ++ imageViewProgress->SetSrc(PNG_PROGRESS_BAR_TMAGE); ++ group->Add(imageViewProgress); ++ ++ return true; + } + - circleProgress = CreateAndSetUICircleProgress(); - if (circleProgress == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new circleProgress fail"); - return; ++ void BloodOxygenView::OnStart() ++ { ++ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::OnStart"); ++ View::OnStart(); ++ ++ group = new UIViewGroup(); ++ if (group == nullptr) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new group fail"); ++ return; ++ } ++ group->SetPosition(MATH_ZERO, MATH_ZERO); ++ group->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION); ++ ++ // 增加按键监听 ++ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::BloodOxygenPresenter::GetInstance(); ++ RootView::GetInstance()->SetOnKeyActListener(keyactListener); ++ ++ if (InitImageDisplay() == false) ++ { ++ return; ++ } ++ ++ if (SetOnDragListener() == false) ++ { ++ return; ++ } ++ ++ circleProgress = CreateAndSetUICircleProgress(); ++ if (circleProgress == nullptr) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new circleProgress fail"); ++ return; ++ } ++ group->Add(circleProgress); ++ ++ percent = new UILabel(); ++ if (percent == nullptr) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new Label fail"); ++ return; ++ } ++ percent->SetPosition(LABEL_PERCENT_POSITION_X, LABEL_PERCENT_POSITION_Y, ++ VIEW_DISTANCE_TO_LEFT_SIDE, TITLE_LABEL_DEFAULT_HEIGHT); ++ percent->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT); ++ percent->SetText("%97"); ++ percent->SetFont(DEFAULT_VECTOR_FONT_FILENAME, PERCENT_FONT_SIZE); ++ percent->SetTextColor(Color::White()); ++ group->Add(percent); ++ ++ testButton = CreateAndSetUIButton("开始检测"); ++ if (testButton == nullptr) ++ { ++ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new Button fail"); ++ return; ++ } ++ group->Add(testButton); ++ ++ if (OHOS::BloodOxygenModel::GetInstance()->GetBloodOxygenViewStatus() == true) ++ { ++ testButton->SetTouchable(false); ++ percent->SetText(""); ++ } ++ ++ BloodBandoffView::GetInstance()->CreateUIViewGroup(); ++ ++ RootView::GetInstance()->Add(group); ++ RootView::GetInstance()->Add(BloodBandoffView::GetInstance()->GetBandoffViewGroup()); ++ BloodBandoffView::GetInstance()->GetBandoffViewGroup()->SetVisible(false); + } - group->Add(circleProgress); + - percent = new UILabel(); - if (percent == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new Label fail"); - return; ++ void BloodOxygenView::OnSetUpView() ++ { ++ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::OnSetUpView"); ++ View::OnSetUpView(); ++ Draw(); + } - percent->SetPosition(LABEL_PERCENT_POSITION_X, LABEL_PERCENT_POSITION_Y, - VIEW_DISTANCE_TO_LEFT_SIDE, TITLE_LABEL_DEFAULT_HEIGHT); - percent->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT); - percent->SetText("%97"); - percent->SetFont(DEFAULT_VECTOR_FONT_FILENAME, PERCENT_FONT_SIZE); - percent->SetTextColor(Color::Red()); - group->Add(percent); - - testButton = CreateAndSetUIButton("测试"); - if (testButton == nullptr) { - WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::new Button fail"); ++ ++ void BloodOxygenView::OnTearDownView() ++ { ++ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::OnTearDownView"); ++ View::OnTearDownView(); + return; + } - group->Add(testButton); + - if (OHOS::BloodOxygenModel::GetInstance()->GetBloodOxygenViewStatus() == true) { - testButton->SetTouchable(false); - percent->SetText(""); ++ void BloodOxygenView::OnStop() ++ { ++ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::OnStop"); ++ View::OnStop(); ++ RootView::GetInstance()->RemoveAll(); ++ return; + } - - BloodBandoffView::GetInstance()->CreateUIViewGroup(); - - RootView::GetInstance()->Add(group); - RootView::GetInstance()->Add(BloodBandoffView::GetInstance()->GetBandoffViewGroup()); - BloodBandoffView::GetInstance()->GetBandoffViewGroup()->SetVisible(false); - } - - void BloodOxygenView::OnSetUpView() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::OnSetUpView"); - View::OnSetUpView(); - Draw(); - } - - - void BloodOxygenView::OnTearDownView() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::OnTearDownView"); - View::OnTearDownView(); - return; - } - - void BloodOxygenView::OnStop() - { - WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BloodOxygenView::OnStop"); - View::OnStop(); - RootView::GetInstance()->RemoveAll(); - return; - } +} diff --cc code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h index c1da733e2,000000000..52d572ab5 mode 100644,000000..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h +++ b/code/sdk/application/wearable/fd230app/nativeui/main/include/MainViewSample.h @@@ -1,109 -1,0 +1,109 @@@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: MainViewSample + * Author: + * Create: + */ + +#ifndef MAIN_VIEW_SAMPLE_H +#define MAIN_VIEW_SAMPLE_H + +#include +#include "View.h" +#include "window/window.h" +#include "components/root_view.h" +#include "swipe_effect/zoom_effect.h" +#include "BaseView.h" +#include "ChangeSliceListener.h" +#include "font/ui_font.h" +#include "graphic_config.h" +#include "ModelListenerSample.h" +#include "ScreenModels.h" +#include "ActivityWeekView.h" +#include "compass/include/CompassControlView.h" +#include "MainClockView.h" +#include "PlayersView.h" +#include "MainPresenterSample.h" +#include "HeartRateView.h" +#include "components/ui_card_page.h" +#include "PullUpDownView.h" +#include "components/ui_cross_view.h" +#include "dial/include/Digital_clockView.h" - #include "blood/include/BloodView.h" ++#include "blood/include/BloodCardView.h" +#include "traing/include/TraingView.h" +#include "ApplistCardView.h" +#include "weather/include/WeatherControlView.h" +#include "message/include/MessageCardView.h" +namespace OHOS +{ + class MainPresenterSample; + class MainViewSample : public View + { + public: + MainViewSample(); + virtual ~MainViewSample(); + static MainViewSample *GetInstance(void); + void OnStart() override; + void OnSetUpView() override; + void OnTearDownView() override; + void OnStop() override; + UICardPage *InitWatchFacePage(void); + UICardPage *InitHeartRatePage(void); + UICardPage *InitActivityPage(void); + UICardPage *InitCompassPage(void); + UICardPage *InitMusicPlayerPage(void); + UICardPage *InitBloodOxygenPage(void); + UICardPage *InitWeatherPage(void); + UICardPage *InitTrainingPage(void); + UICardPage *InitApplistPage(void); + void AnimatorStart(int pageIndex); + void AnimatorStop(void); + uint16_t GetHorCurrentPage() const + { + return mainSwipeGroup->GetCurrentPageId(UISwipeView::HORIZONTAL); // 0: horizontal; 1: vertical + } + + UIView *GetMainViewGroup(void) const + { + return mainSwipeGroup; + } + + bool IsMainView(void); + void SetDragFg(bool continFg); + bool GetDragFg(void); + + private: + int16_t maxPage{0}; + bool continuDragFg{false}; + PullUpDownView *dropDownView{nullptr}; + /* -------------------------------------------------------------------------- */ + MessageCardView *messageView{nullptr}; + UILabel *MessageLable = nullptr; + UIList *Messagelist = nullptr; + IconAdapter *list1adapter_ = nullptr; + List *Messagelistdate = nullptr; + /* -------------------------------------------------------------------------- */ + Digital_clockView *mainClockView{nullptr}; + ActivityWeekView *activityWeekView{nullptr}; + PlayersView *playersView{nullptr}; + CompassControlView *compassControlView{nullptr}; + HeartRateView *heartRateView{nullptr}; + Digital_clockView *dialView{nullptr}; - BloodView *bloodView{nullptr}; ++ BloodCardView *bloodView{nullptr}; + WeatherControlView *weatherControlView{nullptr}; + TraingView *traingView{nullptr}; + ApplistCardView *applistCardView{nullptr}; + /* -------------------------------------------------------------------------- */ + UICardPage *recordCard[MAX_CARD]{nullptr}; + bool pageStatus[MAX_CARD]{false}; + UICrossView *mainSwipeGroup{nullptr}; + ZoomEffect *callback{nullptr}; + + bool HorizontalViewInit(void); + void VerticalViewInit(void); + void VertViewLoad(void); + void HorViewLoad(void); + UICardPage *CreatePage(int32_t cardId); + }; +} // namespace OHOS +#endif // MAIN_VIEW_SAMPLE_H diff --cc code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp index b4d46fb23,000000000..a6a597352 mode 100644,000000..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/main/src/MainViewSample.cpp @@@ -1,521 -1,0 +1,523 @@@ +/* + * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved. + * Description: MainViewSample + * Author: + * Create: 2021-10-18 + */ +#include "wearable_log.h" +#include "MainViewSample.h" +#include "graphic_service.h" + +namespace OHOS +{ + + static MainViewSample *g_pMainView = nullptr; + static constexpr uint16_t MESLABLE_X_TMP = 177; + static constexpr uint16_t MESLABLE_Y_TMP = 212; + static constexpr uint16_t MESLABLE_WIDTH_TMP = 100; + static constexpr uint16_t MESLABLE_HEIGHT_TMP = 30; + static constexpr uint8_t FONT_SIZE_TMP = 24; + static constexpr uint8_t PULL_MIDDLE_VIEW_OPA = 0; + + struct MainViewMapper + { + CardId id; + UICardPage *(MainViewSample::*func)(void); + }; + + static const MainViewMapper PageMapper[] = { + {NEW_DAIL, &MainViewSample::InitWatchFacePage}, + {HEART_RATE, &MainViewSample::InitHeartRatePage}, + {BloodOxygen, &MainViewSample::InitBloodOxygenPage}, + {TRAINING, &MainViewSample::InitTrainingPage}, + {COMPASS, &MainViewSample::InitCompassPage}, + {WEATHER, &MainViewSample::InitWeatherPage}, + {PLAYER, &MainViewSample::InitMusicPlayerPage}, +#if 0 + {APPLIST,&MainViewSample::InitApplistPage} +#endif + }; + + MainViewSample::MainViewSample() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::MainViewSample"); + g_pMainView = this; + } + + MainViewSample::~MainViewSample() + { + dropDownView->ClearBackgroundBlur(); + messageView->ClearBackgroundBlur(); + + for (int32_t i = 0; i < maxPage; i++) + { + recordCard[i] = nullptr; + pageStatus[i] = false; + } + mainSwipeGroup->RemoveAll(); + /* -------------------------------------------------------------------------- */ +#if 0 + UIView *view = static_cast(MainViewSample::mainSwipeGroup)->GetChildrenHead(); + while (view != nullptr) + { + printf("delete\n"); + UIView *tempView = view; + view = view->GetNextSibling(); + if (tempView->GetParent()) + { + static_cast(tempView->GetParent())->Remove(tempView); + } + delete tempView; + } +#endif + /* -------------------------------------------------------------------------- */ + if (activityWeekView != nullptr) + { + delete activityWeekView; + activityWeekView = nullptr; + } + + if (playersView != nullptr) + { + delete playersView; + playersView = nullptr; + } + + if (heartRateView != nullptr) + { + delete heartRateView; + heartRateView = nullptr; + } + if (dropDownView != nullptr) + { + delete dropDownView; + dropDownView = nullptr; + } + /* -------------------------------------------------------------------------- */ + if (messageView != nullptr) + { + messageView->RemoveAll(); + delete messageView; + messageView = nullptr; + } + if (MessageLable != nullptr) + { + delete MessageLable; + MessageLable = nullptr; + } + if (Messagelist != nullptr) + { + delete Messagelist; + Messagelist = nullptr; + } + if (list1adapter_ != nullptr) + { + delete list1adapter_; + list1adapter_ = nullptr; + } + /* -------------------------------------------------------------------------- */ + if (compassControlView != nullptr) + { + delete compassControlView; + compassControlView = nullptr; + } + /* -------------------------------------------------------------------------- */ + if (mainClockView != nullptr) + { + // mainClockView->RemoveAll(); + delete mainClockView; + mainClockView = nullptr; + } + if (dialView != nullptr) + { + delete dialView; + dialView = nullptr; + } + if (bloodView != nullptr) + { + // bloodView->RemoveAll(); + delete bloodView; + bloodView = nullptr; + } + if (traingView != nullptr) + { + // traingView->RemoveAll(); + delete traingView; + traingView = nullptr; + } + if (applistCardView != nullptr) + { + delete applistCardView; + applistCardView = nullptr; + } + /* -------------------------------------------------------------------------- */ + if (mainSwipeGroup != nullptr) + { + delete mainSwipeGroup; + mainSwipeGroup = nullptr; + } + + g_pMainView = nullptr; + } + + MainViewSample *MainViewSample::GetInstance(void) + { + return g_pMainView; + } + + void MainViewSample::OnStart() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::OnStart"); + View::OnStart(); + BaseView::RootView(Color::Black().full); + + mainSwipeGroup = new UICrossView(); + if (mainSwipeGroup == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainSwipeGroup new fail"); + return; + } + + if (callback == nullptr) + { + callback = new ZoomEffect(); + if (callback == nullptr) + { + delete mainSwipeGroup; + mainSwipeGroup = nullptr; + GRAPHIC_LOGE("SwipeCallback new fail\n"); + return; + } + } + + HorizontalViewInit(); + HorViewLoad(); + VerticalViewInit(); + VertViewLoad(); + mainSwipeGroup->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + mainSwipeGroup->SetAnimatorTime(50); // 50: animator drag time(ms); + mainSwipeGroup->SetLoopState(true); + mainSwipeGroup->EnableScreenCap(true); + mainSwipeGroup->RegisterSwipeCallback(callback); + // 卡片切换 + mainSwipeGroup->SetHorCurrentPage(mainClockView->GetViewIndex()); + SetContainerView(mainSwipeGroup); + } + + bool MainViewSample::HorizontalViewInit(void) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::HorizontalViewInit"); + UISwipeView::OnSwipeListener *listener = nullptr; + + maxPage = ScreenModels::GetInstance()->GetMaxCard(); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::HorizontalViewInit1"); + + for (int16_t i = 0; i < maxPage; i++) + { + recordCard[i] = CreatePage(i); + if (recordCard[i] == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainViewSample:: recordCard %d error", i); + return false; + } + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample:: recordCard[%d]:%p", i, recordCard[i]); + } + + listener = static_cast(MainPresenterSample::GetInstance()); + if (listener == nullptr) + { + return false; + } + MainPresenterSample::GetInstance()->setCallback(callback); + mainSwipeGroup->SetOnSwipeListener(listener); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::InitPage over"); + return true; + } + + void MainViewSample::HorViewLoad(void) + { + for (int16_t i = 0; i < maxPage; i++) + { + mainSwipeGroup->HorAdd(recordCard[i]); + } + } + + void MainViewSample::VerticalViewInit(void) + { + dropDownView = new PullUpDownView(); + if (dropDownView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "dropDownView new fail"); + return; + } + dropDownView->PreLoad(); + dropDownView->SetViewId("dropDownView"); + dropDownView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + dropDownView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); +#if 1 + messageView = new MessageCardView(); + if (messageView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "messageView new fail"); + return; + } + if (MessageLable == nullptr) + { + MessageLable = new UILabel(); + } + MessageLable->SetPosition(173, 52, 120, 35); + MessageLable->Resize(120, 35); + MessageLable->SetStyle(STYLE_TEXT_FONT, 30); + MessageLable->SetStyle(STYLE_LINE_HEIGHT, 36); + MessageLable->SetText("信息通知"); + MessageLable->SetLineBreakMode(UILabel::LINE_BREAK_ELLIPSIS); + MessageLable->SetStyle(STYLE_TEXT_COLOR, Color::White().full); + MessageLable->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30); + messageView->Add(MessageLable); + /* -------------------------------------------------------------------------- */ - messageView->PreLoad(); ++ + messageView->SetViewId("messageView"); + messageView->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight()); + messageView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); ++ messageView->PreLoad(); + messageView->SetDraggable(false); ++ messageView->SetIntercept(true); +#endif +/* -------------------------------------------------------------------------- */ +#if 0 + messageView = new UICardPage(); + if (messageView == nullptr) + { + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "messageView new fail"); + return; + } + } + messageView->SetPosition(0, 0); + messageView->SetWidth(Screen::GetInstance().GetWidth()); + messageView->SetHeight(Screen::GetInstance().GetHeight()); + messageView->SetStyle(STYLE_BACKGROUND_OPA, OPA_TRANSPARENT); + messageView->SetViewId("messageView"); + messageView->SetTouchable(true); + messageView->SetIntercept(true); + MessageLable = new UILabel(); + if (MessageLable == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "messageLable new fail"); + return; + } + MessageLable->SetPosition(MESLABLE_X_TMP, MESLABLE_Y_TMP, MESLABLE_WIDTH_TMP, MESLABLE_HEIGHT_TMP); + MessageLable->SetText("无消息"); + MessageLable->SetAlign(TEXT_ALIGNMENT_CENTER); + MessageLable->SetFont(DEFAULT_VECTOR_FONT_FILENAME, FONT_SIZE_TMP); + MessageLable->SetStyle(STYLE_BACKGROUND_COLOR, OPA_TRANSPARENT); + messageView->Add(MessageLable); +#endif + } + + void MainViewSample::VertViewLoad(void) + { + mainSwipeGroup->VerAdd(dropDownView, UICrossView::VPage::UP_PAGE); + mainSwipeGroup->VerAdd(messageView, UICrossView::VPage::DOWN_PAGE); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::PullViewLoad::Pull View Load complete"); + } + + void MainViewSample::OnSetUpView() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::OnSetUpView"); + View::OnSetUpView(); + + // show timerView + Draw(); + } + + void MainViewSample::OnTearDownView() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::OnTearDownView"); + View::OnTearDownView(); + return; + } + + void MainViewSample::OnStop() + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::OnStop"); + View::OnStop(); + container_ = nullptr; + + messageView->RemoveAll(); + RootView::GetInstance()->ClearOnKeyActListener(); + RootView::GetInstance()->RemoveAll(); + return; + } + + UICardPage *MainViewSample::InitWatchFacePage(void) + { + mainClockView = new Digital_clockView(); + if (mainClockView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainClockView new fail"); + return nullptr; + } + return mainClockView; + } + + UICardPage *MainViewSample::InitHeartRatePage(void) + { + heartRateView = new HeartRateView(); + if (heartRateView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "heartRateView new fail"); + return nullptr; + } + return heartRateView; + } + + UICardPage *MainViewSample::InitActivityPage(void) + { + activityWeekView = new ActivityWeekView(); + if (activityWeekView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "activityWeekView new fail"); + return nullptr; + } + return activityWeekView; + } + // 主界面音乐界面 + UICardPage *MainViewSample::InitMusicPlayerPage(void) + { + playersView = new PlayersView(); + if (playersView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "playersView new fail"); + return nullptr; + } + return playersView; + } + // 主界面指南针卡片 + UICardPage *MainViewSample::InitCompassPage(void) + { + compassControlView = new CompassControlView(); + if (compassControlView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "compassControlView new fail"); + return nullptr; + } + return compassControlView; + } + // 主界面血氧卡片 + UICardPage *MainViewSample::InitBloodOxygenPage(void) + { - bloodView = new BloodView(); ++ bloodView = new BloodCardView(); + if (bloodView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BloodView new fail"); + return nullptr; + } + return bloodView; + } + // 主界面训练卡片 + UICardPage *MainViewSample::InitTrainingPage(void) + { + traingView = new TraingView(); + if (traingView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "traingView new fail"); + return nullptr; + } + return traingView; + } + + // 主界面天气卡片 + UICardPage *MainViewSample::InitWeatherPage(void) + { + weatherControlView = new WeatherControlView(); + if (weatherControlView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "mainweatherView new fail"); + return nullptr; + } + return weatherControlView; + } + + // 主界面功能列表界面 + UICardPage *MainViewSample::InitApplistPage(void) + { + applistCardView = new ApplistCardView(); + if (applistCardView == nullptr) + { + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "applistCardView new fail"); + return nullptr; + } + return applistCardView; + } + + UICardPage *MainViewSample::CreatePage(int32_t StreamId) + { + uint16_t i; + UICardPage *view = nullptr; + int32_t cardId = ScreenModels::GetInstance()->GetCardPage(StreamId); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CreatePage cardId:%d", cardId); + for (i = 0; i < sizeof(PageMapper) / sizeof(PageMapper[0]); i++) + { + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainViewSample::CreatePage PageMapper[i].id=%d, cardId=%d, StreamId=%d", PageMapper[i].id, cardId, StreamId); + //("MainViewSample::CreatePage PageMapper[i].id=%d, cardId=%d, StreamId=%d\n", PageMapper[i].id, cardId, StreamId); + if (PageMapper[i].id == cardId) + { + view = (this->*(PageMapper[i].func))(); + WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CreatePage view:%p", view); + return view; + } + } + + WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CreatePage view error!"); + return nullptr; + } + + void MainViewSample::AnimatorStart(int pageIndex) + { + if (heartRateView != nullptr && pageIndex == ScreenModels::GetInstance()->GetCardPage(HEART_RATE)) + { + heartRateView->HeartbeatImageAnimatorStart(); + } + if (dialView != nullptr && pageIndex == ScreenModels::GetInstance()->GetCardPage(NEW_DAIL)) + { + dialView->ClockAnimatorStart(); + } + } + + void MainViewSample::AnimatorStop(void) + { + if (heartRateView != nullptr) + { + heartRateView->HeartbeatImageAnimatorStop(); + } + if (dialView != nullptr) + { + dialView->ClockAnimatorStop(); + } + } + + bool MainViewSample::IsMainView(void) + { + + if (mainSwipeGroup->GetCurrentPageId(0) == ScreenModels::GetInstance()->GetCardPage(NEW_DAIL) && + mainSwipeGroup->GetCurrentPageId(1) == 1) + { // 0: horizontal; 1: vertical + return true; + } + else + { + return false; + } + } + + void MainViewSample::SetDragFg(bool continFg) + { + continuDragFg = continFg; + } + + bool MainViewSample::GetDragFg(void) + { + return continuDragFg; + } +} diff --cc code/sdk/application/wearable/fd230app/nativeui/system/include/SystemModel.h index 000000000,4715f7371..4715f7371 mode 000000,100644..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemModel.h +++ b/code/sdk/application/wearable/fd230app/nativeui/system/include/SystemModel.h diff --cc code/sdk/application/wearable/fd230app/nativeui/system/src/SystemModel.cpp index 000000000,8e77ce1da..8e77ce1da mode 000000,100644..100644 --- a/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemModel.cpp +++ b/code/sdk/application/wearable/fd230app/nativeui/system/src/SystemModel.cpp diff --cc code/sdk/interim_binary/brandy/libs/gpu/evb_recovery/libgpu.a index 916b39d71,000000000..bf49e5d8c mode 100644,000000..100644 Binary files differ diff --cc code/sdk/open_source/openharmony/base/startup/syspara_lite/src/hal_sys_param.c index 1e8e542b8,3bad1e86c..8e3265b94 --- a/code/sdk/open_source/openharmony/base/startup/syspara_lite/src/hal_sys_param.c +++ b/code/sdk/open_source/openharmony/base/startup/syspara_lite/src/hal_sys_param.c @@@ -1,338 -1,342 +1,338 @@@ - /* - * Copyright (c) 2020 Huawei Device Co., Ltd. - * Licensed under the Apache License, Version 2.0 (the "License"); - * you may not use this file except in compliance with the License. - * You may obtain a copy of the License at - * - * http://www.apache.org/licenses/LICENSE-2.0 - * - * Unless required by applicable law or agreed to in writing, software - * distributed under the License is distributed on an "AS IS" BASIS, - * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - * See the License for the specific language governing permissions and - * limitations under the License. - */ - - #include "parameter.h" - #include "param_adaptor.h" - #include "hal_sys_param.h" - #include "sysparam_errno.h" - #include "utils_file.h" - #include "ohos_errno.h" - #include - #include - - static const char OHOS_PRODUCT_TYPE[] = {"****"}; - static const char OHOS_MANUFACTURE[] = {"****"}; - static const char OHOS_BRAND[] = {"****"}; - static const char OHOS_MARKET_NAME[] = {"OpenHarmony 3.2"}; - static const char OHOS_PRODUCT_SERIES[] = {"****"}; - static const char OHOS_PRODUCT_MODEL[] = {"****"}; - static const char OHOS_SOFTWARE_MODEL[] = {"****"}; - static const char OHOS_HARDWARE_MODEL[] = {"****"}; - static const char OHOS_HARDWARE_PROFILE[] = {"aout:true,display:true"}; - static const char OHOS_BOOTLOADER_VERSION[] = {"bootloader"}; - static const char OHOS_SECURITY_PATCH_TAG[] = {"2023/03/01"}; - static const char OHOS_ABI_LIST[] = {"****"}; - static const char OHOS_SERIAL[] = {"1234567890"}; // provided by OEM. - const char g_roBuildOs[] = {"OpenHarmony"}; - const char g_roBuildVerShow[] = {"OpenHarmony 3.2.11.9"}; - const int g_roFirstApiLevel = 1; - const char INCREMENTAL_VERSION[] = {"version"}; - const char BUILD_TYPE[] = {"BUILD_TYPE"}; - const char BUILD_USER[] = {"BUILD_USER"}; - const char BUILD_HOST[] = {"BUILD_HOST"}; - const char BUILD_TIME[] = {"BUILD_TIME"}; - const char BUILD_ROOTHASH[] = {"BUILD_ROOTHASH"}; - - #define DATA_PATH "/user/res/" - #define MAX_KEY_PATH 128 - - static boolean IsValidChar(const char ch) - { - if (islower(ch) || isdigit(ch) || (ch == '_') || (ch == '.')) { - return TRUE; - } - return FALSE; - } - - static boolean IsValidValue(const char* value, unsigned int len) - { - if ((value == NULL) || (*value == '\0') || (strlen(value) >= len)) { - return FALSE; - } - return TRUE; - } - - static boolean IsValidKey(const char* key) - { - size_t keyLen = strlen(key); - if (!IsValidValue(key, MAX_KEY_LEN)) { - return FALSE; - } - if (key[0] == '.' || key[keyLen - 1] == '.') { - return FALSE; - } - - for (size_t i = 0; i < keyLen; i++) { - if (key[i] == '.') { - if (key[i - 1] == '.') { - return FALSE; - } - continue; - } - if (!IsValidChar(key[i])) { - return FALSE; - } - } - - return TRUE; - } - - int GetSysParam(const char* key, char* value, unsigned int len) - { - if (key == NULL || (value == NULL) || (len > MAX_GET_VALUE_LEN)) { - return EC_INVALID; - } - if (!IsValidKey(key)) { - return EC_FAILURE; - } - - unsigned int valueLen = 0; - char* keyPath = (char *)malloc(MAX_KEY_PATH + 1); - if (keyPath == NULL) { - return EC_FAILURE; - } - - if (sprintf_s(keyPath, MAX_KEY_PATH + 1, "%s%s", DATA_PATH, key) < 0) { - free(keyPath); - return EC_FAILURE; - } - - if (UtilsFileStat(keyPath, &valueLen) != EC_SUCCESS) { - return SYSPARAM_NOT_FOUND; - } - - if (valueLen >= len) { - return EC_INVALID; - } - - int fd = UtilsFileOpen(keyPath, O_RDONLY_FS, 0); - free(keyPath); - keyPath = NULL; - if (fd < 0) { - return EC_FAILURE; - } - - int ret = UtilsFileRead(fd, value, valueLen); - UtilsFileClose(fd); - fd = -1; - if (ret < 0) { - return EC_FAILURE; - } - value[valueLen] = '\0'; - - return valueLen; - } - - int SetSysParam(const char* key, const char* value) - { - if (!IsValidKey(key) || !IsValidValue(value, MAX_VALUE_LEN)) { - return EC_INVALID; - } - - char* keyPath = (char *)malloc(MAX_KEY_PATH + 1); - if (keyPath == NULL) { - return EC_FAILURE; - } - if (sprintf_s(keyPath, MAX_KEY_PATH + 1, "%s%s", DATA_PATH, key) < 0) { - free(keyPath); - return EC_FAILURE; - } - - int fd = UtilsFileOpen(keyPath, O_RDWR_FS | O_CREAT_FS | O_TRUNC_FS, 0); - free(keyPath); - keyPath = NULL; - if (fd < 0) { - return EC_FAILURE; - } - - int ret = UtilsFileWrite(fd, value, strlen(value)); - UtilsFileClose(fd); - fd = -1; - return (ret < 0) ? EC_FAILURE : EC_SUCCESS; - } - - char* HalGetProductType(void) - { - char* value = (char*)malloc(strlen(OHOS_PRODUCT_TYPE) + 1); - if (value == NULL) { - return NULL; - } - if (strcpy_s(value, strlen(OHOS_PRODUCT_TYPE) + 1, OHOS_PRODUCT_TYPE) != 0) { - free(value); - return NULL; - } - return value; - } - - char* HalGetManufacture(void) - { - char* value = (char*)malloc(strlen(OHOS_MANUFACTURE) + 1); - if (value == NULL) { - return NULL; - } - if (strcpy_s(value, strlen(OHOS_MANUFACTURE) + 1, OHOS_MANUFACTURE) != 0) { - free(value); - return NULL; - } - return value; - } - - char* HalGetBrand(void) - { - char* value = (char*)malloc(strlen(OHOS_BRAND) + 1); - if (value == NULL) { - return NULL; - } - if (strcpy_s(value, strlen(OHOS_BRAND) + 1, OHOS_BRAND) != 0) { - free(value); - return NULL; - } - return value; - } - - char* HalGetMarketName(void) - { - char* value = (char*)malloc(strlen(OHOS_MARKET_NAME) + 1); - if (value == NULL) { - return NULL; - } - if (strcpy_s(value, strlen(OHOS_MARKET_NAME) + 1, OHOS_MARKET_NAME) != 0) { - free(value); - return NULL; - } - return value; - } - - char* HalGetProductSeries(void) - { - char* value = (char*)malloc(strlen(OHOS_PRODUCT_SERIES) + 1); - if (value == NULL) { - return NULL; - } - if (strcpy_s(value, strlen(OHOS_PRODUCT_SERIES) + 1, OHOS_PRODUCT_SERIES) != 0) { - free(value); - return NULL; - } - return value; - } - - char* HalGetProductModel(void) - { - char* value = (char*)malloc(strlen(OHOS_PRODUCT_MODEL) + 1); - if (value == NULL) { - return NULL; - } - if (strcpy_s(value, strlen(OHOS_PRODUCT_MODEL) + 1, OHOS_PRODUCT_MODEL) != 0) { - free(value); - return NULL; - } - return value; - } - - char* HalGetSoftwareModel(void) - { - char* value = (char*)malloc(strlen(OHOS_SOFTWARE_MODEL) + 1); - if (value == NULL) { - return NULL; - } - if (strcpy_s(value, strlen(OHOS_SOFTWARE_MODEL) + 1, OHOS_SOFTWARE_MODEL) != 0) { - free(value); - return NULL; - } - return value; - } - - char* HalGetHardwareModel(void) - { - char* value = (char*)malloc(strlen(OHOS_HARDWARE_MODEL) + 1); - if (value == NULL) { - return NULL; - } - if (strcpy_s(value, strlen(OHOS_HARDWARE_MODEL) + 1, OHOS_HARDWARE_MODEL) != 0) { - free(value); - return NULL; - } - return value; - } - - char* HalGetHardwareProfile(void) - { - char* value = (char*)malloc(strlen(OHOS_HARDWARE_PROFILE) + 1); - if (value == NULL) { - return NULL; - } - if (strcpy_s(value, strlen(OHOS_HARDWARE_PROFILE) + 1, OHOS_HARDWARE_PROFILE) != 0) { - free(value); - return NULL; - } - return value; - } - - char* HalGetSerial(void) - { - char* value = (char*)malloc(strlen(OHOS_SERIAL) + 1); - if (value == NULL) { - return NULL; - } - if (strcpy_s(value, strlen(OHOS_SERIAL) + 1, OHOS_SERIAL) != 0) { - free(value); - return NULL; - } - return value; - } - - char* HalGetBootloaderVersion(void) - { - char* value = (char*)malloc(strlen(OHOS_BOOTLOADER_VERSION) + 1); - if (value == NULL) { - return NULL; - } - if (strcpy_s(value, strlen(OHOS_BOOTLOADER_VERSION) + 1, OHOS_BOOTLOADER_VERSION) != 0) { - free(value); - return NULL; - } - return value; - } - - char* HalGetSecurityPatchTag(void) - { - char* value = (char*)malloc(strlen(OHOS_SECURITY_PATCH_TAG) + 1); - if (value == NULL) { - return NULL; - } - if (strcpy_s(value, strlen(OHOS_SECURITY_PATCH_TAG) + 1, OHOS_SECURITY_PATCH_TAG) != 0) { - free(value); - return NULL; - } - return value; - } - - char* HalGetAbiList(void) - { - char* value = (char*)malloc(strlen(OHOS_ABI_LIST) + 1); - if (value == NULL) { - return NULL; - } - if (strcpy_s(value, strlen(OHOS_ABI_LIST) + 1, OHOS_ABI_LIST) != 0) { - free(value); - return NULL; - } - return value; - } - - int HalGetFirstApiVersion(void) - { - return g_roFirstApiLevel; - } + /* + * Copyright (c) 2020 Huawei Device Co., Ltd. + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + + #include "parameter.h" + #include "param_adaptor.h" + #include "hal_sys_param.h" + #include "sysparam_errno.h" + #include "utils_file.h" + #include "ohos_errno.h" + #include + #include + + static const char OHOS_PRODUCT_TYPE[] = {"litewearable"}; + static const char OHOS_MANUFACTURE[] = {"Tenxinbona"}; + static const char OHOS_BRAND[] = {"KUMI"}; + static const char OHOS_MARKET_NAME[] = {"KUMI WATCH Soar"}; + static const char OHOS_PRODUCT_SERIES[] = {"KUMI WATCH Soar"}; + static const char OHOS_PRODUCT_MODEL[] = {"Watch Soar"}; + static const char OHOS_SOFTWARE_MODEL[] = {"1.0.0"}; + static const char OHOS_HARDWARE_MODEL[] = {"FD230V10"}; + static const char OHOS_HARDWARE_PROFILE[] = {"aout:true,display:true"}; + static const char OHOS_BOOTLOADER_VERSION[] = {"bootloader"}; + static const char OHOS_SECURITY_PATCH_TAG[] = {"2023/03/01"}; -static const char OHOS_ABI_LIST[] = {"riscv-liteos"}; ++static const char OHOS_ABI_LIST[] = {"****"}; + static const char OHOS_SERIAL[] = {"1234567890"}; // provided by OEM. -const char g_roBuildOs[] = {"OpenHarmony-3.2.11.9"}; -const char g_roBuildVerShow[] = {"1.0.0"}; ++const char g_roBuildOs[] = {"OpenHarmony"}; ++const char g_roBuildVerShow[] = {"OpenHarmony 3.2.11.9"}; + const int g_roFirstApiLevel = 1; + const char INCREMENTAL_VERSION[] = {"version"}; -const char BUILD_TYPE[] = {"release"}; -const char BUILD_USER[] = {"luozheng"}; -const char BUILD_HOST[] = {"linux"}; -const char BUILD_TIME[] = {"20240125"}; -const char BUILD_ROOTHASH[] = {"default"}; ++const char BUILD_TYPE[] = {"BUILD_TYPE"}; ++const char BUILD_USER[] = {"BUILD_USER"}; ++const char BUILD_HOST[] = {"BUILD_HOST"}; ++const char BUILD_TIME[] = {"BUILD_TIME"}; ++const char BUILD_ROOTHASH[] = {"BUILD_ROOTHASH"}; + + #define DATA_PATH "/user/res/" + #define MAX_KEY_PATH 128 + + static boolean IsValidChar(const char ch) + { + if (islower(ch) || isdigit(ch) || (ch == '_') || (ch == '.')) { + return TRUE; + } + return FALSE; + } + + static boolean IsValidValue(const char* value, unsigned int len) + { + if ((value == NULL) || (*value == '\0') || (strlen(value) >= len)) { + return FALSE; + } + return TRUE; + } + + static boolean IsValidKey(const char* key) + { + size_t keyLen = strlen(key); + if (!IsValidValue(key, MAX_KEY_LEN)) { + return FALSE; + } + if (key[0] == '.' || key[keyLen - 1] == '.') { + return FALSE; + } + - for (int i = 0; i < keyLen; i++) { ++ for (size_t i = 0; i < keyLen; i++) { + if (key[i] == '.') { + if (key[i - 1] == '.') { + return FALSE; + } + continue; + } + if (!IsValidChar(key[i])) { + return FALSE; + } + } + + return TRUE; + } + + int GetSysParam(const char* key, char* value, unsigned int len) + { + if (key == NULL || (value == NULL) || (len > MAX_GET_VALUE_LEN)) { + return EC_INVALID; + } + if (!IsValidKey(key)) { + return EC_FAILURE; + } + + unsigned int valueLen = 0; + char* keyPath = (char *)malloc(MAX_KEY_PATH + 1); + if (keyPath == NULL) { + return EC_FAILURE; + } + + if (sprintf_s(keyPath, MAX_KEY_PATH + 1, "%s%s", DATA_PATH, key) < 0) { + free(keyPath); + return EC_FAILURE; + } + + if (UtilsFileStat(keyPath, &valueLen) != EC_SUCCESS) { + return SYSPARAM_NOT_FOUND; + } + + if (valueLen >= len) { + return EC_INVALID; + } + + int fd = UtilsFileOpen(keyPath, O_RDONLY_FS, 0); + free(keyPath); + keyPath = NULL; + if (fd < 0) { + return EC_FAILURE; + } + + int ret = UtilsFileRead(fd, value, valueLen); + UtilsFileClose(fd); + fd = -1; + if (ret < 0) { + return EC_FAILURE; + } + value[valueLen] = '\0'; + + return valueLen; + } + + int SetSysParam(const char* key, const char* value) + { + if (!IsValidKey(key) || !IsValidValue(value, MAX_VALUE_LEN)) { + return EC_INVALID; + } + + char* keyPath = (char *)malloc(MAX_KEY_PATH + 1); + if (keyPath == NULL) { + return EC_FAILURE; + } + if (sprintf_s(keyPath, MAX_KEY_PATH + 1, "%s%s", DATA_PATH, key) < 0) { + free(keyPath); + return EC_FAILURE; + } + + int fd = UtilsFileOpen(keyPath, O_RDWR_FS | O_CREAT_FS | O_TRUNC_FS, 0); + free(keyPath); + keyPath = NULL; + if (fd < 0) { + return EC_FAILURE; + } + + int ret = UtilsFileWrite(fd, value, strlen(value)); + UtilsFileClose(fd); + fd = -1; + return (ret < 0) ? EC_FAILURE : EC_SUCCESS; + } + + char* HalGetProductType(void) + { + char* value = (char*)malloc(strlen(OHOS_PRODUCT_TYPE) + 1); + if (value == NULL) { + return NULL; + } + if (strcpy_s(value, strlen(OHOS_PRODUCT_TYPE) + 1, OHOS_PRODUCT_TYPE) != 0) { + free(value); + return NULL; + } + return value; + } + + char* HalGetManufacture(void) + { + char* value = (char*)malloc(strlen(OHOS_MANUFACTURE) + 1); + if (value == NULL) { + return NULL; + } + if (strcpy_s(value, strlen(OHOS_MANUFACTURE) + 1, OHOS_MANUFACTURE) != 0) { + free(value); + return NULL; + } + return value; + } + + char* HalGetBrand(void) + { + char* value = (char*)malloc(strlen(OHOS_BRAND) + 1); + if (value == NULL) { + return NULL; + } + if (strcpy_s(value, strlen(OHOS_BRAND) + 1, OHOS_BRAND) != 0) { + free(value); + return NULL; + } + return value; + } + + char* HalGetMarketName(void) + { + char* value = (char*)malloc(strlen(OHOS_MARKET_NAME) + 1); + if (value == NULL) { + return NULL; + } + if (strcpy_s(value, strlen(OHOS_MARKET_NAME) + 1, OHOS_MARKET_NAME) != 0) { + free(value); + return NULL; + } + return value; + } + + char* HalGetProductSeries(void) + { + char* value = (char*)malloc(strlen(OHOS_PRODUCT_SERIES) + 1); + if (value == NULL) { + return NULL; + } + if (strcpy_s(value, strlen(OHOS_PRODUCT_SERIES) + 1, OHOS_PRODUCT_SERIES) != 0) { + free(value); + return NULL; + } + return value; + } + + char* HalGetProductModel(void) + { + char* value = (char*)malloc(strlen(OHOS_PRODUCT_MODEL) + 1); + if (value == NULL) { + return NULL; + } + if (strcpy_s(value, strlen(OHOS_PRODUCT_MODEL) + 1, OHOS_PRODUCT_MODEL) != 0) { + free(value); + return NULL; + } + return value; + } + + char* HalGetSoftwareModel(void) + { + char* value = (char*)malloc(strlen(OHOS_SOFTWARE_MODEL) + 1); + if (value == NULL) { + return NULL; + } + if (strcpy_s(value, strlen(OHOS_SOFTWARE_MODEL) + 1, OHOS_SOFTWARE_MODEL) != 0) { + free(value); + return NULL; + } + return value; + } + + char* HalGetHardwareModel(void) + { + char* value = (char*)malloc(strlen(OHOS_HARDWARE_MODEL) + 1); + if (value == NULL) { + return NULL; + } + if (strcpy_s(value, strlen(OHOS_HARDWARE_MODEL) + 1, OHOS_HARDWARE_MODEL) != 0) { + free(value); + return NULL; + } + return value; + } + + char* HalGetHardwareProfile(void) + { + char* value = (char*)malloc(strlen(OHOS_HARDWARE_PROFILE) + 1); + if (value == NULL) { + return NULL; + } + if (strcpy_s(value, strlen(OHOS_HARDWARE_PROFILE) + 1, OHOS_HARDWARE_PROFILE) != 0) { + free(value); + return NULL; + } + return value; + } + + char* HalGetSerial(void) + { - unsigned char sn_buf[32] = {0}; - unsigned int len = 0; - unsigned int ret = zh_get_sn(sn_buf,&len); - char* value = (char*)malloc(strlen(sn_buf) + 1); ++ char* value = (char*)malloc(strlen(OHOS_SERIAL) + 1); + if (value == NULL) { + return NULL; + } - if (strcpy_s(value, strlen(sn_buf) + 1, sn_buf) != 0) { ++ if (strcpy_s(value, strlen(OHOS_SERIAL) + 1, OHOS_SERIAL) != 0) { + free(value); + return NULL; + } - + return value; + } + + char* HalGetBootloaderVersion(void) + { + char* value = (char*)malloc(strlen(OHOS_BOOTLOADER_VERSION) + 1); + if (value == NULL) { + return NULL; + } + if (strcpy_s(value, strlen(OHOS_BOOTLOADER_VERSION) + 1, OHOS_BOOTLOADER_VERSION) != 0) { + free(value); + return NULL; + } + return value; + } + + char* HalGetSecurityPatchTag(void) + { + char* value = (char*)malloc(strlen(OHOS_SECURITY_PATCH_TAG) + 1); + if (value == NULL) { + return NULL; + } + if (strcpy_s(value, strlen(OHOS_SECURITY_PATCH_TAG) + 1, OHOS_SECURITY_PATCH_TAG) != 0) { + free(value); + return NULL; + } + return value; + } + + char* HalGetAbiList(void) + { + char* value = (char*)malloc(strlen(OHOS_ABI_LIST) + 1); + if (value == NULL) { + return NULL; + } + if (strcpy_s(value, strlen(OHOS_ABI_LIST) + 1, OHOS_ABI_LIST) != 0) { + free(value); + return NULL; + } + return value; + } + + int HalGetFirstApiVersion(void) + { + return g_roFirstApiLevel; + }