Merge lp:~mterry/unity8/greeter-no-lockscreen into lp:unity8

Proposed by Michael Terry on 2016-08-11
Status: Merged
Approved by: Albert Astals Cid on 2016-08-29
Approved revision: no longer in the source branch.
Merged at revision: 2635
Proposed branch: lp:~mterry/unity8/greeter-no-lockscreen
Merge into: lp:unity8
Prerequisite: lp:~mterry/unity8/greeter-tiny-bugs
Diff against target: 1221 lines (+362/-249)
17 files modified
qml/Components/Lockscreen.qml (+0/-23)
qml/Components/PassphraseLockscreen.qml (+0/-4)
qml/Components/PinLockscreen.qml (+0/-4)
qml/Greeter/DelayedLockscreen.qml (+6/-15)
qml/Greeter/Greeter.qml (+34/-21)
qml/Greeter/GreeterPrompt.qml (+21/-7)
qml/Greeter/LoginList.qml (+9/-3)
qml/Greeter/NarrowView.qml (+151/-65)
qml/Greeter/WideView.qml (+11/-5)
tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.cpp (+27/-0)
tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.h (+22/-0)
tests/qmltests/Components/tst_Lockscreen.qml (+0/-38)
tests/qmltests/Greeter/TestView.qml (+3/-3)
tests/qmltests/Greeter/tst_Greeter.qml (+1/-0)
tests/qmltests/Greeter/tst_NarrowView.qml (+34/-11)
tests/qmltests/Greeter/tst_WideView.qml (+8/-4)
tests/qmltests/tst_ShellWithPin.qml (+35/-46)
To merge this branch: bzr merge lp:~mterry/unity8/greeter-no-lockscreen
Reviewer Review Type Date Requested Status
Unity8 CI Bot continuous-integration 2016-08-11 Needs Fixing on 2016-09-08
Albert Astals Cid (community) 2016-08-11 Approve on 2016-08-29
Lukáš Tinkl 2016-08-11 Pending
Review via email: mp+302711@code.launchpad.net

This proposal supersedes a proposal from 2016-07-22.

Commit Message

Switch from lockscreen PIN pad to a passcode entry box that uses the OSK.

Description of the Change

Switch from NarrowView lockscreen PIN pad / passphrase entry to same widgets as WideView. This is based on design specs [1, start around page 20].

This mostly just affects the NarrowView layout, but I also moved DelayedLockscreen from Components into Greeter, and adjusted how LoginList is positioned in WideView.

Known issues:

 - The OSK takes a few seconds to appear if after booting the device, you immediately try to log in. Seemingly just how long it takes the OSK to initialize. Not sure how to avoid that. And I'll note this isn't a regression -- the old passphrase lockscreen had the same delay.

 - The OSK will crash if you try to type several spaces when using a passcode. Bug 1595308. Bad, but probably not a blocker? Not a normal thing to do.

 - The OSK shows characters that aren't digits when using a passcode. Bug 1586435. Not a blocker either, just annoying.

[1] https://docs.google.com/document/d/1X_doNFMLNDxsN3VcGM9I_tDlyzmao3MboQXW9duiAMc

Checklist:

 * Are there any related MPs required for this MP to build/function as expected? Please list.
 No, just pre-reqs

 * 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?
 I'm on the team

 * If you changed the UI, has there been a design review?
 Yes, Alex M has reviewed this and is +1. He'd prefer the divider between the OSK and the cancel/emergency button not be shown, but it was a minor issue and would be hard to fix for now.

To post a comment you must log in.
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal

FAILED: Continuous integration, rev:2409
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1603/
Executed test runs:
    FAILURE: https://unity8-jenkins.ubuntu.com/job/build/2134/console
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2162
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2071
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2071
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2071
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2062
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2062/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2062
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2062/artifact/output/*zip*/output.zip
    FAILURE: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2062/console
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2062
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2062/artifact/output/*zip*/output.zip
    FAILURE: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2062/console
    FAILURE: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2062/console
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2062
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2062/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2062
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2062/artifact/output/*zip*/output.zip
    FAILURE: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2062/console

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

review: Needs Fixing (continuous-integration)
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal

FAILED: Continuous integration, rev:2410
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1606/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2141
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1126
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1126
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1126
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2169
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2078
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2078
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2078
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2069
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2069/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2069
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2069/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2069
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2069/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2069
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2069/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2069
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2069/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2069
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2069/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2069
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2069/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2069
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2069/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2069
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2069/artifact/output/*zip*/output.zip

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

review: Needs Fixing (continuous-integration)
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal

FAILED: Continuous integration, rev:2411
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1608/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2143
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1128
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1128
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1128
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2171
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2080
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2080
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2080
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2071
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2071/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2071
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2071/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2071
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2071/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2071
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2071/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2071
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2071/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2071
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2071/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2071
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2071/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2071
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2071/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2071
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2071/artifact/output/*zip*/output.zip

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

review: Needs Fixing (continuous-integration)
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Lukáš Tinkl (lukas-kde) wrote : Posted in a previous version of this proposal

Text conflict in qml/Greeter/DelayedLockscreen.qml
Text conflict in qml/Greeter/Greeter.qml
Text conflict in qml/Greeter/NarrowView.qml
Text conflict in qml/Greeter/WideView.qml
Text conflict in tests/qmltests/Greeter/TestView.qml
Text conflict in tests/qmltests/Greeter/tst_Greeter.qml
Text conflict in tests/qmltests/Greeter/tst_NarrowView.qml
Text conflict in tests/qmltests/Greeter/tst_WideView.qml

review: Needs Fixing
Michael Terry (mterry) wrote : Posted in a previous version of this proposal

OK, fixed merge conflicts, but there was a fair bit of bzr surgery. I haven't tested yet, waiting on debs from jenkins.

Michael Terry (mterry) wrote : Posted in a previous version of this proposal

I tested this real quickly with device-built debs and it seemed to work fine.

Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal

FAILED: Continuous integration, rev:2006
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1698/
Executed test runs:
    FAILURE: https://unity8-jenkins.ubuntu.com/job/build/2245/console
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2273
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2179
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2179
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2179
    FAILURE: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2170/console
    FAILURE: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2170/console
    FAILURE: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2170/console
    FAILURE: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2170/console
    FAILURE: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2170/console
    FAILURE: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2170/console
    FAILURE: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2170/console
    FAILURE: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2170/console
    FAILURE: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2170/console

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

review: Needs Fixing (continuous-integration)
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal

FAILED: Continuous integration, rev:2015
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1792/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2346
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1255
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1255
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1255
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2374
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2261
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2261
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2261
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2254
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2254/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2254
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2254/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2254
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2254/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2254
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2254/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2254
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2254/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2254
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2254/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2254
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2254/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2254
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2254/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2254
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2254/artifact/output/*zip*/output.zip

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

review: Needs Fixing (continuous-integration)
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal

FAILED: Continuous integration, rev:2016
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1872/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2444
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1330
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1330
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1330
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2472
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2359
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2359
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2359
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2352
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2352/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2352
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2352/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2352
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2352/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2352
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2352/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2352
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2352/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2352
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2352/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2352
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2352/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2352
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2352/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2352
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2352/artifact/output/*zip*/output.zip

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

