main.qml Example File
bluetoothsppchat/assets/main.qml
import bb.cascades 1.0
NavigationPane {
id: navigationPane
onPopTransitionEnded: page.destroy()
Page {
actions: [
ActionItem {
title: qsTr("Search Devices")
imageSource: "asset:///images/device_discovery.png"
ActionBar.placement: ActionBarPlacement.OnBar
onTriggered: {
_btController.deviceListing.discover();
}
},
ActionItem {
title: _btController.bluetoothActive ? qsTr("Bluetooth: ON") : qsTr("Bluetooth: OFF")
imageSource: _btController.bluetoothActive ? "asset:///images/on.png" : "asset:///images/off.png"
onTriggered: {
_btController.toggleBluetoothActive()
}
},
ActionItem {
title: _btController.discoverableActive ? qsTr("Discoverable: ON") : qsTr("Discoverable: OFF")
imageSource: _btController.discoverableActive ? "asset:///images/discoverable_on.png" : "asset:///images/discoverable_off.png"
onTriggered: {
_btController.toggleDiscoverableActive()
}
},
ActionItem {
title: qsTr("Local Device")
imageSource: "asset:///images/local_device.png"
onTriggered: {
qsLocalDeviceInfo.open();
}
},
ActionItem {
title: qsTr("SPP Server")
imageSource: "asset:///images/send.png"
ActionBar.placement: ActionBarPlacement.OnBar
onTriggered: {
_btController.chatManager.startSPPServer()
navigationPane.push(chatPage.createObject())
}
}
]
Container {
ListView {
dataModel: _btController.deviceListing.model
listItemComponents: [
ListItemComponent {
type: "listItem"
StandardListItem {
title: ListItemData.deviceName
description: ListItemData.deviceAddress
status: ListItemData.deviceClass
}
}
]
onTriggered: {
var selectedItem = dataModel.data(indexPath);
_btController.setRemoteDevice(selectedItem.deviceAddress);
navigationPane.push(remoteDevicePage.createObject())
}
function itemType(data, indexPath) {
if (indexPath.length == 1) {
return "header";
} else {
return "listItem";
}
}
}
}
attachedObjects: [
LocalDeviceInfoSheet {
id: qsLocalDeviceInfo
},
ComponentDefinition {
id: remoteDevicePage
source: "RemoteDevice.qml"
},
ComponentDefinition {
id: chatPage
source: "SPPChat.qml"
}
]
}
}