-/***
+/***
+ * @Date: 2024-05-30 15:59:37
+ * @LastEditors: Caisking 3449750381@qq.com
+ * @LastEditTime: 2024-07-15 11:31:56
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/add_card/include/AddCardPresenter.h
+ */
+/***
* @Date: 2024-05-30 15:59:37
* @LastEditors: Caisking 3449750381@qq.com
* @LastEditTime: 2024-06-29 14:46:02
class AddCardView;
class AddCardModel;
- class AddCardPresenter : public Presenter<AddCardView>, public ModelListenerSample, public UIView::OnClickListener, public UIView::OnDragListener, public ListScrollListener
+ class AddCardPresenter : public Presenter<AddCardView>,
+ public ModelListenerSample,
+ public UIView::OnClickListener,
+ public UIView::OnDragListener,
+ public ListScrollListener,
+ public RootView::OnKeyActListener
{
public:
AddCardPresenter();
void OnItemSelected(int16_t index, UIView *view) override;
bool OnDrag(UIView &view, const DragEvent &event) override;
+ bool OnKeyAct(UIView &view, const KeyEvent &event) override; // 增加按键事件
+
+ static AddCardPresenter *GetInstance();
+
private:
void ResetTickTimer(void);
AddCardModel *model{nullptr};
/*** \r
* @Date: 2024-04-15 10:55:58\r
* @LastEditors: Caisking 3449750381@qq.com\r
- * @LastEditTime: 2024-07-06 17:57:00\r
+ * @LastEditTime: 2024-07-15 14:10:35\r
* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/add_card/src/AddCardItem.cpp\r
*/\r
/***\r
\r
void AddCardItem::SetOnClickListener(OnClickListener *onClickListener)\r
{\r
- cardLabel_.SetOnClickListener(onClickListener);\r
+ // cardLabel_.SetOnClickListener(onClickListener);\r
cardToggleButton_.SetOnClickListener(onClickListener);\r
}\r
\r
#include "AddCardModel.h"
#include "AddCardPresenter.h"
+#include "KeyInputListener.h"
+#include "custom_utils.h"
+#include "common/key_code.h"
namespace OHOS
{
+
+ // 当前Presenter属性实例化的内存指针
+ static AddCardPresenter *g_pAddCardPresenter = nullptr;
+
AddCardPresenter::AddCardPresenter()
{
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardPresenter::AddCardPresenter");
model = &AddCardModel::GetInstance();
+ g_pAddCardPresenter = this;
}
AddCardPresenter::~AddCardPresenter()
{
- if (keyActListenr != nullptr)
- {
- delete keyActListenr;
- keyActListenr = nullptr;
- }
+ // if (keyActListenr != nullptr)
+ // {
+ // delete keyActListenr;
+ // keyActListenr = nullptr;
+ // }
}
void AddCardPresenter::OnStart()
{
Presenter<AddCardView>::OnStart();
- if (keyActListenr == nullptr)
- {
- keyActListenr = new KeyInputListener();
- if (keyActListenr != nullptr)
- {
- RootView::GetInstance()->SetOnKeyActListener(keyActListenr);
- }
- else
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ApplistPresenter::OnStart: new KeyInputListener fail");
- }
- }
+ // if (keyActListenr == nullptr)
+ // {
+ // keyActListenr = new KeyInputListener();
+ // if (keyActListenr != nullptr)
+ // {
+ // RootView::GetInstance()->SetOnKeyActListener(keyActListenr);
+ // }
+ // else
+ // {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ApplistPresenter::OnStart: new KeyInputListener fail");
+ // }
+ // }
+ }
+
+ AddCardPresenter *AddCardPresenter::GetInstance()
+ {
+ return g_pAddCardPresenter;
}
void AddCardPresenter::OnResume(void)
bool AddCardPresenter::OnClick(UIView &view, const ClickEvent &event)
{
- WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardPresenter::OnClick");
uint8_t index = model->GetSelectedCardIndex();
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardPresenter::OnClick index %d", index);
if (!MainModel::GetInstance().GetCardInfoSet(index))
{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "AddCardPresenter::OnClick GetCardInfoSet ture");
if (MainModel::GetInstance().GetCardSettingCount() >= CARD_SETTING_COUNT_MAX)
{
cardCountEvent = true;
startTime = osKernelGetTick2ms();
return;
}
+ // 增加按键事件
+ bool AddCardPresenter::OnKeyAct(UIView &view, const KeyEvent &event)
+ {
+ unsigned short keyID = event.GetKeyId();
+ unsigned short keyState = event.GetState();
+ // 如果是power键,且是亮屏状态,按键释放就返回上一级
+ if (keyID == static_cast<uint16_t>(ZliteKeyCode::ZLITE_KEY_POWER) && keyState == 0 && uapi_get_screen_state() == 0)
+ {
+ // 回退
+ NativeAbility::GetInstance().Back();
+ }
+ return true;
+ }
}
SetUpListInfo();
SetUpListView();
SetUpToast();
+
+ SetContainerView(container_);
+ // 增加按键监听
+ RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::AddCardPresenter::GetInstance();
+ RootView::GetInstance()->SetOnKeyActListener(keyactListener);
}
void AddCardView::OnSetUpView()
toastLabel_.SetVisible(isVisible);
toastLabel_.Invalidate();
}
-
}
return;\r
}\r
// 检查要插入的位置是否有效\r
- if (index < 0 || index > cardSettingCount)\r
+ int count = sizeof(cardInfoSet) / sizeof(cardInfoSet[0]);\r
+ if (index < 0 || index > count)\r
{\r
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "index %d is error or cardSettingCount %d is error", index, cardSettingCount);\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "index %d is error or count %d is error", index, count);\r
return;\r
}\r
+ // 删除的卡片\r
+ cardInfoSet[index].isVisible = false;\r
+#if 0\r
int count = sizeof(cardInfoSet) / sizeof(cardInfoSet[0]);\r
WEARABLE_LOGD(WEARABL_LOG_MODULE_APP, "count:%d\r\n", count);\r
// 设置map里面的属性\r
}\r
WEARABLE_LOGD(WEARABL_LOG_MODULE_APP, "cardInfoSet[%d]:id%d\r\n", i, cardInfoSet[i].id);\r
}\r
+#endif\r
int mapindex = 0;\r
// 重新生成cardSettings\r
for (uint8_t i = 0; i < CARD_SETTING_COUNT_MAX; i++)\r
}\r
\r
// 检查要插入的位置是否有效\r
- if (index < 0 || index > cardSettingCount)\r
+ int count = sizeof(cardInfoSet) / sizeof(cardInfoSet[0]);\r
+ if (index < 0 || index > count)\r
{\r
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "index %d is error or count %d is error", index, count);\r
return;\r
}\r
// 设置map里面的属性\r
+ cardInfoSet[index].isVisible = true;\r
+#if 0\r
int count = sizeof(cardInfoSet) / sizeof(cardInfoSet[0]);\r
for (uint8_t i = 0; i < count; i++)\r
{\r
if (cardInfoMap[index].id == cardInfoSet[i].id)\r
{\r
cardInfoSet[i].isVisible = true;\r
- WEARABLE_LOGD(WEARABL_LOG_MODULE_APP, "添加卡片:cardSettings[%d] is %d \r\n", index, cardInfoMap[index].id);\r
- WEARABLE_LOGD(WEARABL_LOG_MODULE_APP, "设置添加卡片属性:cardInfoSet[%d] is %d \r\n", i, cardInfoSet[i].isVisible);\r
+ WEARABLE_LOGE(WEARABL_LOG_MODULE_APP, "添加卡片:cardSettings[%d] is %d \r\n", index, cardInfoMap[index].id);\r
+ WEARABLE_LOGE(WEARABL_LOG_MODULE_APP, "设置添加卡片属性:cardInfoSet[%d] is %d \r\n", i, cardInfoSet[i].isVisible);\r
+ break;\r
}\r
- WEARABLE_LOGD(WEARABL_LOG_MODULE_APP, "cardInfoSet[%d]:id%d\r\n", i, cardInfoSet[i].id);\r
+ WEARABLE_LOGE(WEARABL_LOG_MODULE_APP, "cardInfoSet[%d]:id%d\r\n", i, cardInfoSet[i].id);\r
}\r
+#endif\r
\r
// 设置map里面的属性\r
int mapindex = 0;\r