review: Needs Fixing (continuous-integration)
Unity8 CI Bot (unity8-ci-bot) wrote : Posted in a previous version of this proposal

FAILED: Continuous integration, rev:2017
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1880/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2454
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1335
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1335
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1335
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2482
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2369
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2369
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2369
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2362
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2362/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2362
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2362/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2362
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2362/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2362
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2362/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2362
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2362/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2362
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2362/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2362
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2362/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2362
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2362/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2362
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2362/artifact/output/*zip*/output.zip

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

review: Needs Fixing (continuous-integration)
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2019
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/1946/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2545
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1379
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1379
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1379
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2573
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2453
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2453
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2453
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2446
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2446/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2446
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2446/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2446
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2446/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2446
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2446/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2446
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2446/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2446
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2446/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2446
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2446/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2446
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2446/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2446
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2446/artifact/output/*zip*/output.zip

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

review: Needs Fixing (continuous-integration)
2558. By Michael Terry on 2016-08-22

Just always link to mock liblightdm, especially now that our mock AS module needs it

2559. By Michael Terry on 2016-08-22

Don't set mock backgrounds if none exist

Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2020
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2002/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2626
    FAILURE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1434/console
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1434
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1434
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2654
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2530
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2530
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2530
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2524
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2524/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2524
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2524/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2524
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2524/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2524
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2524/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2524
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2524/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2524
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2524/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2524
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2524/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2524
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2524/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2524
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2524/artifact/output/*zip*/output.zip

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

review: Needs Fixing (continuous-integration)
Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:2021
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2009/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2634
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1439
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1439
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1439
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2662
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2536
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2536
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2536
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2530
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2530/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2530
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2530/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2530
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2530/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2530
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2530/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2530
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2530/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2530
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2530/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2530
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2530/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2530
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2530/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2530
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2530/artifact/output/*zip*/output.zip

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

review: Approve (continuous-integration)
Unity8 CI Bot (unity8-ci-bot) wrote :

PASSED: Continuous integration, rev:2023
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2019/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2645
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1450
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1450
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1450
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2673
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2547
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2547
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2547
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2541
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2541/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2541
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2541/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2541
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2541/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2541
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2541/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2541
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2541/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2541
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2541/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2541
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2541/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2541
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2541/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2541
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2541/artifact/output/*zip*/output.zip

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

review: Approve (continuous-integration)
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2024
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2020/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2648
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1451
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1451
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1451
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2676
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2549
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2549
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2549
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2543
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2543/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2543
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2543/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2543
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2543/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2543
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2543/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2543
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2543/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2543
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2543/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2543
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2543/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2543
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2543/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2543
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2543/artifact/output/*zip*/output.zip

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

review: Needs Fixing (continuous-integration)
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2025
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2031/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2662
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1462
    FAILURE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1462/console
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1462
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2690
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2563
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2563
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2563
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2557
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2557/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2557
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2557/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2557
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2557/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2557
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2557/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2557
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2557/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2557
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2557/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2557
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2557/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2557
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2557/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2557
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2557/artifact/output/*zip*/output.zip

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

review: Needs Fixing (continuous-integration)
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2026
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2036/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2670
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1467
    FAILURE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1467/console
    FAILURE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1467/console
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2698
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2571
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2571
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2571
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2565
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2565/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2565
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2565/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2565
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2565/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2565
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2565/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2565
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2565/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2565
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2565/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2565
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2565/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2565
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2565/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2565
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2565/artifact/output/*zip*/output.zip

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

review: Needs Fixing (continuous-integration)
Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2027
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2040/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2678
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1471
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1471
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1471
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2706
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=vivid+overlay/2579
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=xenial+overlay/2579
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-1-sourcepkg/release=yakkety/2579
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2572
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2572/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2572
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2572/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2572
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2572/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2572
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2572/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2572
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2572/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2572
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2572/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2572
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2572/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2572
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2572/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2572
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2572/artifact/output/*zip*/output.zip

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

review: Needs Fixing (continuous-integration)
Albert Astals Cid (aacid) wrote :

I can't find in the linked document anywhere that says that we should not be using a PIN pad anymore for PINs, can you please talk to me when you're online?

review: Needs Information
Michael Terry (mterry) wrote :

Just to keep info in the MP, we discussed this on IRC -- the linked document doesn't specifically discuss PINs (passcodes) but it has been discussed in person with the design team. The goal is to unify the lockscreen for all form factors and allow multi-user lists even with passcodes.

Albert Astals Cid (aacid) wrote :

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

 * Did CI run pass? If not, please explain why.
Yes, except known unstable unrelated test

review: Approve
2560. By Michael Terry on 2016-08-30

Merge greeter-apps

2561. By Michael Terry on 2016-08-30

Add an indicator to the greeter when a user is logged in (only shown if we have more than one user)

2562. By Michael Terry on 2016-08-30

Hide the greeter OSK if indicators are open and don't show the edge tutorial during an emergency call.

2563. By Michael Terry on 2016-08-30

Switch from lockscreen PIN pad to a passcode entry box that uses the OSK.

2564. By Michael Terry on 2016-09-06

Merge greeter-tiny-bugs

Unity8 CI Bot (unity8-ci-bot) wrote :

FAILED: Continuous integration, rev:2564
https://unity8-jenkins.ubuntu.com/job/lp-unity8-ci/2123/
Executed test runs:
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build/2791
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=vivid+overlay,testname=qmluitests.sh/1546
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=xenial+overlay,testname=qmluitests.sh/1546
    UNSTABLE: https://unity8-jenkins.ubuntu.com/job/test-0-autopkgtest/label=amd64,release=yakkety,testname=qmluitests.sh/1546
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-0-fetch/2819
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2679
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=vivid+overlay/2679/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2679
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=xenial+overlay/2679/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2679
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=amd64,release=yakkety/2679/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2679
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=vivid+overlay/2679/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2679
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=xenial+overlay/2679/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2679
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=armhf,release=yakkety/2679/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2679
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=vivid+overlay/2679/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2679
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=xenial+overlay/2679/artifact/output/*zip*/output.zip
    SUCCESS: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2679
        deb: https://unity8-jenkins.ubuntu.com/job/build-2-binpkg/arch=i386,release=yakkety/2679/artifact/output/*zip*/output.zip

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

review: Needs Fixing (continuous-integration)
Michał Sawicz (saviq) wrote :

