CCL#73: add onDeviceSelected callback