UILabel *debugOutputLabel{nullptr};
UILabelButton *debugOutputLabelButton{nullptr};
UIToggleButton* toggleButton = nullptr;
+ UIToggleButton* toggleButtonOffline = nullptr;
UILabelButton *debugOutputbleServiceLabelButton{nullptr};
static constexpr const char *DEBUGOUTPUTLABELBUTTON = "debugOutputLabelButton";
static constexpr const char *DEBUGOUTPUTBLESERVICELABELBUTTON = "debugOutputbleServiceLabelButton";
debugOutputItemInfo[index++] = {index, "wear_status"};
// 电量信息
debugOutputItemInfo[index++] = {index, "battery_percent"};
+ //离线日志开关控制窗口,需要采用 ./autobuild.sh uoffline 【CONFIG_DFX_SUPPORT_OFFLINE_LOG_FILE=1】编译才有效
+ debugOutputItemInfo[index++] = {index, "offline_log"};
+
usedLen = index;
/* -------------------------------- Add data -------------------------------- */
for (uint8_t i = 0; i < usedLen; i++)
return std::string(buf);
}
+
+ std::string DebugOutputViewEventListener::get_offline_log_status() {
+ uint8_t offline = get_offline_log_nv();
+ return std::string("offline_log_status:") + std::to_string(offline);
+ }
+
bool DebugOutputViewEventListener::OnClick(OHOS::UIView &view, const OHOS::ClickEvent &event)
{
std::string viewId = view.GetViewId();
}
// viewIndex = GetCurViewIndex();
return true; //进行UI刷新
+ }//点击开启按键
+ else if (viewId == "offline_log_switch") {
+ if (toggleButtonOffline) {
+ if (toggleButtonOffline->GetState() == false) {
+ int ret1 = enable_offline_log_nv(0);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"offline_log_switch false %d",ret1);
+ }
+ else {
+ int ret1 = enable_offline_log_nv(1);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"offline_log_switch true %d",ret1);
+ }
+ } else {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP,"组件不存在");
+ }
+ // viewIndex = GetCurViewIndex();
+ return true; //进行UI刷新
}
else // 如果点击的是列表中的itemview
{
case 16:
str = get_battery_percent();
break;
+ case 17:
+ str = get_offline_log_status();
+ if (toggleButtonOffline) {
+ if (toggleButtonOffline->IsVisible() == false) {
+ toggleButtonOffline->SetVisible(true);
+ }
+ }
+ break;
default:
str = "--";
break;
toggleButton->SetViewId("uart_at_set");// Set style
toggleButton->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+ if (toggleButtonOffline == nullptr) {
+ toggleButtonOffline = new UIToggleButton();
+ }
+ toggleButtonOffline->SetPosition(147, debugOutputLabel->GetY() + debugOutputLabel->GetHeight() + 20+120); // widget's left position and top position
+ toggleButtonOffline->Resize(171, 121); // widget's width and height
+ toggleButtonOffline->SetViewId("offline_log_switch");// Set style
+ toggleButtonOffline->SetStyle(STYLE_BACKGROUND_OPA, 0x00);
+
+
+ if(get_offline_log_nv()==0)
+ toggleButtonOffline->SetState(false);
+ else
+ toggleButtonOffline->SetState(true);
+ toggleButtonOffline->SetVisible(false); //设置不可见
+ UIView::OnClickListener *clickListeneroffline_ = static_cast<UIView::OnClickListener *>(&DebugOutputViewEventListener::GetInstance());
+ if (clickListeneroffline_ == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "clickListeneroffline is new fail!!");
+ return nullptr;
+ }
+ toggleButtonOffline->SetOnClickListener(clickListeneroffline_);
+ DebugScrollView[1]->Add(toggleButtonOffline);
//获取状态
auto logModel = SystemLogModel::GetInstance();
bool status = logModel->get_uart_status();
delete debugOutputbleServiceLabelButton;
debugOutputbleServiceLabelButton = nullptr;
+ delete toggleButton;
+ toggleButton = nullptr;
+
+ delete toggleButtonOffline;
+ toggleButtonOffline = nullptr;
+
delete DebugScrollView[0];
DebugScrollView[0] = nullptr;
}
errcode_t touch_resume_in_cmd_queue(void)
{
return do_custom_cmd_service_check_msg(CUSTOM_CMD_MSG_TYPE_TOUCH_RESUME,NULL,0);
+}
+
+
+uint8_t get_offline_log_nv(void)
+{
+#ifdef CONFIG_NV_FEATURE_SUPPORT
+ uint8_t flag = 0;
+ uint16_t length;
+ errcode_t ret = uapi_nv_read(NV_ID_OFFLINELOG_ENBALE_FLAG, sizeof(flag), &length, &flag);
+ if (ret != ERRCODE_SUCC) {
+ return 0;
+ }
+ return flag;
+#else
+ return 0;
+#endif
+}
+errcode_t enable_offline_log_nv(uint8_t log_enable)
+{
+
+#ifdef CONFIG_NV_FEATURE_SUPPORT
+ uint8_t flag = log_enable;
+ uint16_t length;
+ errcode_t ret = uapi_nv_write(NV_ID_OFFLINELOG_ENBALE_FLAG, &flag, sizeof(flag));
+ if (ret != ERRCODE_SUCC) {
+ // uapi_zdiag_set_offline_log_enable(false);
+ return ret;
+ }
+ if (log_enable != 0) {
+ uapi_zdiag_set_offline_log_enable(true);
+ } else {
+ uapi_zdiag_set_offline_log_enable(false);
+ }
+ return ERRCODE_SUCC;
+#endif
+
+
+ return ERRCODE_SUCC;
}
\ No newline at end of file