${CMAKE_CURRENT_SOURCE_DIR}/nativeui/producttest/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/themestyle/include
+
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/include
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/include/AlipayList
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/alipay/include/AlipayTrans
- ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/themestyle/include
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/calculator/include
${UI_SAMPLE_ROOT}/components
${CMAKE_CURRENT_SOURCE_DIR}/../service/smart_voice/smart_voice_service/interfaces/innerkits/native_c/include
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/goal/src/goalother.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/goal/src/goalhint.cpp
${CMAKE_CURRENT_SOURCE_DIR}/nativeui/goal/src/goalControlView.cpp
- #${CMAKE_CURRENT_SOURCE_DIR} /service/acc_service.c
+
+
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/calculator/src/CalculatorView.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/calculator/src/CalculatorPresenter.cpp
+ ${CMAKE_CURRENT_SOURCE_DIR}/nativeui/calculator/src/CalculatorModel.cpp
)
VIEW_DIALING_METHOD, // 拨号方式
VIEW_TEST, // 测试
VIEW_GOAL, // 每日目标
+ VIEW_CALCULATOR, //计算器
/* -------------------------------------------------------------------------- */
#ifdef SUPPORT_ALIPAY_SEC
VIEW_MAIN_ALIPAY,
void InitMainPhoneSlice(void);
void InitDialingMethodSlice(void);
/* -------------------------------------------------------------------------- */
+ void InitCalculatorSlice(void);
void InittestSlice(void);
static constexpr const char *PNG_APPLIST_TACKEPHOTOS_IMAGE = APP_LIST_PATH "/assistant.bin"; // 遥控拍照
static constexpr const char *PNG_APPLIST_BLUETOOTH_IMAGE = APP_LIST_PATH "/Bluetooth.bin"; // 蓝牙
static constexpr const char *PNG_APPLIST_BREATHE_IMAGE = APP_LIST_PATH "/breathe.bin"; // 呼吸训练
- static constexpr const char *PNG_APPLIST_GOAL_IMAGE = APP_LIST_PATH "/sport.bin"; // 每日目标
+ static constexpr const char *PNG_APPLIST_GOAL_IMAGE = APP_LIST_PATH "/sport.bin"; //每日目标
static constexpr const char *PNG_APPLIST_VOICE_IMAGE = APP_LIST_PATH "/voice.bin"; // 声音
static constexpr const char *PNG_APPLIST_AIVOICE_IMAGE = APP_LIST_PATH "/aivoice.bin"; // AI Voice(人工智能语音)
static constexpr const char *PNG_APPLIST_SLEEP_IMAGE = APP_LIST_PATH "/sleeping.bin"; // 睡眠
+ static constexpr const char *PNG_APPLIST_INFORMATION_IMAGE = APP_LIST_PATH "/information.bin"; // 计算器
// AppList hexagon icon
static constexpr const char *PNG_APPLIST_DEFAULT_IMG = APP_RES_PATH "/regular_hexagon.bin";
#include "goal/include/Maingoalpresenter.h"
#include "goal/include/Maingoalview.h"
+#include "calculator/include/CalculatorPresenter.h"
+#include "calculator/include/CalculatorView.h"
+
#include "system/include/SystemPresenter.h"
#include "system/include/SystemView.h"
{VIEW_ROTATE, &NativeLauncher::InitRotateSlice},
// {VIEW_DIALUPDATE, &NativeLauncher::InitDialUpdateSlice},
//{VIEW_PHONE, &NativeLauncher::InitPhoneSlice}, // 电话
+
{VIEW_PHONECALL, &NativeLauncher::InitPhoneCallSlice},
{VIEW_PHONEDIR, &NativeLauncher::InitPhoneDirSlice},
{VIEW_PHONECALLING, &NativeLauncher::InitPhoneCallingSlice},
{VIEW_MAIN_PHONE, &NativeLauncher::InitMainPhoneSlice},
{VIEW_DIALING_METHOD, &NativeLauncher::InitDialingMethodSlice},
{VIEW_TEST, &NativeLauncher::InittestSlice},
+ {VIEW_CALCULATOR,&NativeLauncher::InitCalculatorSlice},
/* -------------------------------------------------------------------------- */
/* ----------------------------------- 训练 ----------------------------------- */
NativeAbility::GetInstance().AddSliceProxy(VIEW_PHONERING, phoneringview);
}
+ void NativeLauncher::InitCalculatorSlice(void)
+ {
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "NativeLauncher::InitPhoneRingSlice");
+ SliceProxy *phoneringview = new AbilitySliceProxy<CalculatorView, CalculatorPresenter>;
+ if (phoneringview == nullptr)
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "phoneringview");
+ return;
+ }
+ NativeAbility::GetInstance().AddSliceProxy(VIEW_CALCULATOR, phoneringview);
+ }
+
/* ----------------------------------- 电话 ----------------------------------- */
void NativeLauncher::InitMainPhoneSlice(void)
{
#ifdef SUPPORT_ALIPAY_SEC
{VIEW_MAIN_ALIPAY, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_ALIPAY_IMAGE, PNG_APPLIST_DEFAULT_IMG, "支付宝", STR_ALIPAY, nullptr},
#endif
+ {VIEW_CALCULATOR, PNG_APPLIST_INFORMATION_IMAGE, PNG_APPLIST_INFORMATION_IMAGE, PNG_APPLIST_DEFAULT_IMG, "计算器", STR_CALCULATOR, nullptr},
{VIEW_MESSAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_MESSAGE_IMAGE, PNG_APPLIST_DEFAULT_IMG, "消息通知", STR_MESSAGE_NOTIFICATION, nullptr},
{VIEW_COMPASS, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_COMPASS_IMAGE, PNG_APPLIST_DEFAULT_IMG, "指南针", STR_COMPASS, nullptr},
{VIEW_RECORD, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_RECORD_IMAGE, PNG_APPLIST_DEFAULT_IMG, "录音", STR_RECORD, nullptr},
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
+ * Description: CalculatorModel.h
+ * Author:
+ * Create: 2021-10-12
+ */
+#ifndef CALCULATOR_MODEL_H
+#define CALCULATOR_MODEL_H
+
+#include "los_mux.h"
+#include "string"
+#include "PhoneService.h"
+#include "AppViewIDs.h"
+#include "components/ui_label_ext.h"
+#include"ui_resource_string.h"
+#include "message.h"
+#include "msg_center.h"
+#include "stack"
+
+namespace OHOS {
+
+
+class CalculatorModel {
+public:
+ static CalculatorModel *GetInstance(void);
+
+
+ void number_push_stack(float);
+ float symbol_push_stack(char symbol);
+ float calculate_stack();
+ uint8_t get_stcak_size();
+ void symbol_stack_top_uddata(float data);
+ void clean_stack();
+private:
+ CalculatorModel();
+ CalculatorModel(const CalculatorModel &);
+ virtual ~CalculatorModel();
+ std::stack<float> numberStack;
+ std::stack<char> symbolStack;
+
+};
+}
+#endif
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
+ * Description: CalculatorPresenter.h
+ * Author:
+ * Create: 2021-10-12
+ */
+
+#ifndef CALCULATOR_PRESENTER_H
+#define CALCULATOR_PRESENTER_H
+
+#include "Presenter.h"
+#include "ohos_types.h"
+#include "CallerLogModel.h"
+#include "BaseView.h"
+#include "cmsis_os.h"
+
+namespace OHOS {
+class CalculatorView;
+class CalculatorPresenter : public Presenter<CalculatorView>,
+ public UIView::OnClickListener,
+ public UIView::OnDragListener
+{
+public:
+ CalculatorPresenter();
+ ~CalculatorPresenter() override;
+
+ void OnStart() override;
+ void OnPause() override;
+ void OnResume() override;
+ void OnStop() override;
+
+ static CalculatorPresenter *GetInstance(void);
+ bool OnClick(UIView &view, const ClickEvent &event) override;
+
+ bool OnDragEnd(UIView &view, const DragEvent &event) override;
+
+
+private:
+
+};
+}
+
+#endif
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
+ * Description: CalculatorView.h
+ * Author:
+ * Create: 2021-10-12
+ */
+
+#ifndef CALCULATOR_VIEW_H
+#define CALCULATOR_VIEW_H
+
+#include "View.h"
+#include "CalculatorPresenter.h"
+#include "CalculatorView.h"
+#include "BaseView.h"
+#include "components/ui_view_group.h"
+#include "components/ui_image_animator.h"
+#include "components/ui_scroll_view.h"
+#include "components/ui_label.h"
+#include "components/ui_label_ext.h"
+#include "components/ui_label_button.h"
+#include "components/ui_list.h"
+#include "components/abstract_adapter.h"
+#include "components/ui_image_view.h"
+
+#include "PhoneService.h"
+#include "vector.h"
+#include "ChangeSliceListener.h"
+
+namespace OHOS {
+
+class CalculatorView : public View<CalculatorPresenter> {
+public:
+ CalculatorView();
+ ~CalculatorView();
+
+ void OnStop() override;
+ void OnSetUpView() override;
+ void OnTearDownView() override;
+ void OnStart() override;
+ static CalculatorView *GetInstance();
+ void number_text_updata_buf(const char *buf);
+ void symbol_text_updata_buf(const char *buf);
+ void symbol_text_updata_single_buf(const char *buf);
+ void symbol_text_updata_calculate_buf(const char *buf);
+
+private:
+ uint8_t number_falg=0;
+ bool button_init();
+ bool Label_init();
+ UILabelButton *Button[20]={nullptr};
+
+ UIImageView *image1_{nullptr};
+
+ UIViewGroup *group{nullptr};
+ UILabel *number{nullptr};
+
+ UIView::OnClickListener* clickLeftListener{nullptr};
+ UIView:: OnDragListener* dragListener{nullptr};
+
+
+};
+}
+
+#endif
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
+ * Description: CalculatorModel.cpp
+ * Author:
+ * Create: 2021-10-12
+ */
+#include "DialingScreenView.h"
+
+#include "service_id_define.h"
+#include "cmsis_os.h"
+#include "samgr_lite.h"
+#include "CalculatorModel.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+using namespace OHOS;
+
+
+static bool g_isWatchCallView = false;
+
+CalculatorModel::CalculatorModel()
+{
+
+}
+
+CalculatorModel::~CalculatorModel()
+{
+
+}
+
+
+void CalculatorModel:: number_push_stack(float data)
+{
+ printf("%f\r\n",data);
+ if(!symbolStack.empty())
+ {
+ if(symbolStack.top()=='-')
+ {
+ char symbol_= symbolStack.top();
+ symbolStack.pop();
+ data=-data;
+ symbolStack.push('+');
+
+ }
+ }
+ numberStack.push(data);
+}
+
+
+void CalculatorModel:: symbol_stack_top_uddata(float data)
+{
+ printf("%c\r\n",data);
+ if(!symbolStack.empty())
+ {
+ symbolStack.pop();
+ symbolStack.push(data);
+ }
+}
+
+uint8_t CalculatorModel::get_stcak_size()
+{
+ return numberStack.size();
+}
+
+float CalculatorModel:: symbol_push_stack(char symbol)
+{
+ printf("%c\r\n",symbol);
+
+ if(numberStack.empty())
+ {
+ return 0;
+ }
+ symbolStack.push(symbol);
+ return 0;
+
+}
+
+void CalculatorModel:: clean_stack()
+{
+ while (!numberStack.empty())
+ {
+ numberStack.pop();
+ }
+
+ while (!symbolStack.empty())
+ {
+ symbolStack.pop();
+ }
+}
+
+float CalculatorModel:: calculate_stack()
+{
+ float sum=0;
+ if(numberStack.empty())
+ return sum;
+ float number_1= numberStack.top();
+ numberStack.pop();
+ sum=number_1;
+ while (!numberStack.empty())
+ {
+ float number_= numberStack.top();
+ numberStack.pop();
+
+ if(symbolStack.empty())
+ break;
+ char symbol= symbolStack.top();
+ if(symbol=='+')
+ {
+ sum+=number_;
+ }
+ if(symbol=='x')
+ {
+ sum*=number_;
+ }
+ if(symbol=='-')
+ {
+ sum=-number_;
+ }
+ if(symbol=='/')
+ {
+ sum=number_/sum;
+ }
+ printf("sum:%f\r\n",sum);
+ }
+ return sum;
+}
+
+
+CalculatorModel *CalculatorModel::GetInstance(void)
+{
+ static CalculatorModel callLogModel;
+ return &callLogModel;
+}
+
+#ifdef __cplusplus
+}
+#endif
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
+ * Description: CalculatorPresenter.cpp
+ * Author:
+ * Create: 2021-10-12
+ */
+
+#include "calculator/include/CalculatorPresenter.h"
+#include "calculator/include/CalculatorView.h"
+
+
+namespace OHOS {
+
+static CalculatorPresenter *g_pMainView = nullptr;
+CalculatorPresenter::CalculatorPresenter()
+{
+ g_pMainView = this;
+}
+
+CalculatorPresenter::~CalculatorPresenter()
+{
+ g_pMainView = nullptr;
+}
+
+CalculatorPresenter *CalculatorPresenter::GetInstance(void)
+{
+ return g_pMainView;
+}
+
+void CalculatorPresenter::OnStart()
+{
+ Presenter<CalculatorView>::OnStart();
+}
+
+void CalculatorPresenter::OnResume(void)
+{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "ApplistPresenter::OnResume()");
+ Presenter<CalculatorView>::OnResume();
+
+ return;
+}
+
+void CalculatorPresenter::OnPause(void) {}
+
+void CalculatorPresenter::OnStop(void)
+{
+
+}
+
+
+bool CalculatorPresenter::OnClick(UIView &view, const ClickEvent &event)
+{
+ UNUSED(event);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "OnClick");
+ if (strcmp(view.GetViewId(), "0") == 0) {
+ CalculatorView::GetInstance()->number_text_updata_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(), "1") == 0)
+ {
+ CalculatorView::GetInstance()->number_text_updata_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(), "2") == 0)
+ {
+ CalculatorView::GetInstance()->number_text_updata_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(), "3") == 0)
+ {
+ CalculatorView::GetInstance()->number_text_updata_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(), "4") == 0)
+ {
+ CalculatorView::GetInstance()->number_text_updata_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(), "5") == 0)
+ {
+ CalculatorView::GetInstance()->number_text_updata_buf(view.GetViewId());
+ return true;
+ }
+
+ else if (strcmp(view.GetViewId(), "6") == 0)
+ {
+ CalculatorView::GetInstance()->number_text_updata_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(), "7") == 0)
+ {
+ CalculatorView::GetInstance()->number_text_updata_buf(view.GetViewId());
+ return true;
+ }else if (strcmp(view.GetViewId(), "8") == 0)
+ {
+ CalculatorView::GetInstance()->number_text_updata_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(), "9") == 0)
+ {
+ CalculatorView::GetInstance()->number_text_updata_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(), ".") == 0)
+ {
+ CalculatorView::GetInstance()->number_text_updata_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(), "÷") == 0)
+ {
+ CalculatorView::GetInstance()->symbol_text_updata_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(), "x") == 0)
+ {
+ CalculatorView::GetInstance()->symbol_text_updata_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(), "+") == 0)
+ {
+ CalculatorView::GetInstance()->symbol_text_updata_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(), "-") == 0)
+ {
+ CalculatorView::GetInstance()->symbol_text_updata_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(), "C") == 0)
+ {
+ CalculatorView::GetInstance()->symbol_text_updata_single_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(), "%") == 0)
+ {
+ CalculatorView::GetInstance()->symbol_text_updata_single_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(), "=") == 0)
+ {
+ CalculatorView::GetInstance()->symbol_text_updata_calculate_buf(view.GetViewId());
+ return true;
+ }
+ else if (strcmp(view.GetViewId(),"D") == 0)
+ {
+ CalculatorView::GetInstance()->symbol_text_updata_single_buf(view.GetViewId());
+ return true;
+ }
+
+ return false;
+}
+
+bool CalculatorPresenter::OnDragEnd(OHOS::UIView& view, const OHOS::DragEvent& event)
+{
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "MainCallingPresenter OnDragEnd");
+ if (event.GetDragDirection() == DragEvent::DIRECTION_LEFT_TO_RIGHT)
+ {
+ if(event.GetPreLastPoint().x-event.GetStartPoint().x>150)
+ NativeAbility::GetInstance().Back();
+ }
+ return true;
+}
+}
\ No newline at end of file
--- /dev/null
+/*
+ * Copyright (c) CompanyNameMagicTag 2021-2021. All rights reserved.
+ * Description: CalculatorView.cpp
+ * Author:
+ * Create: 2021-10-12
+ */
+
+#include "calculator/include/CalculatorView.h"
+#include "calculator/include/CalculatorPresenter.h"
+#include "calculator/include/CalculatorModel.h"
+#include "wearable_log.h"
+
+namespace OHOS {
+
+static CalculatorView *g_pMainView = nullptr;
+CalculatorView::CalculatorView()
+{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "::CalculatorView::CalculatorView ");
+ g_pMainView = this;
+}
+
+CalculatorView::~CalculatorView()
+{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "::CalculatorView::~CalculatorView ");
+ g_pMainView = nullptr;
+ group->RemoveAll();
+ if(number)
+ {
+ delete number;
+ number =nullptr;
+ }
+ for(int i=0;i<20;i++)
+ {
+ if(Button[i])
+ {
+ delete Button[i];
+ Button[i] =nullptr;
+ }
+ }
+ if(image1_)
+ {
+ delete image1_;
+ image1_=nullptr;
+ }
+}
+
+CalculatorView *CalculatorView::GetInstance()
+{
+ return g_pMainView;
+}
+
+void CalculatorView::number_text_updata_buf(const char *buf)
+{
+ char new_buf[16]={0};
+ const char*text_buf=NULL;
+ if(number_falg==1)
+ text_buf=number->GetText();
+ else
+ text_buf="";
+ sprintf_s(new_buf,16,"%s%s",text_buf,buf);
+ number->SetText(new_buf);
+ number_falg=1;
+ RootView::GetInstance()->Invalidate();
+ return;
+}
+
+void CalculatorView::symbol_text_updata_buf(const char *buf)
+{
+ char new_buf[16]={0};
+ const char*text_buf=number->GetText();
+ if(number_falg==0)
+ {
+ if(strcmp(buf,"÷")==0)
+ CalculatorModel::GetInstance()->symbol_stack_top_uddata('/');
+ else
+ CalculatorModel::GetInstance()->symbol_stack_top_uddata(buf[0]);
+
+ number->SetText(buf);
+ RootView::GetInstance()->Invalidate();
+ return;
+ }
+ float number_float=strtof(text_buf,NULL);
+
+ CalculatorModel::GetInstance()->number_push_stack(number_float);
+
+ if( CalculatorModel::GetInstance()->get_stcak_size()>=2)
+ {
+ number_float =CalculatorModel::GetInstance()->calculate_stack();
+ CalculatorModel::GetInstance()->number_push_stack(number_float);
+
+ RootView::GetInstance()->Invalidate();
+
+ }
+
+ sprintf_s(new_buf,16,"%s",buf);
+ number->SetText(new_buf);
+ RootView::GetInstance()->Invalidate();
+
+ if(strcmp(buf,"÷")==0)
+ CalculatorModel::GetInstance()->symbol_push_stack('/');
+ else
+ CalculatorModel::GetInstance()->symbol_push_stack(buf[0]);
+
+ number_falg=0;
+
+ return;
+}
+
+void CalculatorView::symbol_text_updata_single_buf(const char *buf)
+{
+ char new_buf[16]={0};
+ const char*text_buf=number->GetText();
+
+ float number_float=strtof(text_buf,NULL);
+ if(buf[0]=='C')
+ {
+ CalculatorModel::GetInstance()->clean_stack();
+ number->SetText("");
+ RootView::GetInstance()->Invalidate();
+ }
+ else if (buf[0]=='%')
+ {
+ number_float=0.01*number_float;
+ sprintf_s(new_buf,16,"%.02f",number_float);
+ number->SetText(new_buf);
+ RootView::GetInstance()->Invalidate();
+ }
+ else if (buf[0]=='D')
+ {
+ number_float=0;
+ sprintf_s(new_buf,16,"%.02f",number_float);
+ number->SetText(new_buf);
+ number_falg=2;
+ RootView::GetInstance()->Invalidate();
+ }
+
+ return;
+}
+
+void CalculatorView::symbol_text_updata_calculate_buf(const char *buf)
+{
+ char new_buf[32]={0};
+ const char*text_buf=number->GetText();
+ float number_float=strtof(text_buf,NULL);
+ CalculatorModel::GetInstance()->number_push_stack(number_float);
+
+ number_float =CalculatorModel::GetInstance()->calculate_stack();
+
+ // CalculatorModel::GetInstance()->number_push_stack(number_float);
+ number_falg=2;
+
+ sprintf_s(new_buf,32,"%.02f",number_float);
+ number->SetText(new_buf);
+ RootView::GetInstance()->Invalidate();
+
+
+ // number->SetText("");
+ return;
+}
+
+
+
+
+static char *dial_id_str[]={"7","8","9","C","%","4","5","6","÷","x","1","2","3","-","+","","0",".","=",""};
+
+bool CalculatorView::button_init()
+{
+ uint8_t showdial_i=0;
+ for(int i=0;i<4;i++)
+ {
+ for(int j=0;j<5;j++)
+ {
+ if(showdial_i==15 || showdial_i==19)
+ {
+ showdial_i++;
+ continue;
+ }
+ if (Button[showdial_i] == nullptr) {
+ Button[showdial_i] = new UILabelButton();
+ }
+ if(Button[showdial_i]==nullptr)
+ {
+ return false;
+ }
+ Button[showdial_i]->SetPosition(17+(j*88), 140+(i*68)); // widget's left position and top position
+
+ Button[showdial_i]->Resize(80, 60); // widget's width and height
+ Button[showdial_i]->SetViewId(dial_id_str[showdial_i]);// Set style
+
+ Button[showdial_i]->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ if(j>2)
+ {
+ Button[showdial_i]->SetStyle(STYLE_BACKGROUND_COLOR, 0xFFFF8A36);
+ if(i==0)
+ {
+ Button[showdial_i]->SetStyle(STYLE_BACKGROUND_COLOR, 0xFFAAAAAA);
+ }
+ }
+
+ Button[showdial_i]->SetText(dial_id_str[showdial_i]);
+ Button[showdial_i]->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 40);
+ Button[showdial_i]->SetStyleForState(STYLE_BORDER_COLOR, 0xff0b1928, UIButton::PRESSED);
+
+ group->Add(Button[showdial_i]);
+ Button[showdial_i]->SetVisible(true);
+
+ clickLeftListener = (UIView::OnClickListener*)OHOS::CalculatorPresenter::GetInstance();
+ if (clickLeftListener == nullptr) {
+ return false;
+ }
+
+ Button[showdial_i]->SetOnClickListener(clickLeftListener);
+
+ showdial_i++;
+ }
+ }
+
+ return true;
+}
+
+bool CalculatorView::Label_init()
+{
+ if (number == nullptr) {
+ number = new UILabel();
+ }
+ if(number==nullptr)
+ {
+ return false;
+ }
+ number->SetPosition(61, 73); // widget's left position and top position
+ number->Resize(300, 60); // widget's width and height
+ number->SetViewId("label5");// Set style
+ number->SetStyle(STYLE_TEXT_FONT, 50);
+
+ // Set additional property
+ number->SetText("");
+ number->SetLineBreakMode(UILabel::LINE_BREAK_WRAP);
+ number->SetAlign(TEXT_ALIGNMENT_RIGHT, TEXT_ALIGNMENT_CENTER);
+ number->SetRollSpeed(0);
+ number->SetFont(DEFAULT_VECTOR_FONT_FILENAME, 50);
+
+ // Add to rootView
+ group->Add(number);
+
+ number->SetVisible(true);
+
+ if (image1_ == nullptr) {
+ image1_ = new UIImageView();
+ }
+ image1_->SetPosition(378, 85); // widget's left position and top position
+ image1_->Resize(100, 100); // widget's width and height
+ image1_->SetViewId("D");// Set style
+
+
+ char* DimagesPath = "/user/res/Vector.bin";
+
+ image1_->SetSrc(DimagesPath);
+ clickLeftListener = (UIView::OnClickListener*)OHOS::CalculatorPresenter::GetInstance();
+ if (clickLeftListener == nullptr) {
+ return false;
+ }
+
+ image1_->SetOnClickListener(clickLeftListener);
+ image1_->SetTouchable(true);
+ // Add to rootView
+ group->Add(image1_);
+
+ image1_->SetVisible(true);
+ return true;
+}
+
+void CalculatorView::OnStart()
+{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CalculatorView::OnStart");
+ View<CalculatorPresenter>::OnStart();
+
+ group = new UIViewGroup();
+ if (group == nullptr) {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallingView::UIViewGroup::new group error");
+ return ;
+ }
+ group->SetPosition(0, 0);
+ group->Resize(VERTICAL_RESOLUTION, HORIZONTAL_RESOLUTION); // 454 : value
+ group->SetTouchable(true);
+ group->SetDraggable(true);
+
+ dragListener = (UIView::OnDragListener*)OHOS::CalculatorPresenter::GetInstance();
+ if (dragListener == nullptr) {
+
+ return;
+ }
+ group->SetOnDragListener(dragListener);
+
+ RootView::GetInstance()->Add(group);
+
+ if(!button_init())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallingView::UIViewGroup::new group error");
+ return;
+ }
+ if(!Label_init())
+ {
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "CallingView::UIViewGroup::new group error");
+ return;
+ }
+
+
+}
+
+
+
+void CalculatorView::OnSetUpView()
+{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CalculatorView::OnSetUpView");
+ View<CalculatorPresenter>::OnSetUpView();
+
+ Draw();
+}
+
+
+void CalculatorView::OnTearDownView()
+{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CalculatorView::~OnTearDownView");
+ View<CalculatorPresenter>::OnTearDownView();
+ return;
+}
+
+void CalculatorView::OnStop()
+{
+ WEARABLE_LOGD(WEARABLE_LOG_MODULE_APP, "CalculatorView::~OnStop");
+ View<CalculatorPresenter>::OnStop();
+
+ RootView::GetInstance()->ClearOnKeyActListener();
+ RootView::GetInstance()->RemoveAll();
+ return;
+}
+}
\ No newline at end of file
--- /dev/null
+version https://git-lfs.github.com/spec/v1
+oid sha256:e4264942f5889388365faa3d1e88da4a5c9a6447d95107ce6143222e13cfa762
+size 600