Merge lp:~boiko/dialer-app/live_call_behavior into lp:dialer-app

Proposed by Gustavo Pichorim Boiko
Status: Merged
Approved by: Tiago Salem Herrmann
Approved revision: 108
Merged at revision: 107
Proposed branch: lp:~boiko/dialer-app/live_call_behavior
Merge into: lp:dialer-app
Prerequisite: lp:~om26er/dialer-app/fix_failing_test_due_to_change_in_messaging
Diff against target: 421 lines (+45/-211)
8 files modified
debian/dialer-app.install (+0/-1)
src/qml/CMakeLists.txt (+0/-1)
src/qml/DialerPage/DialerPage.qml (+0/-4)
src/qml/LiveCallPage/LiveCall.qml (+32/-18)
src/qml/LiveCallPage/LiveCallKeypadButton.qml (+5/-5)
src/qml/VoicemailPage/CMakeLists.txt (+0/-7)
src/qml/VoicemailPage/VoicemailPage.qml (+0/-150)
src/qml/dialer-app.qml (+8/-25)
To merge this branch: bzr merge lp:~boiko/dialer-app/live_call_behavior
Reviewer Review Type Date Requested Status
Tiago Salem Herrmann (community) Approve
PS Jenkins bot continuous-integration Approve
Review via email: mp+207733@code.launchpad.net

This proposal supersedes a proposal from 2014-02-20.

Commit message

Improve the live call view behavior by addressing the following points:
- Start in the live call directly when there is an existing call (to avoid showing the dialpad for a short time before loading the live call view).
- Merge the voicemail view into the live call one. This addresses a problem that when you were on a voicemail call and got another call, there was no way to switch between them.

Description of the change

Improve the live call view behavior by addressing the following points:
- Start in the live call directly when there is an existing call (to avoid showing the dialpad for a short time before loading the live call view).
- Merge the voicemail view into the live call one. This addresses a problem that when you were on a voicemail call and got another call, there was no way to switch between them.

To post a comment you must log in.
Revision history for this message
Tiago Salem Herrmann (tiagosh) wrote : Posted in a previous version of this proposal

I think you forgot to remove the comment.

129 + enabled: false //!isVoicemail

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
Gustavo Pichorim Boiko (boiko) wrote : Posted in a previous version of this proposal

> I think you forgot to remove the comment.
>
> 129 + enabled: false //!isVoicemail

That was actually added there on purpose, I will add a comment explaining why.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
Tiago Salem Herrmann (tiagosh) wrote : Posted in a previous version of this proposal

I think I found a bug:
Call voicemail, receive another call and put the voicemail call on hold.
With the new call in foreground enable and disable the keypad. Now switch to the voicemail call and then it is not possible to show the keypad anymore as the button is disabled.

review: Needs Fixing
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
Tiago Salem Herrmann (tiagosh) wrote : Posted in a previous version of this proposal

We should not trigger call() here if the voicemailNumber is empty, otherwise the livecall view will be displayed and after some seconds disappear because no call was actually created.

363 + call(callManager.voicemailNumber);

review: Needs Fixing
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote : Posted in a previous version of this proposal
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :

FAILED: Continuous integration, rev:107
No commit message was specified in the merge proposal. Click on the following link and set the commit message (if you want a jenkins rebuild you need to trigger it yourself):
https://code.launchpad.net/~boiko/dialer-app/live_call_behavior/+merge/207733/+edit-commit-message

http://jenkins.qa.ubuntu.com/job/dialer-app-ci/200/
Executed test runs:
    SUCCESS: http://jenkins.qa.ubuntu.com/job/dialer-app-trusty-amd64-ci/105
    SUCCESS: http://jenkins.qa.ubuntu.com/job/dialer-app-trusty-armhf-ci/107
        deb: http://jenkins.qa.ubuntu.com/job/dialer-app-trusty-armhf-ci/107/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/dialer-app-trusty-i386-ci/105
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-trusty/3416
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-trusty-touch/3064
    SUCCESS: http://jenkins.qa.ubuntu.com/job/autopilot-testrunner-otto-trusty/3009
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-trusty-amd64/3418
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-trusty-amd64/3418/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-trusty-armhf/3066
        deb: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-builder-trusty-armhf/3066/artifact/work/output/*zip*/output.zip
    SUCCESS: http://jenkins.qa.ubuntu.com/job/generic-mediumtests-runner-mako/5459
    SUCCESS: http://s-jenkins.ubuntu-ci:8080/job/touch-flash-device/4201

