${CMAKE_CURRENT_SOURCE_DIR}/nativeui/phone/src/DialingMethodPresenter.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/phone/src/DialingMethodView.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/phone/src/TelephonyInitInterface.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/phone/src/CallLogItem.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/phone/src/CallLogAdapter.cpp
+
#产测
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/producttest/src/testPresenter.cpp
CallerLogModel::GetInstance()->SetCallStatus(false);
CallerLogModel::GetInstance()->SetWaitingStatus(false);
DisableCallingTimer();
+
+ if(CallerLogModel::GetInstance()->GetCallSource()==CallerLogModel::CallSourceCat1)
+ uapi_cat1_stop_volte_voice();
+
CallerLogModel::GetInstance()->Setphonebname("0",0);
CallerLogModel::GetInstance()->SetCallDial(CallerLogModel::HFP_PHONE_DIAL);
CallerLogModel::GetInstance()->set_RejectIncomingCall_falg(0);
WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "MainCallingView::xxx");
}
}
+
if( CallerLogModel::GetInstance()->GetCallSource() == CallerLogModel::CallSourceCat1
&& NotificationManager::GetInstance()->GetWatchCallStatus()==true)
{
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-03-28 14:26:55
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-06-28 09:34:15
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/include/CallLogListAdapter.h
+ */
+#ifndef CALL_LOG_ADAPTER_VIEW
+#define CALL_LOG_ADAPTER_VIEW
+
+#include "components/abstract_adapter.h"
+#include "components/ui_label_button_ext.h"
+#include "components/ui_list.h"
+#include "languagecode/LanguageInit.h"
+#include "UiConfig.h"
+#include <list>
+#include "languagecode/LanguageInit.h"
+#include "PhoneService.h"
+namespace OHOS
+{
+
+
+
+ class CallLogListAdapter : public AbstractAdapter,
+ public UIView::OnClickListener
+ {
+ public:
+ explicit CallLogListAdapter();
+ virtual ~CallLogListAdapter();
+
+ /* *
+ * @brief Sets the UIView adapter data, which is a Language linked list.
+ *
+ * @param data Indicates the Language linked list data.
+ * @since 1.0
+ * @version 1.0
+ */
+ void SetData(std::list<CallLogInfo> &data);
+
+ void ClearData(void);
+ /* *
+ * @brief Obtains the <b>data</b> size of the UILabel adapter.
+ *
+ * @return Returns the <b>data</b> size of the UILabel adapter.
+ * @since 1.0
+ * @version 1.0
+ */
+ virtual uint16_t GetCount(void) override;
+
+ virtual UIView *GetView(UIView *inView, int16_t index) override;
+
+ virtual void AddListItem(const CallLogInfo &item);
+
+ void SetItemClickListener(UIView::OnClickListener *itemclicklistener)
+ {
+ itemClickListener = itemclicklistener;
+ }
+
+ bool OnClick(UIView &view, const ClickEvent &event);
+
+ private:
+ std::list<CallLogInfo> listData;
+ UIView::OnClickListener *itemClickListener{nullptr};
+ };
+
+}
+
+#endif
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-03-28 14:28:25
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-06-13 15:52:44
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/include/CallLOGListitemView.h
+ */
+#ifndef CALL_LOG_ITEM_VIEW
+#define CALL_LOG_ITEM_VIEW
+
+#include "components/ui_view_group.h"
+#include "components/ui_label_button_ext.h"
+#include "languagecode/include/LanguageSwitchListAdapter.h"
+#include "components/ui_image_view.h"
+#include "PhoneService.h"
+#include "components/ui_swipe_view.h"
+#include "phone/include/MainPhoneView.h"
+#include "phone/include/TelephonyInitInterface.h"
+
+namespace OHOS
+{
+ class CallLOGListitemView : public UIViewGroup
+ {
+
+ public:
+ static bool X_DRAG_FLAG; // 水平拖拽标志
+ static uint8_t DIALINGMETHOD; // 拨号方式
+
+ typedef struct
+ {
+ int x;
+ int y;
+ int width;
+ int height;
+ const char *viewId;
+ int scrollBlankSize;
+ int reboundSize;
+ int direction;
+ } ScrollViewParams;
+
+ typedef struct
+ {
+ int16_t x;
+ int16_t y;
+ int16_t width;
+ int16_t height;
+ int16_t fontSize; // 字体大小
+ int16_t lineHeigh; // 行高
+ const char *text; // 文本
+ uint8_t lineBreakMode; // 断行模式。
+ } LabelParams;
+
+ typedef struct
+ {
+ int16_t x;
+ int16_t y;
+ int16_t width;
+ int16_t height;
+ const char *viewId;
+ int64_t backgroundColor;
+ int64_t pressedBackgroundColor;
+ } ButtonParams;
+
+ typedef struct
+ {
+ int16_t x;
+ int16_t y;
+ int16_t width;
+ int16_t height;
+ const char *viewId;
+ const char *imgsrc;
+ } ImageParams;
+
+ struct MainPhoneView_ButtonConfig_ext_t
+ {
+ int x;
+ int y;
+ int w;
+ int h;
+ const char *str;
+ const char *ViewId;
+ };
+
+
+ CallLOGListitemView();
+ virtual ~CallLOGListitemView();
+ virtual void SetItemInfo(CallLogInfo *data);
+ virtual void SetUpChild();
+ UISwipeView *Getbutton_calllog_SwipeView(void);
+
+ void Init_button_calllog_SwipeView(UISwipeView *button_calllog_SwipeView);
+ void NewcalllogButtonExt(UIViewGroup * TempGroup,uint8_t index);
+ void SetTheButton_ext( UILabelButtonExt *button,MainPhoneView_ButtonConfig_ext_t &buttonconfig);
+ void LabelViewInit(UILabelExt *label,const LabelParams ¶ms,ColorType color);
+ void ButtonViewInit(UIButton *button,const ButtonParams ¶ms);
+
+ UIButton *GetDeleteButton(void);
+
+ UILabelButtonExt *Getbutton_calllog(void);
+ private:
+ CallLOGListitemView(const CallLOGListitemView &);
+
+ UILabelButtonExt button_calllog;
+ UILabelExt button_calllog_time; //"时间"
+ UILabelExt button_calllog_status; //"通话状态"
+ UISwipeView button_calllog_SwipeView;
+ UIViewGroup SwipeViewItem[2];
+ UIButton DeleteButton; // 删除按键
+ UIImageView call_log_type; //电话来源
+
+
+ };
+
+}
+
+#endif
#include "PhoneService.h"
#include "components/ui_label_button_ext.h"
#include "components/ui_swipe_view.h"
-
+#include "phone/include/CallLogAdapter.h"
+#include "phone/include/CallLogItem.h"
namespace OHOS
{
void NewcalllogButtonExtupdata(CallLogInfo *data, uint8_t index,uint8_t i);
- private:
+ private:
+ bool MainPhoneViewListViewInit(void);
void MainPhoneViewInit(void);
void ClearAll(void);
UIScrollView *MainPhoneViewScrollView{nullptr};
UIViewGroup * SwipeViewItem[CALL_LOG_MAX_NUM][2]{nullptr};
UIButton *DeleteButton[CALL_LOG_MAX_NUM]{nullptr}; // 删除按键
UIImageView *call_log_type[CALL_LOG_MAX_NUM]{nullptr}; //电话来源
+
+ UIList *CalllogList{nullptr}; // 语言列表
+ CallLogListAdapter *p_LanguageSwitchListAdapter{nullptr}; // 语言列表适配器
+
};
}
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-03-28 14:27:05
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-06-28 09:33:56
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/CallLogListAdapter.cpp
+ */
+#include "languagecode/include/LanguageSwitchListAdapter.h"
+#include "languagecode/include/LanguageSwitchListitemView.h"
+#include "wearable_log.h"
+#include "languagecode/include/LanguageSwitchModel.h"
+#include "languagecode/include/LanguageSwitchPresenter.h"
+#include "languagecode/LanguageInit.h"
+#include <UiConfig.h>
+#include "phone/include/CallLogAdapter.h"
+#include "phone/include/CallLogItem.h"
+#include "phone/include/MainPhonePresenter.h"
+#include "phone/include/phoneaddressmodel.h"
+#include "NativeAbility.h"
+#include "AppViewIDs.h"
+namespace OHOS
+{
+
+ CallLogListAdapter::CallLogListAdapter()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallLogListAdapter::CallLogListAdapter");
+ }
+
+ CallLogListAdapter::~CallLogListAdapter()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallLogListAdapter::~CallLogListAdapter");
+ listData.clear();
+ }
+
+ uint16_t CallLogListAdapter::GetCount(void)
+ {
+ return listData.size();
+ }
+
+ void CallLogListAdapter::SetData(std::list<CallLogInfo> &data)
+ {
+ if (!listData.empty())
+ {
+ listData.clear();
+ }
+ std::list<CallLogInfo>::iterator it;
+ for (it = data.begin(); it != data.end(); it++)
+ {
+ listData.push_back(*it);
+ }
+ }
+
+ void CallLogListAdapter::ClearData(void)
+ {
+ if (!listData.empty())
+ {
+ listData.clear();
+ }
+ }
+
+ UIView *CallLogListAdapter::GetView(UIView *inView, int16_t index)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallLogListAdapter::GetView,index %d", index);
+ // 1.先检查列表数据是否为空,若为空则返回空指针
+ if (listData.empty())
+ {
+ return nullptr;
+ }
+ // 2.接着检查索引是否小于0,若小于0则返回空指针
+ if (index < 0)
+ {
+ return nullptr;
+ }
+ // 3.检查是否超出列表数据大小,若超出则返回空指针
+ size_t uindex = index;
+ if (uindex >= listData.size())
+ {
+ return nullptr;
+ }
+ // 4.通过迭代器访问列表中指定索引位置的元素,将其赋值给itemData变量
+ std::list<CallLogInfo>::iterator it = listData.begin();
+ for (int i = 0; i < index; i++)
+ {
+ it++;
+ }
+ CallLogInfo itemData = *it;
+ CallLOGListitemView *item = nullptr;
+ // 5.根据传入的inView参数是否已经存在一个视图对象,若为空则创建一个新的LanguageSwitchListItemView对象,否则将inView转换成LanguageSwitchListItemView类型的指针
+ if (inView == nullptr)
+ {
+ item = new CallLOGListitemView();
+ }
+ else
+ {
+ item = dynamic_cast<CallLOGListitemView *>(inView);
+ }
+ item->SetItemInfo(&itemData);
+ item->SetDraggable(true);
+ item->SetHeight(124);
+ item->SetViewIndex(index);
+
+ // UIView::OnClickListener *ButtonOnclickListen =;
+ // if (ButtonOnclickListen == nullptr)
+ // {
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "ButtonOnclickListen new fail!");
+ // return nullptr;
+ // }
+
+ //item->SetOnClickListener(this);
+ item->Getbutton_calllog()->SetOnClickListener(this);
+ item->GetDeleteButton()->SetOnClickListener(this);
+
+ // item->GetUILabelButtonExt()->SetOnClickListener(itemClickListener);
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "GetView, id = %s", item->GetUILabelButtonExt()->GetViewId());
+
+ return item;
+ }
+
+ bool CallLogListAdapter::OnClick(UIView &view, const ClickEvent &event)
+ {
+ std::string curViewId = view.GetViewId();
+
+ // CallLOGListitemView *settingItemView = static_cast<CallLOGListitemView *>(&view);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhonePresenter::OnClick %d\r\n ",view.GetViewType());
+
+ if(view.GetViewType() == UIViewType::UI_LABEL_BUTTON_EXT)
+ {
+ CallLOGListitemView *settingItemView = static_cast<CallLOGListitemView *>((view.GetParent()->GetParent()->GetParent()));
+ // (view.GetParent().GetParent()));
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhonePresenter::OnClick %s %d\r\n ",curViewId.c_str(),settingItemView->GetViewIndex());
+ int16_t index=settingItemView->GetViewIndex();
+
+ // 3.检查是否超出列表数据大小,若超出则返回空指针
+ size_t uindex = index;
+ if (uindex >= listData.size())
+ {
+ return false;
+ }
+ // 4.通过迭代器访问列表中指定索引位置的元素,将其赋值给itemData变量
+ std::list<CallLogInfo>::iterator it = listData.begin();
+ for (int i = 0; i < index; i++)
+ {
+ it++;
+ }
+ CallLogInfo itemData = *it;
+
+ set_address_number((char *)itemData.tel);
+ NativeAbility::GetInstance().EnterSlice(VIEW_DIALING_METHOD);
+ return true;
+
+ }
+ else if(view.GetViewType() == UIViewType::UI_BUTTON)
+ {
+
+ CallLOGListitemView *settingItemView = static_cast<CallLOGListitemView *>((view.GetParent()->GetParent()->GetParent()));
+ // (view.GetParent().GetParent()));
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhonePresenter::OnClick %s %d\r\n ",curViewId.c_str(),settingItemView->GetViewIndex());
+ int16_t index=settingItemView->GetViewIndex();
+
+ MainPhoneView::GetInstance()->deletecallloginfo(index);
+ return true;
+
+
+ }
+
+
+ return true;
+
+ }
+ void CallLogListAdapter::AddListItem(const CallLogInfo &item)
+ {
+ listData.push_back(item);
+ }
+
+
+
+}
\ No newline at end of file
--- /dev/null
+/*
+ * @Author: luozheng 1732036298@qq.com
+ * @Date: 2024-03-28 14:28:03
+ * @LastEditors: luozheng 1732036298@qq.com
+ * @LastEditTime: 2024-10-05 17:39:04
+ * @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/languagecode/src/CallLOGListitemView.cpp
+ */
+#include "phone/include/MainPhoneView.h"
+#include "phone/include/MainPhonePresenter.h"
+#include "components/ui_label_button_ext.h"
+#include "phone/include/phoneaddressmodel.h"
+#include "wearable_log.h"
+#include "ui_resource_string.h"
+#include "UiConfig.h"
+#include "AppViewIDs.h"
+#include "NativeAbility.h"
+#include "phone/include/CallLogItem.h"
+
+namespace OHOS
+{
+ void CallLOGListitemView::LabelViewInit(UILabelExt *label,const LabelParams ¶ms,ColorType color)
+ {
+ if (label == nullptr)
+ {
+ return ;
+ }
+
+ label->SetPosition(params.x, params.y, params.width, params.height); // 位置大小
+ label->SetStyle(STYLE_TEXT_FONT, params.fontSize); // 字体大小
+ label->SetStyle(STYLE_LINE_HEIGHT, params.lineHeigh); // 字体行高
+ label->SetText(params.text); // 内容
+ label->SetTextColor(color);
+ label->SetLineBreakMode(params.lineBreakMode); // 断行模式
+ label->SetAlign(TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER); // 设置此文本的对齐模式
+ label->SetFont(DEFAULT_VECTOR_FONT_FILENAME, params.fontSize); // 设置标签的字体
+
+ return ;
+ }
+
+
+ void CallLOGListitemView::ButtonViewInit(UIButton *button,const ButtonParams ¶ms)
+ {
+
+ if (button == nullptr)
+ {
+ return ;
+ }
+ button->SetPosition(params.x, params.y, params.width, params.height);
+ //->SetViewId(params.viewId);
+ button->SetStyle(STYLE_BACKGROUND_COLOR, params.backgroundColor);
+ button->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+ button->SetStyleForState(STYLE_BACKGROUND_COLOR, params.pressedBackgroundColor, UIButton::PRESSED);
+
+ return ;
+ }
+
+
+ void CallLOGListitemView::SetTheButton_ext( UILabelButtonExt *button,MainPhoneView_ButtonConfig_ext_t &buttonconfig)
+ {
+ // UILabelButtonExt *button = new UILabelButtonExt();
+ if (button == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, " SystemView::SetTheButton: button new fail!");
+ return ;
+ }
+ button->SetPosition(buttonconfig.x, buttonconfig.y, buttonconfig.w, buttonconfig.h);
+ //button->SetViewId(buttonconfig.ViewId);
+ // WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "----------%s ---",buttonconfig.ViewId);
+ button->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+
+ button->SetText(buttonconfig.str);
+ button->SetAlign(TEXT_ALIGNMENT_LEFT);
+ button->SetLabelPosition(50,30);
+ button->SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN, 23);
+ button->SetTextColor(Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff));
+ button->SetStyleForState(STYLE_BACKGROUND_COLOR,0xff191919, UIButton::PRESSED);
+
+ return ;
+ }
+
+
+ void CallLOGListitemView::NewcalllogButtonExt(UIViewGroup * TempGroup,uint8_t index)
+ {
+ if(nullptr == TempGroup)
+ return ;
+
+
+ if(0 == index)
+ {
+ TempGroup->SetPosition(0, 0, 390, 104);
+ TempGroup->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ TempGroup->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ TempGroup->SetStyle(STYLE_BORDER_RADIUS, 100);
+
+
+
+ MainPhoneView_ButtonConfig_ext_t buttonconfig;
+ buttonconfig.x = 0;
+ buttonconfig.y = 0;
+ buttonconfig.w = 390;
+ buttonconfig.h = 104;
+ buttonconfig.ViewId="xxxx";
+
+
+
+
+ SetTheButton_ext(&button_calllog,buttonconfig);
+ TempGroup->Add(&button_calllog);
+
+
+ LabelParams labelParam = {
+ .x = 49,
+ .y = 19,
+ .width = 280,
+ .height = 41,
+ .fontSize = 35,
+ .lineHeigh = 0,
+ .text = "xxx",
+ .lineBreakMode = UILabel::LINE_BREAK_MARQUEE,
+ };
+
+
+
+ LabelViewInit(&button_calllog_time,labelParam,Color::GetColorFromRGBA(0xEE, 0xEE, 0xEE, 0xEE));
+
+ TempGroup->Add(&button_calllog_time);
+
+ labelParam.fontSize=18;
+ labelParam.x=223+30;
+ labelParam.y=60;
+ labelParam.lineBreakMode=UILabel::LINE_BREAK_MARQUEE;
+ labelParam.width=72;
+ labelParam.height=21;
+
+
+ ColorType color;
+ LabelViewInit(&button_calllog_status,labelParam,color);
+ TempGroup->Add(&button_calllog_status);
+
+
+ call_log_type.SetPosition(253+90, 60); // widget's left position and top position
+ call_log_type.Resize(20, 20); // widget's width and height
+ call_log_type.SetViewId("image1");// Set style
+ call_log_type.SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ call_log_type.SetStyle(STYLE_BACKGROUND_OPA, 0xff);
+
+ TempGroup->Add(&call_log_type);
+ }
+ else
+ {
+ TempGroup->SetPosition(0, 0, 100, 100);
+ TempGroup->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ TempGroup->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ TempGroup->SetStyle(STYLE_BORDER_RADIUS, 100);
+
+ ButtonParams buttonParam = {
+ .x = 0,
+ .y = 0,
+ .width = 100,
+ .height = 100,
+ .backgroundColor = 0xff4fc34c,
+ .pressedBackgroundColor = 0xff4fc34c,
+ };
+ ButtonViewInit(&DeleteButton,buttonParam);
+
+ DeleteButton.SetImagePosition(0, 0);
+ DeleteButton.SetImageSrc(PNG_DELETE_PHONELINE_IMAGE, PNG_DELETE_PHONELINE_IMAGE);
+
+
+ TempGroup->Add(&DeleteButton);
+ }
+
+ return ;
+ }
+
+
+ void CallLOGListitemView::Init_button_calllog_SwipeView(UISwipeView *button_calllog_SwipeView)
+ {
+ if(button_calllog_SwipeView!=nullptr)
+ {
+ //button_calllog_SwipeView->SetCameraDistance((UISwipeView::HORIZONTAL));
+
+ button_calllog_SwipeView->SetPosition(0, 0, 390, 104);
+ button_calllog_SwipeView->SetTouchable(true);
+ button_calllog_SwipeView->SetViewId("no_back");
+
+ button_calllog_SwipeView->SetAnimatorTime(50); // 200:animator drag time(ms)
+
+ UIView::OnDragListener *dragListener = static_cast<UIView::OnDragListener *>(MainPhonePresenter::GetInstance());
+ button_calllog_SwipeView->SetOnDragListener(dragListener);
+
+ button_calllog_SwipeView->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ button_calllog_SwipeView->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ button_calllog_SwipeView->SetStyle(STYLE_BORDER_RADIUS, 100);
+
+
+ NewcalllogButtonExt(&SwipeViewItem[0], 0);
+
+ button_calllog_SwipeView->Add(&SwipeViewItem[0]);
+
+ NewcalllogButtonExt(&SwipeViewItem[1], 1);
+
+ button_calllog_SwipeView->Add(&SwipeViewItem[1]);
+
+ button_calllog_SwipeView->SetCurrentPage(0);
+ button_calllog_SwipeView->SetIntercept(false);
+ button_calllog_SwipeView->SetLoopState(false);
+
+ button_calllog_SwipeView->SetVisible(true);
+
+ //button_calllog_SwipeView[i]->SetDirection();
+
+ //button_calllog_SwipeView->SetDraggable(false);
+ }
+
+ }
+
+
+ CallLOGListitemView::CallLOGListitemView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallLOGListitemView::CallLOGListitemView");
+ SetPosition(0, 0, 390, 104);
+ SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ SetStyle(STYLE_BACKGROUND_OPA, 255);
+ SetUpChild();
+ Add(&button_calllog_SwipeView);
+
+
+ }
+
+ CallLOGListitemView::~CallLOGListitemView()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallLOGListitemView::~CallLOGListitemView");
+ Remove(&button_calllog_SwipeView);
+
+ button_calllog_SwipeView.RemoveAll();
+ SwipeViewItem[0].RemoveAll();
+ SwipeViewItem[1].RemoveAll();
+
+
+ }
+
+ void CallLOGListitemView::SetItemInfo(CallLogInfo *data)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallLOGListitemView::SetItemInfo");
+
+ time_t currtime;
+ struct tm *timeinfo;
+ currtime=(data)->creationTime;
+ timeinfo = localtime(&currtime);
+ char time_buf[20]={0};
+
+ sprintf_s(time_buf,20 ,"%d-%d-%d %d:%02d", timeinfo->tm_year + 1900,timeinfo->tm_mon + 1,timeinfo->tm_mday,timeinfo->tm_hour,timeinfo->tm_min);
+ button_calllog.SetText(time_buf);
+ button_calllog.SetViewId((const char*)(data)->tel);
+
+
+
+ char buf[20]={0};
+ sprintf_s(buf,20,"%s",(const char*)(data)->tel);
+ char name[NAME_LEN+1]={0};
+ if(get_phone_addrss_name(name,buf,NULL))
+ {
+ button_calllog_time.SetText(name);
+ button_calllog_time.SetFont(DEFAULT_VECTOR_FONT_FILENAME,35 ); // 设置标签的字体
+
+ }
+ else
+ {
+ button_calllog_time.SetText(buf);
+ button_calllog_time.SetFont(DEFAULT_VECTOR_FONT_FILENAME_EN,35 ); // 设置标签的字体
+ }
+
+ if((data)->status==CALL_MISSED)
+ {
+ button_calllog_status.SetTextId(STR_MISSED_CALLS);
+ button_calllog_status.SetTextColor(Color::GetColorFromRGBA(0xff, 0x5a, 0x36, 0xff));
+ }
+ else if((data)->status==CALL_INCOMING)
+ {
+ button_calllog_status.SetTextId(STR_RECEIVED_CALLS);
+ button_calllog_status.SetTextColor(Color::GetColorFromRGBA(0x66, 0x66, 0x66, 0xff));
+ }
+ else
+ {
+ button_calllog_status.SetTextId(STR_DIALED_CALLS);
+ button_calllog_status.SetTextColor(Color::GetColorFromRGBA(0x4f, 0xc3, 0x4c, 0xff));
+ }
+
+ call_log_type.SetSrc(data->calllogtype?PNG_CALL_LOG_PHONE_IMAGE:PNG_CALL_LOG_WATCH_IMAGE);
+
+ }
+
+ void CallLOGListitemView::SetUpChild()
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CallLOGListitemView::SetUpChild");
+ Init_button_calllog_SwipeView(&button_calllog_SwipeView);
+
+
+ }
+
+ UISwipeView *CallLOGListitemView::Getbutton_calllog_SwipeView(void)
+ {
+ return &button_calllog_SwipeView;
+ }
+
+ UILabelButtonExt *CallLOGListitemView::Getbutton_calllog(void)
+ {
+ return &button_calllog;
+ }
+
+ UIButton *CallLOGListitemView::GetDeleteButton(void)
+ {
+ return &DeleteButton;
+ }
+
+
+}
\ No newline at end of file
}
bool MainPhonePresenter::OnClick(UIView &view, const ClickEvent &event)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhonePresenter::OnClick");
-
std::string curViewId = view.GetViewId();
- int8_t id= MainPhonePresenter_atoi(view.GetViewId());//MainPhoneView::GetInstance()->get_delete_id(&view);
-
- if(id!=0 && id<=20 && curViewId.length()<=5)
- {
- MainPhoneView::GetInstance()->deletecallloginfo(id);
- return true;
- }
+
if (curViewId == DIALINGMETHODBUTTON_VIEWID)
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick", curViewId.c_str());
{
MainPhoneView::GetInstance()->deletecallloginfo(-1);
}
- else
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%s OnClick", curViewId.c_str());
- set_address_number((char *)view.GetViewId());
- NativeAbility::GetInstance().EnterSlice(VIEW_DIALING_METHOD);
- }
-
return true;
}
#include "UiConfig.h"
#include "AppViewIDs.h"
#include "NativeAbility.h"
+#include "phone/include/CallLogAdapter.h"
+#include "phone/include/CallLogItem.h"
namespace OHOS
{
hintCallsLabel = nullptr;
}
+ if(CalllogList)
+ {
+
+ delete CalllogList;
+ CalllogList = nullptr;
+ }
+ if(p_LanguageSwitchListAdapter)
+ {
+ delete p_LanguageSwitchListAdapter;
+ p_LanguageSwitchListAdapter = nullptr;
+ }
+
+
+
delete MainPhoneViewScrollView;
MainPhoneViewScrollView = nullptr;
}
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainPhoneView::ClearAll success!!");
}
+
+ static constexpr int16_t LANGUAGE_LIST_X = 38;
+ static constexpr int16_t LANGUAGE_LIST_Y = 365;
static int32 num = 0;
+ bool MainPhoneView::MainPhoneViewListViewInit(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::LanguageSwitchListViewInit");
+ p_LanguageSwitchListAdapter = new CallLogListAdapter(); // UIList 的适配器
+ if (p_LanguageSwitchListAdapter == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::p_LanguageSwitchListAdapter is nullptr!");
+ return false;
+ }
+
+
+ for (int i = num; i != 0; i--) {
+ p_LanguageSwitchListAdapter->AddListItem(*info[i-1]);
+
+ }
+
+ //p_LanguageSwitchListAdapter->SetItemClickListener(static_cast<UIView::OnClickListener *>(LanguageSwitchPresenter::GetInstance()));
+ CalllogList = new UIList(UIList::VERTICAL);
+ if (CalllogList == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "LanguageSwitchView::LanguageList is nullptr!");
+ return false;
+ }
+ CalllogList->SetPosition(LANGUAGE_LIST_X, LANGUAGE_LIST_Y, HORIZONTAL_RESOLUTION, num*124);
+ CalllogList->SetStyle(STYLE_BACKGROUND_COLOR, 0xff000000);
+ CalllogList->EnableAutoAlign(true); // 设置此列表的自动对齐状态。当滚动停止时,子视图被选中,其位置自动与预设位置对齐
+ CalllogList->SetThrowDrag(true); // 设置手指抬起屏幕后是否继续滚动。
+ CalllogList->SetMaxScrollDistance(1000); // 设置手指抬起屏幕后的最大滚动距离。
+ CalllogList->SetSwipeACCLevel(800); /*设置手指抬起屏幕后的补偿距离。*/
+ CalllogList->SetSelectPosition(346);
+ //CalllogList->SetReboundSize(30);
+ //CalllogList->SetScrollBlankSize(20);
+ CalllogList->SetStartIndex(0);
+ FocusManager::GetInstance()->RequestFocus(CalllogList);
+ FocusManager::GetInstance()->RequestFocusByDirection(FOCUS_DIRECTION_UP);
+ CalllogList->SetRotateFactor(1.0);
+
+ CalllogList->SetAdapter(p_LanguageSwitchListAdapter);
+
+ CalllogList->RefreshList();
+
+ MainPhoneViewScrollView->Add(CalllogList);
+
+ return true;
+ }
+
+
+
+
void MainPhoneView:: DeInit_button_calllog_SwipeView(void)
{
{
return;
}
- id=num-id;
+ id=num-id-1;
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "%d",id);
button_calllog_SwipeView[i]->SetLoopState(false);
button_calllog_SwipeView[i]->SetVisible(true);
+
+ //button_calllog_SwipeView[i]->SetDirection();
+
+ button_calllog_SwipeView[i]->SetDraggable(false);
MainPhoneViewScrollView->Add(button_calllog_SwipeView[i]);
}
if (num != 0) {
- int y=0;
- for (int i = num; i != 0; i--) {
- Init_button_calllog_SwipeView(info[i-1],y);
- y++;
- }
+
+ // for (int i = num; i != 0; i--) {
+ // Init_button_calllog_SwipeView(info[i-1],y);
+ // y++;
+ // }
+ MainPhoneViewListViewInit();
MainPhoneView_ButtonConfig_ext_t buttonParam = {
.x = 38,
MainPhoneViewScrollView->Add(RecentCallLabel);
MainPhoneViewScrollView->Add(TelephoneLineImageView);
MainPhoneViewScrollView->Add(NoCallsLabel);
+
RootView::GetInstance()->Add(MainPhoneViewScrollView);
Draw();
CallerLogModel::GetInstance()->SetMakePhoneStatus(true);
InitCallingTimer();
-
+
StartCallTimer(CallTimerType::NOTIFY_PHONE_DIAL_DISPLAY, (int32_t)NOTIFY_ONE_SECOND);
}
else
{
- uapi_cat1_stop_volte_voice();
-
+
addcalllog();
StatusReset();
}