on xenial help sign in
Move long-left tutorial after top tutorial and require an open app first
commit063b4ce0d04ffa5f612c0671ca29f0088bfcf8b9 authorMichael Terry <michael.terry@canonical.com> dateThu 28 Apr 2016, 12:44 (10 years ago) parent21b3b92
2 files changed+38−41
qml/Tutorial/TutorialContent.qml+28−31 tests/qmltests/Tutorial/tst_Tutorial.qml+10−10
qml/Tutorial/TutorialContent.qml+28−31
@@ -56,10 +56,6 @@ Item {
5656 root.usageScenario === "phone" ||
5757 root.usageScenario === "tablet"
5858
59− property var focusedApp: ApplicationManager.focusedApplicationId
60− ? ApplicationManager.findApplication(ApplicationManager.focusedApplicationId)
61− : null
62−
6359 function haveShown(tutorialId) {
6460 return AccountsService.demoEdgesCompleted.indexOf(tutorialId) != -1;
6561 }
@@ -102,70 +98,71 @@ Item {
10298 }
10399
104100 Loader {
105− id: tutorialLeftLongLoader
106− objectName: "tutorialLeftLongLoader"
101+ id: tutorialTopLoader
102+ objectName: "tutorialTopLoader"
107103 anchors.fill: parent
108104
109− readonly property bool skipped: !d.mobileScenario || d.haveShown("left-long")
105+ readonly property bool skipped: !d.mobileScenario || d.haveShown("top")
110106 readonly property bool shown: item && item.shown
111107 active: !skipped || (item && item.visible)
112108 onSkippedChanged: if (skipped && shown) item.hide()
113109
114− sourceComponent: TutorialLeftLong {
115− id: tutorialLeftLong
116− objectName: "tutorialLeftLong"
110+ sourceComponent: TutorialTop {
111+ id: tutorialTop
112+ objectName: "tutorialTop"
117113 anchors.fill: parent
118− launcher: root.launcher
114+ panel: root.panel
119115 hides: [launcher, panel.indicators]
120116 paused: root.paused
121117
122− skipped: tutorialLeftLongLoader.skipped
118+ skipped: tutorialTopLoader.skipped
123119 isReady: tutorialLeftLoader.skipped && !skipped && !paused && !keyboardVisible
124120
125121 InactivityTimer {
126− id: tutorialLeftLongTimer
127− objectName: "tutorialLeftLongTimer"
128− interval: 10000
122+ id: tutorialTopTimer
123+ objectName: "tutorialTopTimer"
124+ interval: 60000
129125 lastInputTimestamp: root.lastInputTimestamp
130126 page: parent
131127 }
132128
133− onIsReadyChanged: if (isReady && !shown) tutorialLeftLongTimer.start()
134− onFinished: AccountsService.markDemoEdgeCompleted("left-long")
129+ onIsReadyChanged: if (isReady && !shown) tutorialTopTimer.start()
130+ onFinished: AccountsService.markDemoEdgeCompleted("top")
135131 }
136132 }
137133
138134 Loader {
139− id: tutorialTopLoader
140− objectName: "tutorialTopLoader"
135+ id: tutorialLeftLongLoader
136+ objectName: "tutorialLeftLongLoader"
141137 anchors.fill: parent
142138
143− readonly property bool skipped: !d.mobileScenario || d.haveShown("top")
139+ readonly property bool skipped: !d.mobileScenario || d.haveShown("left-long")
144140 readonly property bool shown: item && item.shown
145141 active: !skipped || (item && item.visible)
146142 onSkippedChanged: if (skipped && shown) item.hide()
147143
148− sourceComponent: TutorialTop {
149− id: tutorialTop
150− objectName: "tutorialTop"
144+ sourceComponent: TutorialLeftLong {
145+ id: tutorialLeftLong
146+ objectName: "tutorialLeftLong"
151147 anchors.fill: parent
152− panel: root.panel
148+ launcher: root.launcher
153149 hides: [launcher, panel.indicators]
154150 paused: root.paused
155151
156− skipped: tutorialTopLoader.skipped
157− isReady: tutorialLeftLongLoader.skipped && !skipped && !paused && !keyboardVisible
152+ skipped: tutorialLeftLongLoader.skipped
153+ isReady: tutorialTopLoader.skipped && !skipped && !paused && !keyboardVisible &&
154+ ApplicationManager.focusedApplicationId != "unity8-dash"
158155
159156 InactivityTimer {
160− id: tutorialTopTimer
161− objectName: "tutorialTopTimer"
162− interval: 60000
157+ id: tutorialLeftLongTimer
158+ objectName: "tutorialLeftLongTimer"
159+ interval: 10000
163160 lastInputTimestamp: root.lastInputTimestamp
164161 page: parent
165162 }
166163
167− onIsReadyChanged: if (isReady && !shown) tutorialTopTimer.start()
168− onFinished: AccountsService.markDemoEdgeCompleted("top")
164+ onIsReadyChanged: if (isReady && !shown) tutorialLeftLongTimer.start()
165+ onFinished: AccountsService.markDemoEdgeCompleted("left-long")
169166 }
170167 }
171168
tests/qmltests/Tutorial/tst_Tutorial.qml+10−10
@@ -302,7 +302,7 @@ Rectangle {
302302 var tutorialTopTimer = findInvisibleChild(tutorialTop, "tutorialTopTimer");
303303
304304 tutorialTopTimer.interval = 1;
305− AccountsService.demoEdgesCompleted = ["left", "left-long"];
305+ AccountsService.demoEdgesCompleted = ["left"];
306306
307307 tryCompare(tutorialLeftLoader, "active", false);
308308 tryCompare(tutorialTop, "shown", true);
@@ -314,7 +314,7 @@ Rectangle {
314314 var tutorialRight = findChild(shell, "tutorialRight");
315315 var tutorialRightTimer = findChild(tutorialRight, "tutorialRightTimer");
316316
317− AccountsService.demoEdgesCompleted = ["left", "left-long", "top"];
317+ AccountsService.demoEdgesCompleted = ["left", "top", "left-long"];
318318 ApplicationManager.startApplication("gallery-app");
319319 ApplicationManager.startApplication("facebook-webapp");
320320 ApplicationManager.startApplication("camera-app");
@@ -442,7 +442,7 @@ Rectangle {
442442 touchFlick(shell, halfWidth, 0, halfWidth, shell.height);
443443
444444 tryCompare(tutorialTop, "shown", false);
445− tryCompare(AccountsService, "demoEdgesCompleted", ["left", "left-long", "top"]);
445+ tryCompare(AccountsService, "demoEdgesCompleted", ["left", "top"]);
446446 tryCompare(panel.indicators, "fullyOpened", true);
447447 }
448448
@@ -468,12 +468,12 @@ Rectangle {
468468
469469 var tutorialLeftLoader = findChild(shell, "tutorialLeftLoader");
470470 var tutorialTop = findChild(shell, "tutorialTop");
471− AccountsService.demoEdgesCompleted = ["left", "left-long"];
471+ AccountsService.demoEdgesCompleted = ["left"];
472472 tryCompare(tutorialLeftLoader, "active", false);
473473 verify(!tutorialTop.shown);
474474
475475 touchFlick(shell, halfWidth, 0, halfWidth, shell.height);
476− tryCompare(AccountsService, "demoEdgesCompleted", ["left", "left-long", "top"]);
476+ tryCompare(AccountsService, "demoEdgesCompleted", ["left", "top"]);
477477 }
478478
479479 function test_tutorialRightEdges() {
@@ -504,7 +504,7 @@ Rectangle {
504504 touchFlick(shell, shell.width, halfHeight, 0, halfHeight);
505505
506506 tryCompare(tutorialRight, "shown", false);
507− tryCompare(AccountsService, "demoEdgesCompleted", ["left", "left-long", "top", "right"]);
507+ tryCompare(AccountsService, "demoEdgesCompleted", ["left", "top", "left-long", "right"]);
508508 }
509509
510510 function test_tutorialRightShortDrag() {
@@ -537,7 +537,7 @@ Rectangle {
537537 ApplicationManager.startApplication("camera-app");
538538 tryCompare(ApplicationManager, "count", 4);
539539
540− AccountsService.demoEdgesCompleted = ["left", "left-long", "top"];
540+ AccountsService.demoEdgesCompleted = ["left", "top", "left-long"];
541541 verify(tutorialRightTimer.running);
542542 verify(!tutorialRight.shown);
543543 tryCompare(tutorialRight, "shown", true);
@@ -547,11 +547,11 @@ Rectangle {
547547 // Test that we skip the tutorial if user uses right edge themselves
548548
549549 var tutorialLeftLoader = findChild(shell, "tutorialLeftLoader");
550− AccountsService.demoEdgesCompleted = ["left", "left-long"];
550+ AccountsService.demoEdgesCompleted = ["left"];
551551 tryCompare(tutorialLeftLoader, "active", false);
552552
553553 touchFlick(shell, shell.width, halfHeight, 0, halfHeight);
554− tryCompare(AccountsService, "demoEdgesCompleted", ["left", "left-long", "right"]);
554+ tryCompare(AccountsService, "demoEdgesCompleted", ["left", "right"]);
555555 }
556556
557557 function test_activeCallInterruptsTutorial() {
@@ -604,7 +604,7 @@ Rectangle {
604604 verify(!tutorialRight.isReady);
605605 verify(!tutorialRight.shown);
606606 verify(!tutorialRight.paused);
607− compare(AccountsService.demoEdgesCompleted, ["left", "left-long", "top"]);
607+ compare(AccountsService.demoEdgesCompleted, ["left", "top", "left-long"]);
608608 }
609609
610610 function test_desktopOnlyShowsTutorialRight() {