From a1a16743c3872f544166b13db4c05d43a7901c34 Mon Sep 17 00:00:00 2001 From: Ivailo Monev Date: Fri, 22 Apr 2022 19:47:56 +0300 Subject: [PATCH] solid: catch more AC adapters and batteries from device interface query for PS3 controllers there is not much to work with regardless: P: /devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1.1/3-1.1:1.0/0003:054C:0268.0005/power_supply/sony_controller_battery_00:06:f7:09:55:97 L: 0 E: DEVPATH=/devices/pci0000:00/0000:00:1a.0/usb3/3-1/3-1.1/3-1.1:1.0/0003:054C:0268.0005/power_supply/sony_controller_battery_00:06:f7:09:55:97 E: POWER_SUPPLY_NAME=sony_controller_battery_00:06:f7:09:55:97 E: POWER_SUPPLY_TYPE=Battery E: POWER_SUPPLY_PRESENT=1 E: POWER_SUPPLY_CAPACITY=100 E: POWER_SUPPLY_SCOPE=Device E: POWER_SUPPLY_STATUS=Charging E: SUBSYSTEM=power_supply Signed-off-by: Ivailo Monev --- solid/solid/backends/udev/udevdevice.cpp | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/solid/solid/backends/udev/udevdevice.cpp b/solid/solid/backends/udev/udevdevice.cpp index c9addd36..19a2389c 100644 --- a/solid/solid/backends/udev/udevdevice.cpp +++ b/solid/solid/backends/udev/udevdevice.cpp @@ -514,15 +514,19 @@ bool UDevDevice::queryDeviceInterface(const Solid::DeviceInterface::Type &type) } case Solid::DeviceInterface::AcAdapter: { + const QString powersupplytype = deviceProperty("POWER_SUPPLY_TYPE").toLower(); return ( m_device.subsystem() == QLatin1String("power_supply") - && deviceName().contains(QLatin1String("/power_supply/AC")) + && (powersupplytype == QLatin1String("mains") + || powersupplytype.contains(QLatin1String("ups"))) ); } case Solid::DeviceInterface::Battery: { + const QString powersupplytype = deviceProperty("POWER_SUPPLY_TYPE").toLower(); return ( - m_device.subsystem() == QLatin1String("power_supply") - && deviceName().contains(QLatin1String("/power_supply/BAT")) + m_device.subsystem() == QLatin1String("power_supply") && + (powersupplytype == QLatin1String("battery") + || powersupplytype.contains(QLatin1String("usb"))) ); }