ALIPAY_PRINT_DEBUG(0, "BtGattsRequestReadCallback");\r
}\r
\r
+bool is_alipay_handle(uint16_t hande)\r
+{\r
+ if ((g_alipay_characteristic_handle == hande) ||\r
+ (g_alipay_descriptor_handle[0] == hande) ||\r
+ (g_alipay_descriptor_handle[1] == hande)) \r
+ {\r
+ return true;\r
+ }\r
+ return false;\r
+}\r
static void svr_alipay_bt_gatts_req_write_cb(uint8_t server_id, uint16_t conn_id, gatts_req_write_cb_t *write_cb_para,\r
errcode_t status)\r
{\r
void svr_alipay_bt_init_gatts(uint8_t);
void svr_alipay_ble_adv_start_t(void);
void ble_add_alipay_service(uint8_t server_id);
+
+uint16_t get_g_alipay_conn_id(void);
+
+bool is_alipay_handle(uint16_t hande);
+
#endif
void OnTearDownView() override;\r
void OnStop() override;\r
void DropView(UIView &view);\r
+ void DropView(uint8_t type);\r
void SwitchView(UIView &view);\r
\r
void ChangeView(int16 hideView, int16 showView);\r
int32_t AlipayGetIdName(uint8_t *idStr);\r
int32_t AlipayGetAidCode(int8_t *aidStr);\r
void AlipayUnbind(void);\r
+ bool ble_disconnect_AlipayStartBind(void);\r
+ void AlipayStopdisconnecTimer(void);\r
bool AlipayStartBind(void);\r
bool AlipayStartSwitchTimer(uint16_t time);\r
void AlipayStopBindTimer(void);\r
void AlipayScreenControl(bool turnOnFlag);\r
private:\r
osTimerId_t bindTimerId = nullptr;\r
+ osTimerId_t ble_disconnect_bindTimerId = nullptr;\r
+\r
osTimerId_t switchTimerId = nullptr;\r
osTimerId_t transTimerId = nullptr;\r
int16 alipayInterLis;\r
{\r
return interListen;\r
}\r
+//当前定义为给按键专用\r
+void AlipayMainView::DropView(uint8_t type)\r
+{\r
\r
+ if(alipayWhichInter==ALIPAY_BIND_ANI_VIEW)\r
+ {\r
+ ChangeView(ALIPAY_BIND_ANI_VIEW, ALIPAY_BIND_EXIT_VIEW);\r
+ }\r
+ else\r
+ {\r
+ AlipayModel::GetInstance()->AlipayStopSwitchTimer();\r
+ AlipayModel::GetInstance()->AlipayStopBindTimer();\r
+ AlipayModel::GetInstance()->AlipayStopdisconnecTimer();\r
+ // NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);\r
+ NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+ }\r
+ \r
+ \r
+}\r
void AlipayMainView::DropView(UIView &view)\r
{\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView");\r
if (&view == container[ALIPAY_PAY_BARCODE_VIEW]) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_PAY_BARCODE_VIEW]");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_PAY_BARCODE_VIEW]");\r
ChangeView(ALIPAY_PAY_BARCODE_VIEW, ALIPAY_PAY_VIEW);\r
} else if (&view == container[ALIPAY_PAY_VIEW]) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_PAY_VIEW]");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_PAY_VIEW]");\r
AlipayModel::GetInstance()->AlipayStopSwitchTimer();\r
ChangeView(ALIPAY_PAY_VIEW, ALIPAY_LIST_VIEW);\r
} else if (&view == container[ALIPAY_SETTING_VIEW]) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_SETTING_VIEW]");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_SETTING_VIEW]");\r
ChangeView(ALIPAY_SETTING_VIEW, ALIPAY_LIST_VIEW);\r
} else if (&view == container[ALIPAY_HELP_VIEW]) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_HELP_VIEW]");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_HELP_VIEW]");\r
ChangeView(ALIPAY_HELP_VIEW, ALIPAY_LIST_VIEW);\r
} else if (&view == container[ALIPAY_BIND_ANI_VIEW]) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_BIND_ANI_VIEW]");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_BIND_ANI_VIEW]");\r
ChangeView(ALIPAY_BIND_ANI_VIEW, ALIPAY_BIND_EXIT_VIEW);\r
} else if (&view == container[ALIPAY_LIST_VIEW] || &view == container[ALIPAY_BIND_VIEW]) {\r
AlipayModel::GetInstance()->AlipayStopSwitchTimer();\r
AlipayModel::GetInstance()->AlipayStopBindTimer();\r
+ AlipayModel::GetInstance()->AlipayStopdisconnecTimer();\r
// NativeAbility::GetInstance().ChangeSlice(VIEW_APPLIST);\r
NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
} else if (&view == container[ALIPAY_TRANS_LIST_VIEW]) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_TRANS_LIST_VIEW]");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_TRANS_LIST_VIEW]");\r
ChangeView(ALIPAY_TRANS_LIST_VIEW, ALIPAY_LIST_VIEW);\r
} else if (&view == container[ALIPAY_TRANS_VIEW]) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_TRANS_VIEW]");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_TRANS_VIEW]");\r
ChangeView(ALIPAY_TRANS_VIEW, ALIPAY_TRANS_LIST_VIEW);\r
} else if (&view == container[ALIPAY_TRANS_ENABLE_VIEW]) {\r
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_TRANS_ENABLE_VIEW]");\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_TRANS_ENABLE_VIEW]");\r
AlipayModel::GetInstance()->AlipayTransStopGetListsTimer();\r
ChangeView(ALIPAY_TRANS_ENABLE_VIEW, ALIPAY_LIST_VIEW);\r
}\r
+ \r
\r
return;\r
}\r
{\r
stop_alipay_ble_service();\r
}\r
- \r
+\r
AlipayModel::GetInstance()->SetAlipayInterLis(showView);\r
\r
Draw();\r
\r
#include "power_display_service.h"\r
#include "custom_utils.h"\r
+#include "bleService.h"\r
namespace OHOS {\r
AlipayModel::AlipayModel() : alipayApi(alipay_svr_get_api())\r
{\r
AlipayModel::GetInstance()->AlipaySetBindFlag(true);\r
\r
AlipayMainView::GetInstance()->ChangeView(currentView, ALIPAY_BIND_RES_VIEW);\r
+ \r
+ AlipayModel::GetInstance()->AlipayStopdisconnecTimer();\r
} else if (ALIPAY_INTER_STATUS_BINDING_FAIL == status && reFlag == 1) {\r
AlipayModel::GetInstance()->AlipayStopBindTimer();\r
AlipayModel::GetInstance()->AlipaySetBindFlag(false);\r
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProc ALIPAY_INTER_STATUS_BINDING_FAIL");\r
AlipayModel::GetInstance()->AlipaySetRefreshFlag(0);\r
AlipayMainView::GetInstance()->ChangeView(currentView, ALIPAY_BIND_RES_VIEW);\r
+ AlipayModel::GetInstance()->AlipayStopdisconnecTimer();\r
+ }\r
+ else if (ALIPAY_INTER_STATUS_START_BINDING == status && reFlag == 1 && currentView==ALIPAY_BIND_ANI_VIEW) {\r
+ if(get_Alipay_ble_connect()==false)\r
+ {\r
+ AlipayModel::GetInstance()->ble_disconnect_AlipayStartBind();\r
+ }\r
+ \r
}\r
}\r
+void AlipayBindCallBackProcdisconnect(void *argument)\r
+{\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProc in.");\r
+ const alipay_svr_api_t *alipay_api = alipay_svr_get_api();\r
+ int32_t status = 0;\r
+ int32_t ret = alipay_api->get_bind_status(&status);\r
+ if (AlipayMainView::GetInstance() == nullptr) {\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "AlipayMainView::GetInstance is null, do nothing.");\r
+ return;\r
+ }\r
\r
+ int16_t currentView = AlipayModel::GetInstance()->GetAlipayInterLis();\r
+ uint32_t reFlag = AlipayModel::GetInstance()->AlipayGetRefreshFlag();\r
+\r
+ if (ALIPAY_INTER_STATUS_START_BINDING == status && reFlag == 1 && currentView==ALIPAY_BIND_ANI_VIEW) {\r
+ if(get_Alipay_ble_connect()==false)\r
+ {\r
+\r
+ AlipayModel::GetInstance()->AlipayStopBindTimer();\r
+ AlipayModel::GetInstance()->AlipaySetBindFlag(false);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayBindCallBackProc ALIPAY_INTER_STATUS_BINDING_FAIL");\r
+ AlipayModel::GetInstance()->AlipaySetRefreshFlag(0);\r
+ AlipayMainView::GetInstance()->ChangeView(currentView, ALIPAY_BIND_RES_VIEW);\r
+ }\r
+ \r
+ }\r
+} \r
void AlipayBindTimerCallBack(void *argument)\r
{\r
GraphicService::GetInstance()->PostGraphicEvent(std::bind(&AlipayBindCallBackProc, argument));\r
}\r
\r
+\r
+void AlipayBindTimerCallBackbledisconnect(void *argument)\r
+{\r
+ GraphicService::GetInstance()->PostGraphicEvent(std::bind(&AlipayBindCallBackProcdisconnect, argument));\r
+}\r
+\r
+bool AlipayModel::ble_disconnect_AlipayStartBind(void)\r
+{\r
+ if (ble_disconnect_bindTimerId == nullptr) {\r
+ ble_disconnect_bindTimerId = osTimerNew(AlipayBindTimerCallBackbledisconnect, osTimerOnce, (void *)0, nullptr);\r
+ if (ble_disconnect_bindTimerId == nullptr) {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStartBind Create timer fail.");\r
+ return false;\r
+ }\r
+ }\r
+\r
+ int32_t retcode = osTimerStart(ble_disconnect_bindTimerId, ALIPAY_BIND_STATUS_TIMER_LENGTH*2);\r
+ if (retcode != 0) {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStartBind Start timer fail");\r
+ return false;\r
+ }\r
+ return true;\r
+}\r
+\r
+\r
+void AlipayModel::AlipayStopdisconnecTimer(void)\r
+{\r
+ if (ble_disconnect_bindTimerId == nullptr) {\r
+ return;\r
+ }\r
+ int32_t ret = osTimerStop(ble_disconnect_bindTimerId);\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayModel::AlipayStopBindTimer in,%u.", ret);\r
+ ble_disconnect_bindTimerId=nullptr;\r
+ return;\r
+}\r
+\r
+\r
+\r
bool AlipayModel::AlipayStartBind(void)\r
{\r
if (bindTimerId == nullptr) {\r
GraphicService::GetInstance()->PostGraphicEvent(std::bind(&AlipaySwitchTimerCallBackProc, argument));\r
}\r
\r
+\r
+\r
+\r
bool AlipayModel::AlipayStartSwitchTimer(uint16_t time)\r
{\r
if (switchTimerId == nullptr) {\r
#include "custom_utils.h"\r
#include "common/key_code.h"\r
#include "gfx_utils/mem_check.h"\r
+#include "AlipayC.h"\r
namespace OHOS {\r
static AlipayPresenter *g_alipayPresenter = nullptr;\r
\r
// 如果是power键就返回上一级\r
if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 1 && uapi_get_screen_state() == 0)\r
{\r
- uint16_t preSlice = NativeAbility::GetInstance().GetPreSliceId();\r
- NativeAbility::GetInstance().Back(TransitionType::TRANSITION_BACK_TO_HEXAGONS);\r
+\r
+ {\r
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AlipayMainView::DropView::container[ALIPAY_BIND_ANI_VIEW]");\r
+ view_->DropView(0);\r
+ }\r
+ \r
}\r
return true;\r
\r
\r
static uint16_t g_ble_read_handle = 0;\r
uint16_t g_ble_conn_id = 0;\r
+uint16_t g_ble_Alipay_conn_id = 0;\r
uint16_t g_ble_server_handle = 0;\r
static uint8_t g_ble_character_buf[BLE_CHARACTERISTIC_MAX_LENGTH] = {0};\r
static const uint8_t ble_adv_type[BLE_ADV_TYPE_LENTH] = {2, 1, 0xA};\r
return false;\r
}\r
\r
+bool get_Alipay_ble_connect(void)//保存手机信息 包含手机mac地址\r
+{\r
+ uint8_t connect=0;\r
+ for(int i=0;i<ble_add_max_num;i++)\r
+ {\r
+ if(ble_conn_id[i]!=0)\r
+ {\r
+ if(g_ble_Alipay_conn_id==ble_conn_id[i])\r
+ return true;\r
+ }\r
+ }\r
+\r
+ {\r
+ return false;\r
+ }\r
+\r
+}\r
+\r
enum{\r
BLE_CHARACTERISTIC_RECV_ID_PROPERTIES = GATT_CHARACTER_PROPERTY_BIT_NOTIFY|GATT_CHARACTER_PROPERTY_BIT_WRITE_NO_RSP|GATT_CHARACTER_PROPERTY_BIT_WRITE|GATT_CHARACTER_PROPERTY_BIT_READ,\r
BLE_CHARACTERISTIC_SNED_SHORT_ID_PROPERTIES = GATT_CHARACTER_PROPERTY_BIT_WRITE|GATT_CHARACTER_PROPERTY_BIT_WRITE_NO_RSP,\r
printf(" %d %d\r\n",conn_id,write_cb_para->handle);\r
g_ble_conn_id=conn_id;\r
}\r
- else\r
+ if(is_alipay_handle(write_cb_para->handle))\r
{\r
- printf(" ?????\r\n");\r
+ g_ble_Alipay_conn_id=conn_id;\r
}\r
+ // else\r
+ // {\r
+ // printf(" ?????\r\n");\r
+ // }\r
blesrv_service_recv_msg_handler(write_cb_para->handle,write_cb_para->value,write_cb_para->length);\r
}\r
\r
void uapi_ble_connect_param_update(uint16_t data);
+bool get_Alipay_ble_connect(void);
+
#ifdef __cplusplus
}