Merge lp:~unity-api-team/indicator-network/lp1598010 into lp:indicator-network

Proposed by Antti Kaijanmäki
Status: Merged
Approved by: Pete Woods
Approved revision: 616
Merged at revision: 623
Proposed branch: lp:~unity-api-team/indicator-network/lp1598010
Merge into: lp:indicator-network
Diff against target: 102 lines (+51/-1)
1 file modified
src/indicator/nmofono/manager-impl.cpp (+51/-1)
To merge this branch: bzr merge lp:~unity-api-team/indicator-network/lp1598010
Reviewer Review Type Date Requested Status
Pete Woods (community) Approve
Review via email: mp+303014@code.launchpad.net

Commit message

Use a timer to set the sim for mobile data if only one sim exists.

Description of the change

.

To post a comment you must log in.
Revision history for this message
Pete Woods (pete-woods) :
review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'src/indicator/nmofono/manager-impl.cpp'
2--- src/indicator/nmofono/manager-impl.cpp 2016-08-02 14:06:09 +0000
3+++ src/indicator/nmofono/manager-impl.cpp 2016-08-16 12:58:46 +0000
4@@ -93,11 +93,50 @@
5
6 ConnectivityServiceSettings::Ptr m_settings;
7
8+ QTimer m_checkSimForMobileDataTimer;
9+
10 Private(Manager& parent) :
11 p(parent)
12 {
13 }
14
15+
16+public Q_SLOTS:
17+
18+ void startCheckSimForMobileDataTimer()
19+ {
20+ m_checkSimForMobileDataTimer.start();
21+ }
22+
23+ void checkSimForMobileData()
24+ {
25+ if (m_simForMobileData && m_simForMobileData->present())
26+ {
27+ return;
28+ }
29+
30+ int presentSimCount = 0;
31+ for (auto modem : m_modems)
32+ {
33+ if (modem->sim())
34+ {
35+ presentSimCount++;
36+ }
37+ }
38+
39+ if (presentSimCount == 1)
40+ {
41+ for (auto modem : m_modems)
42+ {
43+ if (modem->sim())
44+ {
45+ setSimForMobileData(modem->sim());
46+ break;
47+ }
48+ }
49+ }
50+ }
51+
52 void matchModemsAndSims()
53 {
54 for (wwan::Modem::Ptr modem: m_ofonoLinks)
55@@ -132,6 +171,7 @@
56 {
57 m_sims.append(sim);
58 connect(sim.get(), &wwan::Sim::presentChanged, this, &Private::matchModemsAndSims);
59+ connect(sim.get(), &wwan::Sim::presentChanged, this, &Private::startCheckSimForMobileDataTimer);
60 Q_EMIT p.simsChanged();
61
62 QString iccid = m_settings->simForMobileData().toString();
63@@ -143,6 +183,7 @@
64 }
65
66 matchModemsAndSims();
67+ m_checkSimForMobileDataTimer.start();
68 }
69
70 void initialDataOnSet()
71@@ -183,6 +224,8 @@
72
73 m_modems.append(modem);
74 Q_EMIT p.modemsChanged();
75+
76+ m_checkSimForMobileDataTimer.start();
77 }
78
79 void setUnstoppableOperationHappening(bool happening)
80@@ -240,7 +283,6 @@
81 }
82 }
83
84-public Q_SLOTS:
85 void updateHasWifi()
86 {
87 if (m_killSwitch->state() != KillSwitch::State::not_available)
88@@ -521,6 +563,14 @@
89 d->loadSettings();
90
91 d->updateHasWifi();
92+
93+ d->m_checkSimForMobileDataTimer.setInterval(5000);
94+ d->m_checkSimForMobileDataTimer.setSingleShot(true);
95+ connect(&d->m_checkSimForMobileDataTimer, &QTimer::timeout, d.get(), &Private::checkSimForMobileData);
96+ for(auto sim : d->m_sims) {
97+ connect(sim.get(), &wwan::Sim::presentChanged, d.get(), &Private::startCheckSimForMobileDataTimer);
98+ }
99+ d->m_checkSimForMobileDataTimer.start();
100 }
101
102 bool

Subscribers

People subscribed via source and target branches