on xenial help sign in
Bring dialer to front on incoming call even when device is locked Fixes: 1354532

Approved by: Nick Dedekind

commit2e906c095e9b77c33aa5c78c1663826c28cb84c7 authorMichael Terry <michael.terry@canonical.com> dateFri 15 Aug 2014, 17:37 (12 years ago) parentd3ba6f85736d56
1 file changed+18−6
qml/Shell.qml+18−6
qml/Shell.qml+18−6
@@ -68,6 +68,13 @@ Item {
6868 }
6969 }
7070
71+ function setFakeActiveForApp(app) {
72+ if (shell.locked) {
73+ greeter.fakeActiveForApp = app
74+ lockscreen.hide()
75+ }
76+ }
77+
7178 Binding {
7279 target: LauncherModel
7380 property: "applicationManager"
@@ -130,7 +137,11 @@ Item {
130137 Connections {
131138 target: ApplicationManager
132139 onFocusRequested: {
133− if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== appId) {
140+ if (appId === "dialer-app") {
141+ // Always let the dialer-app through. Either user asked
142+ // for an emergency call or accepted an incoming call.
143+ setFakeActiveForApp(appId)
144+ } else if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== appId) {
134145 lockscreen.show();
135146 }
136147 greeter.hide();
@@ -147,6 +158,11 @@ Item {
147158 if (greeter.shown && appId != "unity8-dash") {
148159 greeter.hide();
149160 }
161+ if (appId === "dialer-app") {
162+ // Always let the dialer-app through. Either user asked
163+ // for an emergency call or accepted an incoming call.
164+ setFakeActiveForApp(appId)
165+ }
150166 }
151167 }
152168
@@ -239,11 +255,7 @@ Item {
239255
240256 onEntered: LightDM.Greeter.respond(passphrase);
241257 onCancel: greeter.show()
242− onEmergencyCall: {
243− greeter.fakeActiveForApp = "dialer-app"
244− shell.activateApplication("dialer-app")
245− lockscreen.hide()
246− }
258+ onEmergencyCall: shell.activateApplication("dialer-app") // will automatically enter fake-active mode
247259
248260 onShownChanged: if (shown) greeter.fakeActiveForApp = ""
249261