navibar.cc 6.5 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198
  1. #pragma once
  2. #include "uart/ProtocolSender.h"
  3. #include "core/utilities.h"
  4. #include "storage/StoragePreferences.h"
  5. #include "core/sip_config.h"
  6. #include "edge/popup_service.h"
  7. #include "base/strings.hpp"
  8. #include "net/tcp_client.h"
  9. #include "app/Activity.h"
  10. /*
  11. *此文件由GUI工具生成
  12. *文件功能:用于处理用户的逻辑相应代码
  13. *功能说明:
  14. *========================onButtonClick_XXXX
  15. 当页面中的按键按下后系统会调用对应的函数,XXX代表GUI工具里面的[标识]名称,
  16. 如Button1,当返回值为false的时候系统将不再处理这个按键,返回true的时候系统将会继续处理此按键。比如SYS_BACK.
  17. *========================onSlideWindowItemClick_XXXX(int index)
  18. 当页面中存在滑动窗口并且用户点击了滑动窗口的图标后系统会调用此函数,XXX代表GUI工具里面的[标识]名称,
  19. 如slideWindow1;index 代表按下图标的偏移值
  20. *========================onSeekBarChange_XXXX(int progress)
  21. 当页面中存在滑动条并且用户改变了进度后系统会调用此函数,XXX代表GUI工具里面的[标识]名称,
  22. 如SeekBar1;progress 代表当前的进度值
  23. *========================ogetListItemCount_XXXX()
  24. 当页面中存在滑动列表的时候,更新的时候系统会调用此接口获取列表的总数目,XXX代表GUI工具里面的[标识]名称,
  25. 如List1;返回值为当前列表的总条数
  26. *========================oobtainListItemData_XXXX(ZKListView::ZKListItem *pListItem, int index)
  27. 当页面中存在滑动列表的时候,更新的时候系统会调用此接口获取列表当前条目下的内容信息,XXX代表GUI工具里面的[标识]名称,
  28. 如List1;pListItem 是贴图中的单条目对象,index是列表总目的偏移量。具体见函数说明
  29. *========================常用接口===============
  30. *LOGD(...) 打印调试信息的接口
  31. *mTextXXX->setText("****") 在控件TextXXX上显示文字****
  32. *mButton1->setSelected(true); 将控件mButton1设置为选中模式,图片会切换成选中图片,按钮文字会切换为选中后的颜色
  33. *mSeekBar->setProgress(12) 在控件mSeekBar上将进度调整到12
  34. *mListView1->refreshListView() 让mListView1 重新刷新,当列表数据变化后调用
  35. *mDashbroadView1->setTargetAngle(120) 在控件mDashbroadView1上指针显示角度调整到120度
  36. */
  37. static bool isHelpTimerRegistered = false;
  38. #define HELP_TIMER_HANDLE 3
  39. void setBtnHelpVisible(bool visible){
  40. mBtnHelpPtr->setVisible(visible);
  41. }
  42. void cancelAutoBtnHelpTimer(){
  43. if (isHelpTimerRegistered) {
  44. mnavibarPtr->unregisterUserTimer(HELP_TIMER_HANDLE);
  45. isHelpTimerRegistered = false;
  46. }
  47. }
  48. /**
  49. * 注册定时器
  50. * 填充数组用于注册定时器
  51. * 注意:id不能重复
  52. */
  53. static S_ACTIVITY_TIMEER REGISTER_ACTIVITY_TIMER_TAB[] = {
  54. //{0, 6000}, //定时器id=0, 时间间隔6秒
  55. //{1, 1000},
  56. };
  57. /**
  58. * 当界面构造时触发
  59. */
  60. static void onUI_init(){
  61. //Tips :添加 UI初始化的显示代码到这里,如:mText1->setText("123");
  62. }
  63. /*
  64. * 当界面完全退出时触发
  65. */
  66. static void onUI_quit() {
  67. }
  68. /**
  69. * 串口数据回调接口
  70. */
  71. static void onProtocolDataUpdate(const SProtocolData &data) {
  72. //串口数据回调接口
  73. }
  74. /**
  75. * 定时器触发函数setReinforce
  76. * 不建议在此函数中写耗时操作,否则将影响UI刷新
  77. * 参数: id
  78. * 当前所触发定时器的id,与注册时的id相同
  79. * 返回值: true
  80. * 继续运行当前定时器
  81. * false
  82. * 停止运行当前定时器
  83. */
  84. static bool onUI_Timer(int id){
  85. switch (id) {
  86. case HELP_TIMER_HANDLE: // 不能在线程里面关掉线程
  87. {
  88. SetPainterInfo(0xFFFFFFFF,"");
  89. setBtnHelpVisible(true);
  90. setReinforce(false);
  91. return false;
  92. }
  93. break;
  94. default:
  95. break;
  96. }
  97. return true;
  98. }
  99. /**
  100. * 有新的触摸事件时触发
  101. * 参数:ev
  102. * 新的触摸事件
  103. * 返回值:true
  104. * 表示该触摸事件在此被拦截,系统不再将此触摸事件传递到控件上
  105. * false
  106. * 触摸事件将继续传递到控件上
  107. */
  108. static bool onnavibarActivityTouchEvent(const MotionEvent &ev) {
  109. switch (ev.mActionStatus) {
  110. case MotionEvent::E_ACTION_DOWN://触摸按下
  111. //LOGD("时刻 = %ld 坐标 x = %d, y = %d", ev.mEventTime, ev.mX, ev.mY);
  112. break;
  113. case MotionEvent::E_ACTION_MOVE://触摸滑动
  114. break;
  115. case MotionEvent::E_ACTION_UP: //触摸抬起
  116. break;
  117. default:
  118. break;
  119. }
  120. return false;
  121. }
  122. static bool onButtonClick_BtnCall(ZKButton *pButton) {
  123. LOGD(" ButtonClick BtnCall !!!\n");
  124. // int port = StoragePreferences::getInt(SIP_REG_PORT, SIP_REG_PORT_DEFAULT);
  125. // std::string domain = StoragePreferences::getString(SIP_REG_DOMAIN, SIP_REG_DOMAIN_DEFAULT);
  126. // std::string od_number = StoragePreferences::getString(SIP_REG_DOOR_ACCOUNT, SIP_REG_DOOR_ACCOUNT_DEFAULT);
  127. // std::string od_number_uri = URI(od_number, domain, port);
  128. // LOGD("od_number_uri: %s", od_number_uri.c_str());
  129. // GetTelephone()->MakeCall(od_number_uri);
  130. Intent* intent = new Intent();
  131. intent->putExtra(isOutgoing, "true");
  132. intent->putExtra(audioOnly, "true");
  133. EASYUICONTEXT->openActivity("callActivity", intent);
  134. return false;
  135. }
  136. static bool onButtonClick_BtnHelp(ZKButton *pButton) {
  137. LOGD(" ButtonClick BtnHelp !!!\n");
  138. TcpModel tcpModel;
  139. tcpModel.type = TcpType::REINFORCE;
  140. tcpModel.action = ReinforceAction::CALL;
  141. tcpModel.from_id = StoragePreferences::getInt(STORE_DEVICE_ID,0);
  142. tcpModel.to_id = 0;
  143. std::string req = getTcpModelString(tcpModel);
  144. LOGD("REINFORCE CALL : %s",req.c_str());
  145. // TcpClient::instance()->sendMsg(req.c_str());
  146. //回调注册
  147. TcpCallback callback;
  148. callback.tid = tcpModel.tid;
  149. callback.jsonStr = req;
  150. callback.onSuccess = [](Json::Value json){
  151. LOGD("callback success");
  152. return 0;
  153. };
  154. callback.onFalied = [](Json::Value json){
  155. LOGD("callback failed");
  156. return 0;
  157. };
  158. TcpClient::instance()->sendMsgWithCb(req.c_str(), callback);
  159. SetPainterInfo(0xFF2F9DF1,"增援已发出");
  160. setBtnHelpVisible(false); // 设置增援的按钮为false
  161. setReinforce(true); // 设置增援状态为true
  162. //1分钟后无响应还原颜色
  163. if (!isHelpTimerRegistered){
  164. mnavibarPtr->registerUserTimer(HELP_TIMER_HANDLE, 60000);
  165. }
  166. return false;
  167. }
  168. static bool onButtonClick_sys_back(ZKButton *pButton) {
  169. LOGD(" ButtonClick sys_back !!!\n");
  170. return false;
  171. }
  172. static bool onButtonClick_sys_home(ZKButton *pButton) {
  173. LOGD(" ButtonClick sys_home !!!\n");
  174. return false;
  175. }
  176. static bool onButtonClick_BtnAbout(ZKButton *pButton) {
  177. LOGD(" ButtonClick BtnAbout !!!\n");
  178. EASYUICONTEXT->openActivity("ui3Activity");
  179. return false;
  180. }