Small fixes 30/208730/1
authorOskar Chodowicz <o.chodowicz@samsung.com>
Thu, 27 Jun 2019 15:01:42 +0000 (17:01 +0200)
committerOskar Chodowicz <o.chodowicz@samsung.com>
Thu, 27 Jun 2019 15:24:10 +0000 (17:24 +0200)
This patch introduce some fixes described below:
1. Delete page with switches to remove when user delete
   at least one switch.
   Unfortunately until dbus signals aren't unregistered on dbusclient
   object destroy it occurs with a crash.
2. Delete button in switches page is disabled when configured switches
   count equals 0 and enabled when is not equal 0
Change-Id: I652b875c0d2dc4b4c5c7aace3257cd15c766c158

src/presenter/RemoveSwitchesModalPresenter.cpp
src/presenter/SwitchesPagePresenter.cpp
src/presenter/SwitchesPagePresenter.hpp

index 35979ad..ad0f702 100644 (file)
@@ -1,5 +1,7 @@
 #include "RemoveSwitchesModalPresenter.hpp"
 
+#include "AppContext.hpp"
+
 RemoveSwitchesModalPresenter::RemoveSwitchesModalPresenter(std::vector<SwitchConfigurationItem> switches, std::vector<std::string> switchesToRemove)
        : switches_(std::move(switches)), switchesToRemove_(std::move(switchesToRemove))
 {
@@ -15,5 +17,7 @@ RemoveSwitchesModalPresenter::RemoveSwitchesModalPresenter(std::vector<SwitchCon
 
        doneCb_ = [this]() {
                model_.removeSwitches(switchesToRemove_);
+               Singleton<AppContext>::instance().popModal();
+               Singleton<AppContext>::instance().pop();
        };
 }
\ No newline at end of file
index 528d3d8..9edc8c2 100644 (file)
@@ -11,12 +11,14 @@ SwitchesPagePresenter::SwitchesPagePresenter()
        setTitle("IDS_ACCS_UNIVERSAL_SWITCH_SETTINGS_GROUP_SWITCHES");
        groups_.emplace_back("");
 
-       addAction(std::make_unique<Action>("titleRightAction", "IDS_ACCS_DELETE_CAPS", [this](auto action) {
+       deleteSwitchesAction_ = addAction(std::make_unique<Action>("titleRightAction", "IDS_ACCS_DELETE_CAPS", [this](auto action) {
                Singleton<AppContext>::instance().push(std::make_unique<RemoveSwitchesPagePresenter>());
        },
                true));
+       updateSwitchDeleteAction();
        addItemsToList();
        model_.switchesConfigurationChanged_.attach([this](auto timeStamp) {
+               this->updateSwitchDeleteAction();
                groups_.back().items_.clear();
                this->addItemsToList();
                if (this->onListUpdate_)
@@ -63,4 +65,12 @@ void SwitchesPagePresenter::createUpdatePage(const std::string &switchId)
                Singleton<AppContext>::instance().push(std::make_unique<SelectActionPagePresenter>(switchId, ACCESSIBILITY_UNIVERSAL_SWITCH_CAMERA_SWITCH_PROVIDER, ChangeType::UPDATE, 0));
                return;
        }
+}
+
+void SwitchesPagePresenter::updateSwitchDeleteAction()
+{
+       if (model_.getAllSwitchConfigurationItems().size() == 0)
+               deleteSwitchesAction_->enabled_ = false;
+       else
+               deleteSwitchesAction_->enabled_ = true;
 }
\ No newline at end of file
index 74b27c9..75176fa 100644 (file)
@@ -10,9 +10,11 @@ class SwitchesPagePresenter : public ListPresenter
        SwitchesPagePresenter();
 
        private:
-       SwitchesPageModel model_;
        void addItemsToList();
        void createUpdatePage(const std::string &switchId);
+       void updateSwitchDeleteAction();
+       SwitchesPageModel model_;
+       Action *deleteSwitchesAction_ = nullptr;
 };
 
 #endif