~aleteoryx/muditaos

97777d0b2304bf2155ccd60a6e8300c94cbb7902 — Przemyslaw Brudny 4 years ago f3fee05
[EGD-6729] ServiceDesktop plug off lock interactions fix

ServiceDesktop plug off lock interactions fix.
M module-apps/Application.cpp => module-apps/Application.cpp +11 -0
@@ 275,6 275,14 @@ namespace app
        }
    }

    void Application::popWindow(const std::string &window)
    {
        auto popWindow = std::find(windowsStack.stack.begin(), windowsStack.stack.end(), window);
        if (popWindow != windowsStack.stack.end()) {
            windowsStack.stack.erase(popWindow);
        }
    }

    void Application::refreshWindow(gui::RefreshModes mode)
    {
        if (not windowsStack.isEmpty()) {


@@ 816,6 824,9 @@ namespace app
        if (getCurrentWindow()->getName() == popupName) {
            returnToPreviousWindow();
        }
        else {
            popWindow(popupName);
        }
    }

    bool Application::isPopupPermitted([[maybe_unused]] gui::popup::ID popupId) const

M module-apps/Application.hpp => module-apps/Application.hpp +3 -0
@@ 334,6 334,9 @@ namespace app
        WindowsStack windowsStack;
        WindowsFactory windowsFactory;

        /// Find and pop window from stack by window name
        void popWindow(const std::string &window);

        /// Method used to attach popups windows to application
        void attachPopups(const std::vector<gui::popup::ID> &popupsList);
        void showPopup(gui::popup::ID id, const gui::PopupRequestParams *params);

M module-apps/locks/data/LockMessages.hpp => module-apps/locks/data/LockMessages.hpp +8 -21
@@ 8,32 8,19 @@
namespace locks
{
    class UnlockPhone : public sys::DataMessage
    {
      public:
        UnlockPhone() : DataMessage{}
        {}
    };
    {};

    class CancelUnlockPhone : public sys::DataMessage
    {
      public:
        CancelUnlockPhone() : DataMessage{}
        {}
    };
    {};

    class UnlockedPhone : public sys::DataMessage
    {
      public:
        UnlockedPhone() : DataMessage{}
        {}
    };
    {};

    class LockPhone : public sys::DataMessage
    {
      public:
        LockPhone() : DataMessage{}
        {}
    };
    {};

    class LockedPhone : public sys::DataMessage
    {};

    class UnLockPhoneInput : public sys::DataMessage
    {


@@ 49,4 36,4 @@ namespace locks
            return inputData;
        }
    };
} // namespace lock
} // namespace locks

M module-apps/locks/handlers/PhoneLockHandler.cpp => module-apps/locks/handlers/PhoneLockHandler.cpp +6 -3
@@ 38,6 38,7 @@ namespace locks
        app::manager::Controller::sendAction(owner,
                                             app::manager::actions::ShowPopup,
                                             std::make_unique<gui::PopupRequestParams>(gui::popup::ID::PhoneLock));
        owner->bus.sendMulticast(std::make_shared<locks::LockedPhone>(), sys::BusChannel::PhoneLockChanges);
    }

    void PhoneLockHandler::PhoneUnlockPopupsCloseAction()


@@ 45,9 46,11 @@ namespace locks
        app::manager::Controller::sendAction(owner,
                                             app::manager::actions::AbortPopup,
                                             std::make_unique<gui::PopupRequestParams>(gui::popup::ID::InputLock));
        app::manager::Controller::sendAction(owner,
                                             app::manager::actions::AbortPopup,
                                             std::make_unique<gui::PopupRequestParams>(gui::popup::ID::PhoneLock));
        if (!isPhoneLocked()) {
            app::manager::Controller::sendAction(owner,
                                                 app::manager::actions::AbortPopup,
                                                 std::make_unique<gui::PopupRequestParams>(gui::popup::ID::PhoneLock));
        }
    }

    void PhoneLockHandler::PhoneUnlockAction()

M module-apps/locks/windows/PinLockWindow.cpp => module-apps/locks/windows/PinLockWindow.cpp +1 -1
@@ 108,7 108,7 @@ namespace gui
            else if (lock->isState(Lock::LockState::InputInvalidRetryRequired)) {
                lock->consumeState();
            }
            application->switchWindow(gui::name::window::main_window);
            application->returnToPreviousWindow();
            return true;
        }
        else if (inputEvent.is(KeyCode::KEY_PND)) {

M module-services/service-desktop/ServiceDesktop.cpp => module-services/service-desktop/ServiceDesktop.cpp +1 -1
@@ 353,7 353,7 @@ void ServiceDesktop::processUSBHandshake(sdesktop::usb::USBHandshake *msg)

    if (usbSecurityModel->processHandshake(msg)) {
        LOG_DEBUG("Handshake ok. Unlocking.");
        bus.sendUnicast(std::make_shared<locks::UnlockedPhone>(), service::name::service_desktop);
        bus.sendUnicast(std::make_shared<locks::UnlockPhone>(), service::name::service_desktop);
        responseContext.setResponseStatus(parserFSM::http::Code::OK);
    }