-#include "producttest/include/testView.h"\r
-#include "producttest/include/testPresenter.h"\r
-#include "producttest/include/testModel.h"\r
-#include "components/ui_label_button.h"\r
-#include "power_display_service.h"\r
-#include "wearable_log.h"\r
-#ifdef SUPPORT_CAT1_SERVICE\r
-#include "cat1_server.h"\r
-#include "cat1_ctl.h"\r
-#include "cat1_server_hal.h"\r
-#endif\r
-\r
-#include "custom_utils.h"\r
-#include "custom_runtime.h"\r
-\r
-#ifdef FD230\r
-#include "factorytest_protocol.h"\r
-#endif\r
-\r
-#ifdef __cplusplus\r
-#if __cplusplus\r
-extern "C"\r
-{\r
-#endif\r
-#endif\r
-#include "pm_definition.h"\r
-#include "pm_veto.h"\r
-#include "pm.h"\r
-#ifdef __cplusplus\r
-#if __cplusplus\r
-}\r
-#endif\r
-#endif\r
-\r
-namespace OHOS\r
-{\r
-\r
- static testView *g_pSystemView{nullptr};\r
-\r
- // 2.ViewMapper[] 是一个静态的视图映射数组,将视图ID与MainStopWatchView类中的特定成员函数指针进行了绑定。\r
- test_ext Test_ViewMapper_t[] = {\r
- {TESTVIEW, "", "", "", &testView::ChangeSystemAboutView, false}, // 占位,空的\r
- {QRCODE, "QRCodeButton", "QRCode", "QRCodeButton_next", &testView::ChangeQRCodeTESTView, true},\r
- {VISON, "AboutTheWatchButton", "Verison", "AboutTheWatchButton_next", &testView::ChangeSystemAboutView, true},\r
- {LCD, "LCDButton", "LCD", "LCDButton_next", &testView::ChangeLCDTESTView, true},\r
- {TP, "TPButton", "TP", "TPButton_next", &testView::ChangeTPTESTView, true},\r
- {MAGETIC, "MAGETICButton", "Magetic", "MAGETICButton_next", &testView::ChangeMGTESTView, true},\r
- {LUMINANCE, "luminanceButton", "luminance", "luminanceButton_next", &testView::ChangLUMTESTView, true},\r
- {CHARG, "chargingButton", "bat&charger", "chargingButton_next", &testView::ChangchargingTESTView, true},\r
- {SPEAK, "speakButton", "speak", "speakButton_next", &testView::ChangspeakTESTView, true},\r
- {MOTOR, "motorButton", "motor", "motorButton_next", &testView::ChangmotorTESTView, true},\r
-#ifdef SUPPORT_CAT1_SERVICE\r
- {CAT1, "cat1button", "CAT1", "cat1button_next", &testView::ChangeCAT1TESTView, true},\r
-#endif\r
- {BUTTON, "buttonbutton", "oktestBtn", "buttonbutton_next", &testView::ChangKEYTESTView, true},\r
- {MICROPHONE, "microphonebutton", "microphone", "microphonebutton_next", &testView::ChangeMPTESTView, true},\r
- {HRSENSON, "hrsensonbutton", "hrsensor", "hrsensonbutton_next", &testView::ChangeHRTESTView, true},\r
- {GSENSON, "gsensonbutton", "gsensor", "gsensonbutton_next", &testView::ChangeGTESTView, true},\r
- {BTTEST, "BTbutton", "BT", "BTbutton_next", &testView::ChangeBTTESTView, true},\r
- {SEChipTest, "SEChipTestbutton", "SEChipTest", "SEChipTestbutton_next", &testView::ChangeSEChipTESTView, true},\r
- {PingTest, "PingTestbutton", "PingTest", "PingTestbutton_next", &testView::ChangePingTESTView, true},\r
-#if defined(SUPPORT_GNSS)\r
- {GPSTEST, "GPSTestbutton", "GPSTest", "GPSTestbutton_next", &testView::ChangeGPSTESTView, true},\r
-#endif\r
-#ifdef ENABLE_LQBP002TA\r
- {PRESSURETEST, "pressureTestbutton", "pressureTest", "pressureTestbutton_next", &testView::ChangepressureTestTESTView, true},\r
-#endif\r
-#ifdef AGINGTEST\r
- {OLDTEST, "oldtestbutton", "aging", "oldtestexit", &testView::ChangeoldTESTView, true},\r
-#endif\r
- {DEEPSLEEP, "deepsleep", "DeepSleepCurrent", "xxxxxxxxx", &testView::ChangeoldTESTView, true},\r
- {shutdown, "shutdown", "shutdown", "xxxxxxxxx", &testView::ChangeoldTESTView, true},\r
- {RESET, "reset", "reset", "xxxxxxxxx", &testView::ChangeoldTESTView, true},\r
- {FACTORYRESE, "FactoryReset", "FactoryReset", "xxxxxxxxx", &testView::ChangeoldTESTView, true},\r
-#ifdef SUPPORT_A5133_SERVICE\r
- {RF5133, "RF5133", "RF5133", "xxxxxxxxx", &testView::ChangeA5133TESTView, true},\r
-#endif\r
-\r
- };\r
-\r
- testView::testView()\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "testView::testView");\r
- g_pSystemView = this;\r
- }\r
-\r
- testView::~testView()\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "testView::~testView");\r
- ClearAll();\r
- g_pSystemView = nullptr;\r
- }\r
-\r
- testView *testView::GetInstance()\r
- {\r
- return g_pSystemView;\r
- }\r
-\r
- void testView::ClearAll()\r
- {\r
- if (group)\r
- {\r
- group->RemoveAll();\r
- delete group;\r
- group = nullptr;\r
- if (SystemScrollView[TESTVIEW])\r
- {\r
- SystemScrollView[TESTVIEW]->RemoveAll();\r
- delete SystemScrollView[TESTVIEW];\r
- SystemScrollView[TESTVIEW] = nullptr;\r
- delete SystemLabel;\r
- SystemLabel = nullptr;\r
- int funcSize = sizeof(Test_ViewMapper_t) / sizeof(Test_ViewMapper_t[TESTVIEW]);\r
- for (int i = 0; i < funcSize; i++)\r
- {\r
- if (button[i])\r
- {\r
- delete button[i];\r
- button[i] = NULL;\r
- }\r
- }\r
- }\r
- }\r
- if (test_about_view)\r
- {\r
- delete test_about_view; // 1\r
- test_about_view = nullptr;\r
- }\r
-\r
- if (test_LCD_view)\r
- {\r
- delete test_LCD_view; // 2\r
- test_LCD_view = nullptr;\r
- }\r
- if (test_TP_view)\r
- {\r
- delete test_TP_view; // 3\r
- test_TP_view = nullptr;\r
- }\r
- if (test_lum_view)\r
- {\r
- delete test_lum_view; // 4\r
- test_lum_view = nullptr;\r
- }\r
- if (test_charging_view)\r
- {\r
- delete test_charging_view; // 5\r
- test_charging_view = nullptr;\r
- }\r
- if (test_speak_view)\r
- {\r
- delete test_speak_view; // 6\r
- test_speak_view = nullptr;\r
- }\r
- if (test_motor_view)\r
- {\r
- delete test_motor_view; // 7\r
- test_motor_view = nullptr;\r
- }\r
-#ifdef SUPPORT_CAT1_SERVICE\r
- if (test_cat1_view)\r
- {\r
- delete test_cat1_view; // 8\r
- test_cat1_view = nullptr;\r
- }\r
-#endif\r
-\r
- if (test_KEY_view)\r
- {\r
- delete test_KEY_view; // 9\r
- test_KEY_view = nullptr;\r
- }\r
- if (test_MG_view)\r
- {\r
- delete test_MG_view; // 10\r
- test_MG_view = nullptr;\r
- }\r
- if (test_hr_view)\r
- {\r
- delete test_hr_view; // 11\r
- test_hr_view = nullptr;\r
- }\r
- if (test_MP_view)\r
- {\r
- delete test_MP_view; // 12\r
- test_MP_view = nullptr;\r
- }\r
- if (test_G_view)\r
- {\r
- delete test_G_view; // 13\r
- test_G_view = nullptr;\r
- }\r
-#ifdef SUPPORT_A5133_SERVICE\r
- if (test_A5133_view)\r
- {\r
- delete test_A5133_view; // 13\r
- test_A5133_view = nullptr;\r
- }\r
-#endif\r
- // delete test_G_view;//13\r
- // test_G_view= nullptr;\r
-\r
- for (int i = 1; i < 13; i++)\r
- {\r
- if (SystemScrollView[i])\r
- SystemScrollView[i] = nullptr;\r
- }\r
- if (test_Ping_view)\r
- {\r
- delete test_Ping_view; // PingTest\r
- test_Ping_view = nullptr;\r
- }\r
- if (test_QRCode_view)\r
- {\r
- delete test_QRCode_view; // QRCode\r
- test_QRCode_view = nullptr;\r
- }\r
-#ifdef SUPPORT_GNSS\r
- if (test_GPS_view)\r
- {\r
- delete test_GPS_view; // GPS\r
- test_GPS_view = nullptr;\r
- }\r
-#endif\r
- }\r
-\r
- /// @brief 设置SystemScrollView\r
- /// @param void\r
- /// @return true 设置成功,false 失败\r
- bool testView::SetTheSystemScrollView(void)\r
- {\r
- SystemScrollView[TESTVIEW] = new UIScrollView();\r
- if (SystemScrollView[TESTVIEW] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SetTheSystemScrollView new fail!");\r
- return false;\r
- }\r
- SystemScrollView[TESTVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
- SystemScrollView[TESTVIEW]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
- SystemScrollView[TESTVIEW]->SetStyle(STYLE_BORDER_RADIUS, 0);\r
-\r
- SystemScrollView[TESTVIEW]->SetScrollBlankSize(35);\r
- SystemScrollView[TESTVIEW]->SetReboundSize(50);\r
- SystemScrollView[TESTVIEW]->SetDirection(1);\r
- SystemScrollView[TESTVIEW]->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。\r
- SystemScrollView[TESTVIEW]->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。\r
- SystemScrollView[TESTVIEW]->SetSwipeACCLevel(200); /*设置手指抬起屏幕后的补偿距离。*/\r
- // UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(new SystemViewOnDragListener());\r
- // if (draglistener == nullptr)\r
- // {\r
- // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::draglistener can not be nullptr!");\r
- // return false;\r
- // }\r
- // SystemScrollView[TESTVIEW]->SetOnDragListener(draglistener);\r
- SystemScrollView[TESTVIEW]->SetTouchable(true);\r
- SystemScrollView[TESTVIEW]->SetDraggable(true);\r
- return true;\r
- }\r
-\r
- /// @brief 设置标题\r
- /// @param void\r
- /// @return true 设置成功,false 失败\r
- bool testView::SetTheTitle(void)\r
- {\r
- SystemLabel = new UILabel();\r
- if (SystemLabel == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SystemLabel new fail!");\r
- return false;\r
- }\r
- SystemLabel->SetPosition(162, 52);\r
- SystemLabel->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
- SystemLabel->SetStyle(STYLE_TEXT_FONT, 30);\r
- SystemLabel->SetStyle(STYLE_LINE_HEIGHT, 35);\r
- SystemLabel->SetText("GNT TEST");\r
- SystemLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);\r
- SystemLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);\r
- SystemLabel->SetRollSpeed(6);\r
- SystemLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 30);\r
-\r
- return true;\r
- }\r
-\r
- bool testView::AddResultButtons(UIScrollView *scrollView, int16_t viewId,UILabelButton*&oktestBtn,UILabelButton*&failtestBtn)\r
- {\r
- if (scrollView == nullptr)\r
- {\r
- return false;\r
- }\r
-\r
- printf("目前测试项id:%d",viewId);\r
-\r
- // 创建新按钮(如果当前按钮为空)\r
- if (oktestBtn == nullptr)\r
- {\r
- oktestBtn = new UILabelButton();\r
- if (oktestBtn == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitButtonExt is error");\r
- return false; // 内存分配失败,返回false\r
- }\r
- oktestBtn->SetPosition(40, 80);\r
- oktestBtn->Resize(135, 88);\r
-\r
- oktestBtn->SetStyle(STYLE_TEXT_FONT, 30);\r
- oktestBtn->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
- }\r
- if (failtestBtn == nullptr)\r
- {\r
- failtestBtn = new UILabelButton();\r
- if (failtestBtn == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitButtonExt is error");\r
- return false; // 内存分配失败,返回false\r
- }\r
- failtestBtn->SetPosition(220, 80);\r
- failtestBtn->Resize(135, 88);\r
-\r
- failtestBtn->SetStyle(STYLE_TEXT_FONT, 30);\r
- failtestBtn->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);\r
- }\r
-\r
- // 获取当前测试项状态\r
- test_status_enum status = testModel::GetInstance()->GetResult(viewId);\r
- printf("目前该项的测试状态为:%d\n",status);\r
- // 获取测试项描述\r
- std::string viewDesc = testModel::GetInstance()->GetTestItemDescription(viewId);\r
- printf("目前测试项的描述是:%s\n",viewDesc.c_str());\r
- \r
- // 安全检查:确保viewDesc不为空\r
- if (viewDesc.empty())\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddResultButtons: viewDesc is empty for viewId %d", viewId);\r
- return false;\r
- }\r
-\r
- if (oktestBtn)\r
- {\r
- oktestBtn->SetText("成功");\r
- oktestBtn->SetAlign(TEXT_ALIGNMENT_CENTER);\r
- // 根据状态设置按钮样式\r
- switch (status)\r
- {\r
- case TEST_STATUS_NONE:\r
- oktestBtn->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);\r
- break;\r
- case TEST_STATUS_SUCCESS:\r
- oktestBtn->SetStyle(STYLE_BACKGROUND_COLOR, Color::Green().full);\r
- break;\r
- case TEST_STATUS_ERROR:\r
- oktestBtn->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);\r
- break;\r
- }\r
-\r
- // 设置按钮标识 - 修复悬空指针问题\r
- okButtonViewId = "TestOK" + viewDesc;\r
- printf("=== VIEWID DEBUG ===\n");\r
- printf("设置前 oktestBtn->GetViewId() = %s\n", oktestBtn->GetViewId());\r
- printf("准备设置 viewId = %s\n", okButtonViewId.c_str());\r
- printf("okButtonViewId 字符串地址 = %p\n", okButtonViewId.c_str());\r
- printf("okButtonViewId 字符串长度 = %zu\n", okButtonViewId.length());\r
- \r
- oktestBtn->SetViewId(okButtonViewId.c_str());\r
- \r
- printf("设置后 oktestBtn->GetViewId() = %s\n", oktestBtn->GetViewId());\r
- printf("设置后 oktestBtn->GetViewId() 地址 = %p\n", oktestBtn->GetViewId());\r
- printf("=== VIEWID DEBUG END ===\n");\r
- \r
- // UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(testPresenter::GetInstance());\r
- oktestBtn->SetOnClickListener(presenter_);\r
- scrollView->Add(oktestBtn);\r
- }\r
-\r
- if (failtestBtn)\r
- {\r
- failtestBtn->SetText("失败");\r
- failtestBtn->SetAlign(TEXT_ALIGNMENT_CENTER);\r
-\r
- // 根据状态设置按钮样式\r
- switch (status)\r
- {\r
- case TEST_STATUS_NONE:\r
- failtestBtn->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);\r
- break;\r
- case TEST_STATUS_SUCCESS:\r
- failtestBtn->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);\r
- break;\r
- case TEST_STATUS_ERROR:\r
- failtestBtn->SetStyle(STYLE_BACKGROUND_COLOR, Color::Red().full);\r
- break;\r
- }\r
-\r
- // 设置按钮标识(修复了原代码中的错误)- 修复悬空指针问题\r
- failButtonViewId = "TestNO" + viewDesc;\r
- printf("=== VIEWID DEBUG FAIL BUTTON ===\n");\r
- printf("设置前 failtestBtn->GetViewId() = %s\n", failtestBtn->GetViewId());\r
- printf("准备设置 viewId = %s\n", failButtonViewId.c_str());\r
- printf("failButtonViewId 字符串地址 = %p\n", failButtonViewId.c_str());\r
- printf("failButtonViewId 字符串长度 = %zu\n", failButtonViewId.length());\r
- \r
- failtestBtn->SetViewId(failButtonViewId.c_str());\r
- \r
- printf("设置后 failtestBtn->GetViewId() = %s\n", failtestBtn->GetViewId());\r
- printf("设置后 failtestBtn->GetViewId() 地址 = %p\n", failtestBtn->GetViewId());\r
- printf("=== VIEWID DEBUG FAIL BUTTON END ===\n");\r
- \r
- // UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(testPresenter::GetInstance());\r
- failtestBtn->SetOnClickListener(presenter_);\r
- scrollView->Add(failtestBtn);\r
- }\r
-\r
- return true;\r
- }\r
-\r
- /// @brief 设置按钮\r
- /// @param oktestBtn\r
- /// @return true 设置成功,false 失败\r
-\r
- UILabelButtonExt *testView::SetTheButton_ext(ButtonConfig_ext_t &buttonconfig, UIView::OnClickListener *clickListener)\r
- {\r
- UILabelButtonExt *oktestBtn = new UILabelButtonExt();\r
- if (oktestBtn == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SystemView::SetTheButton: oktestBtn new fail!");\r
- return nullptr;\r
- }\r
- oktestBtn->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);\r
- oktestBtn->SetViewId(buttonconfig.ViewId);\r
- oktestBtn->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);\r
- oktestBtn->SetImageSrc(buttonconfig.ImageSrc, buttonconfig.ImageSrc);\r
- oktestBtn->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
- oktestBtn->SetOnClickListener(clickListener);\r
-\r
- oktestBtn->SetText(buttonconfig.str);\r
- oktestBtn->SetAlign(TEXT_ALIGNMENT_LEFT);\r
- oktestBtn->SetLabelPosition(buttonconfig.label_x, buttonconfig.label_y);\r
- oktestBtn->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, buttonconfig.Fontsize);\r
- // oktestBtn->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);\r
-\r
- oktestBtn->SetImagePosition(326, 37);\r
- return oktestBtn;\r
- }\r
-\r
- void testView::initView_ext(int x, int y, int w, int h, int interval, const char *imagsrc)\r
- {\r
- if (!SetTheSystemScrollView())\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SetTheSystemScrollView() fail!");\r
- return;\r
- }\r
- if (!SetTheTitle())\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SetTheTitle() fail!");\r
- return;\r
- }\r
- /* -------------------------------------------------------------------------- */\r
- UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(testPresenter::GetInstance());\r
- /* -------------------------------------------------------------------------- */\r
- ButtonConfig_ext_t buttonconfig;\r
- buttonconfig.x = x;\r
- buttonconfig.y = y;\r
- buttonconfig.w = w;\r
- buttonconfig.h = h;\r
-\r
- int len = sizeof(Test_ViewMapper_t) / sizeof(Test_ViewMapper_t[0]);\r
-\r
- for (int i = 1; i < len; i++)\r
- {\r
- buttonconfig.str = Test_ViewMapper_t[i].Labe_str;\r
- buttonconfig.ViewId = Test_ViewMapper_t[i].viewid_str;\r
- buttonconfig.ImageSrc = imagsrc;\r
- buttonconfig.label_x = 40;\r
- buttonconfig.label_y = 0;\r
- buttonconfig.Fontsize = 30;\r
- buttonconfig.ALIGN = TEXT_ALIGNMENT_LEFT;\r
- button[i] = SetTheButton_ext(buttonconfig, clickListener);\r
- buttonconfig.y += interval;\r
- }\r
- /* -------------------------------------------------------------------------- */\r
- }\r
-\r
- // 0.跳转到系统视图,其他视图都市通过这个视图跳转\r
- bool testView::ChangeSystemView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemView");\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- // 1.跳转到关于手表\r
- bool testView::ChangeSystemAboutView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");\r
- test_about_view = new testAboutView();\r
- if (test_about_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_about_view->SystemAbouTheWatchtInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- bool testView::ChangeLCDTESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeLCDTESTView");\r
- test_LCD_view = new testLCDView();\r
- if (test_LCD_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_LCD_view->testLCDInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- bool testView::ChangeTPTESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeTPTESTView");\r
- test_TP_view = new testTPView();\r
- if (test_TP_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_TP_view->testTPInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- bool testView::ChangeMGTESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeMGTESTView");\r
- test_MG_view = new testMagicView();\r
- if (test_MG_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_MG_view->testmagicInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- bool testView::ChangLUMTESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangLUMTESTView");\r
- test_lum_view = new testLUMView();\r
- if (test_lum_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_lum_view->testLUMInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- bool testView::ChangchargingTESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangchargingTESTView");\r
- test_charging_view = new testCHANINGView();\r
- if (test_charging_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_charging_view->testCHANINGInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- bool testView::ChangspeakTESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangspeakTESTView");\r
- test_speak_view = new testSPEAKView();\r
- if (test_speak_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_speak_view->testSPEAKInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- bool testView::ChangmotorTESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangmotorTESTView");\r
- test_motor_view = new testMOTORView();\r
- if (test_motor_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_motor_view->testMOTORInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- bool testView::ChangeCAT1TESTView(int16_t thisView)\r
- {\r
-#ifdef SUPPORT_CAT1_SERVICE\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeCAT1TESTView");\r
- test_cat1_view = new testcat1View();\r
- if (test_cat1_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_cat1_view->testcat1InitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
-#endif\r
- return true;\r
- }\r
-\r
- bool testView::ChangKEYTESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangKEYTESTView");\r
- test_KEY_view = new testbuttonView();\r
- if (test_KEY_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_KEY_view->testBUTTONInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- bool testView::ChangeMPTESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeMPTESTView");\r
- test_MP_view = new testmicrohoneView();\r
- if (test_MP_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_MP_view->testmicrophoneInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- bool testView::ChangeHRTESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeHRTESTView");\r
- test_hr_view = new testhrsenson1View();\r
- if (test_hr_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_hr_view->testhrsensonInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- bool testView::ChangeGTESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeGTESTView");\r
- test_G_view = new testgsensonView();\r
- if (test_G_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_G_view->testGSENSONInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- bool testView::ChangeoldTESTView(int16_t thisView)\r
- {\r
-#ifdef AGINGTEST\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeoldTESTView");\r
- test_old_view = new testoldView();\r
- if (test_old_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_old_view->testoldInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
-#endif\r
- return true;\r
- }\r
-\r
- bool testView::ChangeBTTESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeBTTESTView");\r
- test_BT_view = new testBTView();\r
- if (test_BT_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_BT_view->testBTInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- bool testView::ChangeSEChipTESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSEChipTESTView");\r
- test_SEChip_view = new testSEChipView();\r
- if (test_SEChip_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_SEChip_view->SEChipInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- bool testView::ChangePingTESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangePingTESTView");\r
- test_Ping_view = new testPingView();\r
- if (test_Ping_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_Ping_view->testPingInitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
- bool testView::ChangeQRCodeTESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeQRCodeTESTView");\r
- test_QRCode_view = new testQRCodeView();\r
- if (test_QRCode_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_QRCode_view->testQRCodeInitIView((uint8_t)thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-\r
-#if defined(SUPPORT_GNSS)\r
- bool testView::ChangeGPSTESTView(int16_t thisView)\r
- {\r
-\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSEChipTESTView");\r
- test_GPS_view = new testGPSView();\r
- if (test_GPS_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_GPS_view->testGPSInitIView((uint8_t)thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
-\r
- return true;\r
- }\r
-#endif\r
-#ifdef ENABLE_LQBP002TA\r
- bool testView::ChangepressureTestTESTView(int16_t thisView)\r
- {\r
-\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSEChipTESTView");\r
- test_pressure_view = new testpressureView();\r
- if (test_pressure_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_pressure_view->testpressureInitIView((uint8_t)thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
-\r
- return true;\r
- }\r
-#endif\r
-#ifdef SUPPORT_A5133_SERVICE\r
- bool testView::ChangeA5133TESTView(int16_t thisView)\r
- {\r
- if (SystemScrollView[thisView] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeA5133TESTView");\r
- test_A5133_view = new testA5133View();\r
- if (test_A5133_view == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);\r
- return false;\r
- }\r
- SystemScrollView[thisView] = test_A5133_view->testA5133InitIView(thisView);\r
- group->Add(SystemScrollView[thisView]);\r
- }\r
- return true;\r
- }\r
-#endif\r
-\r
- UIScrollView *testView::GetSystemScrollView(int ViewId)\r
- {\r
- if (SystemScrollView[ViewId] == nullptr)\r
- {\r
- return nullptr;\r
- }\r
- return SystemScrollView[ViewId];\r
- }\r
-\r
- /* -------------------------------------------------------------------------- */\r
- // 1.MainStopWatchViewMapper:结构体定义了一个将视图ID映射到特定成员函数指针的映射表。\r
-\r
- // 3.根据传入的interface参数执行相应视图ID关联的成员函数。\r
- bool testView::ClickFunc(int16_t interface)\r
- {\r
- int funcSize = sizeof(Test_ViewMapper_t) / sizeof(Test_ViewMapper_t[TESTVIEW]);\r
- for (int i = 1; i < funcSize; i++)\r
- {\r
- if (interface == Test_ViewMapper_t[i].viewId)\r
- {\r
- bool jug = (this->*(Test_ViewMapper_t[i].func))(interface);\r
- if (jug == false)\r
- {\r
- return false;\r
- }\r
- return true;\r
- }\r
- }\r
- return false;\r
- }\r
-\r
- // 4.切换视图\r
- void testView::ChangeView(int16_t hideView, int16_t showView)\r
- {\r
- if (hideView > MAX_TESTVIEWID)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: SystemViewId Overstep ones bounds");\r
- return;\r
- }\r
- if (SystemScrollView[hideView] != nullptr)\r
- {\r
- SystemScrollView[hideView]->SetVisible(false);\r
- }\r
- else\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: SystemScrollView[%d] is nullptr", hideView);\r
- }\r
- ClickFunc(showView);\r
- if (SystemScrollView[showView] != nullptr)\r
- {\r
- SystemScrollView[showView]->SetVisible(true);\r
- }\r
- else\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: SystemScrollView[%d] is nullptr", showView);\r
- }\r
- if (hideView != 0)\r
- {\r
- switch (hideView)\r
- {\r
- case VISON:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_about_view;\r
- test_about_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
- case LCD:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_LCD_view;\r
- test_LCD_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
- case TP:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_TP_view;\r
- test_TP_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
- case MAGETIC:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_MG_view;\r
- test_MG_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
- case LUMINANCE:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_lum_view;\r
- test_lum_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
- case CHARG:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_charging_view;\r
- test_charging_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
-\r
- case SPEAK:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_speak_view;\r
- test_speak_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
- case MOTOR:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_motor_view;\r
- test_motor_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
-#ifdef SUPPORT_CAT1_SERVICE\r
- case CAT1:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_cat1_view;\r
- test_cat1_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
-#endif\r
- case BUTTON:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_KEY_view;\r
- test_KEY_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
- case MICROPHONE:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_MP_view;\r
- test_MP_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
- case HRSENSON:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_hr_view;\r
- test_hr_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
- case GSENSON:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_G_view;\r
- test_G_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
- case OLDTEST:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_old_view;\r
- test_old_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
- case BTTEST:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_BT_view;\r
- test_BT_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
- case SEChipTest:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_SEChip_view;\r
- test_SEChip_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
- case PingTest:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_Ping_view;\r
- test_Ping_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
-#if defined(SUPPORT_GNSS)\r
- case GPSTEST:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_GPS_view;\r
- test_GPS_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
-#endif\r
-#ifdef SUPPORT_A5133_SERVICE\r
- case RF5133:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_A5133_view;\r
- test_A5133_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
-#endif\r
-#if defined(ENABLE_LQBP002TA)\r
- case PRESSURETEST:\r
- group->Remove(SystemScrollView[hideView]);\r
- delete test_pressure_view;\r
- test_pressure_view = nullptr;\r
- SystemScrollView[hideView] = nullptr;\r
- break;\r
-#endif\r
- default:\r
- break;\r
- }\r
- }\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "change>>>>>>>>>>>hideView %d > showView %d >>>", hideView, showView);\r
- }\r
- /* -------------------------------------------------------------------------- */\r
-\r
- void testView::OnStart()\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnStart>>>>>>>>>>>>>");\r
-\r
- if (group == nullptr)\r
- {\r
- group = new UIViewGroup();\r
- if (group == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WatchQRCodeView::WatchQRCodeGroupView new fail!");\r
- }\r
- }\r
- group->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());\r
- group->SetStyle(STYLE_BACKGROUND_OPA, 0xff);\r
- group->SetTouchable(true);\r
- group->SetDraggable(true);\r
-\r
- // InitIView();\r
- initView_ext(43, 120, 380, 100, 120, "/user/res/SETTING_NEXT.bin");\r
- const power_display_svr_api_t *display_api = power_display_svr_get_api();\r
- if (display_api->get_screen_state() != SCREEN_ON)\r
- {\r
- display_api->turn_on_screen();\r
- }\r
- display_api->set_auto_timeout_function(false);\r
-\r
- uint8_t cnt = pm_veto_get_id_cnt(PM_ID_P_TEST);\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cnt : %d\n", cnt);\r
- if (cnt == 0)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uapi_pm_add_sleep_veto(PM_ID_P_TEST);");\r
- uapi_pm_add_sleep_veto(PM_ID_P_TEST);\r
- }\r
-\r
- if (!uapi_dev_runtime_get_factory_test_status_flag())\r
- uapi_set4GCapability(true);\r
-\r
- start_custom_ble_service();\r
-\r
- if (SystemScrollView[TESTVIEW] == nullptr)\r
- {\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: OnSetUpView has nullptr");\r
- return;\r
- }\r
- SystemScrollView[TESTVIEW]->Add(SystemLabel);\r
- int len = sizeof(Test_ViewMapper_t) / sizeof(Test_ViewMapper_t[0]);\r
- for (int i = 0; i < len; i++)\r
- {\r
- SystemScrollView[TESTVIEW]->Add(button[i]);\r
- }\r
- group->Add(SystemScrollView[TESTVIEW]);\r
- AddViewToRootContainer(group);\r
- }\r
-\r
+#include "producttest/include/testView.h"
+#include "producttest/include/testPresenter.h"
+#include "producttest/include/testModel.h"
+#include "components/ui_label_button.h"
+#include "power_display_service.h"
+#include "wearable_log.h"
+#ifdef SUPPORT_CAT1_SERVICE
+#include "cat1_server.h"
+#include "cat1_ctl.h"
+#include "cat1_server_hal.h"
+#endif
+
+#include "custom_utils.h"
+#include "custom_runtime.h"
+
+#ifdef FD230
+#include "factorytest_protocol.h"
+#endif
+
+#ifdef __cplusplus
+#if __cplusplus
+extern "C"
+{
+#endif
+#endif
+#include "pm_definition.h"
+#include "pm_veto.h"
+#include "pm.h"
+#ifdef __cplusplus
+#if __cplusplus
+}
+#endif
+#endif
+
+namespace OHOS
+{
+
+ static testView *g_pSystemView{nullptr};
+
+ // 2.ViewMapper[] 是一个静态的视图映射数组,将视图ID与MainStopWatchView类中的特定成员函数指针进行了绑定。
+ test_ext Test_ViewMapper_t[] = {
+ {TESTVIEW, "", "", "", &testView::ChangeSystemAboutView, false}, // 占位,空的
+ {QRCODE, "QRCodeButton", "QRCode", "QRCodeButton_next", &testView::ChangeQRCodeTESTView, true},
+ {VISON, "AboutTheWatchButton", "Verison", "AboutTheWatchButton_next", &testView::ChangeSystemAboutView, true},
+ {LCD, "LCDButton", "LCD", "LCDButton_next", &testView::ChangeLCDTESTView, true},
+ {TP, "TPButton", "TP", "TPButton_next", &testView::ChangeTPTESTView, true},
+ {MAGETIC, "MAGETICButton", "Magetic", "MAGETICButton_next", &testView::ChangeMGTESTView, true},
+ {LUMINANCE, "luminanceButton", "luminance", "luminanceButton_next", &testView::ChangLUMTESTView, true},
+ {CHARG, "chargingButton", "bat&charger", "chargingButton_next", &testView::ChangchargingTESTView, true},
+ {SPEAK, "speakButton", "speak", "speakButton_next", &testView::ChangspeakTESTView, true},
+ {MOTOR, "motorButton", "motor", "motorButton_next", &testView::ChangmotorTESTView, true},
+#ifdef SUPPORT_CAT1_SERVICE
+ {CAT1, "cat1button", "CAT1", "cat1button_next", &testView::ChangeCAT1TESTView, true},
+#endif
+ {BUTTON, "buttonbutton", "oktestBtn", "buttonbutton_next", &testView::ChangKEYTESTView, true},
+ {MICROPHONE, "microphonebutton", "microphone", "microphonebutton_next", &testView::ChangeMPTESTView, true},
+ {HRSENSON, "hrsensonbutton", "hrsensor", "hrsensonbutton_next", &testView::ChangeHRTESTView, true},
+ {GSENSON, "gsensonbutton", "gsensor", "gsensonbutton_next", &testView::ChangeGTESTView, true},
+ {BTTEST, "BTbutton", "BT", "BTbutton_next", &testView::ChangeBTTESTView, true},
+ {SEChipTest, "SEChipTestbutton", "SEChipTest", "SEChipTestbutton_next", &testView::ChangeSEChipTESTView, true},
+ {PingTest, "PingTestbutton", "PingTest", "PingTestbutton_next", &testView::ChangePingTESTView, true},
+#if defined(SUPPORT_GNSS)
+ {GPSTEST, "GPSTestbutton", "GPSTest", "GPSTestbutton_next", &testView::ChangeGPSTESTView, true},
+#endif
+#ifdef ENABLE_LQBP002TA
+ {PRESSURETEST, "pressureTestbutton", "pressureTest", "pressureTestbutton_next", &testView::ChangepressureTestTESTView, true},
+#endif
+#ifdef AGINGTEST
+ {OLDTEST, "oldtestbutton", "aging", "oldtestexit", &testView::ChangeoldTESTView, true},
+#endif
+ {DEEPSLEEP, "deepsleep", "DeepSleepCurrent", "xxxxxxxxx", &testView::ChangeoldTESTView, true},
+ {shutdown, "shutdown", "shutdown", "xxxxxxxxx", &testView::ChangeoldTESTView, true},
+ {RESET, "reset", "reset", "xxxxxxxxx", &testView::ChangeoldTESTView, true},
+ {FACTORYRESE, "FactoryReset", "FactoryReset", "xxxxxxxxx", &testView::ChangeoldTESTView, true},
+#ifdef SUPPORT_A5133_SERVICE
+ {RF5133, "RF5133", "RF5133", "xxxxxxxxx", &testView::ChangeA5133TESTView, true},
+#endif
+
+ };
+
+ testView::testView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "testView::testView");
+ g_pSystemView = this;
+ }
+
+ testView::~testView()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "testView::~testView");
+ ClearAll();
+ g_pSystemView = nullptr;
+ }
+
+ testView *testView::GetInstance()
+ {
+ return g_pSystemView;
+ }
+
+ void testView::ClearAll()
+ {
+ if (group)
+ {
+ group->RemoveAll();
+ delete group;
+ group = nullptr;
+ if (SystemScrollView[TESTVIEW])
+ {
+ SystemScrollView[TESTVIEW]->RemoveAll();
+ delete SystemScrollView[TESTVIEW];
+ SystemScrollView[TESTVIEW] = nullptr;
+ delete SystemLabel;
+ SystemLabel = nullptr;
+ int funcSize = sizeof(Test_ViewMapper_t) / sizeof(Test_ViewMapper_t[TESTVIEW]);
+ for (int i = 0; i < funcSize; i++)
+ {
+ if (button[i])
+ {
+ delete button[i];
+ button[i] = NULL;
+ }
+ }
+ }
+ }
+ if (test_about_view)
+ {
+ delete test_about_view; // 1
+ test_about_view = nullptr;
+ }
+
+ if (test_LCD_view)
+ {
+ delete test_LCD_view; // 2
+ test_LCD_view = nullptr;
+ }
+ if (test_TP_view)
+ {
+ delete test_TP_view; // 3
+ test_TP_view = nullptr;
+ }
+ if (test_lum_view)
+ {
+ delete test_lum_view; // 4
+ test_lum_view = nullptr;
+ }
+ if (test_charging_view)
+ {
+ delete test_charging_view; // 5
+ test_charging_view = nullptr;
+ }
+ if (test_speak_view)
+ {
+ delete test_speak_view; // 6
+ test_speak_view = nullptr;
+ }
+ if (test_motor_view)
+ {
+ delete test_motor_view; // 7
+ test_motor_view = nullptr;
+ }
+#ifdef SUPPORT_CAT1_SERVICE
+ if (test_cat1_view)
+ {
+ delete test_cat1_view; // 8
+ test_cat1_view = nullptr;
+ }
+#endif
+
+ if (test_KEY_view)
+ {
+ delete test_KEY_view; // 9
+ test_KEY_view = nullptr;
+ }
+ if (test_MG_view)
+ {
+ delete test_MG_view; // 10
+ test_MG_view = nullptr;
+ }
+ if (test_hr_view)
+ {
+ delete test_hr_view; // 11
+ test_hr_view = nullptr;
+ }
+ if (test_MP_view)
+ {
+ delete test_MP_view; // 12
+ test_MP_view = nullptr;
+ }
+ if (test_G_view)
+ {
+ delete test_G_view; // 13
+ test_G_view = nullptr;
+ }
+#ifdef SUPPORT_A5133_SERVICE
+ if (test_A5133_view)
+ {
+ delete test_A5133_view; // 13
+ test_A5133_view = nullptr;
+ }
+#endif
+ // delete test_G_view;//13
+ // test_G_view= nullptr;
+
+ for (int i = 1; i < 13; i++)
+ {
+ if (SystemScrollView[i])
+ SystemScrollView[i] = nullptr;
+ }
+ if (test_Ping_view)
+ {
+ delete test_Ping_view; // PingTest
+ test_Ping_view = nullptr;
+ }
+ if (test_QRCode_view)
+ {
+ delete test_QRCode_view; // QRCode
+ test_QRCode_view = nullptr;
+ }
+#ifdef SUPPORT_GNSS
+ if (test_GPS_view)
+ {
+ delete test_GPS_view; // GPS
+ test_GPS_view = nullptr;
+ }
+#endif
+ }
+
+ /// @brief 设置SystemScrollView
+ /// @param void
+ /// @return true 设置成功,false 失败
+ bool testView::SetTheSystemScrollView(void)
+ {
+ SystemScrollView[TESTVIEW] = new UIScrollView();
+ if (SystemScrollView[TESTVIEW] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SetTheSystemScrollView new fail!");
+ return false;
+ }
+ SystemScrollView[TESTVIEW]->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+ SystemScrollView[TESTVIEW]->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ SystemScrollView[TESTVIEW]->SetStyle(STYLE_BORDER_RADIUS, 0);
+
+ SystemScrollView[TESTVIEW]->SetScrollBlankSize(35);
+ SystemScrollView[TESTVIEW]->SetReboundSize(50);
+ SystemScrollView[TESTVIEW]->SetDirection(1);
+ SystemScrollView[TESTVIEW]->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。
+ SystemScrollView[TESTVIEW]->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。
+ SystemScrollView[TESTVIEW]->SetSwipeACCLevel(200); /*设置手指抬起屏幕后的补偿距离。*/
+ // UIView::OnDragListener *draglistener = static_cast<UIView::OnDragListener *>(new SystemViewOnDragListener());
+ // if (draglistener == nullptr)
+ // {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::draglistener can not be nullptr!");
+ // return false;
+ // }
+ // SystemScrollView[TESTVIEW]->SetOnDragListener(draglistener);
+ SystemScrollView[TESTVIEW]->SetTouchable(true);
+ SystemScrollView[TESTVIEW]->SetDraggable(true);
+ return true;
+ }
+
+ /// @brief 设置标题
+ /// @param void
+ /// @return true 设置成功,false 失败
+ bool testView::SetTheTitle(void)
+ {
+ SystemLabel = new UILabel();
+ if (SystemLabel == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SystemLabel new fail!");
+ return false;
+ }
+ SystemLabel->SetPosition(162, 52);
+ SystemLabel->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ SystemLabel->SetStyle(STYLE_TEXT_FONT, 30);
+ SystemLabel->SetStyle(STYLE_LINE_HEIGHT, 35);
+ SystemLabel->SetText("GNT TEST");
+ SystemLabel->SetLineBreakMode(UILabel::LINE_BREAK_ADAPT);
+ SystemLabel->SetAlign(TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ SystemLabel->SetRollSpeed(6);
+ SystemLabel->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 30);
+
+ return true;
+ }
+
+ bool testView::AddResultButtons(UIScrollView *scrollView, int16_t viewId,UILabelButton*&oktestBtn,UILabelButton*&failtestBtn)
+ {
+ if (scrollView == nullptr)
+ {
+ return false;
+ }
+
+ printf("目前测试项id:%d",viewId);
+
+ // 创建新按钮(如果当前按钮为空)
+ if (oktestBtn == nullptr)
+ {
+ oktestBtn = new UILabelButton();
+ if (oktestBtn == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitButtonExt is error");
+ return false; // 内存分配失败,返回false
+ }
+ oktestBtn->SetPosition(40, 80);
+ oktestBtn->Resize(135, 88);
+
+ oktestBtn->SetStyle(STYLE_TEXT_FONT, 30);
+ oktestBtn->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ }
+ if (failtestBtn == nullptr)
+ {
+ failtestBtn = new UILabelButton();
+ if (failtestBtn == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "InitButtonExt is error");
+ return false; // 内存分配失败,返回false
+ }
+ failtestBtn->SetPosition(220, 80);
+ failtestBtn->Resize(135, 88);
+
+ failtestBtn->SetStyle(STYLE_TEXT_FONT, 30);
+ failtestBtn->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 30);
+ }
+
+ // 获取当前测试项状态
+ test_status_enum status = testModel::GetInstance()->GetResult(viewId);
+ printf("目前该项的测试状态为:%d\n",status);
+ // 获取测试项描述
+ std::string viewDesc = testModel::GetInstance()->GetTestItemDescription(viewId);
+ printf("目前测试项的描述是:%s\n",viewDesc.c_str());
+
+ // 安全检查:确保viewDesc不为空
+ if (viewDesc.empty())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AddResultButtons: viewDesc is empty for viewId %d", viewId);
+ return false;
+ }
+
+ if (oktestBtn)
+ {
+ oktestBtn->SetText("成功");
+ oktestBtn->SetAlign(TEXT_ALIGNMENT_CENTER);
+ // 根据状态设置按钮样式
+ switch (status)
+ {
+ case TEST_STATUS_NONE:
+ oktestBtn->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);
+ break;
+ case TEST_STATUS_SUCCESS:
+ oktestBtn->SetStyle(STYLE_BACKGROUND_COLOR, Color::Green().full);
+ break;
+ case TEST_STATUS_ERROR:
+ oktestBtn->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);
+ break;
+ }
+
+ // 设置按钮标识 - 修复悬空指针问题
+ okButtonViewId = "TestOK" + viewDesc;
+ printf("=== VIEWID DEBUG ===\n");
+ printf("设置前 oktestBtn->GetViewId() = %s\n", oktestBtn->GetViewId());
+ printf("准备设置 viewId = %s\n", okButtonViewId.c_str());
+ printf("okButtonViewId 字符串地址 = %p\n", okButtonViewId.c_str());
+ printf("okButtonViewId 字符串长度 = %zu\n", okButtonViewId.length());
+
+ oktestBtn->SetViewId(okButtonViewId.c_str());
+
+ printf("设置后 oktestBtn->GetViewId() = %s\n", oktestBtn->GetViewId());
+ printf("设置后 oktestBtn->GetViewId() 地址 = %p\n", oktestBtn->GetViewId());
+ printf("=== VIEWID DEBUG END ===\n");
+
+ // UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(testPresenter::GetInstance());
+ oktestBtn->SetOnClickListener(presenter_);
+ scrollView->Add(oktestBtn);
+ }
+
+ if (failtestBtn)
+ {
+ failtestBtn->SetText("失败");
+ failtestBtn->SetAlign(TEXT_ALIGNMENT_CENTER);
+
+ // 根据状态设置按钮样式
+ switch (status)
+ {
+ case TEST_STATUS_NONE:
+ failtestBtn->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);
+ break;
+ case TEST_STATUS_SUCCESS:
+ failtestBtn->SetStyle(STYLE_BACKGROUND_COLOR, Color::Gray().full);
+ break;
+ case TEST_STATUS_ERROR:
+ failtestBtn->SetStyle(STYLE_BACKGROUND_COLOR, Color::Red().full);
+ break;
+ }
+
+ // 设置按钮标识(修复了原代码中的错误)- 修复悬空指针问题
+ failButtonViewId = "TestNO" + viewDesc;
+ printf("=== VIEWID DEBUG FAIL BUTTON ===\n");
+ printf("设置前 failtestBtn->GetViewId() = %s\n", failtestBtn->GetViewId());
+ printf("准备设置 viewId = %s\n", failButtonViewId.c_str());
+ printf("failButtonViewId 字符串地址 = %p\n", failButtonViewId.c_str());
+ printf("failButtonViewId 字符串长度 = %zu\n", failButtonViewId.length());
+
+ failtestBtn->SetViewId(failButtonViewId.c_str());
+
+ printf("设置后 failtestBtn->GetViewId() = %s\n", failtestBtn->GetViewId());
+ printf("设置后 failtestBtn->GetViewId() 地址 = %p\n", failtestBtn->GetViewId());
+ printf("=== VIEWID DEBUG FAIL BUTTON END ===\n");
+
+ // UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(testPresenter::GetInstance());
+ failtestBtn->SetOnClickListener(presenter_);
+ scrollView->Add(failtestBtn);
+ }
+
+ return true;
+ }
+
+ /// @brief 设置按钮
+ /// @param oktestBtn
+ /// @return true 设置成功,false 失败
+
+ UILabelButtonExt *testView::SetTheButton_ext(ButtonConfig_ext_t &buttonconfig, UIView::OnClickListener *clickListener)
+ {
+ UILabelButtonExt *oktestBtn = new UILabelButtonExt();
+ if (oktestBtn == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SystemView::SetTheButton: oktestBtn new fail!");
+ return nullptr;
+ }
+ oktestBtn->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);
+ oktestBtn->SetViewId(buttonconfig.ViewId);
+ oktestBtn->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ oktestBtn->SetImageSrc(buttonconfig.ImageSrc, buttonconfig.ImageSrc);
+ oktestBtn->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);
+ oktestBtn->SetOnClickListener(clickListener);
+
+ oktestBtn->SetText(buttonconfig.str);
+ oktestBtn->SetAlign(TEXT_ALIGNMENT_LEFT);
+ oktestBtn->SetLabelPosition(buttonconfig.label_x, buttonconfig.label_y);
+ oktestBtn->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, buttonconfig.Fontsize);
+ // oktestBtn->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);
+
+ oktestBtn->SetImagePosition(326, 37);
+ return oktestBtn;
+ }
+
+ void testView::initView_ext(int x, int y, int w, int h, int interval, const char *imagsrc)
+ {
+ if (!SetTheSystemScrollView())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SetTheSystemScrollView() fail!");
+ return;
+ }
+ if (!SetTheTitle())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::SetTheTitle() fail!");
+ return;
+ }
+ /* -------------------------------------------------------------------------- */
+ UIView::OnClickListener *clickListener = static_cast<UIView::OnClickListener *>(testPresenter::GetInstance());
+ /* -------------------------------------------------------------------------- */
+ ButtonConfig_ext_t buttonconfig;
+ buttonconfig.x = x;
+ buttonconfig.y = y;
+ buttonconfig.w = w;
+ buttonconfig.h = h;
+
+ int len = sizeof(Test_ViewMapper_t) / sizeof(Test_ViewMapper_t[0]);
+
+ for (int i = 1; i < len; i++)
+ {
+ buttonconfig.str = Test_ViewMapper_t[i].Labe_str;
+ buttonconfig.ViewId = Test_ViewMapper_t[i].viewid_str;
+ buttonconfig.ImageSrc = imagsrc;
+ buttonconfig.label_x = 40;
+ buttonconfig.label_y = 0;
+ buttonconfig.Fontsize = 30;
+ buttonconfig.ALIGN = TEXT_ALIGNMENT_LEFT;
+ button[i] = SetTheButton_ext(buttonconfig, clickListener);
+ buttonconfig.y += interval;
+ }
+ /* -------------------------------------------------------------------------- */
+ }
+
+ // 0.跳转到系统视图,其他视图都市通过这个视图跳转
+ bool testView::ChangeSystemView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemView");
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ // 1.跳转到关于手表
+ bool testView::ChangeSystemAboutView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSystemAboutView");
+ test_about_view = new testAboutView();
+ if (test_about_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_about_view->SystemAbouTheWatchtInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ bool testView::ChangeLCDTESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeLCDTESTView");
+ test_LCD_view = new testLCDView();
+ if (test_LCD_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_LCD_view->testLCDInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ bool testView::ChangeTPTESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeTPTESTView");
+ test_TP_view = new testTPView();
+ if (test_TP_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_TP_view->testTPInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ bool testView::ChangeMGTESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeMGTESTView");
+ test_MG_view = new testMagicView();
+ if (test_MG_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_MG_view->testmagicInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ bool testView::ChangLUMTESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangLUMTESTView");
+ test_lum_view = new testLUMView();
+ if (test_lum_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_lum_view->testLUMInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ bool testView::ChangchargingTESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangchargingTESTView");
+ test_charging_view = new testCHANINGView();
+ if (test_charging_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_charging_view->testCHANINGInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ bool testView::ChangspeakTESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangspeakTESTView");
+ test_speak_view = new testSPEAKView();
+ if (test_speak_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_speak_view->testSPEAKInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ bool testView::ChangmotorTESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangmotorTESTView");
+ test_motor_view = new testMOTORView();
+ if (test_motor_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_motor_view->testMOTORInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ bool testView::ChangeCAT1TESTView(int16_t thisView)
+ {
+#ifdef SUPPORT_CAT1_SERVICE
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeCAT1TESTView");
+ test_cat1_view = new testcat1View();
+ if (test_cat1_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_cat1_view->testcat1InitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+#endif
+ return true;
+ }
+
+ bool testView::ChangKEYTESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangKEYTESTView");
+ test_KEY_view = new testbuttonView();
+ if (test_KEY_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_KEY_view->testBUTTONInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ bool testView::ChangeMPTESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeMPTESTView");
+ test_MP_view = new testmicrohoneView();
+ if (test_MP_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_MP_view->testmicrophoneInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ bool testView::ChangeHRTESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeHRTESTView");
+ test_hr_view = new testhrsenson1View();
+ if (test_hr_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_hr_view->testhrsensonInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ bool testView::ChangeGTESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeGTESTView");
+ test_G_view = new testgsensonView();
+ if (test_G_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_G_view->testGSENSONInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ bool testView::ChangeoldTESTView(int16_t thisView)
+ {
+#ifdef AGINGTEST
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeoldTESTView");
+ test_old_view = new testoldView();
+ if (test_old_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_old_view->testoldInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+#endif
+ return true;
+ }
+
+ bool testView::ChangeBTTESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeBTTESTView");
+ test_BT_view = new testBTView();
+ if (test_BT_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_BT_view->testBTInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ bool testView::ChangeSEChipTESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSEChipTESTView");
+ test_SEChip_view = new testSEChipView();
+ if (test_SEChip_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_SEChip_view->SEChipInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ bool testView::ChangePingTESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangePingTESTView");
+ test_Ping_view = new testPingView();
+ if (test_Ping_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_Ping_view->testPingInitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+ bool testView::ChangeQRCodeTESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeQRCodeTESTView");
+ test_QRCode_view = new testQRCodeView();
+ if (test_QRCode_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_QRCode_view->testQRCodeInitIView((uint8_t)thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+
+#if defined(SUPPORT_GNSS)
+ bool testView::ChangeGPSTESTView(int16_t thisView)
+ {
+
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSEChipTESTView");
+ test_GPS_view = new testGPSView();
+ if (test_GPS_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_GPS_view->testGPSInitIView((uint8_t)thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+
+ return true;
+ }
+#endif
+#ifdef ENABLE_LQBP002TA
+ bool testView::ChangepressureTestTESTView(int16_t thisView)
+ {
+
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeSEChipTESTView");
+ test_pressure_view = new testpressureView();
+ if (test_pressure_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_pressure_view->testpressureInitIView((uint8_t)thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+
+ return true;
+ }
+#endif
+#ifdef SUPPORT_A5133_SERVICE
+ bool testView::ChangeA5133TESTView(int16_t thisView)
+ {
+ if (SystemScrollView[thisView] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView::ChangeA5133TESTView");
+ test_A5133_view = new testA5133View();
+ if (test_A5133_view == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: new scrollView[%d] fail", thisView);
+ return false;
+ }
+ SystemScrollView[thisView] = test_A5133_view->testA5133InitIView(thisView);
+ group->Add(SystemScrollView[thisView]);
+ }
+ return true;
+ }
+#endif
+
+ UIScrollView *testView::GetSystemScrollView(int ViewId)
+ {
+ if (SystemScrollView[ViewId] == nullptr)
+ {
+ return nullptr;
+ }
+ return SystemScrollView[ViewId];
+ }
+
+ /* -------------------------------------------------------------------------- */
+ // 1.MainStopWatchViewMapper:结构体定义了一个将视图ID映射到特定成员函数指针的映射表。
+
+ // 3.根据传入的interface参数执行相应视图ID关联的成员函数。
+ bool testView::ClickFunc(int16_t interface)
+ {
+ int funcSize = sizeof(Test_ViewMapper_t) / sizeof(Test_ViewMapper_t[TESTVIEW]);
+ for (int i = 1; i < funcSize; i++)
+ {
+ if (interface == Test_ViewMapper_t[i].viewId)
+ {
+ bool jug = (this->*(Test_ViewMapper_t[i].func))(interface);
+ if (jug == false)
+ {
+ return false;
+ }
+ return true;
+ }
+ }
+ return false;
+ }
+
+ // 4.切换视图
+ void testView::ChangeView(int16_t hideView, int16_t showView)
+ {
+ if (hideView > MAX_TESTVIEWID)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: SystemViewId Overstep ones bounds");
+ return;
+ }
+ if (SystemScrollView[hideView] != nullptr)
+ {
+ SystemScrollView[hideView]->SetVisible(false);
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: SystemScrollView[%d] is nullptr", hideView);
+ }
+ ClickFunc(showView);
+ if (SystemScrollView[showView] != nullptr)
+ {
+ SystemScrollView[showView]->SetVisible(true);
+ }
+ else
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: SystemScrollView[%d] is nullptr", showView);
+ }
+ if (hideView != 0)
+ {
+ switch (hideView)
+ {
+ case VISON:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_about_view;
+ test_about_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+ case LCD:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_LCD_view;
+ test_LCD_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+ case TP:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_TP_view;
+ test_TP_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+ case MAGETIC:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_MG_view;
+ test_MG_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+ case LUMINANCE:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_lum_view;
+ test_lum_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+ case CHARG:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_charging_view;
+ test_charging_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+
+ case SPEAK:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_speak_view;
+ test_speak_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+ case MOTOR:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_motor_view;
+ test_motor_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+#ifdef SUPPORT_CAT1_SERVICE
+ case CAT1:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_cat1_view;
+ test_cat1_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+#endif
+ case BUTTON:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_KEY_view;
+ test_KEY_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+ case MICROPHONE:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_MP_view;
+ test_MP_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+ case HRSENSON:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_hr_view;
+ test_hr_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+ case GSENSON:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_G_view;
+ test_G_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+ case OLDTEST:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_old_view;
+ test_old_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+ case BTTEST:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_BT_view;
+ test_BT_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+ case SEChipTest:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_SEChip_view;
+ test_SEChip_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+ case PingTest:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_Ping_view;
+ test_Ping_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+#if defined(SUPPORT_GNSS)
+ case GPSTEST:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_GPS_view;
+ test_GPS_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+#endif
+#ifdef SUPPORT_A5133_SERVICE
+ case RF5133:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_A5133_view;
+ test_A5133_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+#endif
+#if defined(ENABLE_LQBP002TA)
+ case PRESSURETEST:
+ group->Remove(SystemScrollView[hideView]);
+ delete test_pressure_view;
+ test_pressure_view = nullptr;
+ SystemScrollView[hideView] = nullptr;
+ break;
+#endif
+ default:
+ break;
+ }
+ }
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "change>>>>>>>>>>>hideView %d > showView %d >>>", hideView, showView);
+ }
+ /* -------------------------------------------------------------------------- */
+
+ void testView::OnStart()
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnStart>>>>>>>>>>>>>");
+
+ if (group == nullptr)
+ {
+ group = new UIViewGroup();
+ if (group == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "WatchQRCodeView::WatchQRCodeGroupView new fail!");
+ }
+ }
+ group->SetPosition(0, 0, Screen::GetInstance().GetWidth(), Screen::GetInstance().GetHeight());
+ group->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ group->SetTouchable(true);
+ group->SetDraggable(true);
+
+ // InitIView();
+ initView_ext(43, 120, 380, 100, 120, "/user/res/SETTING_NEXT.bin");
+ const power_display_svr_api_t *display_api = power_display_svr_get_api();
+ if (display_api->get_screen_state() != SCREEN_ON)
+ {
+ display_api->turn_on_screen();
+ }
+ display_api->set_auto_timeout_function(false);
+
+ uint8_t cnt = pm_veto_get_id_cnt(PM_ID_P_TEST);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "cnt : %d\n", cnt);
+ if (cnt == 0)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "uapi_pm_add_sleep_veto(PM_ID_P_TEST);");
+ uapi_pm_add_sleep_veto(PM_ID_P_TEST);
+ }
+
+ if (!uapi_dev_runtime_get_factory_test_status_flag())
+ uapi_set4GCapability(true);
+
+ start_custom_ble_service();
+
+ if (SystemScrollView[TESTVIEW] == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "SystemView:: OnSetUpView has nullptr");
+ return;
+ }
+ SystemScrollView[TESTVIEW]->Add(SystemLabel);
+ int len = sizeof(Test_ViewMapper_t) / sizeof(Test_ViewMapper_t[0]);
+ for (int i = 0; i < len; i++)
+ {
+ SystemScrollView[TESTVIEW]->Add(button[i]);
+ }
+ group->Add(SystemScrollView[TESTVIEW]);
+ AddViewToRootContainer(group);
+ }
+
} // namespace OHOS
\ No newline at end of file