diff --git a/components/hapticsplugin/vibrationmanager.cpp b/components/hapticsplugin/vibrationmanager.cpp index 60dc4dfb..7f8a9b67 100644 --- a/components/hapticsplugin/vibrationmanager.cpp +++ b/components/hapticsplugin/vibrationmanager.cpp @@ -6,11 +6,14 @@ VibrationManager::VibrationManager(QObject *parent) : QObject{parent} { - const auto objectPath = QStringLiteral("/com/lomiri/hfd"); - m_interface = new com::lomiri::hfd::Vibrator("com.lomiri.hfd", objectPath, QDBusConnection::systemBus(), this); } void VibrationManager::vibrate(int durationMs) { + // Only create interface when needed. + if (!m_interface) { + const auto objectPath = QStringLiteral("/com/lomiri/hfd"); + m_interface = new com::lomiri::hfd::Vibrator("com.lomiri.hfd", objectPath, QDBusConnection::systemBus(), this); + } m_interface->vibrate(durationMs); } diff --git a/components/hapticsplugin/vibrationmanager.h b/components/hapticsplugin/vibrationmanager.h index edb6dffc..2fd22ced 100644 --- a/components/hapticsplugin/vibrationmanager.h +++ b/components/hapticsplugin/vibrationmanager.h @@ -20,5 +20,5 @@ public: Q_INVOKABLE void vibrate(int durationMs); private: - com::lomiri::hfd::Vibrator *m_interface; + com::lomiri::hfd::Vibrator *m_interface{nullptr}; }; \ No newline at end of file