Click here to trigger a rebuild:
http://s-jenkins.ubuntu-ci:8080/job/dialer-app-ci/200/rebuild

review: Needs Fixing (continuous-integration)
Revision history for this message
Gustavo Pichorim Boiko (boiko) wrote :

Are there any related MPs required for this MP to build/function as expected? Please list.
Yes: https://code.launchpad.net/~boiko/telephony-service/preserve_call_status/+merge/207554

Is your branch in sync with latest trunk (e.g. bzr pull lp:trunk -> no changes)
Yes

Did you perform an exploratory manual test run of your code change and any related functionality on device or emulator?
Yes

Did you successfully run all tests found in your component's Test Plan (https://wiki.ubuntu.com/Process/Merges/TestPlan/dialer-app) on device or emulator?
Yes

If you changed the UI, was the change specified/approved by design?
No UI changes.

If you changed the packaging (debian), did you subscribe a core-dev to this MP?
No packaging changes.

108. By Gustavo Pichorim Boiko

Make sure the phonenumber is not empty before calling.

Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Needs Fixing (continuous-integration)
Revision history for this message
PS Jenkins bot (ps-jenkins) wrote :
review: Approve (continuous-integration)
Revision history for this message
Tiago Salem Herrmann (tiagosh) wrote :

Did you perform an exploratory manual test run of the code change and any related functionality on device or emulator?
Yes,

Did you successfully run all tests found in your component's Test Plan (https://wiki.ubuntu.com/Process/Merges/TestPlan/dialer-app) on device or emulator?
Yes

Did CI run pass? If not, please explain why.
Yes

Have you checked that submitter has accurately filled out the submitter checklist and has taken no shortcut?
Yes

Code looks good and it works as expected.

review: Approve

Preview Diff

