on xenial help sign in
fix the SIM card page
ec99aefLukáš Tinkl
qml/Wizard/Page.qml+11−15
@@ -60,12 +60,16 @@ Item {
60
60
61 OfonoManager { // need it here for the language and country detection
61 OfonoManager { // need it here for the language and country detection
62 id: modemManager
62 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+ }
64 onAvailableChanged: {
68 onAvailableChanged: {
65− print("== Modem manager AVAILABLE");
69+ print("Modem manager available:", available);
66 }
70 }
67 onGotSimCardChanged: {
71 onGotSimCardChanged: {
68− print("== Modem has a usable SIM CARD");
72+ print("Modem has a usable SIM CARD now:", gotSimCard);
69 }
73 }
70 }
74 }
71
75
@@ -74,24 +78,16 @@ Item {
74 OfonoSimManager {
78 OfonoSimManager {
75 id: simManager0
79 id: simManager0
76 modemPath: modemManager.modems.length >= 1 ? modemManager.modems[0] : ""
80 modemPath: modemManager.modems.length >= 1 ? modemManager.modems[0] : ""
77− onReadyChanged: {
81+ onPresentChanged: {
78− print("=== SIM 1 READY!");
82+ print("SIM CARD 1 inserted!!!", present);
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);
83 }
83 }
84 }
84 }
85
85
86 OfonoSimManager {
86 OfonoSimManager {
87 id: simManager1
87 id: simManager1
88 modemPath: modemManager.modems.length >= 2 ? modemManager.modems[1] : ""
88 modemPath: modemManager.modems.length >= 2 ? modemManager.modems[1] : ""
89− onReadyChanged: {
89+ onPresentChanged: {
90− print("=== SIM 2 READY!");
90+ print("SIM CARD 2 inserted!!!", present);
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);
95 }
91 }
96 }
92 }
97
93
qml/Wizard/Pages.qml+1
@@ -125,6 +125,7 @@ Item {
125 objectName: "timeout"
125 objectName: "timeout"
126 interval: 2000 // wizard pages shouldn't take long
126 interval: 2000 // wizard pages shouldn't take long
127 onTriggered: {
127 onTriggered: {
128+ print("PAGE SKIPPED BY TIMEOUT!!!");
128 pageStack.currentPage.skip = true;
129 pageStack.currentPage.skip = true;
129 pageStack.currentPage.skipValid = true;
130 pageStack.currentPage.skipValid = true;
130 }
131 }
qml/Wizard/Pages/10-language.qml+6−6
@@ -32,7 +32,7 @@ LocalComponents.Page {
32
32
33 Component.onCompleted: {
33 Component.onCompleted: {
34 if (!modemManager.available) { // don't wait for the modem if it's not there
34 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")
36 init();
36 init();
37 }
37 }
38 }
38 }
@@ -40,11 +40,11 @@ LocalComponents.Page {
40 Connections {
40 Connections {
41 target: modemManager
41 target: modemManager
42 onGotSimCardChanged: {
42 onGotSimCardChanged: {
43− print("=== Got a usable SIM card, init language page");
43+ print("== Got a usable SIM card, init language page");
44− print("SIM 1 languages:", simManager0.preferredLanguages);
44+// print("SIM 1 languages:", simManager0.preferredLanguages);
45− print("SIM 1 country:", LocalePlugin.mccToCountryCode(simManager0.mobileCountryCode));
45+// print("SIM 1 country:", LocalePlugin.mccToCountryCode(simManager0.mobileCountryCode));
46− print("SIM 2 languages:", simManager1.preferredLanguages);
46+// print("SIM 2 languages:", simManager1.preferredLanguages);
47− print("SIM 2 country:", LocalePlugin.mccToCountryCode(simManager1.mobileCountryCode));
47+// print("SIM 2 country:", LocalePlugin.mccToCountryCode(simManager1.mobileCountryCode));
48 init();
48 init();
49 }
49 }
50 }
50 }
qml/Wizard/Pages/20-sim.qml+41−17
@@ -29,16 +29,49 @@ LocalComponents.Page {
29 customTitle: true
29 customTitle: true
30 hasBackButton: false
30 hasBackButton: false
31
31
32− skipValid: !modemManager.available ||
32+ skipValid: modemManager.gotSimCard
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
36
33
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
38
37
39− Component.onCompleted: {
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
40− hadModem = simManager0.present || simManager1.present;
61+ (simManager0.ready && !simManager0.present) || (simManager1.ready && !simManager1.present) || // empty SIM card slots
41− print("Had modem: " + hadModem);
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+ }
42 }
75 }
43
76
44 Dialog {
77 Dialog {
@@ -55,15 +88,6 @@ LocalComponents.Page {
55 }
88 }
56 }
89 }
57
90
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−
67 Column {
91 Column {
68 anchors.fill: content
92 anchors.fill: content
69 spacing: units.gu(4)
93 spacing: units.gu(4)
tests/mocks/MeeGo/QOfono/MockOfonoSimManager.qml−1
@@ -32,7 +32,6 @@ Item {
32 property bool ready: false
32 property bool ready: false
33
33
34 function updatePresence() {
34 function updatePresence() {
35− print("Update presence")
36 d.present = MockQOfono.isModemPresent(simManager.modemPath)
35 d.present = MockQOfono.isModemPresent(simManager.modemPath)
37 d.ready = MockQOfono.isModemReady(simManager.modemPath);
36 d.ready = MockQOfono.isModemReady(simManager.modemPath);
38 }
37 }