@@ -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)