class PhoneCallView;\r
class PhoneCallPresenter : public Presenter<PhoneCallView>,\r
public UIView::OnClickListener,\r
+ public RootView::OnKeyActListener,\r
public UIView::OnDragListener\r
\r
{\r
// 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
bool OnClick(UIView &view, const ClickEvent &event) override;\r
bool OnDrag(UIView &view, const DragEvent &event) override;\r
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
};\r
} // namespace OHOS\r
\r
\r
class PhoneDirPresenter : public Presenter<PhoneDirView>,\r
public UIView::OnClickListener,\r
+ public RootView::OnKeyActListener,\r
public UIView::OnDragListener\r
{\r
public:\r
// 因为继承了OnClickListener,所以有OnClick属性,至于参数,原函数也这样直接继承;\r
bool OnClick(UIView &view, const ClickEvent &event) override;\r
bool OnDrag(UIView &view, const DragEvent &event) override;\r
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件\r
+ \r
};\r
} // namespace OHOS\r
\r
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-04-28 09:58:04
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-29 09:24:21
+ * @LastEditTime: 2024-04-29 16:21:03
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/phone/include/TelephonyInitInterface.h
*/
#ifndef TELEPHONY_INIT_INTERFACE_H
#include "components/ui_image_view.h"
#include "iostream"
#include "UiConfig.h"
+#include "gfx_utils/mem_check.h"
+#define DUMPMEMORY 0
namespace OHOS
{
static constexpr const char *PNG_FREQUENTLYCONTACTEDBUTTON_IMAGE = "/user/res/Phone/Telephone/FrequentlyContacted.bin"; // 常用联系人按钮icon图片
static constexpr const char *PNG_TELEPHONELINE_IMAGE = "/user/res/Phone/Telephone/TelephoneLine.bin"; // 线
+ // 拨号方式
+ static constexpr uint8_t DIALINGMETHOD_USINGWATCHSIM = 1; // 手表SIM卡拨号
+ static constexpr uint8_t DIALINGMETHOD_USINGPHONE = 0; // 手机拨号
+
class TelephonyInitInterface
{
public:
- static bool X_DRAG_FLAG; // 水平拖拽标志
+ static bool X_DRAG_FLAG; // 水平拖拽标志
+ static uint8_t DIALINGMETHOD; // 拨号方式
typedef struct
{
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-28 14:17:43
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-29 10:01:43
+ * @LastEditTime: 2024-04-29 16:18:09
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/DialingMethodPresenter.cpp
*/
#include "AppViewIDs.h"
if (curViewId == USINGWATCHSIMBUTTON_VIEWID)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick",curViewId.c_str());
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick", curViewId.c_str());
+ TelephonyInitInterface::DIALINGMETHOD = DIALINGMETHOD_USINGWATCHSIM; // 手表SIM卡拨号
+ NativeAbility::GetInstance().EnterSlice(VIEW_PHONECALL);
}
else if (curViewId == USINGPHONEBUTTON_VIEWID)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick",curViewId.c_str());
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick", curViewId.c_str());
+ TelephonyInitInterface::DIALINGMETHOD = DIALINGMETHOD_USINGPHONE; // 手机拨号
+ NativeAbility::GetInstance().EnterSlice(VIEW_PHONECALL);
}
return true;
}
* @Author: luozheng 1732036298@qq.com
* @Date: 2024-03-28 14:17:43
* @LastEditors: luozheng 1732036298@qq.com
- * @LastEditTime: 2024-04-29 10:02:49
+ * @LastEditTime: 2024-04-29 15:45:54
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/language/src/MainPhonePresenter.cpp
*/
#include "AppViewIDs.h"
if (curViewId == DIALINGMETHODBUTTON_VIEWID)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick",curViewId.c_str());
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick", curViewId.c_str());
NativeAbility::GetInstance().EnterSlice(VIEW_DIALING_METHOD);
}
else if (curViewId == FREQUENTLYCONTACTEDBUTTON_VIEWID)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick",curViewId.c_str());
-
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick", curViewId.c_str());
+ NativeAbility::GetInstance().EnterSlice(VIEW_PHONEDIR);
}
return true;
#include "cat1_server_hal.h"\r
#include "PhoneService.h"\r
#include "phone/include/PhoneCallView.h"\r
+#include "phone/include/TelephonyInitInterface.h"\r
+#include "common/key_code.h"\r
+#include <custom_utils.h>\r
namespace OHOS\r
{\r
\r
if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT &&\r
(event.GetDeltaX() > 20) && (event.GetDeltaX() > (2 * MATH_ABS(event.GetDeltaY()))))\r
{\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_PHONE);\r
+ NativeAbility::GetInstance().Back();\r
}\r
\r
\r
// 拨号键\r
//NativeAbility::GetInstance().ChangeSlice(VIEW_PHONERING);\r
//calldial_event_sendmsg_toUI((char *)phoneNumber.c_str());\r
- PhoneCallView::GetInstance()->container_child_SetVisible(true);\r
+ //PhoneCallView::GetInstance()->container_child_SetVisible(true);\r
+ if(TelephonyInitInterface::DIALINGMETHOD == DIALINGMETHOD_USINGWATCHSIM)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DIALINGMETHOD_USINGWATCHSIM");\r
+ calldial_event_sendmsg_toUI((char *)phoneNumber.c_str());\r
+ }\r
+ else if(TelephonyInitInterface::DIALINGMETHOD == DIALINGMETHOD_USINGPHONE)\r
+ {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "DIALINGMETHOD_USINGPHONE");\r
+ DialCall((unsigned char *)phoneNumber.c_str(),phoneNumber.length());\r
+ }\r
+\r
}\r
else if (strcmp(viewId, BUTTONDEL) == 0)\r
{\r
printf("**************************\n");\r
return true;\r
}\r
+\r
+\r
+ bool PhoneCallPresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件\r
+ {\r
+ UNUSED(view);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DialingMethodPresenter::OnKeyAct");\r
+ unsigned short keyID = event.GetKeyId();\r
+ unsigned short keyState = event.GetState();\r
+ // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+ {\r
+ NativeAbility::GetInstance().Back();\r
+ }\r
+ return true;\r
+ }\r
}
\ No newline at end of file
// GetView();\r
GetView();\r
RootView::GetInstance()->Add(container_);\r
+\r
+ // 增加按键监听\r
+ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::PhoneCallPresenter::GetInstance();\r
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
}\r
\r
void PhoneCallView::OnSetUpView()\r
{\r
View<PhoneCallPresenter>::OnStop();\r
RootView::GetInstance()->RemoveAll();\r
+ RootView::GetInstance()->ClearOnKeyActListener();\r
return;\r
}\r
\r
}\r
if (strcmp(view.GetViewId(), PHONEOFFBUTTON) == 0)\r
{\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_PHONE);\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_PHONE);\r
}\r
return true;\r
}\r
// 根据控件id查找是哪个控件触发了点击回调\r
if (strcmp(view.GetViewId(), OFFBUTTON) == 0)\r
{\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_PHONE);\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_PHONE);\r
}\r
if (strcmp(view.GetViewId(), "button2") == 0)\r
{\r
#include "phone/include/PhoneDirView.h"\r
#include "components/ui_button.h"\r
#include "components/ui_label_button_ext.h"\r
-\r
+#include "common/key_code.h"\r
+#include <custom_utils.h>\r
namespace OHOS\r
{\r
\r
}\r
else\r
{\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_PHONE);\r
+ NativeAbility::GetInstance().Back();\r
}\r
\r
\r
// if (strcmp(view.GetViewId(), 控件ID) == 0)\r
return true;\r
}\r
+\r
+\r
+ bool PhoneDirPresenter::OnKeyAct(UIView &view, const KeyEvent &event) // 增加按键事件\r
+ {\r
+ UNUSED(view);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "DialingMethodPresenter::OnKeyAct");\r
+ unsigned short keyID = event.GetKeyId();\r
+ unsigned short keyState = event.GetState();\r
+ // 如果是power键,且是亮屏状态,按键释放就返回上一级\r
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)\r
+ {\r
+ NativeAbility::GetInstance().Back();\r
+ }\r
+ return true;\r
+ }\r
}
\ No newline at end of file
\r
\r
RootView::GetInstance()->Add(container_);\r
+\r
+ // 增加按键监听\r
+ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::PhoneDirPresenter::GetInstance();\r
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);\r
}\r
\r
void PhoneDirView::OnSetUpView()\r
{\r
View<PhoneDirPresenter>::OnStop();\r
RootView::GetInstance()->RemoveAll();\r
+ RootView::GetInstance()->ClearOnKeyActListener();\r
return;\r
}\r
}\r
// 根据控件id查找是哪个控件触发了点击回调\r
if (strcmp(view.GetViewId(), OFFBUTTON) == 0)\r
{\r
- NativeAbility::GetInstance().ChangeSlice(VIEW_PHONE);\r
+ NativeAbility::GetInstance().ChangeSlice(VIEW_MAIN_PHONE);\r
}\r
return true;\r
}\r
namespace OHOS
{
- bool TelephonyInitInterface::X_DRAG_FLAG = false; // 水平拖拽标志
+ bool TelephonyInitInterface::X_DRAG_FLAG = false; // 水平拖拽标志
+ uint8_t TelephonyInitInterface::DIALINGMETHOD = -1; // 默认未选择任何拨号方式
TelephonyInitInterface::TelephonyInitInterface()
{