summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorSergii Kyryliuk <s.kyryliuk@partner.samsung.com>2017-03-01 11:49:14 +0200
committerSergii Kyryliuk <s.kyryliuk@partner.samsung.com>2017-03-02 10:16:33 +0200
commit6441869cc45af88030c3538ff060b2deccfb53b2 (patch)
treea70b5891c80cf52a5c158c9faa67affb58831a6c
parent35f3dbc5d02a28ec42f94880e987ccc8bdf86313 (diff)
downloadalarm-6441869cc45af88030c3538ff060b2deccfb53b2.tar.gz
alarm-6441869cc45af88030c3538ff060b2deccfb53b2.tar.bz2
alarm-6441869cc45af88030c3538ff060b2deccfb53b2.zip
TizenRefApp-8013 Implement automatic selection of created event for pick operation
Change-Id: I2dfdf43d9cdab02b92def3c7a6622ae25e6776f8 Signed-off-by: Sergii Kyryliuk <s.kyryliuk@partner.samsung.com>
-rw-r--r--alarm-app/inc/List/AlarmsView.h14
-rw-r--r--alarm-app/inc/OperationPickController.h9
-rw-r--r--alarm-app/src/List/AlarmsView.cpp9
-rw-r--r--alarm-app/src/OperationPickController.cpp22
4 files changed, 46 insertions, 8 deletions
diff --git a/alarm-app/inc/List/AlarmsView.h b/alarm-app/inc/List/AlarmsView.h
index 5a00ee1..8128337 100644
--- a/alarm-app/inc/List/AlarmsView.h
+++ b/alarm-app/inc/List/AlarmsView.h
@@ -39,9 +39,21 @@ namespace List
class AlarmsView: public Ux::SelectView
{
public:
+ /**
+ * @brief Called when Alarm is added
+ * @param alarmId Added Alarm ID
+ */
+ typedef std::function<void(int alarmId)> AddCallback;
+
AlarmsView();
virtual ~AlarmsView() override;
+ /**
+ * @brief Set add Alarm callback.
+ * @param[in] callback Add callback
+ */
+ void setAddCallback(AddCallback callback);
+
private:
virtual Evas_Object *onCreate(Evas_Object *parent) override;
virtual void onCreated() override;
@@ -75,6 +87,8 @@ namespace List
AddAlarmItem *m_AddAlarmItem;
Ux::MultiSelector *m_MultiSelector;
Common::Model::AlarmProvider m_Provider;
+
+ AddCallback m_OnAlarmAdded;
};
}
diff --git a/alarm-app/inc/OperationPickController.h b/alarm-app/inc/OperationPickController.h
index 8f149ff..9edc855 100644
--- a/alarm-app/inc/OperationPickController.h
+++ b/alarm-app/inc/OperationPickController.h
@@ -20,11 +20,18 @@
#include "App/OperationController.h"
#include "Ux/SelectTypes.h"
+namespace Ui
+{
+ class View;
+}
+
class OperationPickController : public App::OperationController
{
private:
virtual void onRequest(const char *operation, app_control_h request) override;
- bool onSelected(Ux::SelectResults results);
+ bool onAlarmSelected(Ux::SelectResults results);
+ void onAlarmAdded(Ui::View *view, int alarmId);
+ void sendReply(int alarmId);
};
#endif /* OPERATION_PICK_CONTROLLER_H */
diff --git a/alarm-app/src/List/AlarmsView.cpp b/alarm-app/src/List/AlarmsView.cpp
index 088b5a0..acbc2fb 100644
--- a/alarm-app/src/List/AlarmsView.cpp
+++ b/alarm-app/src/List/AlarmsView.cpp
@@ -63,6 +63,11 @@ AlarmsView::~AlarmsView()
System::Settings::removeCallback(SYSTEM_SETTINGS_KEY_LOCALE_TIMEFORMAT_24HOUR, this);
}
+void AlarmsView::setAddCallback(AddCallback callback)
+{
+ m_OnAlarmAdded = std::move(callback);
+}
+
Evas_Object *AlarmsView::onCreate(Evas_Object *parent)
{
Evas_Object *layout = elm_layout_add(parent);
@@ -242,7 +247,9 @@ void AlarmsView::onAlarmDeleted(AlarmItem *item)
void AlarmsView::onAddPressed()
{
if (m_Provider.getDataList().size() < ALARM_MAX_COUNT) {
- getNavigator()->navigateTo(new Input::InputView({ }));
+ Input::InputView *view = new Input::InputView({ });
+ view->setCreateCallback(m_OnAlarmAdded);
+ getNavigator()->navigateTo(view);
} else {
char buffer[TOAST_TEXT_SIZE];
snprintf(buffer, sizeof(buffer), _("WDS_ALM_TPOP_PD_ALARMS_ALLOWED"), ALARM_MAX_COUNT);
diff --git a/alarm-app/src/OperationPickController.cpp b/alarm-app/src/OperationPickController.cpp
index c3d2d3d..5294fdb 100644
--- a/alarm-app/src/OperationPickController.cpp
+++ b/alarm-app/src/OperationPickController.cpp
@@ -28,19 +28,29 @@ void OperationPickController::onRequest(const char *operation, app_control_h req
{
List::AlarmsView *view = new List::AlarmsView();
view->setSelectMode(Ux::SelectSingle);
- view->setSelectCallback(std::bind(&OperationPickController::onSelected, this, _1));
+ view->setSelectCallback(std::bind(&OperationPickController::onAlarmSelected, this, _1));
+ view->setAddCallback(std::bind(&OperationPickController::onAlarmAdded, this, view, _1));
getNavigator()->navigateTo(view);
}
-bool OperationPickController::onSelected(Ux::SelectResults results)
+bool OperationPickController::onAlarmSelected(Ux::SelectResults results)
{
- auto alarm = (Alarm *)results.begin()->value.data;
+ Alarm *alarm = (Alarm *) results.begin()->value.data;
+ sendReply(alarm->getId());
+ return true;
+}
+
+void OperationPickController::onAlarmAdded(Ui::View *view, int alarmId)
+{
+ sendReply(alarmId);
+ view->getPage()->close();
+}
+void OperationPickController::sendReply(int alarmId)
+{
app_control_h reply = nullptr;
app_control_create(&reply);
- app_control_add_extra_data(reply, APP_CONTROL_DATA_SELECTED, std::to_string(alarm->getId()).c_str());
+ app_control_add_extra_data(reply, APP_CONTROL_DATA_SELECTED, std::to_string(alarmId).c_str());
app_control_reply_to_launch_request(reply, getRequest(), APP_CONTROL_RESULT_SUCCEEDED);
app_control_destroy(reply);
-
- return true;
}