Merge lp:~lukas-kde/unity8/notificationExpansionLogicFixes into lp:unity8

Proposed by Lukáš Tinkl
Status: Merged
Approved by: Michael Terry
Approved revision: 2381
Merged at revision: 2431
Proposed branch: lp:~lukas-kde/unity8/notificationExpansionLogicFixes
Merge into: lp:unity8
Diff against target: 201 lines (+110/-11)
5 files modified
qml/Notifications/Notification.qml (+5/-1)
qml/Notifications/Notifications.qml (+1/-1)
tests/mocks/QtMultimedia/audio.cpp (+3/-3)
tests/mocks/QtMultimedia/audio.h (+12/-6)
tests/qmltests/Notifications/tst_Notifications.qml (+89/-0)
To merge this branch: bzr merge lp:~lukas-kde/unity8/notificationExpansionLogicFixes
Reviewer Review Type Date Requested Status
Unity8 CI Bot continuous-integration Needs Fixing
Michael Terry Approve
Review via email: mp+293620@code.launchpad.net

Commit message

First snap decision should always be expanded, unless user decides otherwise

Description of the change

Based on design input, tweak the snap decisions' expansion logic: unless expanded by user, always let the first snap decision be expanded.

Also, silence some runtime warnings, mainly by updating our obsolete QtMultimedia mock.

Fixes lp:1575045

* Are there any related MPs required for this MP to build/function as expected? Please list.

No

* Did you perform an exploratory manual test run of your code change and any related functionality?

Yes

* If you changed the packaging (debian), did you subscribe the ubuntu-unity team to this MP?

N/A

* If you changed the UI, has there been a design review?

Yes

To post a comment you must log in.
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:2377
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1111/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/664
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/664
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=phone-armhf,release=vivid+overlay,testname=autopilot.sh/664
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/1489
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1454
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1454
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1454
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1454/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1454
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1454/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1454
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1454/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1454
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1454/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1454
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1454/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1454
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1454/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1111/rebuild

review: Approve (continuous-integration)
2378. By Lukáš Tinkl

merge trunk

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2378
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1140/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/690
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/690
    FAILURE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=phone-armhf,release=vivid+overlay,testname=autopilot.sh/690/console
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/1528
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1488
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1488
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1488
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1488/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1488
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1488/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1488
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1488/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1488
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1488/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1488
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1488/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1488
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1488/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1140/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Michael Terry (mterry) wrote :

Could probably use a test for this.

2379. By Lukáš Tinkl

fix expansion state for password prompts

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:2379
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1177/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/720
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/720
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/1577
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1534
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1534
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1534
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1534/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1534
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1534/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1534
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1534/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1534
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1534/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1534
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1534/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1534
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1534/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1177/rebuild

review: Approve (continuous-integration)
2380. By Lukáš Tinkl

add a test for expansion logic

Revision history for this message
Lukáš Tinkl (lukas-kde) wrote :

> Could probably use a test for this.

Yup, just added one

Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2380
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1185/
Executed test runs:
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/727
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/727
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/1587
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1542
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1542
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1542
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1542/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1542
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1542/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1542
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1542/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1542
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1542/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1542
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1542/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1542
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1542/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1185/rebuild

review: Needs Fixing (continuous-integration)
2381. By Lukáš Tinkl

revert a noop check

Revision history for this message
Michael Terry (mterry) wrote :

LGTM

review: Approve
Revision history for this message
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2381
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1190/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/732
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/732
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/1592
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/1547
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/1547
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1547
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/1547/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1547
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/1547/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1547
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/1547/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1547
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/1547/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1547
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/1547/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1547
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/1547/artifact/output/*zip*/output.zip

Click here to trigger a rebuild:
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1190/rebuild

