M module-apps/apps-common/ApplicationCommon.cpp => module-apps/apps-common/ApplicationCommon.cpp +14 -0
@@ 23,6 23,7 @@
#include "actions/AlarmClockStatusChangeParams.hpp"
#include <service-cellular-api>
#include <service-cellular/CellularMessage.hpp>
+#include <service-desktop/DesktopMessages.hpp>
#include <service-evtmgr/BatteryMessages.hpp>
#include <service-evtmgr/Constants.hpp>
#include <service-evtmgr/EVMessages.hpp>
@@ 117,6 118,7 @@ namespace app
statusBarManager->enableIndicators({gui::status_bar::Indicator::Time});
bus.channels.push_back(sys::BusChannel::ServiceCellularNotifications);
+ bus.channels.push_back(sys::BusChannel::USBNotifications);
longPressTimer = sys::TimerFactory::createPeriodicTimer(this,
"LongPress",
@@ 132,6 134,10 @@ namespace app
[&](sys::Message *msg) -> sys::MessagePointer { return handleUpdateWindow(msg); });
connect(typeid(cellular::msg::notification::SimStateUpdate),
[&](sys::Message *msg) -> sys::MessagePointer { return handleSimStateUpdateMessage(msg); });
+ connect(typeid(sdesktop::usb::USBConnected),
+ [&](sys::Message *msg) -> sys::MessagePointer { return handleUSBStatusChange(); });
+ connect(typeid(sdesktop::usb::USBDisconnected),
+ [&](sys::Message *msg) -> sys::MessagePointer { return handleUSBStatusChange(); });
addActionReceiver(app::manager::actions::PhoneModeChanged, [this](auto &¶ms) {
if (params != nullptr) {
@@ 454,6 460,14 @@ namespace app
return sys::msgHandled();
}
+ sys::MessagePointer ApplicationCommon::handleUSBStatusChange()
+ {
+ if ((state == State::ACTIVE_FORGROUND) && isOnPhoneLockWindow() && getCurrentWindow()->updateBatteryStatus()) {
+ refreshWindow(gui::RefreshModes::GUI_REFRESH_FAST);
+ }
+ return sys::msgHandled();
+ }
+
sys::MessagePointer ApplicationCommon::handleMinuteUpdated(sys::Message *msgl)
{
if (state == State::ACTIVE_FORGROUND && getCurrentWindow()->updateTime()) {
M module-apps/apps-common/ApplicationCommon.hpp => module-apps/apps-common/ApplicationCommon.hpp +2 -1
@@ 193,6 193,8 @@ namespace app
sys::MessagePointer handleNetworkAccessTechnologyUpdate(sys::Message *msgl);
sys::MessagePointer handleInputEvent(sys::Message *msgl);
sys::MessagePointer handleBatteryStatusChange();
+ sys::MessagePointer handleUSBStatusChange();
+ sys::MessagePointer handleSimStateUpdateMessage(sys::Message *msgl);
sys::MessagePointer handleMinuteUpdated(sys::Message *msgl);
sys::MessagePointer handleAction(sys::Message *msgl);
sys::MessagePointer handleApplicationSwitchLaunch(sys::Message *msgl);
@@ 206,7 208,6 @@ namespace app
sys::MessagePointer handleAppRebuild(sys::Message *msgl);
sys::MessagePointer handleAppRefresh(sys::Message *msgl);
sys::MessagePointer handleGetDOM(sys::Message *msgl);
- sys::MessagePointer handleSimStateUpdateMessage(sys::Message *msgl);
std::list<std::unique_ptr<app::GuiTimer>> gui_timers;
std::unordered_map<manager::actions::ActionId, OnActionReceived> receivers;
M module-services/service-desktop/ServiceDesktop.cpp => module-services/service-desktop/ServiceDesktop.cpp +1 -0
@@ 39,6 39,7 @@ ServiceDesktop::ServiceDesktop()
{
LOG_INFO("[ServiceDesktop] Initializing");
bus.channels.push_back(sys::BusChannel::PhoneLockChanges);
+ bus.channels.push_back(sys::BusChannel::USBNotifications);
}
ServiceDesktop::~ServiceDesktop()
M module-services/service-desktop/WorkerDesktop.cpp => module-services/service-desktop/WorkerDesktop.cpp +4 -4
@@ 147,8 147,8 @@ bool WorkerDesktop::handleMessage(uint32_t queueID)
if (notification == bsp::USBDeviceStatus::Connected) {
usbSuspendTimer.stop();
- ownerService->bus.sendUnicast(std::make_shared<sdesktop::usb::USBConnected>(),
- service::name::service_desktop);
+ ownerService->bus.sendMulticast(std::make_shared<sdesktop::usb::USBConnected>(),
+ sys::BusChannel::USBNotifications);
usbStatus = bsp::USBDeviceStatus::Connected;
}
else if (notification == bsp::USBDeviceStatus::Configured) {
@@ 168,8 168,8 @@ bool WorkerDesktop::handleMessage(uint32_t queueID)
else if (notification == bsp::USBDeviceStatus::Disconnected) {
usbSuspendTimer.start();
cpuSentinel->ReleaseMinimumFrequency();
- ownerService->bus.sendUnicast(std::make_shared<sdesktop::usb::USBDisconnected>(),
- service::name::service_desktop);
+ ownerService->bus.sendMulticast(std::make_shared<sdesktop::usb::USBDisconnected>(),
+ sys::BusChannel::USBNotifications);
usbStatus = bsp::USBDeviceStatus::Disconnected;
}
else if (notification == bsp::USBDeviceStatus::DataReceived) {
M module-sys/common/include/system/Common.hpp => module-sys/common/include/system/Common.hpp +3 -0
@@ 14,6 14,7 @@ namespace sys
System,
SystemManagerRequests,
PowerManagerRequests,
+ USBNotifications,
ServiceCellularNotifications,
Test2CustomBusChannel,
ServiceDBNotifications,
@@ 106,6 107,8 @@ inline const char *c_str(sys::BusChannel channel)
return "SystemManagerRequests";
case sys::BusChannel::PowerManagerRequests:
return "PowerManagerRequests";
+ case sys::BusChannel::USBNotifications:
+ return "USBNotifications";
case sys::BusChannel::ServiceCellularNotifications:
return "ServiceCellularNotifications,";
case sys::BusChannel::Test2CustomBusChannel: