on xenial help sign in
fix the SIM card page
commitec99aefb93291684a5d6844b99692d34c4b8771d authorLukáš Tinkl <lukas.tinkl@canonical.com> dateThu 3 Sep 2015, 21:56 (11 years ago) parent2674d63
5 files changed+59−39
qml/Wizard/Page.qml+11−15 qml/Wizard/Pages.qml+1 qml/Wizard/Pages/10-language.qml+6−6 qml/Wizard/Pages/20-sim.qml+41−17 tests/mocks/MeeGo/QOfono/MockOfonoSimManager.qml−1
qml/Wizard/Page.qml+11−15
@@ -60,12 +60,16 @@ Item {
6060
6161 OfonoManager { // need it here for the language and country detection
6262 id: modemManager
63− property bool gotSimCard: available && ((simManager0.ready && simManager0.present) || (simManager1.ready && simManager1.present))
63+ readonly property bool gotSimCard: available && ((simManager0.ready && simManager0.present) || (simManager1.ready && simManager1.present))
64+ property bool ready: false
65+ onModemsChanged: {
66+ ready = true;
67+ }
6468 onAvailableChanged: {
65− print("== Modem manager AVAILABLE");
69+ print("Modem manager available:", available);
6670 }
6771 onGotSimCardChanged: {
68− print("== Modem has a usable SIM CARD");
72+ print("Modem has a usable SIM CARD now:", gotSimCard);
6973 }
7074 }
7175
@@ -74,24 +78,16 @@ Item {
7478 OfonoSimManager {
7579 id: simManager0
7680 modemPath: modemManager.modems.length >= 1 ? modemManager.modems[0] : ""
77− onReadyChanged: {
78− print("=== SIM 1 READY!");
79− print("SIM 1 present:", simManager0.present);
80− print("SIM 1 ready:", simManager0.ready);
81− print("SIM 1 languages:", simManager0.preferredLanguages);
82− print("SIM 1 country code:", simManager0.mobileCountryCode);
81+ onPresentChanged: {
82+ print("SIM CARD 1 inserted!!!", present);
8383 }
8484 }
8585
8686 OfonoSimManager {
8787 id: simManager1
8888 modemPath: modemManager.modems.length >= 2 ? modemManager.modems[1] : ""
89− onReadyChanged: {
90− print("=== SIM 2 READY!");
91− print("SIM 2 present:", simManager1.present);
92− print("SIM 2 ready:", simManager1.ready);
93− print("SIM 2 languages:", simManager1.preferredLanguages);
94− print("SIM 2 country code:", simManager1.mobileCountryCode);
89+ onPresentChanged: {
90+ print("SIM CARD 2 inserted!!!", present);
9591 }
9692 }
9793
qml/Wizard/Pages.qml+1
@@ -125,6 +125,7 @@ Item {
125125 objectName: "timeout"
126126 interval: 2000 // wizard pages shouldn't take long
127127 onTriggered: {
128+ print("PAGE SKIPPED BY TIMEOUT!!!");
128129 pageStack.currentPage.skip = true;
129130 pageStack.currentPage.skipValid = true;
130131 }
qml/Wizard/Pages/10-language.qml+6−6
@@ -32,7 +32,7 @@ LocalComponents.Page {
3232
3333 Component.onCompleted: {
3434 if (!modemManager.available) { // don't wait for the modem if it's not there
35− print("=== Modem manager not available, init manually")
35+ print("== Modem manager not available, init language manually")
3636 init();
3737 }
3838 }
@@ -40,11 +40,11 @@ LocalComponents.Page {
4040 Connections {
4141 target: modemManager
4242 onGotSimCardChanged: {
43− print("=== Got a usable SIM card, init language page");
44− print("SIM 1 languages:", simManager0.preferredLanguages);
45− print("SIM 1 country:", LocalePlugin.mccToCountryCode(simManager0.mobileCountryCode));
46− print("SIM 2 languages:", simManager1.preferredLanguages);
47− print("SIM 2 country:", LocalePlugin.mccToCountryCode(simManager1.mobileCountryCode));
43+ print("== Got a usable SIM card, init language page");
44+// print("SIM 1 languages:", simManager0.preferredLanguages);
45+// print("SIM 1 country:", LocalePlugin.mccToCountryCode(simManager0.mobileCountryCode));
46+// print("SIM 2 languages:", simManager1.preferredLanguages);
47+// print("SIM 2 country:", LocalePlugin.mccToCountryCode(simManager1.mobileCountryCode));
4848 init();
4949 }
5050 }
qml/Wizard/Pages/20-sim.qml+41−17
@@ -29,16 +29,49 @@ LocalComponents.Page {
2929 customTitle: true
3030 hasBackButton: false
3131
32− skipValid: !modemManager.available ||
33− (modemManager.ready && (modemManager.modems.length < 1 || simManager0.ready)
34− && (modemManager.modems.length < 2 || simManager1.ready))
35− skip: !modemManager.available || modemManager.modems.length === 0 || simManager0.present || simManager1.present
32+ skipValid: modemManager.gotSimCard
3633
37− property bool hadModem: false
34+ // skip this page altogether if...
35+ skip: !modemManager.available || modemManager.modems.length === 0 || // .. we don't have any modem
36+ simManager0.present || simManager1.present // ... or we already have a SIM card inserted
3837
39− Component.onCompleted: {
40− hadModem = simManager0.present || simManager1.present;
41− print("Had modem: " + hadModem);
38+ property bool hadSIM: simManager0.present || simManager1.present
39+
40+ Timer {
41+ id: timer
42+ interval: 250
43+ running: true
44+ onTriggered: {
45+ print("=== SIM page: timer triggered");
46+ hadSIM = simManager0.present || simManager1.present;
47+ print("=== SIM page: had sim:", hadSIM);
48+ if (hadSIM) {
49+ skip = true;
50+ skipValid = true;
51+ }
52+ else {
53+ checkSkipValid();
54+ }
55+ }
56+ }
57+
58+ function checkSkipValid() {
59+ skipValid = (modemManager.available && modemManager.modems.length === 0) || // got modem with no SIM card slots
60+ !modemManager.available || // modem not available
61+ (simManager0.ready && !simManager0.present) || (simManager1.ready && !simManager1.present) || // empty SIM card slots
62+ simManager0.present || simManager1.present; // already have a SIM card inserted
63+ print("=== SIM page: check skipValid:", skipValid);
64+ }
65+
66+ Connections {
67+ target: modemManager
68+ onGotSimCardChanged: {
69+ print("=== SIM page: SIM card inserted");
70+ if (!hadSIM && modemManager.gotSimCard) { // show the restart dialog in case a SIM gets inserted
71+ print("=== SIM page: showing reboot dialog");
72+ restartDialog.visible = true;
73+ }
74+ }
4275 }
4376
4477 Dialog {
@@ -55,15 +88,6 @@ LocalComponents.Page {
5588 }
5689 }
5790
58− Connections {
59− target: modemManager
60− onModemsChanged: {
61− if (!hadModem && (simManager0.present || simManager1.present)) { // show the restart dialog in case a SIM gets inserted
62− restartDialog.visible = true
63− }
64− }
65− }
66−
6791 Column {
6892 anchors.fill: content
6993 spacing: units.gu(4)
tests/mocks/MeeGo/QOfono/MockOfonoSimManager.qml−1
@@ -32,7 +32,6 @@ Item {
3232 property bool ready: false
3333
3434 function updatePresence() {
35− print("Update presence")
3635 d.present = MockQOfono.isModemPresent(simManager.modemPath)
3736 d.ready = MockQOfono.isModemReady(simManager.modemPath);
3837 }