From 22032e58dd2ef1934e7fe7414dc42ca60b6acf47 Mon Sep 17 00:00:00 2001 From: Matt Ranostay Date: Tue, 17 Sep 2019 23:29:26 -0700 Subject: messaging: add initial compose message page Add initial support for sending SMS messages. Along with support for double clicking a message to autofill recipient field. Bug-AGL: SPEC-2566 Change-Id: I214c2250f90d939c95b5e380272b37c0ba8dad64 Signed-off-by: Matt Ranostay --- app/ComposePage.qml | 86 ++++++++++++++++++++++++++++++++++++++++++++++++ app/Messaging.qml | 18 ++++++++++ app/Messaging.qrc | 1 + app/Notification.qml | 26 ++++++++++++--- app/NotificationPage.qml | 2 +- 5 files changed, 128 insertions(+), 5 deletions(-) create mode 100644 app/ComposePage.qml diff --git a/app/ComposePage.qml b/app/ComposePage.qml new file mode 100644 index 0000000..7c6e5f1 --- /dev/null +++ b/app/ComposePage.qml @@ -0,0 +1,86 @@ +/* + * Copyright (C) 2019 Konsulko Group + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +import QtQuick 2.11 +import QtQuick.Layouts 1.11 +import QtQuick.Controls 2.4 + +Item { + id: root + + function setNumber(number) { + recipient.text = number + message.focus = true + } + + function clearFields() { + recipient.text = '' + message.text = '' + } + + Column { + anchors.fill: parent + anchors.margins: 20 + spacing: 60 + + Row { + Label { + font.pixelSize: 48 + text: "Recipient: " + } + + TextArea { + id: recipient + font.pixelSize: 48 + Layout.fillWidth: true + placeholderText: "Enter recipient #" + color: "white" + } + } + + Row { + id: msg_txt + Label { + id: msg_label + font.pixelSize: 48 + text: "Message: " + } + TextArea { + id: message + font.pixelSize: 48 + width: root.width - (2 * msg_label.width) + wrapMode: TextEdit.WrapAnywhere + placeholderText: "Enter message here!" + color: "white" + } + } + + Button { + anchors.horizontalCenter: parent.horizontalCenter + height: 100 + width: msg_txt.width / 2 + font.pixelSize: 48 + text: "Send Message" + + onClicked: { + if (message.text && recipient.text) { + messaging.compose(recipient.text, message.text); + root.clearFields(); + } + } + } + } +} diff --git a/app/Messaging.qml b/app/Messaging.qml index 58abf1c..8494145 100644 --- a/app/Messaging.qml +++ b/app/Messaging.qml @@ -18,6 +18,7 @@ import QtQuick 2.11 import QtQuick.Layouts 1.11 import QtQuick.Controls 2.4 +import AGL.Demo.Controls 1.0 ApplicationWindow { id: root @@ -42,6 +43,12 @@ ApplicationWindow { text: "Alerts" font.pixelSize: 50 } + + TabImageButton { + icon: "./images/ic_contacts_48px.svg" + text: "Compose" + font.pixelSize: 50 + } } StackLayout { @@ -52,6 +59,17 @@ ApplicationWindow { NotificationPage { id: alerts } + ComposePage { + id: compose + } + } + + Keyboard { + id: keyboard + target: activeFocusControl + anchors.left: parent.left + anchors.right: parent.right + anchors.bottom: parent.bottom } } } diff --git a/app/Messaging.qrc b/app/Messaging.qrc index 39d7216..d75fa46 100644 --- a/app/Messaging.qrc +++ b/app/Messaging.qrc @@ -1,6 +1,7 @@ Messaging.qml + ComposePage.qml Notification.qml NotificationPage.qml TabImageButton.qml diff --git a/app/Notification.qml b/app/Notification.qml index 6be41ff..f283b76 100644 --- a/app/Notification.qml +++ b/app/Notification.qml @@ -27,10 +27,14 @@ Item { anchors.left: parent.left anchors.right: parent.right - ImageButton { - padding: 10 - offImage: '../images/HMI_Settings_X.svg' - onClicked: notificationModel.remove(index) + Image { + id: button + scale: 0.5 + source: '../images/HMI_Settings_X.svg' + MouseArea { + anchors.fill: button + onClicked: notificationModel.remove(index) + } } Label { text: '' + name + '' @@ -46,4 +50,18 @@ Item { wrapMode: Text.WordWrap } } + + MouseArea { + anchors.fill: parent + propagateComposedEvents: true + onClicked: { + mouse.accepted = false + } + onDoubleClicked: { + if (number) { + bar.setCurrentIndex(1) + compose.setNumber(number) + } + } + } } diff --git a/app/NotificationPage.qml b/app/NotificationPage.qml index 6ce5e4a..e57cacf 100644 --- a/app/NotificationPage.qml +++ b/app/NotificationPage.qml @@ -26,7 +26,7 @@ Item { target: messaging onNotificationEvent: { - notificationModel.append({"name": message.sender.fn, "message": message.message }) + notificationModel.append({"name": message.sender.fn, "number": message.sender.tel, "message": message.message }) notificationView.currentIndex = notificationModel.count - 1 } } -- cgit 1.2.3-korg