This causes bug #1623430

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
1=== modified file 'qml/Components/Lockscreen.qml'
2--- qml/Components/Lockscreen.qml 2016-05-26 20:59:30 +0000
3+++ qml/Components/Lockscreen.qml 2016-09-06 13:57:13 +0000
4@@ -41,9 +41,6 @@
5 // The text to be displayed in case the login failed
6 property string errorText: ""
7
8- // If > 0, a forced delay is happening
9- property int delayMinutes: 0
10-
11 // Set those to a value greater 0 to restrict the pin length.
12 // If both are unset, the Lockscreen will show a confirm button and allow typing any length of pin before
13 // confirming. If minPinLength is set to a value > 0, the confirm button will only become active when the
14@@ -91,14 +88,6 @@
15 popup.z = Number.MAX_VALUE
16 }
17
18- function showText(text) {
19- // Programmatically enters the given text into the lockscreen
20- if (pinPadLoader.item) {
21- pinPadLoader.item.showText(text);
22- pinPadLoader.waiting = true;
23- }
24- }
25-
26 Rectangle {
27 // In case background fails to load
28 id: backgroundBackup
29@@ -141,8 +130,6 @@
30 source: {
31 if (resetting || !root.required) {
32 return ""
33- } else if (root.delayMinutes > 0) {
34- return "DelayedLockscreen.qml"
35 } else if (root.alphaNumeric) {
36 return "PassphraseLockscreen.qml"
37 } else {
38@@ -199,16 +186,6 @@
39 }
40 Binding {
41 target: pinPadLoader.item
42- property: "alphaNumeric"
43- value: root.alphaNumeric
44- }
45- Binding {
46- target: pinPadLoader.item
47- property: "delayMinutes"
48- value: root.delayMinutes
49- }
50- Binding {
51- target: pinPadLoader.item
52 property: "showCancelButton"
53 value: root.showCancelButton
54 }
55
56=== modified file 'qml/Components/PassphraseLockscreen.qml'
57--- qml/Components/PassphraseLockscreen.qml 2016-05-25 19:25:51 +0000
58+++ qml/Components/PassphraseLockscreen.qml 2016-09-06 13:57:13 +0000
59@@ -43,10 +43,6 @@
60 }
61 }
62
63- function showText(text) {
64- pinentryField.text = text;
65- }
66-
67 Column {
68 id: shakeContainer
69 anchors.horizontalCenter: parent.horizontalCenter
70
71=== modified file 'qml/Components/PinLockscreen.qml'
72--- qml/Components/PinLockscreen.qml 2016-05-25 19:25:51 +0000
73+++ qml/Components/PinLockscreen.qml 2016-09-06 13:57:13 +0000
74@@ -46,10 +46,6 @@
75 }
76 }
77
78- function showText(text) {
79- pinentryField.text = text;
80- }
81-
82 Keys.onPressed: {
83 if (pinentryField.text.length == root.maxPinLength)
84 return;
85
86=== renamed file 'qml/Components/DelayedLockscreen.qml' => 'qml/Greeter/DelayedLockscreen.qml'
87--- qml/Components/DelayedLockscreen.qml 2016-05-25 19:25:51 +0000
88+++ qml/Greeter/DelayedLockscreen.qml 2016-09-06 13:57:13 +0000
89@@ -1,5 +1,5 @@
90 /*
91- * Copyright (C) 2013,2014 Canonical, Ltd.
92+ * Copyright (C) 2013-2016 Canonical, Ltd.
93 *
94 * This program is free software; you can redistribute it and/or modify
95 * it under the terms of the GNU General Public License as published by
96@@ -16,7 +16,6 @@
97
98 import QtQuick 2.4
99 import Ubuntu.Components 1.3
100-import "../Components"
101
102 Item {
103 id: root
104@@ -24,12 +23,6 @@
105 property int delayMinutes
106 property bool alphaNumeric
107
108- signal entered(string passphrase) // unused
109- signal cancel() // unused
110-
111- function clear(playAnimation) {}
112- function showText(text) {}
113-
114 Column {
115 anchors.left: parent.left
116 anchors.right: parent.right
117@@ -46,7 +39,7 @@
118 horizontalAlignment: Text.AlignHCenter
119 wrapMode: Text.Wrap
120 fontSize: "x-large"
121- color: "#f3f3e7"
122+ color: "white"
123 text: i18n.tr("Device Locked")
124 }
125
126@@ -60,7 +53,7 @@
127 anchors.right: parent.right
128 horizontalAlignment: Text.AlignHCenter
129 wrapMode: Text.Wrap
130- color: "#f3f3e7"
131+ color: "white"
132 text: alphaNumeric ?
133 i18n.tr("You have been locked out due to too many failed passphrase attempts.") :
134 i18n.tr("You have been locked out due to too many failed passcode attempts.")
135@@ -71,7 +64,7 @@
136 anchors.right: parent.right
137 horizontalAlignment: Text.AlignHCenter
138 wrapMode: Text.Wrap
139- color: "#f3f3e7"
140+ color: "white"
141 text: i18n.tr("Please wait %1 minute and then try again…",
142 "Please wait %1 minutes and then try again…",
143 root.delayMinutes).arg(root.delayMinutes)
144@@ -83,10 +76,8 @@
145 }
146
147 Icon {
148- // It would be nice to use a less network-specific name,
149- // but this is the only lock icon we have.
150- name: "network-secure"
151- color: "#f3f3e7"
152+ name: "lock"
153+ color: "white"
154 height: units.gu(4)
155 width: units.gu(4)
156 anchors.horizontalCenter: parent.horizontalCenter
157
158=== modified file 'qml/Greeter/Greeter.qml'
159--- qml/Greeter/Greeter.qml 2016-09-06 13:57:11 +0000
160+++ qml/Greeter/Greeter.qml 2016-09-06 13:57:13 +0000
161@@ -72,9 +72,12 @@
162 }
163 forcedUnlock = false;
164 if (required) {
165+ if (loader.item) {
166+ loader.item.reset(true /* forceShow */);
167+ }
168 // Normally loader.onLoaded will select a user, but if we're
169 // already shown, do it manually.
170- d.selectUser(d.currentIndex, true);
171+ d.selectUser(d.currentIndex, false);
172 }
173
174 // Even though we may already be shown, we want to call show() for its
175@@ -194,7 +197,7 @@
176 return;
177 d.waiting = true;
178 if (reset) {
179- loader.item.reset();
180+ loader.item.reset(false /* forceShow */);
181 }
182 currentIndex = index;
183 var user = LightDMService.users.data(index, LightDMService.userRoles.NameRole);
184@@ -238,6 +241,29 @@
185 }
186 }
187 }
188+
189+ function showPromptMessage(text, isError) {
190+ // inefficient, but we only rarely deal with messages
191+ var html = text.replace(/&/g, "&")
192+ .replace(/</g, "&lt;")
193+ .replace(/>/g, "&gt;")
194+ .replace(/\n/g, "<br>");
195+ if (isError) {
196+ html = "<font color=\"#df382c\">" + html + "</font>";
197+ }
198+
199+ if (loader.item) {
200+ loader.item.showMessage(html);
201+ }
202+ }
203+
204+ function showFingerprintMessage(msg) {
205+ if (loader.item) {
206+ loader.item.reset(false /* forceShow */);
207+ loader.item.showErrorMessage(msg);
208+ }
209+ showPromptMessage(msg, true);
210+ }
211 }
212
213 onLauncherOffsetChanged: {
214@@ -452,20 +478,7 @@
215 onShowGreeter: root.forceShow()
216 onHideGreeter: root.forcedUnlock = true
217
218- onShowMessage: {
219- // inefficient, but we only rarely deal with messages
220- var html = text.replace(/&/g, "&amp;")
221- .replace(/</g, "&lt;")
222- .replace(/>/g, "&gt;")
223- .replace(/\n/g, "<br>");
224- if (isError) {
225- html = "<font color=\"#df382c\">" + html + "</font>";
226- }
227-
228- if (loader.item) {
229- loader.item.showMessage(html);
230- }
231- }
232+ onShowMessage: d.showPromptMessage(text, isError)
233
234 onShowPrompt: {
235 if (loader.item) {
236@@ -573,10 +586,8 @@
237 if (!d.secureFingerprint) {
238 d.startUnlock(false /* toTheRight */); // use normal login instead
239 }
240- if (loader.item) {
241- var msg = d.secureFingerprint ? i18n.tr("Try again") : "";
242- loader.item.showErrorMessage(msg);
243- }
244+ var msg = d.secureFingerprint ? i18n.tr("Try again") : "";
245+ d.showFingerprintMessage(msg);
246 }
247
248 Component.onCompleted: restartOperation()
249@@ -594,8 +605,10 @@
250 return;
251 }
252 console.log("Identified user by fingerprint:", result);
253- if (loader.item)
254+ if (loader.item) {
255+ loader.item.enabled = false;
256 loader.item.notifyAuthenticationSucceeded(true /* showFakePassword */);
257+ }
258 if (root.active)
259 root.forcedUnlock = true;
260 }
261
262=== modified file 'qml/Greeter/GreeterPrompt.qml'
263--- qml/Greeter/GreeterPrompt.qml 2016-07-08 13:25:40 +0000
264+++ qml/Greeter/GreeterPrompt.qml 2016-09-06 13:57:13 +0000
265@@ -38,6 +38,16 @@
266 d.enabled = true;
267 }
268
269+ function showFakePassword() {
270+ // Just a silly hack for looking like 4 pin numbers got entered, if
271+ // a fingerprint was used and we happen to be using a pin. This was
272+ // a request from Design.
273+ if (isSecret && isPrompt && !isAlphanumeric) {
274+ d.enabled = false;
275+ text = "...."; // actual text doesn't matter
276+ }
277+ }
278+
279 StyledItem {
280 id: d
281
282@@ -50,6 +60,12 @@
283 : theme.palette.disabled.raisedSecondaryText
284 readonly property color errorColor: passwordInput.enabled ? theme.palette.normal.negative
285 : theme.palette.disabled.negative
286+
287+ onEnabledChanged: {
288+ if (!enabled) {
289+ fakeLabel.text = passwordInput.displayText;
290+ }
291+ }
292 }
293
294 Rectangle {
295@@ -142,15 +158,13 @@
296 }
297 }
298
299- onAccepted: {
300- if (d.enabled)
301- respond();
302- }
303+ onAccepted: respond()
304
305 function respond() {
306- d.enabled = false;
307- fakeLabel.text = displayText;
308- root.responded(text);
309+ if (d.enabled) {
310+ d.enabled = false;
311+ root.responded(text);
312+ }
313 }
314
315 Keys.onEscapePressed: {
316
317=== modified file 'qml/Greeter/LoginList.qml'
318--- qml/Greeter/LoginList.qml 2016-09-06 13:57:11 +0000
319+++ qml/Greeter/LoginList.qml 2016-09-06 13:57:13 +0000
320@@ -29,6 +29,7 @@
321 property int currentIndex
322 property bool locked
323 property bool waiting
324+ property alias boxVerticalOffset: highlightItem.y
325
326 readonly property alias passwordInput: passwordInput
327 readonly property int numAboveBelow: 4
328@@ -84,6 +85,10 @@
329 root.resetAuthentication();
330 }
331
332+ function showFakePassword() {
333+ passwordInput.showFakePassword();
334+ }
335+
336 QtObject {
337 id: d
338
339@@ -123,12 +128,12 @@
340
341 LoginAreaContainer {
342 id: highlightItem
343+ objectName: "highlightItem"
344 anchors {
345 left: parent.left
346 leftMargin: units.gu(2)
347 right: parent.right
348 rightMargin: units.gu(2)
349- verticalCenter: parent.verticalCenter
350 }
351
352 height: root.highlightedHeight
353@@ -142,8 +147,8 @@
354 anchors.leftMargin: units.gu(2)
355 anchors.rightMargin: units.gu(2)
356
357- preferredHighlightBegin: userList.height / 2 - root.highlightedHeight / 2
358- preferredHighlightEnd: userList.height / 2 - root.highlightedHeight / 2
359+ preferredHighlightBegin: highlightItem.y
360+ preferredHighlightEnd: highlightItem.y
361 highlightRangeMode: ListView.StrictlyEnforceRange
362 highlightMoveDuration: root.moveDuration
363 flickDeceleration: 10000
364@@ -352,6 +357,7 @@
365
366 WrongPasswordAnimation {
367 id: wrongPasswordAnimation
368+ objectName: "wrongPasswordAnimation"
369 target: passwordInput
370 }
371 }
372
373=== modified file 'qml/Greeter/NarrowView.qml'
374--- qml/Greeter/NarrowView.qml 2016-09-06 13:57:11 +0000
375+++ qml/Greeter/NarrowView.qml 2016-09-06 13:57:13 +0000
376@@ -15,7 +15,9 @@
377 */
378
379 import QtQuick 2.4
380+import QtQuick.Window 2.2
381 import Ubuntu.Components 1.3
382+import Ubuntu.Telephony 0.1 as Telephony
383 import "../Components"
384
385 FocusScope {
386@@ -23,13 +25,13 @@
387
388 property alias dragHandleLeftMargin: coverPage.dragHandleLeftMargin
389 property alias launcherOffset: coverPage.launcherOffset
390- property int currentIndex // unused
391- property alias delayMinutes: lockscreen.delayMinutes
392+ property alias currentIndex: loginList.currentIndex
393+ property alias delayMinutes: delayedLockscreen.delayMinutes
394 property alias backgroundTopMargin: coverPage.backgroundTopMargin
395 property url background
396 property bool locked
397- property bool alphanumeric
398- property var userModel // unused
399+ property alias alphanumeric: loginList.alphanumeric
400+ property alias userModel: loginList.model
401 property alias infographicModel: coverPage.infographicModel
402 property string sessionToStart
403 property bool waiting
404@@ -37,21 +39,25 @@
405 readonly property bool required: coverPage.required || lockscreen.required
406 readonly property bool animating: coverPage.showAnimation.running || coverPage.hideAnimation.running
407
408- signal selected(int index) // unused
409+ // so that it can be replaced in tests with a mock object
410+ property var inputMethod: Qt.inputMethod
411+
412+ signal selected(int index)
413 signal responded(string response)
414 signal tease()
415 signal emergencyCall()
416
417 function showMessage(html) {
418- // TODO
419+ loginList.showMessage(html);
420 }
421
422 function showPrompt(text, isSecret, isDefaultPrompt) {
423- lockscreen.promptText = isDefaultPrompt ? "" : text.toLowerCase();
424- lockscreen.maybeShow();
425+ loginList.showPrompt(text, isSecret, isDefaultPrompt);
426 }
427
428 function showLastChance() {
429+ /* TODO: when we finish support for resetting device after too many
430+ failed logins, we should re-add this popup.
431 var title = lockscreen.alphaNumeric ?
432 i18n.tr("Sorry, incorrect passphrase.") :
433 i18n.tr("Sorry, incorrect passcode.");
434@@ -60,6 +66,7 @@
435 i18n.tr("If passphrase is entered incorrectly, your phone will conduct a factory reset and all personal data will be deleted.") :
436 i18n.tr("If passcode is entered incorrectly, your phone will conduct a factory reset and all personal data will be deleted."));
437 lockscreen.showInfoPopup(title, text);
438+ */
439 }
440
441 function hide() {
442@@ -68,27 +75,24 @@
443 }
444
445 function notifyAuthenticationSucceeded(showFakePassword) {
446- // When using an alternate log in mechanism like fingerprints, the
447- // design is it looks like the user entered a passcode.
448- if (!alphanumeric && showFakePassword) {
449- lockscreen.showText("...."); // actual text doesn't matter, we show bullets
450+ if (showFakePassword) {
451+ loginList.showFakePassword();
452 }
453 }
454
455 function notifyAuthenticationFailed() {
456- lockscreen.customError = "";
457- lockscreen.clear(true);
458+ loginList.showError();
459 }
460
461 function showErrorMessage(msg) {
462 coverPage.showErrorMessage(msg);
463- lockscreen.customError = msg ? msg : " "; // avoid default message
464- lockscreen.clear(true);
465 }
466
467- function reset() {
468- lockscreen.customError = "";
469- coverPage.show();
470+ function reset(forceShow) {
471+ loginList.reset();
472+ if (forceShow) {
473+ coverPage.show();
474+ }
475 }
476
477 function tryToUnlock(toTheRight) {
478@@ -110,48 +114,62 @@
479 }
480 }
481
482- Lockscreen {
483+ Showable {
484 id: lockscreen
485 objectName: "lockscreen"
486-
487+ anchors.fill: parent
488 shown: false
489+
490 showAnimation: StandardAnimation { property: "opacity"; to: 1 }
491 hideAnimation: StandardAnimation { property: "opacity"; to: 0 }
492- anchors.fill: parent
493- visible: required
494- enabled: !coverPage.shown
495- background: root.background
496- darkenBackground: 0.4
497- alphaNumeric: root.alphanumeric
498- minPinLength: 4
499- maxPinLength: 4
500-
501- property string promptText
502- infoText: promptText !== "" ? i18n.tr("Enter %1").arg(promptText) :
503- alphaNumeric ? i18n.tr("Enter passphrase") :
504- i18n.tr("Enter passcode")
505-
506- property string customError
507- errorText: customError !== "" ? customError :
508- promptText !== "" ? i18n.tr("Sorry, incorrect %1").arg(promptText) :
509- alphaNumeric ? i18n.tr("Sorry, incorrect passphrase") + "\n" +
510- i18n.ctr("passphrase", "Please re-enter") :
511- i18n.tr("Sorry, incorrect passcode")
512-
513- onEntered: root.responded(passphrase)
514- onCancel: coverPage.show()
515- onEmergencyCall: root.emergencyCall()
516-
517- onEnabledChanged: {
518- if (enabled) {
519- lockscreen.forceActiveFocus();
520- }
521- }
522-
523- onVisibleChanged: {
524- if (visible) {
525- lockscreen.forceActiveFocus();
526- }
527+
528+ CrossFadeImage {
529+ id: lockscreenBackground
530+ objectName: "lockscreenBackground"
531+ anchors {
532+ fill: parent
533+ topMargin: root.backgroundTopMargin
534+ }
535+ source: root.background
536+ fillMode: Image.PreserveAspectCrop
537+ // Limit how much memory we'll reserve for this image
538+ sourceSize.height: Math.max(Screen.width, Screen.height)
539+ sourceSize.width: 0
540+ }
541+
542+ // Darken background to match CoverPage
543+ Rectangle {
544+ anchors.fill: parent
545+ color: "black"
546+ opacity: 0.4
547+ }
548+
549+ LoginList {
550+ id: loginList
551+ objectName: "loginList"
552+
553+ anchors {
554+ horizontalCenter: parent.horizontalCenter
555+ top: parent.top
556+ bottom: parent.bottom
557+ }
558+ width: units.gu(40)
559+ boxVerticalOffset: units.gu(14)
560+ enabled: !coverPage.shown && visible
561+ visible: !delayedLockscreen.visible
562+
563+ locked: root.locked
564+
565+ onSelected: if (enabled) root.selected(index)
566+ onResponded: root.responded(response)
567+ }
568+
569+ DelayedLockscreen {
570+ id: delayedLockscreen
571+ objectName: "delayedLockscreen"
572+ anchors.fill: parent
573+ visible: delayMinutes > 0
574+ alphaNumeric: loginList.alphanumeric
575 }
576
577 function maybeShow() {
578@@ -179,15 +197,9 @@
579
580 onShowProgressChanged: {
581 if (showProgress === 1) {
582- lockscreen.reset();
583- }
584-
585- if (showProgress === 0) {
586- if (root.locked) {
587- lockscreen.clear(false); // to reset focus if necessary
588- } else {
589- root.responded("");
590- }
591+ loginList.reset();
592+ } else if (showProgress === 0) {
593+ loginList.tryToUnlock();
594 }
595 }
596
597@@ -199,4 +211,78 @@
598 }
599 }
600 }
601+
602+ StyledItem {
603+ id: bottomBar
604+ visible: lockscreen.shown
605+ height: units.gu(4)
606+
607+ anchors.left: parent.left
608+ anchors.right: parent.right
609+ anchors.top: parent.bottom
610+ anchors.topMargin: - height * (1 - coverPage.showProgress)
611+ - (inputMethod && inputMethod.visible ?
612+ inputMethod.keyboardRectangle.height : 0)
613+
614+ Rectangle {
615+ color: UbuntuColors.porcelain // matches OSK background
616+ anchors.fill: parent
617+ }
618+
619+ Label {
620+ text: i18n.tr("Cancel")
621+ anchors.left: parent.left
622+ anchors.leftMargin: units.gu(2)
623+ anchors.top: parent.top
624+ anchors.bottom: parent.bottom
625+ verticalAlignment: Text.AlignVCenter
626+ font.weight: Font.Light
627+ fontSize: "small"
628+ color: UbuntuColors.slate
629+
630+ AbstractButton {
631+ anchors.fill: parent
632+ anchors.leftMargin: -units.gu(2)
633+ anchors.rightMargin: -units.gu(2)
634+ onClicked: coverPage.show()
635+ }
636+ }
637+
638+ Label {
639+ objectName: "emergencyCallLabel"
640+ text: callManager.hasCalls ? i18n.tr("Return to Call") : i18n.tr("Emergency")
641+ anchors.right: parent.right
642+ anchors.rightMargin: units.gu(2)
643+ anchors.top: parent.top
644+ anchors.bottom: parent.bottom
645+ verticalAlignment: Text.AlignVCenter
646+ font.weight: Font.Light
647+ fontSize: "small"
648+ color: UbuntuColors.slate
649+ // TODO: uncomment once bug 1616538 is fixed
650+ // visible: telepathyHelper.ready && telepathyHelper.emergencyCallsAvailable
651+ enabled: visible
652+
653+ AbstractButton {
654+ anchors.fill: parent
655+ anchors.leftMargin: -units.gu(2)
656+ anchors.rightMargin: -units.gu(2)
657+ onClicked: root.emergencyCall()
658+ }
659+ }
660+ }
661+
662+ // FIXME: It's difficult to keep something tied closely to the OSK (bug
663+ // 1616163). But as a hack to avoid the background peeking out,
664+ // we add an extra Rectangle that just serves to hide the background
665+ // during OSK animations.
666+ Rectangle {
667+ visible: bottomBar.visible
668+ height: inputMethod && inputMethod.visible ?
669+ inputMethod.keyboardRectangle.height : 0
670+ anchors.bottom: parent.bottom
671+ anchors.left: parent.left
672+ anchors.right: parent.right
673+ color: UbuntuColors.porcelain
674+ }
675 }
676
677=== modified file 'qml/Greeter/WideView.qml'
678--- qml/Greeter/WideView.qml 2016-09-06 13:57:11 +0000
679+++ qml/Greeter/WideView.qml 2016-09-06 13:57:13 +0000
680@@ -51,7 +51,7 @@
681 loginList.showError();
682 }
683
684- function reset() {
685+ function reset(forceShow) {
686 loginList.reset();
687 }
688
689@@ -83,8 +83,10 @@
690 coverPage.hide();
691 }
692
693- function notifyAuthenticationSucceeded() {
694- // Nothing needed
695+ function notifyAuthenticationSucceeded(showFakePassword) {
696+ if (showFakePassword) {
697+ loginList.showFakePassword();
698+ }
699 }
700
701 function showLastChance() {
702@@ -122,15 +124,19 @@
703 id: loginList
704 objectName: "loginList"
705
706- height: inputMethod && inputMethod.visible ?
707- parent.height - inputMethod.keyboardRectangle.height : parent.height
708 width: units.gu(40)
709 anchors {
710 left: parent.left
711 leftMargin: Math.min(parent.width * 0.16, units.gu(20))
712 top: parent.top
713+ bottom: parent.bottom
714 }
715
716+ boxVerticalOffset: (height - highlightedHeight -
717+ (inputMethod && inputMethod.visible ?
718+ inputMethod.keyboardRectangle.height : 0)) / 2
719+ Behavior on boxVerticalOffset { UbuntuNumberAnimation {} }
720+
721 model: root.userModel
722 currentSession: LightDMService.greeter.defaultSession
723 onResponded: root.responded(response)
724
725=== modified file 'tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.cpp'
726--- tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.cpp 2014-04-30 18:06:38 +0000
727+++ tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.cpp 2016-09-06 13:57:13 +0000
728@@ -20,6 +20,8 @@
729
730 MockTelepathyHelper::MockTelepathyHelper(QObject *parent)
731 : QObject(parent)
732+ , m_ready(true)
733+ , m_emergencyCallsAvailable(true)
734 {
735 }
736
737@@ -33,3 +35,28 @@
738 {
739 Q_UNUSED(name);
740 }
741+
742+bool MockTelepathyHelper::ready() const
743+{
744+ return m_ready;
745+}
746+
747+void MockTelepathyHelper::setReady(bool value)
748+{
749+ if (m_ready != value) {
750+ m_ready = value;
751+ Q_EMIT readyChanged();
752+ }
753+}
754+bool MockTelepathyHelper::emergencyCallsAvailable() const
755+{
756+ return m_emergencyCallsAvailable;
757+}
758+
759+void MockTelepathyHelper::setEmergencyCallsAvailable(bool value)
760+{
761+ if (m_emergencyCallsAvailable != value) {
762+ m_emergencyCallsAvailable = value;
763+ Q_EMIT emergencyCallsAvailableChanged();
764+ }
765+}
766
767=== modified file 'tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.h'
768--- tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.h 2014-04-30 18:06:38 +0000
769+++ tests/mocks/Ubuntu/Telephony/MockTelepathyHelper.h 2016-09-06 13:57:13 +0000
770@@ -24,6 +24,14 @@
771 class MockTelepathyHelper : public QObject
772 {
773 Q_OBJECT
774+ Q_PROPERTY(bool ready
775+ READ ready
776+ WRITE setReady // only in mock
777+ NOTIFY readyChanged)
778+ Q_PROPERTY(bool emergencyCallsAvailable
779+ READ emergencyCallsAvailable
780+ WRITE setEmergencyCallsAvailable // only in mock
781+ NOTIFY emergencyCallsAvailableChanged)
782 Q_DISABLE_COPY(MockTelepathyHelper)
783 public:
784 MockTelepathyHelper(QObject *parent = 0);
785@@ -31,6 +39,20 @@
786 static MockTelepathyHelper *instance();
787
788 Q_INVOKABLE void registerChannelObserver(const QString& name);
789+
790+ bool ready() const;
791+ void setReady(bool value);
792+
793+ bool emergencyCallsAvailable() const;
794+ void setEmergencyCallsAvailable(bool value);
795+
796+Q_SIGNALS:
797+ void readyChanged();
798+ void emergencyCallsAvailableChanged();
799+
800+private:
801+ bool m_ready;
802+ bool m_emergencyCallsAvailable;
803 };
804
805 #endif // MOCKCONTACTWATCHER_H
806
807=== modified file 'tests/qmltests/Components/tst_Lockscreen.qml'
808--- tests/qmltests/Components/tst_Lockscreen.qml 2016-05-26 20:59:30 +0000
809+++ tests/qmltests/Components/tst_Lockscreen.qml 2016-09-06 13:57:13 +0000
810@@ -37,7 +37,6 @@
811 alphaNumeric: pinPadCheckBox.checked
812 minPinLength: minPinLengthTextField.text
813 maxPinLength: maxPinLengthTextField.text
814- delayMinutes: delayMinutesTextField.text
815 background: "../../../qml/graphics/phone_background.jpg"
816 }
817
818@@ -109,16 +108,6 @@
819 text: "Retries left"
820 }
821 }
822- Row {
823- TextField {
824- id: delayMinutesTextField
825- width: units.gu(7)
826- text: "0"
827- }
828- Label {
829- text: "Delay Minutes"
830- }
831- }
832 Label {
833 id: pinLabel
834 anchors.verticalCenter: parent.verticalCenter
835@@ -172,7 +161,6 @@
836
837 function cleanup() {
838 lockscreen.clear(false);
839- delayMinutesTextField.text = "0"
840 enteredLabel.text = "";
841
842 // Reset sizing
843@@ -455,32 +443,6 @@
844 compare(label.text, data.text);
845 }
846
847- function test_delayMinutes() {
848- delayMinutesTextField.text = "4"
849- waitForLockscreenReady()
850- var label = findChild(lockscreen, "deviceLockedLabel")
851- compare(label.text, "Device Locked")
852- }
853-
854- function test_showText_data() {
855- return [
856- { tag: "alphanumeric", alphanumeric: true },
857- { tag: "pinPad", alphanumeric: false },
858- ]
859- }
860-
861- function test_showText(data) {
862- pinPadCheckBox.checked = data.alphanumeric;
863- waitForLockscreenReady();
864-
865- lockscreen.showText("test");
866-
867- var pinPadLoader = findChild(lockscreen, "pinPadLoader");
868- verify(pinPadLoader.waiting);
869- compare(enteredLabel.text, ""); // no entered signal should occur
870- compare(lockscreen.passphrase, "test");
871- }
872-
873 function test_resize_data() {
874 return [
875 { tag: "small", width: units.gu(40), height: units.gu(76) },
876
877=== modified file 'tests/qmltests/Greeter/TestView.qml'
878--- tests/qmltests/Greeter/TestView.qml 2016-06-27 18:59:20 +0000
879+++ tests/qmltests/Greeter/TestView.qml 2016-09-06 13:57:13 +0000
880@@ -51,7 +51,7 @@
881 signal _notifyAuthenticationSucceededCalled(bool showFakePassword)
882 signal _notifyAuthenticationFailedCalled()
883 signal _showErrorMessageCalled(string msg)
884- signal _resetCalled()
885+ signal _resetCalled(bool forceShow)
886 signal _tryToUnlockCalled(bool toTheRight)
887
888 function showMessage(html) {
889@@ -84,8 +84,8 @@
890 _showErrorMessageCalled(msg);
891 }
892
893- function reset() {
894- _resetCalled();
895+ function reset(forceShow) {
896+ _resetCalled(forceShow);
897 }
898
899 function tryToUnlock(toTheRight) {
900
901=== modified file 'tests/qmltests/Greeter/tst_Greeter.qml'
902--- tests/qmltests/Greeter/tst_Greeter.qml 2016-07-07 19:52:57 +0000
903+++ tests/qmltests/Greeter/tst_Greeter.qml 2016-09-06 13:57:13 +0000
904@@ -559,6 +559,7 @@
905
906 LightDM.Greeter.showGreeter();
907 compare(viewResetSpy.count, 1);
908+ compare(viewResetSpy.signalArguments[0][0], true);
909 tryCompare(viewShowPromptSpy, "count", 1);
910 }
911
912
913=== modified file 'tests/qmltests/Greeter/tst_NarrowView.qml'
914--- tests/qmltests/Greeter/tst_NarrowView.qml 2016-06-27 18:59:20 +0000
915+++ tests/qmltests/Greeter/tst_NarrowView.qml 2016-09-06 13:57:13 +0000
916@@ -20,6 +20,7 @@
917 import "../../../qml/Greeter"
918 import LightDM.IntegratedLightDM 0.1 as LightDM
919 import Ubuntu.Components 1.3
920+import Ubuntu.Telephony 0.1 as Telephony
921 import Unity.Test 0.1 as UT
922
923 Item {
924@@ -293,6 +294,8 @@
925 function init() {
926 view.currentIndex = 0; // break binding with text field
927
928+ telepathyHelper.ready = true;
929+ telepathyHelper.emergencyCallsAvailable = true;
930 selectedSpy.clear();
931 respondedSpy.clear();
932 teaseSpy.clear();
933@@ -328,14 +331,6 @@
934 waitForRendering(view);
935 }
936
937- function enterPin(pin) {
938- for (var i = 0; i < pin.length; ++i) {
939- var character = pin.charAt(i);
940- var button = findChild(view, "pinPadButton" + character);
941- tap(button);
942- }
943- }
944-
945 function test_tease_data() {
946 return [
947 {tag: "left", x: 0, offset: 0, count: 1},
948@@ -352,8 +347,9 @@
949
950 function test_respondedWithPin() {
951 view.locked = true;
952+ view.showPrompt("", true, true);
953 swipeAwayCover();
954- enterPin("1234");
955+ typeString("1234");
956 compare(respondedSpy.count, 1);
957 compare(respondedSpy.signalArguments[0][0], "1234");
958 }
959@@ -361,6 +357,7 @@
960 function test_respondedWithPassphrase() {
961 view.locked = true;
962 view.alphanumeric = true;
963+ view.showPrompt("", true, true);
964 swipeAwayCover();
965 typeString("test");
966 keyClick(Qt.Key_Enter);
967@@ -382,12 +379,38 @@
968 compare(respondedSpy.signalArguments[0][0], "");
969 }
970
971- function test_emergencyCall() {
972+ function test_emergencyCall_data() {
973+ return [
974+ {tag: "phone", available: true},
975+ {tag: "desktop", available: false},
976+ ];
977+ }
978+ function test_emergencyCall(data) {
979+ telepathyHelper.emergencyCallsAvailable = data.available;
980 view.locked = true;
981 swipeAwayCover();
982 var emergencyCallLabel = findChild(view, "emergencyCallLabel");
983 tap(emergencyCallLabel);
984- compare(emergencySpy.count, 1);
985+ if (!data.available) {
986+ expectFail("", "Bug 1616538 prevents us supporting conditional emergency button support");
987+ }
988+ compare(emergencyCallLabel.visible, data.available ? true : false);
989+ compare(emergencySpy.count, data.available ? 1 : 0);
990+ }
991+
992+ function test_emergencyCallAvailability() {
993+ view.locked = true;
994+ var emergencyCallLabel = findChild(view, "emergencyCallLabel");
995+ verify(emergencyCallLabel.visible);
996+
997+ telepathyHelper.emergencyCallsAvailable = false;
998+ telepathyHelper.ready = true;
999+ expectFail("", "Bug 1616538 prevents us supporting conditional emergency button support");
1000+ verify(!emergencyCallLabel.visible);
1001+
1002+ telepathyHelper.emergencyCallsAvailable = true;
1003+ telepathyHelper.ready = false;
1004+ verify(!emergencyCallLabel.visible);
1005 }
1006
1007 function test_fullyShown() {
1008
1009=== modified file 'tests/qmltests/Greeter/tst_WideView.qml'
1010--- tests/qmltests/Greeter/tst_WideView.qml 2016-09-06 13:57:11 +0000
1011+++ tests/qmltests/Greeter/tst_WideView.qml 2016-09-06 13:57:13 +0000
1012@@ -641,17 +641,21 @@
1013
1014 keyboardVisibleCheckBox.checked = true;
1015
1016- tryCompare(loginList, "height", view.height - view.inputMethod.keyboardRectangle.height);
1017+ var halfway = (view.height - loginList.highlightedHeight) / 2;
1018+ var halfwayWithOsk = halfway - view.inputMethod.keyboardRectangle.height / 2;
1019+ tryCompare(loginList, "boxVerticalOffset", halfwayWithOsk);
1020+
1021+ var highlightItem = findChild(loginList, "highlightItem");
1022 tryCompareFunction( function() {
1023- var loginListRect = loginList.mapToItem(view, 0, 0, loginList.width, loginList.height);
1024- return loginListRect.y + loginListRect.height <= view.inputMethod.keyboardRectangle.y;
1025+ var highlightRect = highlightItem.mapToItem(view, 0, 0, highlightItem.width, highlightItem.height);
1026+ return highlightRect.y + highlightRect.height <= view.inputMethod.keyboardRectangle.y;
1027 }, true);
1028
1029 // once the vkb goes away, loginList goes back to its full height
1030
1031 keyboardVisibleCheckBox.checked = false;
1032
1033- tryCompare(loginList, "height", view.height);
1034+ tryCompare(loginList, "boxVerticalOffset", halfway);
1035 }
1036
1037 function test_passphrase() {
1038
1039=== modified file 'tests/qmltests/tst_ShellWithPin.qml'
1040--- tests/qmltests/tst_ShellWithPin.qml 2016-09-06 13:57:11 +0000
1041+++ tests/qmltests/tst_ShellWithPin.qml 2016-09-06 13:57:13 +0000
1042@@ -154,7 +154,6 @@
1043 var greeter = findChild(shell, "greeter");
1044 sessionSpy.target = greeter;
1045 swipeAwayGreeter(true);
1046- waitForLockscreen()
1047 greeter.failedLoginsDelayAttempts = -1;
1048 greeter.maxFailedLogins = -1;
1049
1050@@ -214,20 +213,16 @@
1051 }
1052 }
1053
1054- function waitForLockscreen() {
1055- var lockscreen = findChild(shell, "lockscreen");
1056- var pinPadLoader = findChild(lockscreen, "pinPadLoader");
1057- tryCompare(pinPadLoader, "status", Loader.Ready)
1058- waitForRendering(lockscreen)
1059- }
1060-
1061 function enterPin(pin) {
1062- for (var i = 0; i < pin.length; ++i) {
1063- var character = pin.charAt(i)
1064- var button = findChild(shell, "pinPadButton" + character)
1065- tryCompare(button, "enabled", true);
1066- tap(button)
1067- }
1068+ typeString(pin);
1069+ }
1070+
1071+ function showGreeter() {
1072+ LightDM.Greeter.showGreeter();
1073+ tryCompare(shell, "waitingOnGreeter", false);
1074+ var coverPage = findChild(shell, "coverPage");
1075+ tryCompare(coverPage, "showProgress", 1);
1076+ removeTimeConstraintsFromSwipeAreas(shell);
1077 }
1078
1079 function confirmLockedApp(app) {
1080@@ -248,7 +243,7 @@
1081 LightDM.Greeter.hideGreeter();
1082 tryCompare(panel.indicators.indicatorsModel, "profile", shell.indicatorProfile);
1083
1084- LightDM.Greeter.showGreeter();
1085+ showGreeter();
1086 tryCompare(panel.indicators.indicatorsModel, "profile", shell.indicatorProfile + "_greeter");
1087
1088 LightDM.Greeter.hideGreeter();
1089@@ -293,7 +288,7 @@
1090
1091 // Cancel emergency mode, and go back to normal
1092 waitForRendering(greeter)
1093- LightDM.Greeter.showGreeter()
1094+ showGreeter()
1095
1096 tryCompare(greeter, "shown", true)
1097 tryCompare(greeter, "lockedApp", "")
1098@@ -336,7 +331,7 @@
1099 enterPin("1234");
1100 tryCompare(tutorial, "paused", false);
1101
1102- LightDM.Greeter.showGreeter();
1103+ showGreeter();
1104 verify(tutorial.paused);
1105
1106 swipeAwayGreeter(true);
1107@@ -358,22 +353,23 @@
1108 var greeter = findChild(shell, "greeter");
1109 greeter.failedLoginsDelayAttempts = 3;
1110
1111- var placeHolder = findChild(shell, "wrongNoticeLabel")
1112- tryCompare(placeHolder, "text", "")
1113-
1114- enterPin("1111")
1115- tryCompare(placeHolder, "text", "Sorry, incorrect passcode")
1116-
1117- enterPin("1111")
1118- tryCompare(placeHolder, "text", "Sorry, incorrect passcode")
1119-
1120- var lockscreen = findChild(shell, "lockscreen")
1121- tryCompare(lockscreen, "delayMinutes", 0)
1122- enterPin("1111")
1123- tryCompare(lockscreen, "delayMinutes", greeter.failedLoginsDelayMinutes);
1124+ var wrongPasswordAnimation = findInvisibleChild(shell, "wrongPasswordAnimation");
1125+
1126+ enterPin("1111")
1127+ verify(wrongPasswordAnimation.running);
1128+
1129+ enterPin("1111")
1130+ verify(wrongPasswordAnimation.running);
1131+
1132+ var delayedLockscreen = findChild(shell, "delayedLockscreen");
1133+ tryCompare(delayedLockscreen, "delayMinutes", 0);
1134+ enterPin("1111")
1135+ tryCompare(delayedLockscreen, "delayMinutes", greeter.failedLoginsDelayMinutes);
1136 }
1137
1138 function test_factoryReset() {
1139+ skip("Factory reset support is not finished")
1140+
1141 maxRetriesTextField.text = "3"
1142 resetSpy.clear()
1143
1144@@ -404,8 +400,7 @@
1145 compare(shell.usageScenario, "phone");
1146 compare(applicationsDisplayLoader.usageScenario, "phone");
1147
1148- var lockscreen = findChild(shell, "lockscreen")
1149- lockscreen.emergencyCall()
1150+ tap(findChild(shell, "emergencyCallLabel"));
1151 confirmLockedApp("dialer-app")
1152
1153 // OK, we're in. Now try (but fail) to switch to tablet mode
1154@@ -432,16 +427,13 @@
1155 // - Should be back in emergency mode dialer
1156
1157 var greeter = findChild(shell, "greeter");
1158- var lockscreen = findChild(shell, "lockscreen");
1159- verify(lockscreen);
1160
1161- lockscreen.emergencyCall();
1162+ tap(findChild(shell, "emergencyCallLabel"));
1163 confirmLockedApp("dialer-app");
1164 callManager.foregroundCall = phoneCall;
1165
1166- LightDM.Greeter.showGreeter();
1167- lockscreen = findChild(shell, "lockscreen");
1168- verify(lockscreen);
1169+ showGreeter();
1170+ var lockscreen = findChild(shell, "lockscreen");
1171 tryCompare(lockscreen, "shown", true);
1172 tryCompare(greeter, "hasLockedApp", false);
1173
1174@@ -484,7 +476,7 @@
1175 }
1176
1177 function test_focusRequestedHidesCoverPage() {
1178- LightDM.Greeter.showGreeter();
1179+ showGreeter();
1180
1181 var app = ApplicationManager.startApplication("gallery-app");
1182 // wait until the app is fully loaded (ie, real surface replaces splash screen)
1183@@ -496,8 +488,7 @@
1184 tryCompare(coverPage, "showProgress", 0);
1185 tryCompare(greeter, "fullyShown", true);
1186
1187- LightDM.Greeter.showGreeter();
1188- tryCompare(coverPage, "showProgress", 1);
1189+ showGreeter();
1190
1191 // Make sure focusing same app triggers same behavior
1192 ApplicationManager.requestFocusApplication("gallery-app");
1193@@ -571,9 +562,7 @@
1194 only after its idle timeout is triggered.
1195 */
1196 function test_shortLeftEdgeSwipeMakesLauncherStayVisible() {
1197- LightDM.Greeter.showGreeter();
1198- var coverPage = testCase.findChild(shell, "coverPage");
1199- tryCompare(coverPage, "showProgress", 1);
1200+ showGreeter();
1201
1202 var launcher = testCase.findChild(shell, "launcher")
1203 var launcherPanel = testCase.findChild(launcher, "launcherPanel");
1204@@ -589,6 +578,7 @@
1205 tryCompare(launcherPanel, "x", 0);
1206
1207 // Greeter should be displaced
1208+ var coverPage = findChild(shell, "coverPage");
1209 tryCompareFunction(function() { return coverPage.mapToItem(shell, 0, 0).x > shell.width*0.2; }, true);
1210
1211 touchRelease(shell, toX, shell.height * 0.5);
1212@@ -611,8 +601,7 @@
1213 tryCompare(shell, "mainApp", galleryApp);
1214
1215 // Show greeter
1216- LightDM.Greeter.showGreeter();
1217- tryCompare(coverPage, "showProgress", 1);
1218+ showGreeter();
1219
1220 // Swipe cover page away
1221 touchFlick(shell, 2, shell.height / 2, units.gu(30), shell.height / 2);

Subscribers

People subscribed via source and target branches