summaryrefslogtreecommitdiffstats
path: root/external/meta-qt5/recipes-connectivity/libqofono/libqofono/0001-also-emit-modemRemoved-and-modemAdded.patch
diff options
context:
space:
mode:
authortakeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp>2020-11-02 11:07:33 +0900
committertakeshi_hoshina <takeshi_hoshina@mail.toyota.co.jp>2020-11-02 11:07:33 +0900
commit1c7d6584a7811b7785ae5c1e378f14b5ba0971cf (patch)
treecd70a267a5ef105ba32f200aa088e281fbd85747 /external/meta-qt5/recipes-connectivity/libqofono/libqofono/0001-also-emit-modemRemoved-and-modemAdded.patch
parent4204309872da5cb401cbb2729d9e2d4869a87f42 (diff)
recipes
Diffstat (limited to 'external/meta-qt5/recipes-connectivity/libqofono/libqofono/0001-also-emit-modemRemoved-and-modemAdded.patch')
-rw-r--r--external/meta-qt5/recipes-connectivity/libqofono/libqofono/0001-also-emit-modemRemoved-and-modemAdded.patch54
1 files changed, 54 insertions, 0 deletions
diff --git a/external/meta-qt5/recipes-connectivity/libqofono/libqofono/0001-also-emit-modemRemoved-and-modemAdded.patch b/external/meta-qt5/recipes-connectivity/libqofono/libqofono/0001-also-emit-modemRemoved-and-modemAdded.patch
new file mode 100644
index 00000000..0122e051
--- /dev/null
+++ b/external/meta-qt5/recipes-connectivity/libqofono/libqofono/0001-also-emit-modemRemoved-and-modemAdded.patch
@@ -0,0 +1,54 @@
+From 05241dc61e8c43a12f91ee9976a2ecb2337a3eaf Mon Sep 17 00:00:00 2001
+From: Christophe Chapuis <chris.chapuis@gmail.com>
+Date: Sat, 13 Jul 2019 11:17:08 +0000
+Subject: [PATCH] onGetModemsFinished: also emit modemRemoved and modemAdded
+
+VoiceCall only subscribes to these events, so we need to emit these
+more "atomic" events too.
+
+Signed-off-by: Christophe Chapuis <chris.chapuis@gmail.com>
+---
+ src/qofonomanager.cpp | 21 ++++++++++++++++++---
+ 1 file changed, 18 insertions(+), 3 deletions(-)
+
+diff --git a/src/qofonomanager.cpp b/src/qofonomanager.cpp
+index deeb946..e94a3c7 100644
+--- a/src/qofonomanager.cpp
++++ b/src/qofonomanager.cpp
+@@ -40,15 +40,30 @@ void QOfonoManager::Private::handleGetModemsReply(QOfonoManager* obj, ObjectPath
+ {
+ bool wasAvailable = available;
+ QString prevDefault = defaultModem();
+- QStringList newModems;
++ QStringList newModems, oldModems;
+ const int n = reply.count();
+ for (int i = 0; i < n; i++) {
+ newModems.append(reply.at(i).path.path());
+ }
+ qSort(newModems);
+ available = true;
+- if (modems != newModems) {
+- modems = newModems;
++ oldModems = modems;
++ modems = newModems;
++
++ // emit atomic events for add/remove
++ Q_FOREACH(QString modem, oldModems) {
++ if(!newModems.contains(modem)) {
++ Q_EMIT obj->modemRemoved(modem);
++ }
++ }
++ Q_FOREACH(QString modem, newModems) {
++ if(!oldModems.contains(modem)) {
++ Q_EMIT obj->modemAdded(modem);
++ }
++ }
++
++ // then update the whole list
++ if (oldModems != newModems) {
+ Q_EMIT obj->modemsChanged(modems);
+ }
+ QString newDefault = defaultModem();
+--
+2.23.0
+