From 71f22ac56c744ed71ccc26423a9c7a08fc4eb4e6 Mon Sep 17 00:00:00 2001 From: Alex Blasche Date: Mon, 19 Jun 2017 13:09:47 +0200 Subject: Properly handle disconnect socket event in QML chat example Prior to this change the state transtion of the BluetoothSocket instance was not distinguishing between the varios state types. It always assumes any state transtion was a transition to "Connected". Change-Id: I584b6c467dc77ac0602562d6792c16bf357d831c Reviewed-by: Timur Pocheptsov --- examples/bluetooth/chat/Search.qml | 3 +++ examples/bluetooth/chat/chat.qml | 20 ++++++++++++++++++-- 2 files changed, 21 insertions(+), 2 deletions(-) diff --git a/examples/bluetooth/chat/Search.qml b/examples/bluetooth/chat/Search.qml index f1f8f6ac..ea542462 100644 --- a/examples/bluetooth/chat/Search.qml +++ b/examples/bluetooth/chat/Search.qml @@ -46,6 +46,9 @@ Rectangle { function appendText(newText) { searchText.text += newText } + function setText(newText) { + searchText.text = newText + } width: searchText.width + 40; height: searchText.height + bluetoothImage.height + 40; diff --git a/examples/bluetooth/chat/chat.qml b/examples/bluetooth/chat/chat.qml index 7613519a..06f2fc49 100644 --- a/examples/bluetooth/chat/chat.qml +++ b/examples/bluetooth/chat/chat.qml @@ -91,8 +91,24 @@ Item { connected: true onSocketStateChanged: { - console.log("Connected to server") - top.state = "chatActive" + switch (socketState) { + case BluetoothSocket.Unconnected: + case BluetoothSocket.NoServiceSet: + searchBox.animationRunning = false; + searchBox.setText("\nNo connection. \n\nPlease restart app."); + top.state = "begin"; + break; + case BluetoothSocket.Connected: + console.log("Connected to server "); + top.state = "chatActive"; // move to chat UI + break; + case BluetoothSocket.Connecting: + case BluetoothSocket.ServiceLookup: + case BluetoothSocket.Closing: + case BluetoothSocket.Listening: + case BluetoothSocket.Bound: + break; + } } //! [BluetoothSocket-1] //! [BluetoothSocket-3] -- cgit v1.2.3