2013-02-07 13:40:09 +00:00
|
|
|
diff --git a/solid/solid/backends/udisks2/udisksmanager.cpp b/solid/solid/backends/udisks2/udisksmanager.cpp
|
|
|
|
index ecb9add..a73cb32 100644
|
|
|
|
--- a/solid/solid/backends/udisks2/udisksmanager.cpp
|
|
|
|
+++ b/solid/solid/backends/udisks2/udisksmanager.cpp
|
|
|
|
@@ -203,6 +203,10 @@ void Manager::slotInterfacesAdded(const QDBusObjectPath &object_path, const QVar
|
2013-02-05 15:57:06 +00:00
|
|
|
m_deviceCache.append(udi);
|
|
|
|
Q_EMIT deviceAdded(udi);
|
|
|
|
}
|
|
|
|
+ // re-emit in case of 2-stage devices like N9 or some Android phones
|
|
|
|
+ else if (m_deviceCache.contains(udi) && interfaces_and_properties.keys().contains(UD2_DBUS_INTERFACE_FILESYSTEM)) {
|
|
|
|
+ Q_EMIT deviceAdded(udi);
|
|
|
|
+ }
|
|
|
|
}
|
|
|
|
|
|
|
|
void Manager::slotInterfacesRemoved(const QDBusObjectPath &object_path, const QStringList &interfaces)
|
2013-02-07 13:40:09 +00:00
|
|
|
@@ -222,7 +222,7 @@ void Manager::slotInterfacesRemoved(const QDBusObjectPath &object_path, const QS
|
|
|
|
|
|
|
|
Device device(udi);
|
|
|
|
|
|
|
|
- if (!udi.isEmpty() && (interfaces.isEmpty() || device.interfaces().isEmpty() || device.interfaces().contains(UD2_DBUS_INTERFACE_FILESYSTEM))) {
|
|
|
|
+ if (!udi.isEmpty() && (interfaces.isEmpty() || device.interfaces().isEmpty() || interfaces.contains(UD2_DBUS_INTERFACE_FILESYSTEM))) {
|
|
|
|
Q_EMIT deviceRemoved(udi);
|
|
|
|
m_deviceCache.removeAll(udi);
|
|
|
|
DeviceBackend::destroyBackend(udi);
|