diff --git a/lib/roles/provider.js b/lib/roles/provider.js index 95e6d1e2..ca8c349d 100644 --- a/lib/roles/provider.js +++ b/lib/roles/provider.js @@ -93,16 +93,24 @@ module.exports = function(options) { client.trackDevices().then(function(tracker) { log.info('Tracking devices') + // This can happen when ADB doesn't have a good connection to + // the device + function isWeirdUnusableDevice(device) { + return device.id === '????????????' + } + // Helper for ignoring unwanted devices function filterDevice(listener) { - if (options.filter) { - return function(device) { - if (options.filter(device)) { - listener(device) - } + return function(device) { + if (isWeirdUnusableDevice(device)) { + log.warn('ADB lists a weird device: "%s"', device.id) + return false } + if (options.filter && !options.filter(device)) { + return false + } + return listener(device) } - return listener } // To make things easier, we're going to cheat a little, and make all