[H/L] Next/Prev Comment, [J/K] Next/Prev File, [N/P] Next/Prev Hunk
=== modified file 'debian/dialer-app.install'
--- debian/dialer-app.install 2014-01-14 04:04:23 +0000
+++ debian/dialer-app.install 2014-02-21 21:36:06 +0000
@@ -5,7 +5,6 @@
5usr/share/dialer-app/LiveCallPage5usr/share/dialer-app/LiveCallPage
6usr/share/dialer-app/HistoryPage6usr/share/dialer-app/HistoryPage
7usr/share/dialer-app/DialerPage7usr/share/dialer-app/DialerPage
8usr/share/dialer-app/VoicemailPage
9usr/share/dialer-app/ContactsPage8usr/share/dialer-app/ContactsPage
10usr/share/dialer-app/assets9usr/share/dialer-app/assets
11usr/bin/*dialer-app*10usr/bin/*dialer-app*
1211
=== modified file 'src/qml/CMakeLists.txt'
--- src/qml/CMakeLists.txt 2013-07-31 17:27:42 +0000
+++ src/qml/CMakeLists.txt 2014-02-21 21:36:06 +0000
@@ -11,5 +11,4 @@
11add_subdirectory(DialerPage)11add_subdirectory(DialerPage)
12add_subdirectory(HistoryPage)12add_subdirectory(HistoryPage)
13add_subdirectory(LiveCallPage)13add_subdirectory(LiveCallPage)
14add_subdirectory(VoicemailPage)
15add_subdirectory(ContactsPage)14add_subdirectory(ContactsPage)
1615
=== modified file 'src/qml/DialerPage/DialerPage.qml'
--- src/qml/DialerPage/DialerPage.qml 2013-10-08 13:21:55 +0000
+++ src/qml/DialerPage/DialerPage.qml 2014-02-21 21:36:06 +0000
@@ -29,10 +29,6 @@
29 property alias dialNumber: keypadEntry.value29 property alias dialNumber: keypadEntry.value
30 property alias input: keypadEntry.input30 property alias input: keypadEntry.input
3131
32 function isVoicemailActive() {
33 return mainView.isVoicemailActive();
34 }
35
36 tools: ToolbarItems {32 tools: ToolbarItems {
37 opened: false33 opened: false
38 locked: true34 locked: true
3935
=== modified file 'src/qml/LiveCallPage/LiveCall.qml'
--- src/qml/LiveCallPage/LiveCall.qml 2014-01-16 20:27:58 +0000
+++ src/qml/LiveCallPage/LiveCall.qml 2014-02-21 21:36:06 +0000
@@ -36,9 +36,16 @@
36 property bool onHold: call ? call.held : false36 property bool onHold: call ? call.held : false
37 property bool isSpeaker: call ? call.speaker : false37 property bool isSpeaker: call ? call.speaker : false
38 property bool isMuted: call ? call.muted : false38 property bool isMuted: call ? call.muted : false
39 property bool dtmfVisible: false39 property bool dtmfVisible: call ? call.voicemail : false
40 property bool isVoicemail: call ? call.voicemail : false
40 property string phoneNumberSubTypeLabel: ""41 property string phoneNumberSubTypeLabel: ""
41 Component.onDestruction: mainView.switchToCallLogView()42 Component.onDestruction: mainView.switchToCallLogView()
43
44 onCallChanged: {
45 // reset the DTMF keypad visibility status
46 dtmfVisible = (call && call.voicemail);
47 }
48
42 Timer {49 Timer {
43 id: callWatcher50 id: callWatcher
44 interval: 1000051 interval: 10000
@@ -96,8 +103,18 @@
96 when: liveCall.header && liveCall.active103 when: liveCall.header && liveCall.active
97 }104 }
98105
99 // TRANSLATORS: %1 is the duration of the call106 title: {
100 title: dtmfLabelHelper.text !== "" ? dtmfLabelHelper.text : contactWatcher.alias != "" ? contactWatcher.alias : contactWatcher.phoneNumber107 if (dtmfLabelHelper.text !== "") {
108 return dtmfLabelHelper.text;
109 } else if (isVoicemail) {
110 return i18n.tr("Voicemail");
111 } else if (contactWatcher.alias != "") {
112 return contactWatcher.alias;
113 } else {
114 return contactWatcher.phoneNumber;
115 }
116 }
117
101 tools: ToolbarItems {118 tools: ToolbarItems {
102 opened: false119 opened: false
103 locked: true120 locked: true
@@ -170,7 +187,7 @@
170187
171 fillMode: Image.PreserveAspectCrop188 fillMode: Image.PreserveAspectCrop
172 // FIXME: use something different than a hardcoded path of a unity8 asset189 // FIXME: use something different than a hardcoded path of a unity8 asset
173 source: contactWatcher.avatar != "" ? contactWatcher.avatar : "../assets/live_call_background.png"190 source: (isVoicemail || contactWatcher.avatar == "") ? "../assets/live_call_background.png" : contactWatcher.avatar
174 anchors {191 anchors {
175 top: topPanel.bottom192 top: topPanel.bottom
176 left: parent.left193 left: parent.left
@@ -193,7 +210,11 @@
193 Item {210 Item {
194 id: topPanel211 id: topPanel
195 clip: true212 clip: true
196 height: contactWatcher.isUnknown ? 0 : units.gu(5)213 height: (isVoicemail || contactWatcher.isUnknown) ? 0 : units.gu(5)
214 Behavior on height {
215 UbuntuNumberAnimation { }
216 }
217
197 anchors {218 anchors {
198 top: parent.top219 top: parent.top
199 left: parent.left220 left: parent.left
@@ -229,17 +250,6 @@
229 bottom: buttonsArea.top250 bottom: buttonsArea.top
230 }251 }
231252
232 // FIXME: re-enable the keypad entry once design decides where to place it
233 /*KeypadEntry {
234 id: keypadEntry
235
236 anchors.centerIn: parent
237 placeHolder: liveCall.number
238 placeHolderPixelFontSize: units.dp(43)
239 focus: true
240 input.readOnly: true
241 }*/
242
243 Keypad {253 Keypad {
244 id: keypad254 id: keypad
245255
@@ -248,7 +258,6 @@
248 anchors.bottomMargin: units.gu(2)258 anchors.bottomMargin: units.gu(2)
249 anchors.horizontalCenter: parent.horizontalCenter259 anchors.horizontalCenter: parent.horizontalCenter
250 onKeyPressed: {260 onKeyPressed: {
251 //keypadEntry.value += label
252 if (call) {261 if (call) {
253 dtmfEntry += label262 dtmfEntry += label
254 call.sendDTMF(label)263 call.sendDTMF(label)
@@ -331,6 +340,7 @@
331 LiveCallKeypadButton {340 LiveCallKeypadButton {
332 objectName: "muteButton"341 objectName: "muteButton"
333 iconSource: selected ? "microphone-mute" : "microphone"342 iconSource: selected ? "microphone-mute" : "microphone"
343 enabled: !isVoicemail
334 selected: liveCall.isMuted344 selected: liveCall.isMuted
335 iconWidth: units.gu(3)345 iconWidth: units.gu(3)
336 iconHeight: units.gu(3)346 iconHeight: units.gu(3)
@@ -344,6 +354,7 @@
344 LiveCallKeypadButton {354 LiveCallKeypadButton {
345 objectName: "pauseStartButton"355 objectName: "pauseStartButton"
346 iconSource: selected ? "media-playback-start" : "media-playback-pause"356 iconSource: selected ? "media-playback-start" : "media-playback-pause"
357 enabled: !isVoicemail
347 selected: liveCall.onHold358 selected: liveCall.onHold
348 iconWidth: units.gu(3)359 iconWidth: units.gu(3)
349 iconHeight: units.gu(3)360 iconHeight: units.gu(3)
@@ -382,7 +393,9 @@
382 iconSource: "contact"393 iconSource: "contact"
383 iconWidth: units.gu(4)394 iconWidth: units.gu(4)
384 iconHeight: units.gu(4)395 iconHeight: units.gu(4)
385 opacity: 0.2396 // this button is fully disabled for now, but when it gets enabled again, we need to remember
397 // to still disable it while calling the voicemail
398 enabled: false //!isVoicemail
386399
387 anchors {400 anchors {
388 verticalCenter: hangupButton.verticalCenter401 verticalCenter: hangupButton.verticalCenter
@@ -406,6 +419,7 @@
406 iconSource: "keypad"419 iconSource: "keypad"
407 iconWidth: units.gu(4)420 iconWidth: units.gu(4)
408 iconHeight: units.gu(4)421 iconHeight: units.gu(4)
422 enabled: !isVoicemail
409423
410 anchors {424 anchors {
411 verticalCenter: hangupButton.verticalCenter425 verticalCenter: hangupButton.verticalCenter
412426
=== modified file 'src/qml/LiveCallPage/LiveCallKeypadButton.qml'
--- src/qml/LiveCallPage/LiveCallKeypadButton.qml 2013-09-27 17:35:35 +0000
+++ src/qml/LiveCallPage/LiveCallKeypadButton.qml 2014-02-21 21:36:06 +0000
@@ -27,15 +27,15 @@
2727
28 width: units.gu(7)28 width: units.gu(7)
29 height: units.gu(7)29 height: units.gu(7)
30 opacity: enabled ? 1.0 : 0.2
31
32 Behavior on opacity {
33 UbuntuNumberAnimation { }
34 }
3035
31 property int iconWidth: 036 property int iconWidth: 0
32 property int iconHeight: 037 property int iconHeight: 0
3338
34 /*BorderImage {
35 anchors.fill: parent
36 source: (selected || pressed) ? "../assets/dialer_pad_bg_pressed.png" : "../assets/dialer_pad_bg.png"
37 }*/
38
39 Icon {39 Icon {
40 id: icon40 id: icon
41 anchors.centerIn: parent41 anchors.centerIn: parent
4242
=== removed directory 'src/qml/VoicemailPage'
=== removed file 'src/qml/VoicemailPage/CMakeLists.txt'
--- src/qml/VoicemailPage/CMakeLists.txt 2013-07-31 17:27:42 +0000
+++ src/qml/VoicemailPage/CMakeLists.txt 1970-01-01 00:00:00 +0000
@@ -1,7 +0,0 @@
1file(GLOB VOICEMAIL_QML_JS_FILES *.qml *.js)
2
3# make the files visible on qtcreator
4add_custom_target(dialer_voicemail_QMlFiles ALL SOURCES ${VOICEMAIL_QML_JS_FILES})
5
6install(FILES ${VOICEMAIL_QML_JS_FILES} DESTINATION ${DIALER_APP_DIR}/VoicemailPage)
7
80
=== removed file 'src/qml/VoicemailPage/VoicemailPage.qml'
--- src/qml/VoicemailPage/VoicemailPage.qml 2013-09-26 21:39:16 +0000
+++ src/qml/VoicemailPage/VoicemailPage.qml 1970-01-01 00:00:00 +0000
@@ -1,150 +0,0 @@
1/*
2 * Copyright 2012-2013 Canonical Ltd.
3 *
4 * This file is part of phone-app.
5 *
6 * phone-app is free software; you can redistribute it and/or modify
7 * it under the terms of the GNU General Public License as published by
8 * the Free Software Foundation; version 3.
9 *
10 * phone-app is distributed in the hope that it will be useful,
11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13 * GNU General Public License for more details.
14 *
15 * You should have received a copy of the GNU General Public License
16 * along with this program. If not, see <http://www.gnu.org/licenses/>.
17 */
18
19import QtQuick 2.0
20import Ubuntu.Components 0.1
21import "../DialerPage"
22import "../LiveCallPage"
23
24Page {
25 id: voicemail
26
27 property variant contact
28 property QtObject call: callManager.foregroundCall
29 property string number: callManager.voicemailNumber
30 Component.onDestruction: mainView.switchToCallLogView()
31 Timer {
32 id: callWatcher
33 interval: 10000
34 repeat: false
35 running: true
36 onTriggered: {
37 if (!call) {
38 // TODO: notify about failed call
39 pageStack.pop()
40 }
41 }
42 }
43
44 title: i18n.tr("Voicemail")
45
46 function isVoicemailActive() {
47 return mainView.isVoicemailActive();
48 }
49
50 function endCall() {
51 if (call) {
52 call.endCall();
53 }
54 }
55
56 Item {
57 id: container
58
59 anchors.fill: parent
60
61 Item {
62 id: body
63
64 anchors.fill: parent
65
66 Label {
67 id: number
68
69 anchors.horizontalCenter: parent.horizontalCenter
70 anchors.bottom: stopWatch.top
71 anchors.topMargin: units.gu(0.5)
72 text: voicemail.number
73 color: "#a0a0a2"
74 style: Text.Sunken
75 styleColor: Qt.rgba(0.0, 0.0, 0.0, 0.5)
76 fontSize: "medium"
77 }
78
79 Label {
80 id: dialing
81
82 anchors.horizontalCenter: parent.horizontalCenter
83 anchors.topMargin: units.gu(2)
84 anchors.top: number.bottom
85
86 text: i18n.tr("Dialing")
87 color: "#a0a0a2"
88 style: Text.Sunken
89 styleColor: Qt.rgba(0.0, 0.0, 0.0, 0.5)
90 fontSize: "medium"
91 opacity: (call && call.voicemail && call.dialing) ? 1.0 : 0.0
92 }
93
94 StopWatch {
95 id: stopWatch
96 time: call && call.voicemail ? call.elapsedTime : 0
97
98 anchors.horizontalCenter: parent.horizontalCenter
99 anchors.topMargin: units.gu(2)
100 anchors.bottom: keypad.top
101 opacity: (call && call.voicemail && !call.dialing) ? 1.0 : 0.0
102 }
103
104 Keypad {
105 id: keypad
106
107 anchors.horizontalCenter: parent.horizontalCenter
108 anchors.verticalCenter: parent.verticalCenter
109 onKeyPressed: {
110 if (call) {
111 call.sendDTMF(label)
112 }
113 }
114 }
115
116 Row {
117 anchors.top: keypad.bottom
118 anchors.topMargin: units.gu(3)
119 anchors.horizontalCenter: parent.horizontalCenter
120 spacing: units.gu(0.5)
121 Button {
122 id: dialhangupButton
123 iconSource: "../assets/incall_hangup.png"
124 width: isVoicemailActive() ? units.gu(8) : units.gu(16)
125 color: isVoicemailActive() ? "#bf400c" : "#268bd2"
126 onClicked: {
127 if(isVoicemailActive())
128 endCall()
129 else
130 mainView.callNumber(voicemail.number)
131 }
132 }
133
134 Button {
135 id: speakerButton
136 width: units.gu(8)
137 visible: isVoicemailActive()
138 iconSource: call && call.speaker ? "../assets/speaker.png" : "../assets/speaker-mute.png"
139 color: "#565656"
140 state: call && call.speaker ? "pressed" : ""
141 onClicked: {
142 if (call) {
143 call.speaker = !call.speaker
144 }
145 }
146 }
147 }
148 }
149 }
150}
1510
=== modified file 'src/qml/dialer-app.qml'
--- src/qml/dialer-app.qml 2014-01-29 19:29:32 +0000
+++ src/qml/dialer-app.qml 2014-02-21 21:36:06 +0000
@@ -55,22 +55,13 @@
55 }55 }
5656
57 function callVoicemail() {57 function callVoicemail() {
58 if (!telepathyHelper.connected || callManager.voicemailNumber === "") {58 call(callManager.voicemailNumber);
59 return
60 }
61 if (pageStack.depth === 1 && !callManager.hasCalls) {
62 pageStack.push(Qt.resolvedUrl("VoicemailPage/VoicemailPage.qml"))
63 }
64 callManager.startCall(callManager.voicemailNumber);
65 }59 }
6660
67 function call(number) {61 function call(number) {
68 if (!telepathyHelper.connected) {62 if (!telepathyHelper.connected || number === "") {
69 return63 return
70 }64 }
71 if (number === callManager.voicemailNumber) {
72 callVoicemail()
73 }
74 if (pageStack.depth === 1 && !callManager.hasCalls) {65 if (pageStack.depth === 1 && !callManager.hasCalls) {
75 pageStack.push(Qt.resolvedUrl("LiveCallPage/LiveCall.qml"))66 pageStack.push(Qt.resolvedUrl("LiveCallPage/LiveCall.qml"))
76 }67 }
@@ -81,17 +72,14 @@
81 pageStack.currentPage.currentTab = 2;72 pageStack.currentPage.currentTab = 2;
82 }73 }
8374
84 function isVoicemailActive() {
85 if (callManager.foregroundCall) {
86 return callManager.foregroundCall.voicemail;
87 } else {
88 return false
89 }
90 }
91
92 Component.onCompleted: {75 Component.onCompleted: {
93 Theme.name = "Ubuntu.Components.Themes.SuruGradient";76 Theme.name = "Ubuntu.Components.Themes.SuruGradient";
94 pageStack.push(Qt.createComponent("MainPage.qml"))77 pageStack.push(Qt.createComponent("MainPage.qml"))
78
79 // if there are calls, even if we don't have info about them yet, push the livecall view
80 if (callManager.hasCalls) {
81 pageStack.push(Qt.resolvedUrl("LiveCallPage/LiveCall.qml"));
82 }
95 }83 }
9684
97 Connections {85 Connections {
@@ -112,12 +100,7 @@
112 }100 }
113 // if there are no calls, or if the views are already loaded, do not continue processing101 // if there are no calls, or if the views are already loaded, do not continue processing
114 if ((callManager.foregroundCall || callManager.backgroundCall) && pageStack.depth === 1) {102 if ((callManager.foregroundCall || callManager.backgroundCall) && pageStack.depth === 1) {
115 if ((callManager.foregroundCall && callManager.foregroundCall.voicemail)103 pageStack.push(Qt.resolvedUrl("LiveCallPage/LiveCall.qml"));
116 || (callManager.backgroundCall && callManager.backgroundCall.voicemail)) {
117 pageStack.push(Qt.resolvedUrl("VoicemailPage/VoicemailPage.qml"))
118 } else {
119 pageStack.push(Qt.resolvedUrl("LiveCallPage/LiveCall.qml"));
120 }
121 application.activateWindow();104 application.activateWindow();
122 }105 }
123 }106 }

Subscribers

People subscribed via source and target branches