#include "UiConfig.h"
#include "BluetoothPresenter.h"
-namespace OHOS {
-BluetoothDeviceCaseListAdapter::~BluetoothDeviceCaseListAdapter()
+namespace OHOS
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceCaseListAdapter::~BluetoothDeviceCaseListAdapter");
- // UIView::OnClickListener *click = item->GetOnClickListener();
- // if (click != nullptr) {
- // delete click;
- // click = nullptr;
- // }
- if (listener != nullptr) {
- delete listener;
- listener = nullptr;
- }
-}
-
-uint16_t BluetoothDeviceCaseListAdapter::GetCount()
-{
- return BluetoothModel::GetInstance()->GetConnedDevicesCase().Size();
-}
-
-class BluetoothDeviceOnClickListListener : public UIView::OnClickListener {
-public:
- BluetoothDeviceOnClickListListener(BluetoothCaseInfo *bluetoothInfo)
- {
- if (bluetoothInfo != nullptr) {
- (void)memcpy_s(addr.addr, BD_ADDR_LEN,
- bluetoothInfo->addr, BD_ADDR_LEN); // 源和目标内存长度一样,不做返回值判断
- (void)memcpy_s(bluetoothInfo_.addr, BD_ADDR_LEN,
- bluetoothInfo->addr, BD_ADDR_LEN); // 源和目标内存长度一样,不做返回值判断
- (void)memcpy_s(bluetoothInfo_.deviceName, BD_NAME_LEN,
- bluetoothInfo->deviceName, BD_NAME_LEN); // 源和目标内存长度一样,不做返回值判断
- bluetoothInfo_.index = bluetoothInfo->index;
- bluetoothInfo_.connIndex = bluetoothInfo->connIndex;
- }
- }
- ~BluetoothDeviceOnClickListListener() {}
- bool OnClick(UIView& view, const ClickEvent& event) override
+ class BluetoothDeviceOnClickListListener;
+ static BluetoothDeviceOnClickListListener *g_btOnClickListListener = nullptr;
+ class BluetoothDeviceOnClickListListener : public UIView::OnClickListener
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceOnClickListListener");
- UNUSED(event);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceOnClickListListener addr: %02x%02x%02x%02x%02x%02x",
- bluetoothInfo_.addr[5], bluetoothInfo_.addr[4], bluetoothInfo_.addr[3], /* mac下标 0 1 2 3 4 5 */
- bluetoothInfo_.addr[2], bluetoothInfo_.addr[1], bluetoothInfo_.addr[0]); /* mac下标 0 1 2 3 4 5 */
- BluetoothModel::GetInstance()->SetTempMacValue(&bluetoothInfo_);
- /* 点击事件 */
- // 跳转可选页
- if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS) {
- JumpView *jumpView = JumpView::GetInstance();
- if (jumpView == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceOnClick jumpView GetInstance fail");
- return false;
- }
- jumpView->ChangeView(JumpView::BluetoothJumpViewNum::BLUETOOTHDEVICELISTVIEW,
- JumpView::BluetoothJumpViewNum::BLUETOOTHEOPTIONSVIEW);
- } else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING) {
- MainBluetoothView *mainBluetoothView = MainBluetoothView::GetInstance();
- if (mainBluetoothView == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceOnClick mainBluetoothView GetInstance fail");
- return false;
+ public:
+ BluetoothDeviceOnClickListListener() {}
+ ~BluetoothDeviceOnClickListListener() {}
+ void SetItemInfo(const BluetoothCaseInfo *bluetoothInfo)
+ {
+ if (bluetoothInfo != nullptr)
+ {
+ (void)memcpy_s(addr.addr, BD_ADDR_LEN,
+ bluetoothInfo->addr, BD_ADDR_LEN); // 源和目标内存长度一样,不做返回值判断
+ (void)memcpy_s(bluetoothInfo_.addr, BD_ADDR_LEN,
+ bluetoothInfo->addr, BD_ADDR_LEN); // 源和目标内存长度一样,不做返回值判断
+ (void)memcpy_s(bluetoothInfo_.deviceName, BD_NAME_LEN,
+ bluetoothInfo->deviceName, BD_NAME_LEN); // 源和目标内存长度一样,不做返回值判断
+ bluetoothInfo_.index = bluetoothInfo->index;
+ bluetoothInfo_.connIndex = bluetoothInfo->connIndex;
}
- if(view.GetViewType() == UIViewType::UI_BUTTON)
+ }
+ bool OnClick(UIView &view, const ClickEvent &event) override
+ {
+ UNUSED(event);
+ BluetoothItemView *itemView = static_cast<BluetoothItemView *>(view.GetParent());
+ BluetoothCaseInfo *g_BluetoothCaseInfo = itemView->GetItemInfo();
+ SetItemInfo(g_BluetoothCaseInfo); // 保存点击的设备信息
+ BluetoothModel::GetInstance()->SetTempMacValue(&bluetoothInfo_);
+ if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERPLAYERS)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UIViewType::UI_BUTTON,%s",reinterpret_cast<const char *>(bluetoothInfo_.deviceName));
- bd_addr_t *lastAddr = BluetoothModel::GetInstance()->GetLastConnedAddr();
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "lastAddr:%02X %02X %02X * * *",
- lastAddr->addr[0],lastAddr->addr[1],lastAddr->addr[2]);
-
- bool ret = bt_is_acl_connected(lastAddr);
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bt_is_acl_connected:%d lastAddr:%02X %02X %02X * * *",
- ret, lastAddr->addr[0],lastAddr->addr[1],lastAddr->addr[2]);
-
- //地址不是全0并且ret为真
- if (!( lastAddr->addr[0] == 0 && lastAddr->addr[1] == 0 && lastAddr->addr[2] == 0 &&
- lastAddr->addr[3] == 0 && lastAddr->addr[4] == 0 && lastAddr->addr[5] == 0 ) && ret) {
- BluetoothModel::GetInstance()->SetTagConnectNew(false);
- errcode_t retVal = gap_disconnect_remote_device(lastAddr);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[gap_disconnect_remote_device] retVal = %d", retVal);
- } else {
- mainBluetoothView->ChangeView(BluetoothModel::GetInstance()->GetCurView(), BLUETOOTHRECONNECTVIEW);
- errcode_t retVal = BluetoothModel::GetInstance()->ConnectRemoteDevice(&addr);
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ConnectRemoteDevice] retVal = %d", retVal);
+ JumpView *jumpView = JumpView::GetInstance();
+ if (jumpView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceOnClick jumpView GetInstance fail");
+ return false;
}
+ jumpView->ChangeView(JumpView::BluetoothJumpViewNum::BLUETOOTHDEVICELISTVIEW,
+ JumpView::BluetoothJumpViewNum::BLUETOOTHEOPTIONSVIEW);
}
- else if(view.GetViewType() == UIViewType::UI_IMAGE_VIEW) /*点击的是图片*/
+ else if (BluetoothModel::GetInstance()->GetBluetoothCalleridStatus() == CALLERSETTING)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "UIViewType::UI_IMAGE_VIEW");
- mainBluetoothView->ChangeView(BluetoothModel::GetInstance()->GetCurView(), BLUETOOTHEOPTIONSVIEW);
- BluetoothOptionsView *bluetoothOptionsView = BluetoothOptionsView::GetInstance();
- if (bluetoothOptionsView == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClick bluetoothOptionsView new fail");
+ MainBluetoothView *mainBluetoothView = MainBluetoothView::GetInstance();
+ if (mainBluetoothView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceOnClick mainBluetoothView GetInstance fail");
return false;
}
- bluetoothOptionsView->SetCurrentAddr(addr);
- bluetoothOptionsView->RefreshText();
+ if (view.GetViewType() == UIViewType::UI_BUTTON) // 点击的是按钮
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UIViewType::UI_BUTTON,%s", reinterpret_cast<const char *>(bluetoothInfo_.deviceName));
+ bd_addr_t *lastAddr = BluetoothModel::GetInstance()->GetLastConnedAddr();
+ bool ret = bt_is_acl_connected(lastAddr);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "bt_is_acl_connected:%d lastAddr:%02X %02X %02X * * *",
+ ret, lastAddr->addr[0], lastAddr->addr[1], lastAddr->addr[2]);
+
+ // 地址不是全0并且ret为真
+ if (!(lastAddr->addr[0] == 0 && lastAddr->addr[1] == 0 && lastAddr->addr[2] == 0 &&
+ lastAddr->addr[3] == 0 && lastAddr->addr[4] == 0 && lastAddr->addr[5] == 0) &&
+ ret)
+ {
+ BluetoothModel::GetInstance()->SetTagConnectNew(false);
+ errcode_t retVal = gap_disconnect_remote_device(lastAddr);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[gap_disconnect_remote_device] retVal = %d", retVal);
+ }
+ else
+ {
+ mainBluetoothView->ChangeView(BluetoothModel::GetInstance()->GetCurView(), BLUETOOTHRECONNECTVIEW);
+ errcode_t retVal = BluetoothModel::GetInstance()->ConnectRemoteDevice(&addr);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "[ConnectRemoteDevice] retVal = %d", retVal);
+ }
+ }
+ else if (view.GetViewType() == UIViewType::UI_IMAGE_VIEW) /*点击的是图片*/
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "UIViewType::UI_IMAGE_VIEW,%s", reinterpret_cast<const char *>(bluetoothInfo_.deviceName));
+ mainBluetoothView->ChangeView(BluetoothModel::GetInstance()->GetCurView(), BLUETOOTHEOPTIONSVIEW);
+ BluetoothOptionsView *bluetoothOptionsView = BluetoothOptionsView::GetInstance();
+ if (bluetoothOptionsView == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClick bluetoothOptionsView new fail");
+ return false;
+ }
+ bluetoothOptionsView->SetCurrentAddr(addr);
+ bluetoothOptionsView->RefreshText();
+ }
}
- }
-
- return true;
- }
-private:
- BluetoothCaseInfo bluetoothInfo_{};
- bd_addr_t addr;
-};
+ return true;
+ }
+ private:
+ BluetoothCaseInfo bluetoothInfo_{};
+ bd_addr_t addr;
+ };
-UIView *BluetoothDeviceCaseListAdapter::GetView(UIView *inView, int16_t index)
-{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceCaseListAdapter GetView");
- List<BluetoothCaseInfo> &bluetoothCaseList = BluetoothModel::GetInstance()->GetConnedDevicesCase();
- if (bluetoothCaseList.IsEmpty()) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothCaseList IsEmpty");
- return nullptr;
- }
- if ((index > bluetoothCaseList.Size() - 1) || (index < 0)) {
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceCaseListAdapter::GetView err,%d,%d",index,bluetoothCaseList.Size());
- return nullptr;
+ BluetoothDeviceCaseListAdapter::~BluetoothDeviceCaseListAdapter()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceCaseListAdapter::~BluetoothDeviceCaseListAdapter");
+ if (g_btOnClickListListener != nullptr)
+ {
+ delete g_btOnClickListListener;
+ g_btOnClickListListener = nullptr;
+ }
}
- ListNode<BluetoothCaseInfo>* node = bluetoothCaseList.Begin();
- for (uint16_t i = 0; i < index; i++) {
- node = node->next_;
+
+ uint16_t BluetoothDeviceCaseListAdapter::GetCount()
+ {
+ return BluetoothModel::GetInstance()->GetConnedDevicesCase().Size();
}
- node->data_.index = index;
- BluetoothCaseInfo itemData = node->data_;
- if (inView == nullptr) {
- item = new BluetoothItemView();
- if (item == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetView item err");
+
+ UIView *BluetoothDeviceCaseListAdapter::GetView(UIView *inView, int16_t index)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceCaseListAdapter GetView");
+ List<BluetoothCaseInfo> &bluetoothCaseList = BluetoothModel::GetInstance()->GetConnedDevicesCase();
+ if (bluetoothCaseList.IsEmpty())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "bluetoothCaseList IsEmpty");
return nullptr;
}
- } else {
- item = static_cast<BluetoothItemView *>(inView);
- }
- item->SetViewIndex(index);
- item->SetItemInfo(itemData, false);
- item->SetConnectionstatus(itemData);
+ if ((index > bluetoothCaseList.Size() - 1) || (index < 0))
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceCaseListAdapter::GetView err,%d,%d", index, bluetoothCaseList.Size());
+ return nullptr;
+ }
+ ListNode<BluetoothCaseInfo> *node = bluetoothCaseList.Begin();
+ for (uint16_t i = 0; i < index; i++)
+ {
+ node = node->next_;
+ }
+ node->data_.index = index;
+ BluetoothCaseInfo itemData = node->data_;
+ if (inView == nullptr)
+ {
+ item = new BluetoothItemView();
+ if (item == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetView item err");
+ return nullptr;
+ }
+ }
+ else
+ {
+ item = static_cast<BluetoothItemView *>(inView);
+ }
+ item->SetViewIndex(index);
+ item->SetItemInfo(itemData, false);
+ item->SetConnectionstatus(itemData);
- listener = item->GetOnClickListener();
- if (listener != nullptr) {
- delete listener;
- listener = nullptr;
- }
- listener = new BluetoothDeviceOnClickListListener(&node->data_);
- if (listener == nullptr) {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "GetView BluetoothDeviceOnClickListListener err");
- return nullptr;
+ if (g_btOnClickListListener == nullptr)
+ {
+ g_btOnClickListListener = new BluetoothDeviceOnClickListListener();
+ if (g_btOnClickListListener == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "BluetoothDeviceCaseListAdapter::GetView new fail");
+ return nullptr;
+ }
+ }
+ listener = static_cast<UIView::OnClickListener *>(g_btOnClickListListener);
+ item->SetViewOnClickListener(listener);
+ sprintf_s(addrTmp, sizeof(addrTmp), "%02x%02x%02x%02x%02x%02x", node->data_.addr[0], node->data_.addr[1],
+ node->data_.addr[2], node->data_.addr[3], node->data_.addr[4], node->data_.addr[5]); // 没有%s类型,不做返回判断
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "addrTmp %s", addrTmp);
+ return item;
}
- sprintf_s(addrTmp, sizeof(addrTmp), "%02x%02x%02x%02x%02x%02x", node->data_.addr[0], node->data_.addr[1],
- node->data_.addr[2], node->data_.addr[3], node->data_.addr[4], node->data_.addr[5]); // 没有%s类型,不做返回判断
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "addrTmp %s", addrTmp);
-
- // item->SetOnClickListener(listener);
- item->SetViewOnClickListener(listener);
- return item;
-}
} // namespace OHOS
\ No newline at end of file
return g_pPhoneCallView;\r
}\r
\r
- void PhoneCallView ::initButton(const ButtonInitParams ¶ms)\r
+ UIButton* PhoneCallView ::initButton(const ButtonInitParams ¶ms)\r
{\r
- UIButton *button = params.button;\r
- if (button == nullptr)\r
- {\r
- button = new UIButton();\r
- }\r
+ UIButton *button = new UIButton();\r
\r
const char *buttonNumber = params.buttonNumber;\r
int leftPos = params.leftPos;\r
container_->Add(button);\r
button->SetVisible(true);\r
\r
+ return button;\r
\r
}\r
\r
\r
void PhoneCallView::Init()\r
{\r
- if (container_ == nullptr)\r
- {\r
- container_ = new UIViewGroup();\r
- container_->SetPosition(0, 0, 466, 466);\r
- container_->SetStyle(STYLE_BACKGROUND_OPA, 0);\r
- }\r
// Add Label to App\r
if (label_ == nullptr)\r
{\r
container_->Add(label_);\r
label_->SetVisible(true);\r
ButtonInitParams buttonParams[] = {\r
- {button1_, BUTTON1, 68, 104, 104, 70, button1Path, button1Path},\r
- {button2_, BUTTON2, 181, 104, 104, 70, button2Path, button2Path},\r
- {button3_, BUTTON3, 293, 104, 104, 70, button3Path, button3Path},\r
- {button4_, BUTTON4, 69, 182, 104, 70, button4Path, button4Path},\r
- {button5_, BUTTON5, 182, 182, 104, 70, button5Path, button5Path},\r
- {button6_, BUTTON6, 293, 182, 104, 70, button6Path, button6Path},\r
- {button7_, BUTTON7, 69, 260, 104, 70, button7Path, button7Path},\r
- {button8_, BUTTON8, 181, 260, 104, 70, button8Path, button8Path},\r
- {button9_, BUTTON9, 293, 260, 104, 70, button9Path, button9Path},\r
- {button0_, BUTTON0, 181, 338, 104, 70, button0Path, button0Path},\r
- {buttoncall_, BUTTONCALL, 69, 338, 104, 70, buttonCallPath, buttonCallPath},\r
- {buttondel_, BUTTONDEL, 293, 338, 104, 70, buttonDelPath, buttonDelPath},\r
+ { BUTTON1, 68, 104, 104, 70, button1Path, button1Path},\r
+ {BUTTON2, 181, 104, 104, 70, button2Path, button2Path},\r
+ { BUTTON3, 293, 104, 104, 70, button3Path, button3Path},\r
+ { BUTTON4, 69, 182, 104, 70, button4Path, button4Path},\r
+ { BUTTON5, 182, 182, 104, 70, button5Path, button5Path},\r
+ { BUTTON6, 293, 182, 104, 70, button6Path, button6Path},\r
+ { BUTTON7, 69, 260, 104, 70, button7Path, button7Path},\r
+ { BUTTON8, 181, 260, 104, 70, button8Path, button8Path},\r
+ { BUTTON9, 293, 260, 104, 70, button9Path, button9Path},\r
+ { BUTTON0, 181, 338, 104, 70, button0Path, button0Path},\r
+ { BUTTONCALL, 69, 338, 104, 70, buttonCallPath, buttonCallPath},\r
+ { BUTTONDEL, 293, 338, 104, 70, buttonDelPath, buttonDelPath},\r
};\r
\r
- for (const auto ¶ms : buttonParams)\r
- {\r
- initButton(params);\r
+ for(int i = 0;i<12;i++){\r
+ button_[i] = initButton(buttonParams[i]);\r
}\r
}\r
static int8_t roll_falg=0;//0.1s一次变换\r
{\r
container_->RemoveAll();\r
}\r
- if(container_child!=NULL)\r
+ if(container_child!=nullptr)\r
{\r
container_child->RemoveAll();\r
}\r
- if(button_4G!=NULL)\r
- {\r
- delete button_4G;\r
- button_4G = nullptr;\r
- }\r
- if(button_BT!=NULL)\r
+ if(label_!=nullptr)\r
{\r
- delete button_BT;\r
- button_BT = nullptr;\r
+ delete label_;\r
+ label_ = nullptr;\r
}\r
- if(label_4G!=NULL)\r
+ if(label_4G!=nullptr)\r
{\r
delete label_4G;\r
label_4G = nullptr;\r
}\r
- if(label_BT!=NULL)\r
+ if(label_BT!=nullptr)\r
{\r
delete label_BT;\r
label_BT = nullptr;\r
}\r
- if (button1_ != nullptr)\r
- {\r
- delete button1_;\r
- button1_ = nullptr;\r
- }\r
- if (button2_ != nullptr)\r
- {\r
- delete button2_;\r
- button2_ = nullptr;\r
- }\r
- if (button3_ != nullptr)\r
- {\r
- delete button3_;\r
- button3_ = nullptr;\r
- }\r
- if (button4_ != nullptr)\r
- {\r
- delete button4_;\r
- button4_ = nullptr;\r
- }\r
- if (button5_ != nullptr)\r
- {\r
- delete button5_;\r
- button5_ = nullptr;\r
- }\r
- if (button6_ != nullptr)\r
- {\r
- delete button6_;\r
- button6_ = nullptr;\r
- }\r
- if (button7_ != nullptr)\r
- {\r
- delete button7_;\r
- button7_ = nullptr;\r
- }\r
- if (button8_ != nullptr)\r
- {\r
- delete button8_;\r
- button8_ = nullptr;\r
- }\r
- if (button9_ != nullptr)\r
- {\r
- delete button9_;\r
- button9_ = nullptr;\r
- }\r
- if (button0_ != nullptr)\r
- {\r
- delete button0_;\r
- button0_ = nullptr;\r
- }\r
- if (buttoncall_ != nullptr)\r
- {\r
- delete buttoncall_;\r
- buttoncall_ = nullptr;\r
- }\r
- if (buttondel_ != nullptr)\r
+ for(int i = 0;i<12;i++)\r
{\r
- delete buttondel_;\r
- buttondel_ = nullptr;\r
+ delete button_[i];\r
+ button_[i] = nullptr;\r
}\r
if(call_roll_timer)\r
{\r