diff --git a/harbour-fernschreiber.pro b/harbour-fernschreiber.pro
index f751a28..4c1e850 100644
--- a/harbour-fernschreiber.pro
+++ b/harbour-fernschreiber.pro
@@ -58,6 +58,7 @@ DISTFILES += qml/harbour-fernschreiber.qml \
qml/components/ReplyMarkupButtons.qml \
qml/components/StickerPicker.qml \
qml/components/PhotoTextsListItem.qml \
+ qml/components/VoiceNoteOverlay.qml \
qml/components/WebPagePreview.qml \
qml/components/chatInformationPage/ChatInformationEditArea.qml \
qml/components/chatInformationPage/ChatInformationPageContent.qml \
diff --git a/qml/components/VoiceNoteOverlay.qml b/qml/components/VoiceNoteOverlay.qml
new file mode 100644
index 0000000..fb2b92a
--- /dev/null
+++ b/qml/components/VoiceNoteOverlay.qml
@@ -0,0 +1,72 @@
+/*
+ Copyright (C) 2020 Sebastian J. Wolf and other contributors
+
+ This file is part of Fernschreiber.
+
+ Fernschreiber is free software: you can redistribute it and/or modify
+ it under the terms of the GNU General Public License as published by
+ the Free Software Foundation, either version 3 of the License, or
+ (at your option) any later version.
+
+ Fernschreiber is distributed in the hope that it will be useful,
+ but WITHOUT ANY WARRANTY; without even the implied warranty of
+ MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ GNU General Public License for more details.
+
+ You should have received a copy of the GNU General Public License
+ along with Fernschreiber. If not, see .
+*/
+import QtQuick 2.6
+import Sailfish.Silica 1.0
+import "../components"
+import "../js/twemoji.js" as Emoji
+
+Item {
+ id: voiceNoteOverlayItem
+ anchors.fill: parent
+
+ Rectangle {
+ id: stickerPickerOverlayBackground
+ anchors.fill: parent
+
+ color: Theme.overlayBackgroundColor
+ opacity: Theme.opacityHigh
+ }
+
+ Flickable {
+ id: voiceNoteFlickable
+ anchors.fill: parent
+ anchors.margins: Theme.paddingMedium
+
+ Behavior on opacity { NumberAnimation {} }
+
+ contentHeight: voiceNoteColumn.height
+ clip: true
+
+ Column {
+ id: voiceNoteColumn
+ spacing: Theme.paddingMedium
+ width: voiceNoteFlickable.width
+
+ InfoLabel {
+ text: qsTr("Record a Voice Note")
+ }
+
+ Image {
+ id: recorderImage
+ source: "image://theme/icon-l-recorder"
+ anchors {
+ horizontalCenter: parent.horizontalCenter
+ }
+
+ fillMode: Image.PreserveAspectFit
+ asynchronous: true
+ width: Theme.itemSizeLarge
+ height: Theme.itemSizeLarge
+ }
+
+ }
+ }
+
+}
+
diff --git a/qml/pages/ChatPage.qml b/qml/pages/ChatPage.qml
index 961d643..dc1c50f 100644
--- a/qml/pages/ChatPage.qml
+++ b/qml/pages/ChatPage.qml
@@ -621,7 +621,7 @@ Page {
contentWidth: width
PullDownMenu {
- visible: chatInformation.id !== chatPage.myUserId && !stickerPickerLoader.active && !messageOverlayLoader.active
+ visible: chatInformation.id !== chatPage.myUserId && !stickerPickerLoader.active && !voiceNoteOverlayLoader.active && !messageOverlayLoader.active
MenuItem {
id: closeSecretChatMenuItem
visible: chatPage.isSecretChat && chatPage.secretChatDetails.state["@type"] !== "secretChatStateClosed"
@@ -874,7 +874,7 @@ Page {
id: chatView
visible: !blurred
- property bool blurred: messageOverlayLoader.item
+ property bool blurred: messageOverlayLoader.item || stickerPickerLoader.item || voiceNoteOverlayLoader.item
anchors.fill: parent
opacity: chatPage.loading ? 0 : 1
@@ -1132,6 +1132,15 @@ Page {
}
}
+ Loader {
+ id: voiceNoteOverlayLoader
+ active: false
+ asynchronous: true
+ width: parent.width
+ height: active ? parent.height : 0
+ source: "../components/VoiceNoteOverlay.qml"
+ }
+
}
Column {
@@ -1216,6 +1225,19 @@ Page {
})
}
}
+ IconButton {
+ visible: chatPage.hasSendPrivilege("can_send_media_messages")
+ icon.source: "image://theme/icon-m-mic"
+ icon.sourceSize {
+ width: Theme.iconSizeMedium
+ height: Theme.iconSizeMedium
+ }
+ highlighted: down || voiceNoteOverlayLoader.active
+ onClicked: {
+ voiceNoteOverlayLoader.active = !voiceNoteOverlayLoader.active;
+ stickerPickerLoader.active = false;
+ }
+ }
IconButton {
visible: chatPage.hasSendPrivilege("can_send_media_messages")
icon.source: "image://theme/icon-m-document"
@@ -1243,6 +1265,7 @@ Page {
highlighted: down || stickerPickerLoader.active
onClicked: {
stickerPickerLoader.active = !stickerPickerLoader.active;
+ voiceNoteOverlayLoader.active = false;
}
}
IconButton {
@@ -1528,6 +1551,7 @@ Page {
if (attachmentOptionsRow.isNeeded) {
attachmentOptionsRow.isNeeded = false;
stickerPickerLoader.active = false;
+ voiceNoteOverlayLoader.active = false;
} else {
attachmentOptionsRow.isNeeded = true;
}
diff --git a/translations/harbour-fernschreiber-de.ts b/translations/harbour-fernschreiber-de.ts
index 489527b..e871efc 100644
--- a/translations/harbour-fernschreiber-de.ts
+++ b/translations/harbour-fernschreiber-de.ts
@@ -1418,6 +1418,13 @@
Download fehlgeschlagen.
+
+ VoiceNoteOverlay
+
+
+
+
+
WebPagePreview
diff --git a/translations/harbour-fernschreiber-en.ts b/translations/harbour-fernschreiber-en.ts
index 701afc6..6e943e0 100644
--- a/translations/harbour-fernschreiber-en.ts
+++ b/translations/harbour-fernschreiber-en.ts
@@ -1418,6 +1418,13 @@
Download failed.
+
+ VoiceNoteOverlay
+
+
+
+
+
WebPagePreview
diff --git a/translations/harbour-fernschreiber-es.ts b/translations/harbour-fernschreiber-es.ts
index 828b71c..06060e9 100644
--- a/translations/harbour-fernschreiber-es.ts
+++ b/translations/harbour-fernschreiber-es.ts
@@ -1399,6 +1399,13 @@
Error al bajar
+
+ VoiceNoteOverlay
+
+
+
+
+
WebPagePreview
diff --git a/translations/harbour-fernschreiber-fi.ts b/translations/harbour-fernschreiber-fi.ts
index 0882c32..83349c7 100644
--- a/translations/harbour-fernschreiber-fi.ts
+++ b/translations/harbour-fernschreiber-fi.ts
@@ -1419,6 +1419,13 @@
Lataus epäonnistui.
+
+ VoiceNoteOverlay
+
+
+
+
+
WebPagePreview
diff --git a/translations/harbour-fernschreiber-hu.ts b/translations/harbour-fernschreiber-hu.ts
index 7ca1400..cbe6a16 100644
--- a/translations/harbour-fernschreiber-hu.ts
+++ b/translations/harbour-fernschreiber-hu.ts
@@ -1399,6 +1399,13 @@
A letöltés nem sikerült.
+
+ VoiceNoteOverlay
+
+
+
+
+
WebPagePreview
diff --git a/translations/harbour-fernschreiber-it.ts b/translations/harbour-fernschreiber-it.ts
index 3c2baf9..85f802a 100644
--- a/translations/harbour-fernschreiber-it.ts
+++ b/translations/harbour-fernschreiber-it.ts
@@ -1418,6 +1418,13 @@
Download non riuscito.
+
+ VoiceNoteOverlay
+
+
+
+
+
WebPagePreview
diff --git a/translations/harbour-fernschreiber-pl.ts b/translations/harbour-fernschreiber-pl.ts
index c2b925d..92fdc5f 100644
--- a/translations/harbour-fernschreiber-pl.ts
+++ b/translations/harbour-fernschreiber-pl.ts
@@ -1437,6 +1437,13 @@
Nieudane pobieranie
+
+ VoiceNoteOverlay
+
+
+
+
+
WebPagePreview
diff --git a/translations/harbour-fernschreiber-ru.ts b/translations/harbour-fernschreiber-ru.ts
index 72454c2..481f829 100644
--- a/translations/harbour-fernschreiber-ru.ts
+++ b/translations/harbour-fernschreiber-ru.ts
@@ -1437,6 +1437,13 @@
Ошибка скачивания.
+
+ VoiceNoteOverlay
+
+
+
+
+
WebPagePreview
diff --git a/translations/harbour-fernschreiber-sv.ts b/translations/harbour-fernschreiber-sv.ts
index c649561..e3d44d2 100644
--- a/translations/harbour-fernschreiber-sv.ts
+++ b/translations/harbour-fernschreiber-sv.ts
@@ -1418,6 +1418,13 @@
Nerladdning misslyckades.
+
+ VoiceNoteOverlay
+
+
+
+
+
WebPagePreview
diff --git a/translations/harbour-fernschreiber-zh_CN.ts b/translations/harbour-fernschreiber-zh_CN.ts
index 8e4f8f9..c938305 100644
--- a/translations/harbour-fernschreiber-zh_CN.ts
+++ b/translations/harbour-fernschreiber-zh_CN.ts
@@ -1399,6 +1399,13 @@
下载失败
+
+ VoiceNoteOverlay
+
+
+
+
+
WebPagePreview
diff --git a/translations/harbour-fernschreiber.ts b/translations/harbour-fernschreiber.ts
index 8005242..b9adc5e 100644
--- a/translations/harbour-fernschreiber.ts
+++ b/translations/harbour-fernschreiber.ts
@@ -1418,6 +1418,13 @@
Download failed.
+
+ VoiceNoteOverlay
+
+
+
+
+
WebPagePreview