* @FilePath: /FD230/code/sdk/application/wearable/fd230app/nativeui/flashligh/src/FlashlightView.cpp
*/
#include "flashlight/include/FlashlightView.h"
-#include "flashlight/include/FlashlightPresenter.h"
-#include "flashlight/include/FlashlightModel.h"
#include "wearable_log.h"
+#include "ui_resource_string.h"
+#include "UiConfig.h"
+#include "custom_utils.h"
namespace OHOS
{
FlashlightView::~FlashlightView()
{
WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FlashlightView::~FlashlightView");
- ClearAll();
g_pFlashlightView = nullptr;
}
return g_pFlashlightView;
}
- void FlashlightView::ClearAll(void)
+ void FlashlightView::OnStart()
{
- group->RemoveAll();
- if (group != nullptr)
+ View<FlashlightPresenter>::OnStart();
+
+ SetContainerView(new UIViewGroup());
+ if (nullptr == GetContainer())
{
- delete FlashlightVector;
- FlashlightVector = nullptr;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[%d]", __LINE__);
+ return;
+ }
+ container_->SetPosition(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
+ container_->SetTouchable(true);
+ container_->SetDraggable(true);
+ // container_->SetOnDragListener(presenter_);
+
+ RootView::GetInstance()->SetOnKeyActListener(presenter_);
+ }
+
+ void FlashlightView::OnSetUpView()
+ {
+ View<FlashlightPresenter>::OnSetUpView();
+
+ InitSwipeData();
+ Draw();
+ }
+
+ void FlashlightView::OnTearDownView()
+ {
+ View<FlashlightPresenter>::OnTearDownView();
+ return;
+ }
+
+ void FlashlightView::OnStop()
+ {
+ View<FlashlightPresenter>::OnStop();
+ RootView::GetInstance()->ClearOnKeyActListener();
+
+ if (nullptr != container_)
+ {
+ container_->RemoveAll();
+ delete container_;
+ container_ = nullptr;
+
+ DeinitSwipeData();
+
+ DeinitColorSettingData();
+ DeinitFlashingSettingData();
+ }
+ }
- delete LineImage;
- LineImage = nullptr;
- delete group;
- group = nullptr;
+ void FlashlightView::DeinitSwipeData()
+ {
+ if(nullptr != SwipeView_)
+ {
+ SwipeView_->RemoveAll();
+ delete SwipeView_;
+ SwipeView_ = nullptr;
+
+ DeinitViewMainData();
+ DeinitViewSettingData();
}
}
- void FlashlightView::FlashlightViewInit(void)
+ UIViewGroup * FlashlightView::InitSwipeData()
{
- if (group == nullptr)
+ if(nullptr == SwipeView_)
{
- group = new UIScrollView();
- if (group == nullptr)
+ SwipeView_ = new UISwipeView(UISwipeView::VERTICAL);
+ if(nullptr == SwipeView_)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FlashlightView::group is nullptr");
- return;
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[@CHENG][%d]", __LINE__);
+ return nullptr;
}
- group->SetPosition(0, 0, 466, 466);
- group->SetStyle(STYLE_BACKGROUND_COLOR, FlashlightModel::GetInstance().GetCurrentBrightness());
- group->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
- UIView::OnClickListener *listener1 = static_cast<UIView::OnClickListener *>(FlashlightPresenter::GetInstance());
- group->SetOnClickListener(listener1);
- UIView::OnDragListener *listener2 = static_cast<UIView::OnDragListener *>(FlashlightPresenter::GetInstance());
- group->SetOnDragListener(listener2);
- /* -------------------------------------------------------------------------- */
- FlashlightVector = new UIImageView();
- if (FlashlightVector == nullptr)
- {
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FlashlightView::FlashlightVector is nullptr");
- return;
+ SwipeView_->SetPosition(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
+ SwipeView_->SetTouchable(true);
+ SwipeView_->SetDraggable(true);
+ // SwipeView_->SetThrowDrag(true);
+ SwipeView_->SetOnSwipeListener(presenter_);
+ SwipeView_->SetAnimatorTime(50); // 200:animator drag time(ms)
+ SwipeView_->SetOnDragListener(presenter_);
+ SwipeView_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ SwipeView_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ SwipeView_->SetStyle(STYLE_BORDER_RADIUS, 100);
+
+ UIViewGroup * temp_0 = InitViewMainData();
+ if(nullptr == temp_0)
+ return nullptr;
+ SwipeView_->Add(temp_0);
+
+ UIViewGroup * temp_1 = InitViewSettingData();
+ if(nullptr == temp_1)
+ return nullptr;
+ SwipeView_->Add(temp_1);
+
+ SwipeView_->SetCurrentPage(0);
+ SwipeView_->SetIntercept(false);
+ SwipeView_->SetLoopState(false);
+
+ container_->Add(SwipeView_);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FlashlightView::InitSwipeData");
+ }
+
+ return dynamic_cast<UIViewGroup *>(SwipeView_);
+ // return SwipeView_;
+ }
+
+ void FlashlightView::DeinitViewMainData()
+ {
+ if(nullptr != GroupMain_)
+ {
+ GroupMain_->RemoveAll();
+ delete GroupMain_;
+ GroupMain_ = nullptr;
+
+ if(nullptr != ImageArrow_)
+ {
+ delete ImageArrow_;
+ ImageArrow_ = nullptr;
}
- FlashlightVector->SetPosition(212, 191, 100, 100);
- const char *imagesPath = "/user/res/flashlight/Flashlight.bin";
- FlashlightVector->SetSrc(imagesPath);
- /* -------------------------------------------------------------------------- */
- LineImage = new UIImageView();
- if (LineImage == nullptr)
+ }
+ }
+
+ UIViewGroup * FlashlightView::InitViewMainData(void)
+ {
+ if(nullptr == GroupMain_)
+ {
+ GroupMain_ = new UIViewGroup();
+ if(nullptr == GroupMain_)
+ return nullptr;
+
+ GroupMain_->SetPosition(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
+ // GroupMain_->SetViewId(S_ViewId_NoDataGroup_);
+ GroupMain_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ GroupMain_->SetStyle(STYLE_BACKGROUND_COLOR, presenter_->GetColorValue());
+ GroupMain_->SetTouchable(true);
+ GroupMain_->SetDraggable(true);
+ GroupMain_->SetOnDragListener(presenter_);
+
+ if (nullptr == ImageArrow_)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FlashlightView::LineImage is nullptr");
- return;
+ ImageArrow_ = new UIImageView();
+ if (nullptr == ImageArrow_)
+ return nullptr;
+
+ ImageArrow_->SetPosition(211, 430, 40, 20);
+ ImageArrow_->SetSrc(UP_ARROW_IMAGE);
}
- LineImage->SetPosition(193, 430, 80, 8);
- LineImage->SetStyle(STYLE_BACKGROUND_COLOR, 0xffdddddd);
- LineImage->SetStyle(STYLE_BACKGROUND_OPA, 0xff);
- LineImage->SetVisible(false);
+
+ GroupMain_->Add(ImageArrow_);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FlashlightView::InitViewMainData");
}
+
+ return GroupMain_;
}
- UIScrollView *FlashlightView::GetGroupView()
+ void FlashlightView::UpdateViewMainScreenFlashing(bool flag)
{
- if (group != nullptr)
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[@CHENG][%d]", __LINE__);
+ if(nullptr == GroupMain_)
+ return;
+
+ if(false == GroupMain_->IsVisible())
+ return;
+
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "[@CHENG][%d]:%d", __LINE__, flag);
+ if(true == flag)
{
- return group;
+ GroupMain_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
}
else
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FlashlightView::group is new fail!!");
+ GroupMain_->SetStyle(STYLE_BACKGROUND_COLOR, presenter_->GetColorValue());
+ }
+
+ Draw();
+ }
+
+ void FlashlightView::UpdateViewMainScreen(void)
+ {
+ if(nullptr == SwipeView_)
+ return;
+
+ SwipeView_->SetCurrentPage(0);
+
+ if(0 == presenter_->GetFlashingLevel())
+ UpdateViewMainScreenFlashing(false);
+ else
+ presenter_->StartFlashingTimer();
+ }
+
+ void FlashlightView::DeinitViewSettingData()
+ {
+ if(nullptr != GroupSetting_)
+ {
+ GroupSetting_->RemoveAll();
+ delete GroupSetting_;
+ GroupSetting_ = nullptr;
+
+ if(nullptr != LabelTitle_)
+ {
+ delete LabelTitle_;
+ LabelTitle_ = nullptr;
+ }
+ if(nullptr != ImageColorSetting_)
+ {
+ delete ImageColorSetting_;
+ ImageColorSetting_ = nullptr;
+ }
+ if(nullptr != ImageFlashingSetting_)
+ {
+ delete ImageFlashingSetting_;
+ ImageFlashingSetting_ = nullptr;
+ }
+ if(nullptr != LabelColorSetting_)
+ {
+ delete LabelColorSetting_;
+ LabelColorSetting_ = nullptr;
+ }
+ if(nullptr != LabelFlashingSetting_)
+ {
+ delete LabelFlashingSetting_;
+ LabelFlashingSetting_ = nullptr;
+ }
+ }
+ }
+
+ UIViewGroup * FlashlightView::InitViewSettingData()
+ {
+ if(nullptr == GroupSetting_)
+ {
+ GroupSetting_ = new UIViewGroup();
+ if(nullptr == GroupSetting_)
+ return nullptr;
+
+ // GroupSetting_->SetViewId(S_ViewId_NoDataGroup_);
+ GroupSetting_->SetPosition(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
+ GroupSetting_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ GroupSetting_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ GroupSetting_->SetTouchable(true);
+ GroupSetting_->SetDraggable(true);
+ GroupSetting_->SetOnDragListener(presenter_);
+
+ if(nullptr == LabelTitle_)
+ {
+ LabelTitle_ = CreateUILabelExt(83, 50, 300, 35, STR_FLASHLIGHT_SETTING, 30, 35, Color::White().full,
+ TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ if(nullptr == LabelTitle_)
+ return nullptr;
+ }
+
+ if(nullptr == ImageColorSetting_)
+ {
+ ImageColorSetting_ = new UIImageView();
+ if (nullptr == ImageColorSetting_)
+ return nullptr;
+
+ ImageColorSetting_->SetViewId(Flashlight_ViewId_ImageColorSetting_);
+ ImageColorSetting_->SetPosition(60, 140, 160, 160);
+ ImageColorSetting_->SetSrc(COLOR_SETTING_IMAGE);
+ ImageColorSetting_->SetTouchable(true);
+ ImageColorSetting_->SetOnClickListener(presenter_);
+ }
+
+ if(nullptr == ImageFlashingSetting_)
+ {
+ ImageFlashingSetting_ = new UIImageView();
+ if (nullptr == ImageFlashingSetting_)
+ return nullptr;
+
+ ImageFlashingSetting_->SetViewId(Flashlight_ViewId_ImageFlashingSetting_);
+ ImageFlashingSetting_->SetPosition(246, 140, 160, 160);
+ ImageFlashingSetting_->SetSrc(FLASHING_SETTING_IMAGE);
+ ImageFlashingSetting_->SetTouchable(true);
+ ImageFlashingSetting_->SetOnClickListener(presenter_);
+ }
+
+ if(nullptr == LabelColorSetting_)
+ {
+ LabelColorSetting_ = CreateUILabelExt(80, 320, 120, 35, STR_LIGHT_COLOR, 30, 35, 0xff999999,
+ TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ if(nullptr == LabelColorSetting_)
+ return nullptr;
+ }
+
+ if(nullptr == LabelFlashingSetting_)
+ {
+ LabelFlashingSetting_ = CreateUILabelExt(266, 320, 120, 35, STR_FLICKER_FREQUENCY, 30, 35, 0xff999999,
+ TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ if(nullptr == LabelFlashingSetting_)
+ return nullptr;
+ }
+
+ GroupSetting_->Add(LabelTitle_);
+ GroupSetting_->Add(ImageColorSetting_);
+ GroupSetting_->Add(ImageFlashingSetting_);
+ GroupSetting_->Add(LabelColorSetting_);
+ GroupSetting_->Add(LabelFlashingSetting_);
+ WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FlashlightView::InitViewSettingData");
+ }
+
+ return GroupSetting_;
+ }
+
+ void FlashlightView::DeinitColorSettingData()
+ {
+ if(nullptr != GroupColorSetting_)
+ {
+ GroupColorSetting_->RemoveAll();
+ delete GroupColorSetting_;
+ GroupColorSetting_ = nullptr;
+
+ if(nullptr != LabelColorSettingTitle_)
+ {
+ delete LabelColorSettingTitle_;
+ LabelColorSettingTitle_ = nullptr;
+ }
+
+ uint8_t i = 0;
+ for(i = 0; i < COLOR_SETTING_ITEM_COUNT; i++)
+ {
+ if(nullptr != ImageColorSettingItem_[i][0])
+ {
+ delete ImageColorSettingItem_[i][0];
+ ImageColorSettingItem_[i][0] = nullptr;
+ }
+ if(nullptr != ImageColorSettingItem_[i][1])
+ {
+ delete ImageColorSettingItem_[i][1];
+ ImageColorSettingItem_[i][1] = nullptr;
+ }
+ }
+ }
+ }
+
+ UIViewGroup * FlashlightView::InitColorSettingData()
+ {
+ if(nullptr == GroupColorSetting_)
+ {
+ GroupColorSetting_ = new UIViewGroup();
+ if(nullptr == GroupColorSetting_)
+ return nullptr;
+
+ GroupColorSetting_->SetViewId(Flashlight_ViewId_GroupColorSetting_);
+ GroupColorSetting_->SetPosition(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
+ GroupColorSetting_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ GroupColorSetting_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ GroupColorSetting_->SetTouchable(true);
+ GroupColorSetting_->SetDraggable(true);
+ GroupColorSetting_->SetOnDragListener(presenter_);
+
+ if(nullptr == LabelColorSettingTitle_)
+ {
+ LabelColorSettingTitle_ = CreateUILabelExt(83, 50, 300, 35, STR_LIGHT_COLOR, 30, 35, Color::White().full,
+ TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ if(nullptr == LabelColorSettingTitle_)
+ return nullptr;
+ }
+ GroupColorSetting_->Add(LabelColorSettingTitle_);
+
+ uint8_t i = 0;
+ for(i = 0; i < COLOR_SETTING_ITEM_COUNT; i++)
+ {
+ int16_t x = 0;
+ int16_t y = 0;
+
+ switch(i)
+ {
+ case 0:
+ case 1:
+ case 2:
+ x = 43 + (120 + 10)*i;
+ y = 130;
+ ImageColorSettingItem_[i][0] =
+ CreateImageColorSettingItem_(nullptr, x, y, 120, 120, COLOR_SETTING_SELECTED_IMAGE);
+ GroupColorSetting_->Add(ImageColorSettingItem_[i][0]);
+ x = 43 + (120 + 10)*i + 10;
+ y = 130 + 10;
+ ImageColorSettingItem_[i][1] =
+ CreateImageColorSettingItem_(Flashlight_ViewId_ImageColorSettingItem_[i],
+ x, y, 100, 100, ImageColorSettingItemSrc_[i]);
+ GroupColorSetting_->Add(ImageColorSettingItem_[i][1]);
+ break;
+
+ case 3:
+ case 4:
+ x = 43 + (120 + 10)*(i - 3);
+ y = 260;
+ ImageColorSettingItem_[i][0] =
+ CreateImageColorSettingItem_(nullptr, x, y, 120, 120, COLOR_SETTING_SELECTED_IMAGE);
+ GroupColorSetting_->Add(ImageColorSettingItem_[i][0]);
+ x = 43 + (120 + 10)*(i - 3) + 10;
+ y = 260 + 10;
+ ImageColorSettingItem_[i][1] =
+ CreateImageColorSettingItem_(Flashlight_ViewId_ImageColorSettingItem_[i],
+ x, y, 100, 100, ImageColorSettingItemSrc_[i]);
+ GroupColorSetting_->Add(ImageColorSettingItem_[i][1]);
+ break;
+
+ case 5:
+ x = 43 + (120 + 10)*(i - 3);
+ y = 260;
+ ImageColorSettingItem_[i][0] =
+ CreateImageColorSettingItem_(nullptr, x, y, 120, 120, COLOR_SETTING_SELECTED_IMAGE);
+ GroupColorSetting_->Add(ImageColorSettingItem_[i][0]);
+ x = 43 + (120 + 10)*(i - 3) + 20;
+ y = 260 + 20;
+ ImageColorSettingItem_[i][1] =
+ CreateImageColorSettingItem_(Flashlight_ViewId_ImageColorSettingItem_[i],
+ x, y, 80, 80, ImageColorSettingItemSrc_[i]);
+ GroupColorSetting_->Add(ImageColorSettingItem_[i][1]);
+ break;
+ }
+ if(presenter_->GetColorIndex() == i)
+ ImageColorSettingItem_[i][0]->SetVisible(true);
+ else
+ ImageColorSettingItem_[i][0]->SetVisible(false);
+
+ ImageColorSettingItem_[i][1]->SetVisible(true);
+ }
+
+ container_->Add(GroupColorSetting_);
+ }
+
+ return GroupColorSetting_;
+ }
+
+ UIImageView * FlashlightView::CreateImageColorSettingItem_(char * id, int16_t x, int16_t y, int16_t w, int16_t h,
+ char * src)
+ {
+ UIImageView * temp_UIImageView = new UIImageView();
+ if (nullptr == temp_UIImageView)
return nullptr;
+
+ if(nullptr != id)
+ temp_UIImageView->SetViewId(id);
+ temp_UIImageView->SetPosition(x, y, w, h);
+ temp_UIImageView->SetSrc(src);
+ temp_UIImageView->SetTouchable(true);
+ temp_UIImageView->SetOnClickListener(presenter_);
+
+ return temp_UIImageView;
+ }
+
+ void FlashlightView::UpdateColorSettingItem(void)
+ {
+ uint8_t i = 0;
+ for(i = 0; i < COLOR_SETTING_ITEM_COUNT; i++)
+ {
+ if(nullptr == ImageColorSettingItem_[i][0])
+ return;
+
+ if(presenter_->GetColorIndex() == i)
+ ImageColorSettingItem_[i][0]->SetVisible(true);
+ else
+ ImageColorSettingItem_[i][0]->SetVisible(false);
}
}
- void FlashlightView::SetTheGroupViewColor(int64_t colorValue)
+ void FlashlightView::DeinitColorCustomData()
{
- if (group != nullptr)
+ if(nullptr != GroupColorCustom_)
{
- group->SetStyle(STYLE_BACKGROUND_COLOR, colorValue);
- group->Invalidate();
+ GroupColorCustom_->RemoveAll();
+ delete GroupColorCustom_;
+ GroupColorCustom_ = nullptr;
+
+ if(nullptr != ImageColorCustom_)
+ {
+ delete ImageColorCustom_;
+ ImageColorCustom_ = nullptr;
+ }
}
- else
+ }
+
+ UIViewGroup * FlashlightView::InitColorCustomData()
+ {
+ if(nullptr == GroupColorCustom_)
{
- WEARABLE_LOGE(WEARABLE_LOG_MODULE_APP, "FlashlightView::group is new fail!!");
- return;
+ GroupColorCustom_ = new UIViewGroup();
+ if(nullptr == GroupColorCustom_)
+ return nullptr;
+
+ GroupColorCustom_->SetViewId(Flashlight_ViewId_GroupColorCustom_);
+ GroupColorCustom_->SetPosition(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
+ GroupColorCustom_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ GroupColorCustom_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ GroupColorCustom_->SetTouchable(true);
+ GroupColorCustom_->SetDraggable(true);
+ GroupColorCustom_->SetOnDragListener(presenter_);
+
+ if(nullptr == ImageColorCustom_)
+ {
+ ImageColorCustom_ = new UIImageView;
+ if(nullptr == ImageColorCustom_)
+ return nullptr;
+
+ ImageColorCustom_->SetPosition(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT);
+ }
+
+ container_->Add(GroupColorCustom_);
}
+
+ return GroupColorCustom_;
}
- void FlashlightView::OnStart()
+ void FlashlightView::DeinitFlashingSettingData()
{
- View<FlashlightPresenter>::OnStart();
- FlashlightViewInit();
+ if(nullptr != ScrollFlashingSetting_)
+ {
+ ScrollFlashingSetting_->RemoveAll();
+ delete ScrollFlashingSetting_;
+ ScrollFlashingSetting_ = nullptr;
- // 增加按键监听
- RootView::OnKeyActListener *keyactListener = (RootView::OnKeyActListener *)OHOS::FlashlightPresenter::GetInstance();
- RootView::GetInstance()->SetOnKeyActListener(keyactListener);
+ if(nullptr != LabelFlashingSettingTitle_)
+ {
+ delete LabelFlashingSettingTitle_;
+ LabelFlashingSettingTitle_ = nullptr;
+ }
+
+ uint8_t i = 0;
+ for(i = 0; i < FLASHING_SETTING_ITEM_COUNT; i++)
+ {
+ if(nullptr != GroupFlashingSettingItem_[i])
+ {
+ GroupFlashingSettingItem_[i]->RemoveAll();
+ delete GroupFlashingSettingItem_[i];
+ GroupFlashingSettingItem_[i] = nullptr;
+
+ if(nullptr != LabelFlashingSettingItem_[i])
+ {
+ delete LabelFlashingSettingItem_[i];
+ LabelFlashingSettingItem_[i] = nullptr;
+ }
+ if(nullptr != RadioButtonFlashingSettingItem_[i])
+ {
+ delete RadioButtonFlashingSettingItem_[i];
+ RadioButtonFlashingSettingItem_[i] = nullptr;
+ }
+ }
+ }
+ }
}
- void FlashlightView::OnSetUpView()
+ UIViewGroup * FlashlightView::InitFlashingSettingData()
{
+ if(nullptr == ScrollFlashingSetting_)
+ {
+ ScrollFlashingSetting_ = new UIScrollView();
+ if(nullptr == ScrollFlashingSetting_)
+ return nullptr;
+
+ ScrollFlashingSetting_->SetViewId(Flashlight_ViewId_ScrollFlashingSetting_);
+ ScrollFlashingSetting_->SetPosition(0, 0, SCREEN_WIDTH, SCREEN_HEIGHT - 50);
+ ScrollFlashingSetting_->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ ScrollFlashingSetting_->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ ScrollFlashingSetting_->SetTouchable(true);
+ ScrollFlashingSetting_->SetDraggable(true);
+ ScrollFlashingSetting_->SetOnDragListener(presenter_);
+
+ ScrollFlashingSetting_->SetScrollBlankSize(40);
+ ScrollFlashingSetting_->SetReboundSize(40);
+ ScrollFlashingSetting_->SetMaxScrollDistance(1000);
+ ScrollFlashingSetting_->SetThrowDrag(true);
+ ScrollFlashingSetting_->RequestFocus();
+ ScrollFlashingSetting_->SetRotateFactor(2);
+
+ if(nullptr == LabelFlashingSettingTitle_)
+ {
+ LabelFlashingSettingTitle_ = CreateUILabelExt(83, 50, 300, 35, STR_FLICKER_FREQUENCY, 30, 35, Color::White().full,
+ TEXT_ALIGNMENT_CENTER, TEXT_ALIGNMENT_CENTER);
+ if(nullptr == LabelFlashingSettingTitle_)
+ return nullptr;
+ }
+
+ uint8_t i = 0;
+ uint16_t text_id[FLASHING_SETTING_ITEM_COUNT] = {STR_NO_FLICKER, STR_FAST_FLICKER, STR_SLOW_FLICKER};
+ for(i = 0; i < FLASHING_SETTING_ITEM_COUNT; i++)
+ {
+ LabelFlashingSettingItem_[i] = CreateUILabelExt(47, 33, 230, 35, text_id[i], 30, 35, Color::White().full,
+ TEXT_ALIGNMENT_LEFT, TEXT_ALIGNMENT_CENTER);
+ RadioButtonFlashingSettingItem_[i] = CreateUIRadioButtonItem(300, 30, 40, 40);
+ GroupFlashingSettingItem_[i] = CreateUIGroupItem(Flashlight_ViewId_FlashingSettingItem_[i],
+ 43, 120 + 120 * i, 380, 100);
+
+ GroupFlashingSettingItem_[i]->Add(LabelFlashingSettingItem_[i]);
+ GroupFlashingSettingItem_[i]->Add(RadioButtonFlashingSettingItem_[i]);
+ ScrollFlashingSetting_->Add(GroupFlashingSettingItem_[i]);
+ }
+
+ ScrollFlashingSetting_->Add(LabelFlashingSettingTitle_);
+
+ container_->Add(ScrollFlashingSetting_);
+ }
+
+ return dynamic_cast<UIViewGroup *>(ScrollFlashingSetting_);
+ // return ScrollFlashingSetting_;
+ }
+
+ UILabelExt * FlashlightView::CreateUILabelExt(int16_t x, int16_t y, int16_t w, int16_t h, uint16_t text_id,
+ int64_t font_size, int64_t line_height, int64_t color_value,
+ UITextLanguageAlignment hor_align, UITextLanguageAlignment ver_align)
+ {
+ UILabelExt * temp_UILabelExt = new UILabelExt();
+ if(nullptr == temp_UILabelExt)
+ return nullptr;
+
+ temp_UILabelExt->SetPosition(x, y, w, h);
+ temp_UILabelExt->SetStyle(STYLE_TEXT_FONT, font_size);
+ temp_UILabelExt->SetStyle(STYLE_LINE_HEIGHT, line_height);
+ temp_UILabelExt->SetTextId(text_id);
+ temp_UILabelExt->SetLineBreakMode(UILabel::LINE_BREAK_OSCILLATION);
+ temp_UILabelExt->SetAlign(hor_align, ver_align);
+ temp_UILabelExt->SetRollSpeed(70);
+ temp_UILabelExt->SetFont(DEFAULT_VECTOR_FONT_FILENAME, font_size);
+ temp_UILabelExt->SetStyle(STYLE_TEXT_COLOR, color_value);
+
+ return temp_UILabelExt;
+ }
+
+ UIRadioButton * FlashlightView::CreateUIRadioButtonItem(int16_t x, int16_t y, int16_t w, int16_t h)
+ {
+ UIRadioButton * temp_UIRadioButton = new UIRadioButton();
+ if(nullptr == temp_UIRadioButton)
+ return temp_UIRadioButton;
+
+ temp_UIRadioButton->SetPosition(x, y, w, h);
+ temp_UIRadioButton->SetStyle(STYLE_BACKGROUND_COLOR, Color::Black().full);
+ temp_UIRadioButton->SetImages(PNG_CHECKBOX_ON_IMAGE, PNG_CHECKBOX_OFF_IMAGE);
+ // temp_UIRadioButton->SetOnChangeListener(presenter_);
+
+ return temp_UIRadioButton;
+ }
+
+ UIViewGroup * FlashlightView::CreateUIGroupItem(char * id, int16_t x, int16_t y, int16_t w, int16_t h)
+ {
+ UIViewGroup * temp_UIViewGroup = new UIViewGroup();
+ if(nullptr == temp_UIViewGroup)
+ return nullptr;
+
+ temp_UIViewGroup->SetViewId(id);
+ temp_UIViewGroup->SetPosition(x, y, w, h);
+ temp_UIViewGroup->SetStyle(STYLE_BACKGROUND_COLOR, 0xff191919);
+ temp_UIViewGroup->SetStyle(STYLE_BACKGROUND_OPA, OPA_OPAQUE);
+ temp_UIViewGroup->SetStyle(STYLE_BORDER_RADIUS, 52);
+ temp_UIViewGroup->SetTouchable(true);
+ // temp_UIViewGroup->SetDraggable(true);
+ temp_UIViewGroup->SetOnClickListener(presenter_);
+
+ return temp_UIViewGroup;
+ }
+
+ void FlashlightView::UpdateFlashingSettingItem(void)
+ {
+ uint8_t i = 0;
+ for(i = 0; i < FLASHING_SETTING_ITEM_COUNT; i++)
+ {
+ if(nullptr == RadioButtonFlashingSettingItem_[i])
+ return;
+
+ if(presenter_->GetFlashingLevel() == i)
+ RadioButtonFlashingSettingItem_[i]->SetState(UICheckBox::SELECTED);
+ else
+ RadioButtonFlashingSettingItem_[i]->SetState(UICheckBox::UNSELECTED);
+ }
+ }
+
+ struct FlashlightViewMapper
+ {
+ FlashlightView::ENUM_FLASHLIGHT_SCREEN screen_index;
+ UIViewGroup * (FlashlightView::*func)(void);
+ };
+ static const FlashlightViewMapper ViewMapper[] =
+ {
+ {FlashlightView::ENUM_FLASHLIGHT_SCREEN_VIEW_MAIN, &FlashlightView::InitSwipeData},
+ {FlashlightView::ENUM_FLASHLIGHT_SCREEN_VIEW_SETTING, &FlashlightView::InitSwipeData},
+ {FlashlightView::ENUM_FLASHLIGHT_SCREEN_COLOR_SETTING, &FlashlightView::InitColorSettingData},
+ {FlashlightView::ENUM_FLASHLIGHT_SCREEN_COLOR_CUSTOM, &FlashlightView::InitColorCustomData},
+ {FlashlightView::ENUM_FLASHLIGHT_SCREEN_FLASHING_SETTING, &FlashlightView::InitFlashingSettingData},
+ };
+
+ void FlashlightView::DisplaySelectScreen(uint8_t ScreenIndex)
+ {
+ if(ENUM_FLASHLIGHT_SCREEN_MAX <= ScreenIndex)
+ {
+ return;
+ }
+
+ uint8_t i = 0;
+ for(i = 0; i < ENUM_FLASHLIGHT_SCREEN_MAX; i++)
+ {
+ if(nullptr != ScreenGroupArray_[i])
+ {
+ ScreenGroupArray_[i]->SetVisible(false);
+ }
+ }
+
+ if(nullptr == ScreenGroupArray_[ScreenIndex])
+ {
+ ScreenGroupArray_[ScreenIndex] = (this->*(ViewMapper[ScreenIndex].func))();
+ if(nullptr == ScreenGroupArray_[ScreenIndex])
+ return;
+ }
+ ScreenGroupArray_[ScreenIndex]->SetVisible(true);
+
+ switch (ScreenIndex)
+ {
+ case ENUM_FLASHLIGHT_SCREEN_VIEW_MAIN:
+ ScreenAlwaysOnCtr(OPEN_SCREEN_ALWAYS_ON);
+ UpdateViewMainScreen();
+ break;
+
+ case ENUM_FLASHLIGHT_SCREEN_VIEW_SETTING:
+ SwipeView_->SetCurrentPage(1);
+ break;
+
+ case ENUM_FLASHLIGHT_SCREEN_COLOR_SETTING:
+ UpdateColorSettingItem();
+ break;
+
+ case ENUM_FLASHLIGHT_SCREEN_COLOR_CUSTOM:
+ break;
+
+ case ENUM_FLASHLIGHT_SCREEN_FLASHING_SETTING:
+ UpdateFlashingSettingItem();
+ break;
+
+ // default:
+ // break;
+ }
- View<FlashlightPresenter>::OnSetUpView();
- group->Add(FlashlightVector);
- group->Add(LineImage);
- RootView::GetInstance()->Add(group);
- container_ = group;
Draw();
}
- void FlashlightView::OnTearDownView()
+ void FlashlightView::DisplayViewMainScreen()
{
- View<FlashlightPresenter>::OnTearDownView();
- return;
+ DisplaySelectScreen(ENUM_FLASHLIGHT_SCREEN_VIEW_MAIN);
}
- void FlashlightView::OnStop()
+ void FlashlightView::DisplayViewSettingScreen()
{
+ DisplaySelectScreen(ENUM_FLASHLIGHT_SCREEN_VIEW_SETTING);
+ }
- View<FlashlightPresenter>::OnStop();
- RootView::GetInstance()->RemoveAll();
- RootView::GetInstance()->ClearOnKeyActListener();
- return;
+ void FlashlightView::DisplayColorSettingScreen()
+ {
+ DisplaySelectScreen(ENUM_FLASHLIGHT_SCREEN_COLOR_SETTING);
+ }
+
+ void FlashlightView::DisplayColorCustomScreen()
+ {
+ DisplaySelectScreen(ENUM_FLASHLIGHT_SCREEN_COLOR_CUSTOM);
+ }
+
+ void FlashlightView::DisplayFlashingSettingScreen()
+ {
+ DisplaySelectScreen(ENUM_FLASHLIGHT_SCREEN_FLASHING_SETTING);
}
+
}
\ No newline at end of file