Skip to content
Snippets Groups Projects
Commit c8008c54 authored by Andreas Traczyk's avatar Andreas Traczyk
Browse files

fix: in-call chat view opening and closing

- fixes the in-call chat view requiring reselection to open
- fixes the in-call chat view staying open, on top of the principal
  chat view when a call ends

Gitlab: #415
Gitlab: #416
Change-Id: Idcfaaf263d5d53451dedf955ce441f0a705309a9
parent 2bca28b7
No related branches found
No related tags found
No related merge requests found
...@@ -51,14 +51,22 @@ Rectangle { ...@@ -51,14 +51,22 @@ Rectangle {
closeInCallConversation) closeInCallConversation)
} }
function openInCallConversation() {
if (linkedWebview) {
linkedWebview.resetMessagingHeaderBackButtonSource(false)
linkedWebview.setMessagingHeaderButtonsVisible(false)
}
inAudioCallMessageWebViewStack.visible = true
inAudioCallMessageWebViewStack.push(linkedWebview)
}
function closeInCallConversation() { function closeInCallConversation() {
if (inAudioCallMessageWebViewStack.visible) { if (linkedWebview) {
linkedWebview.resetMessagingHeaderBackButtonSource( linkedWebview.resetMessagingHeaderBackButtonSource(true)
true)
linkedWebview.setMessagingHeaderButtonsVisible(true) linkedWebview.setMessagingHeaderButtonsVisible(true)
inAudioCallMessageWebViewStack.visible = false
inAudioCallMessageWebViewStack.clear()
} }
inAudioCallMessageWebViewStack.visible = false
inAudioCallMessageWebViewStack.clear()
} }
function closeContextMenuAndRelatedWindows() { function closeContextMenuAndRelatedWindows() {
...@@ -136,22 +144,9 @@ Rectangle { ...@@ -136,22 +144,9 @@ Rectangle {
} }
onOverlayChatButtonClicked: { onOverlayChatButtonClicked: {
if (inAudioCallMessageWebViewStack.visible) { inAudioCallMessageWebViewStack.visible ?
linkedWebview.resetMessagingHeaderBackButtonSource( closeInCallConversation() :
true) openInCallConversation()
linkedWebview.setMessagingHeaderButtonsVisible(
true)
inAudioCallMessageWebViewStack.visible = false
inAudioCallMessageWebViewStack.clear()
} else {
linkedWebview.resetMessagingHeaderBackButtonSource(
false)
linkedWebview.setMessagingHeaderButtonsVisible(
false)
inAudioCallMessageWebViewStack.visible = true
inAudioCallMessageWebViewStack.push(
linkedWebview)
}
} }
} }
......
...@@ -44,6 +44,8 @@ Rectangle { ...@@ -44,6 +44,8 @@ Rectangle {
signal overlayChatButtonClicked signal overlayChatButtonClicked
onVisibleChanged: if (!visible) callViewContextMenu.close()
function setRecording(localIsRecording) { function setRecording(localIsRecording) {
callViewContextMenu.localIsRecording = localIsRecording callViewContextMenu.localIsRecording = localIsRecording
recordingRect.visible = localIsRecording recordingRect.visible = localIsRecording
......
...@@ -50,25 +50,25 @@ Rectangle { ...@@ -50,25 +50,25 @@ Rectangle {
property string responsibleConvUid: "" property string responsibleConvUid: ""
property string responsibleAccountId: "" property string responsibleAccountId: ""
// TODO: this should all be done by listening to
// parent visibility change or parent `Component.onDestruction`
function needToCloseInCallConversationAndPotentialWindow() { function needToCloseInCallConversationAndPotentialWindow() {
// Close potential window, context menu releated windows. // Close potential window, context menu releated windows.
if (!callStackMainView.currentItem) if (audioCallPage) {
return
if (callStackMainView.currentItem.stackNumber === CallStackView.AudioPageStack) {
audioCallPage.closeInCallConversation() audioCallPage.closeInCallConversation()
audioCallPage.closeContextMenuAndRelatedWindows() audioCallPage.closeContextMenuAndRelatedWindows()
} else if (callStackMainView.currentItem.stackNumber === CallStackView.VideoPageStack) { }
if (videoCallPage) {
videoCallPage.closeInCallConversation() videoCallPage.closeInCallConversation()
videoCallPage.closeContextMenuAndRelatedWindows() videoCallPage.closeContextMenuAndRelatedWindows()
} }
} }
function setLinkedWebview(webViewId) { function setLinkedWebview(webViewId) {
if (callStackMainView.currentItem.stackNumber === CallStackView.AudioPageStack) { if (audioCallPage)
audioCallPage.setLinkedWebview(webViewId) audioCallPage.setLinkedWebview(webViewId)
} else if (callStackMainView.currentItem.stackNumber === CallStackView.VideoPageStack) { if (videoCallPage)
videoCallPage.setLinkedWebview(webViewId) videoCallPage.setLinkedWebview(webViewId)
}
} }
function getItemFromStack(itemNumber) { function getItemFromStack(itemNumber) {
......
...@@ -44,6 +44,14 @@ Item { ...@@ -44,6 +44,14 @@ Item {
signal pluginItemClicked signal pluginItemClicked
signal transferCallButtonClicked signal transferCallButtonClicked
function close() {
// leave this debug line is a reminder of a design failure
console.debug("call view context menu close")
const menu = ContextMenuGenerator.getMenu()
if (menu)
menu.close()
}
function openMenu(){ function openMenu(){
ContextMenuGenerator.initMenu() ContextMenuGenerator.initMenu()
if (isSIP){ if (isSIP){
......
...@@ -63,14 +63,22 @@ Rectangle { ...@@ -63,14 +63,22 @@ Rectangle {
closeInCallConversation) closeInCallConversation)
} }
function openInCallConversation() {
if (linkedWebview) {
linkedWebview.resetMessagingHeaderBackButtonSource(false)
linkedWebview.setMessagingHeaderButtonsVisible(false)
}
inVideoCallMessageWebViewStack.visible = true
inVideoCallMessageWebViewStack.push(linkedWebview)
}
function closeInCallConversation() { function closeInCallConversation() {
if (inVideoCallMessageWebViewStack.visible) { if (linkedWebview) {
linkedWebview.resetMessagingHeaderBackButtonSource( linkedWebview.resetMessagingHeaderBackButtonSource(true)
true)
linkedWebview.setMessagingHeaderButtonsVisible(true) linkedWebview.setMessagingHeaderButtonsVisible(true)
inVideoCallMessageWebViewStack.visible = false
inVideoCallMessageWebViewStack.clear()
} }
inVideoCallMessageWebViewStack.visible = false
inVideoCallMessageWebViewStack.clear()
} }
function closeContextMenuAndRelatedWindows() { function closeContextMenuAndRelatedWindows() {
...@@ -200,22 +208,9 @@ Rectangle { ...@@ -200,22 +208,9 @@ Rectangle {
} }
onOverlayChatButtonClicked: { onOverlayChatButtonClicked: {
if (inVideoCallMessageWebViewStack.visible) { inVideoCallMessageWebViewStack.visible ?
linkedWebview.resetMessagingHeaderBackButtonSource( closeInCallConversation() :
true) openInCallConversation()
linkedWebview.setMessagingHeaderButtonsVisible(
true)
inVideoCallMessageWebViewStack.visible = false
inVideoCallMessageWebViewStack.clear()
} else {
linkedWebview.resetMessagingHeaderBackButtonSource(
false)
linkedWebview.setMessagingHeaderButtonsVisible(
false)
inVideoCallMessageWebViewStack.visible = true
inVideoCallMessageWebViewStack.push(
linkedWebview)
}
} }
} }
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment