on xenial help sign in
Bring dialer to front on incoming call even when device is locked Fixes: 1354532
2e906c0Michael Terry
qml/Shell.qml+18−6
@@ -68,6 +68,13 @@ Item {
68 }
68 }
69 }
69 }
70
70
71+ function setFakeActiveForApp(app) {
72+ if (shell.locked) {
73+ greeter.fakeActiveForApp = app
74+ lockscreen.hide()
75+ }
76+ }
77+
71 Binding {
78 Binding {
72 target: LauncherModel
79 target: LauncherModel
73 property: "applicationManager"
80 property: "applicationManager"
@@ -130,7 +137,11 @@ Item {
130 Connections {
137 Connections {
131 target: ApplicationManager
138 target: ApplicationManager
132 onFocusRequested: {
139 onFocusRequested: {
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)
133− if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== appId) {
144+ } else if (greeter.fakeActiveForApp !== "" && greeter.fakeActiveForApp !== appId) {
134 lockscreen.show();
145 lockscreen.show();
135 }
146 }
136 greeter.hide();
147 greeter.hide();
@@ -147,6 +158,11 @@ Item {
147 if (greeter.shown && appId != "unity8-dash") {
158 if (greeter.shown && appId != "unity8-dash") {
148 greeter.hide();
159 greeter.hide();
149 }
160 }
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+ }
150 }
166 }
151 }
167 }
152
168
@@ -239,11 +255,7 @@ Item {
239
255
240 onEntered: LightDM.Greeter.respond(passphrase);
256 onEntered: LightDM.Greeter.respond(passphrase);
241 onCancel: greeter.show()
257 onCancel: greeter.show()
242− onEmergencyCall: {
243− greeter.fakeActiveForApp = "dialer-app"
244− shell.activateApplication("dialer-app")
258+ onEmergencyCall: shell.activateApplication("dialer-app") // will automatically enter fake-active mode
245− lockscreen.hide()
246− }
247
259
248 onShownChanged: if (shown) greeter.fakeActiveForApp = ""
260 onShownChanged: if (shown) greeter.fakeActiveForApp = ""
249
261