~aleteoryx/muditaos

0022da5e377b261126f69201a9d23198d4b809da — Tomasz Sobkowiak 4 years ago 203f819
[EGD-5204] Show passcode screen only when PC is connected

USBConfigured event is not fired when powerbank, charger is connected.

[EGD-5204] Show passcode screen only when PC is connected

USBConfigured event is not fired when powerbank, charger is connected.
M module-bsp/board/linux/usb_cdc/usb_cdc.cpp => module-bsp/board/linux/usb_cdc/usb_cdc.cpp +1 -1
@@ 60,7 60,7 @@ namespace bsp
        if (len > 0) {
            const inotify_event *event = (inotify_event *)&eventsBuff[0];
            if (event->mask & IN_OPEN) {
                USBDeviceStatus notification = USBDeviceStatus::Connected;
                USBDeviceStatus notification = USBDeviceStatus::Configured;
                xQueueSend(USBIrqQueue, &notification, 0);
            }
            if (event->mask & IN_CLOSE_WRITE) {

M module-bsp/bsp/usb/usb.hpp => module-bsp/bsp/usb/usb.hpp +2 -1
@@ 25,7 25,8 @@ namespace bsp
    enum class USBDeviceStatus : uint32_t
    {
        Disconnected,
        Connected
        Connected,
        Configured
    };

    class USBDeviceListener

M module-services/service-desktop/ServiceDesktop.cpp => module-services/service-desktop/ServiceDesktop.cpp +1 -1
@@ 187,7 187,7 @@ sys::ReturnCodes ServiceDesktop::InitHandler()
        return std::make_shared<sys::ResponseMessage>();
    });

    connect(sdesktop::usb::USBConnected(), [&](sys::Message *msg) {
    connect(sdesktop::usb::USBConfigured(), [&](sys::Message *msg) {
        if (!desktopWorker->isEndpointSecurityEnabled()) {
            LOG_INFO("Endpoint security disabled.");
            return std::make_shared<sys::ResponseMessage>();

M module-services/service-desktop/WorkerDesktop.cpp => module-services/service-desktop/WorkerDesktop.cpp +4 -0
@@ 110,6 110,10 @@ bool WorkerDesktop::handleMessage(uint32_t queueID)
            ownerService->bus.sendUnicast(std::make_shared<sdesktop::usb::USBConnected>(),
                                          service::name::service_desktop);
        }
        else if (notification == bsp::USBDeviceStatus::Configured) {
            ownerService->bus.sendUnicast(std::make_shared<sdesktop::usb::USBConfigured>(),
                                          service::name::service_desktop);
        }
        else if (notification == bsp::USBDeviceStatus::Disconnected) {
            ownerService->bus.sendUnicast(std::make_shared<sdesktop::usb::USBDisconnected>(),
                                          service::name::service_desktop);

M module-services/service-desktop/endpoints/developerMode/DeveloperModeHelper.cpp => module-services/service-desktop/endpoints/developerMode/DeveloperModeHelper.cpp +1 -1
@@ 104,7 104,7 @@ auto DeveloperModeHelper::processPut(Context &context) -> ProcessResult
        return {sent::delayed, std::nullopt};
    }
    else if (body[json::developerMode::usbSecurity].is_string()) {
        std::shared_ptr<sys::DataMessage> msg = std::make_shared<sdesktop::usb::USBConnected>();
        std::shared_ptr<sys::DataMessage> msg = std::make_shared<sdesktop::usb::USBConfigured>();
        if (body[json::developerMode::usbSecurity].string_value() == json::developerMode::usbUnlock) {
            msg = std::make_shared<sdesktop::passcode::ScreenPasscodeUnlocked>();
        }

M module-services/service-desktop/service-desktop/DesktopMessages.hpp => module-services/service-desktop/service-desktop/DesktopMessages.hpp +8 -0
@@ 81,6 81,14 @@ namespace sdesktop
            ~USBConnected() override = default;
        };

        class USBConfigured : public sys::DataMessage
        {
          public:
            USBConfigured() : sys::DataMessage(MessageType::USBConfigured)
            {}
            ~USBConfigured() override = default;
        };

        class USBDisconnected : public sys::DataMessage
        {
          public:

M source/MessageType.hpp => source/MessageType.hpp +1 -0
@@ 219,6 219,7 @@ enum class MessageType
    TransferTimer,

    USBConnected,
    USBConfigured,
    USBDisconnected,

    ScreenPasscodeRequest,