review: Needs Fixing (continuous-integration)

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'qml/Notifications/Notification.qml'
2--- qml/Notifications/Notification.qml 2016-04-27 15:01:10 +0000
3+++ qml/Notifications/Notification.qml 2016-05-11 14:55:36 +0000
4@@ -99,6 +99,10 @@
5 }
6
7 function closeNotification() {
8+ if (index === ListView.view.currentIndex) { // reset to get the 1st snap decision expanded
9+ ListView.view.currentIndex = -1;
10+ }
11+
12 if (notification.actions.count > 1) { // perform the "reject" action
13 notification.notification.invokeAction(notification.actions.data(1, ActionModel.RoleActionId));
14 }
15@@ -382,7 +386,7 @@
16 objectName: "dialogListView"
17 spacing: notification.margins
18
19- visible: count > 0
20+ visible: count > 0 && notification.expanded
21
22 anchors {
23 left: parent.left
24
25=== modified file 'qml/Notifications/Notifications.qml'
26--- qml/Notifications/Notifications.qml 2016-04-27 15:01:10 +0000
27+++ qml/Notifications/Notifications.qml 2016-05-11 14:55:36 +0000
28@@ -52,7 +52,7 @@
29 type: model.type
30 hints: model.hints
31 iconSource: model.icon
32- secondaryIconSource: model.secondaryIcon
33+ secondaryIconSource: model.secondaryIcon ? model.secondaryIcon : ""
34 summary: model.summary
35 body: model.body
36 value: model.value ? model.value : -1
37
38=== modified file 'tests/mocks/QtMultimedia/audio.cpp'
39--- tests/mocks/QtMultimedia/audio.cpp 2016-04-18 09:53:45 +0000
40+++ tests/mocks/QtMultimedia/audio.cpp 2016-05-11 14:55:36 +0000
41@@ -1,5 +1,5 @@
42 /*
43- * Copyright (C) 2013, 2015 Canonical, Ltd.
44+ * Copyright (C) 2013-2016 Canonical, Ltd.
45 *
46 * This program is free software; you can redistribute it and/or modify
47 * it under the terms of the GNU General Public License as published by
48@@ -21,7 +21,7 @@
49 Audio::Audio(QObject* parent):
50 QObject(parent),
51 m_playbackState(StoppedState),
52- m_playlist(0)
53+ m_playlist(nullptr)
54 {
55 qsrand(time(nullptr));
56 m_timer.setInterval(1000);
57@@ -109,7 +109,7 @@
58
59 Audio::AudioRole Audio::audioRole() const
60 {
61- return Audio::multimedia;
62+ return Audio::MusicRole;
63 }
64
65 void Audio::setAudioRole(Audio::AudioRole audioRole)
66
67=== modified file 'tests/mocks/QtMultimedia/audio.h'
68--- tests/mocks/QtMultimedia/audio.h 2016-04-18 09:53:45 +0000
69+++ tests/mocks/QtMultimedia/audio.h 2016-05-11 14:55:36 +0000
70@@ -1,5 +1,5 @@
71 /*
72- * Copyright (C) 2012, 2013, 2015 Canonical, Ltd.
73+ * Copyright (C) 2012-2016 Canonical, Ltd.
74 *
75 * This program is free software; you can redistribute it and/or modify
76 * it under the terms of the GNU General Public License as published by
77@@ -44,13 +44,19 @@
78 };
79
80 enum AudioRole {
81- alarm,
82- alert,
83- multimedia,
84- phone
85+ UnknownRole,
86+ MusicRole,
87+ VideoRole,
88+ VoiceCommunicationRole,
89+ AlarmRole,
90+ NotificationRole,
91+ RingtoneRole,
92+ AccessibilityRole,
93+ SonificationRole,
94+ GameRole
95 };
96
97- explicit Audio(QObject *parent = 0);
98+ explicit Audio(QObject *parent = nullptr);
99
100 QUrl source() const;
101 void setSource(const QUrl &source);
102
103=== modified file 'tests/qmltests/Notifications/tst_Notifications.qml'
104--- tests/qmltests/Notifications/tst_Notifications.qml 2016-04-27 15:01:10 +0000
105+++ tests/qmltests/Notifications/tst_Notifications.qml 2016-05-11 14:55:36 +0000
106@@ -725,6 +725,95 @@
107 tryCompare(mockModel, "count", before - 1)
108 }
109
110+ function expansionLogic_data() {
111+ return [{
112+ tag: "Snap Decision without secondary icon and no button-tint",
113+ n: nlist[3],
114+ summaryVisible: true,
115+ bodyVisible: true,
116+ iconVisible: true,
117+ centeredIconVisible: false,
118+ shaped: true,
119+ secondaryIconVisible: false,
120+ buttonRowVisible: true,
121+ buttonTinted: false,
122+ hasSound: true,
123+ valueVisible: false,
124+ valueLabelVisible: false,
125+ valueTinted: false
126+ },
127+ {
128+ tag: "2-over-1 Snap Decision with button-tint",
129+ n: nlist[8],
130+ summaryVisible: true,
131+ bodyVisible: true,
132+ iconVisible: false,
133+ centeredIconVisible: false,
134+ shaped: false,
135+ secondaryIconVisible: false,
136+ buttonRowVisible: false,
137+ buttonTinted: true,
138+ hasSound: false,
139+ valueVisible: false,
140+ valueLabelVisible: false,
141+ valueTinted: false
142+ },
143+ {
144+ tag: "Snap Decision without secondary icon and no button-tint",
145+ n: nlist[3],
146+ summaryVisible: true,
147+ bodyVisible: true,
148+ iconVisible: true,
149+ centeredIconVisible: false,
150+ shaped: true,
151+ secondaryIconVisible: false,
152+ buttonRowVisible: true,
153+ buttonTinted: false,
154+ hasSound: true,
155+ valueVisible: false,
156+ valueLabelVisible: false,
157+ valueTinted: false
158+ }
159+ ]
160+ }
161+
162+ function test_expansionLogic() {
163+ var data = expansionLogic_data();
164+
165+ // fill the model
166+ data.forEach(function(notification) {
167+ mockModel.append(notification.n);
168+ notification.n.completed.connect(mockModel.onCompleted)
169+ })
170+
171+ // make sure the view is properly updated before going on
172+ notifications.forceLayout();
173+ waitForRendering(notifications);
174+
175+ // first one should be expanded by default
176+ var notification1 = findChild(notifications, "notification1") // 0 is placeholder...
177+ verify(!!notification1, "notification wasn't found");
178+ waitForRendering(notification1);
179+ verify(notification1.expanded);
180+
181+ // click the 2nd one, verify it's now expanded
182+ var notification2 = findChild(notifications, "notification2") // 0 is placeholder...
183+ verify(!!notification2, "notification wasn't found");
184+ waitForRendering(notification2);
185+ mouseClick(notification2);
186+ verify(notification2.expanded);
187+ verify(!notification1.expanded);
188+
189+ // now close the 2nd one, verify 1st is again expanded, 2nd is gone
190+ var dragStart = notification2.width * 0.25;
191+ var dragEnd = notification2.width;
192+ var dragY = notification2.height / 2;
193+ touchFlick(notification2, dragStart, dragY, dragEnd, dragY);
194+ waitForRendering(notifications);
195+ tryCompareFunction(function() { return notification1.expanded; }, true);
196+ tryCompareFunction(function() { return notification2.expanded; }, undefined);
197+ }
198+
199 function cleanupTestCase() {
200 notifications.hasMouse = false;
201 }

Subscribers

People subscribed via source and target branches