| Index: tools/telemetry/telemetry/core/platform/android_device.py
|
| diff --git a/tools/telemetry/telemetry/core/platform/android_device.py b/tools/telemetry/telemetry/core/platform/android_device.py
|
| index 73fad60e9f523f79e9377194377efc4c1099231e..e04f2e0de5cdf090e0fb6c5aaac283d1c3c29beb 100644
|
| --- a/tools/telemetry/telemetry/core/platform/android_device.py
|
| +++ b/tools/telemetry/telemetry/core/platform/android_device.py
|
| @@ -31,17 +31,30 @@ class AndroidDevice(device.Device):
|
|
|
| @classmethod
|
| def GetAllConnectedDevices(cls):
|
| - device_serials = adb_commands.GetAttachedDevices()
|
| - # The monsoon provides power for the device, so for devices with no
|
| - # real battery, we need to turn them on after the monsoon enables voltage
|
| - # output to the device.
|
| - if not device_serials:
|
| - try:
|
| - m = monsoon.Monsoon(wait=False)
|
| - m.SetUsbPassthrough(1)
|
| - m.SetVoltage(3.8)
|
| - m.SetMaxCurrent(8)
|
| - logging.warn("""
|
| + device_serials = GetDeviceSerials()
|
| + return [cls(s) for s in device_serials]
|
| +
|
| + @property
|
| + def device_id(self):
|
| + return self._device_id
|
| +
|
| + @property
|
| + def enable_performance_mode(self):
|
| + return self._enable_performance_mode
|
| +
|
| +
|
| +def GetDeviceSerials():
|
| + device_serials = adb_commands.GetAttachedDevices()
|
| + # The monsoon provides power for the device, so for devices with no
|
| + # real battery, we need to turn them on after the monsoon enables voltage
|
| + # output to the device.
|
| + if not device_serials:
|
| + try:
|
| + m = monsoon.Monsoon(wait=False)
|
| + m.SetUsbPassthrough(1)
|
| + m.SetVoltage(3.8)
|
| + m.SetMaxCurrent(8)
|
| + logging.warn("""
|
| Monsoon power monitor detected, but no Android devices.
|
|
|
| The Monsoon's power output has been enabled. Please now ensure that:
|
| @@ -52,19 +65,11 @@ The Monsoon's power output has been enabled. Please now ensure that:
|
|
|
| Waiting for device...
|
| """)
|
| - util.WaitFor(adb_commands.GetAttachedDevices, 600)
|
| - device_serials = adb_commands.GetAttachedDevices()
|
| - except IOError:
|
| - return []
|
| - return [cls(s) for s in device_serials]
|
| -
|
| - @property
|
| - def device_id(self):
|
| - return self._device_id
|
| -
|
| - @property
|
| - def enable_performance_mode(self):
|
| - return self._enable_performance_mode
|
| + util.WaitFor(adb_commands.GetAttachedDevices, 600)
|
| + device_serials = adb_commands.GetAttachedDevices()
|
| + except IOError:
|
| + return []
|
| + return device_serials
|
|
|
|
|
| def GetDevice(finder_options):
|
| @@ -74,9 +79,9 @@ def GetDevice(finder_options):
|
| 'No adb command found. Will not try searching for Android browsers.')
|
| return None
|
|
|
| - if finder_options.android_device:
|
| + if finder_options.device and finder_options.device in GetDeviceSerials():
|
| return AndroidDevice(
|
| - finder_options.android_device,
|
| + finder_options.device,
|
| enable_performance_mode=not finder_options.no_performance_mode)
|
|
|
| devices = AndroidDevice.GetAllConnectedDevices()
|
| @@ -121,3 +126,11 @@ def CanDiscoverDevices():
|
| return True
|
| return False
|
|
|
| +
|
| +def FindAllAvailableDevices(_):
|
| + """Returns a list of available devices.
|
| + """
|
| + if not CanDiscoverDevices():
|
| + return []
|
| + else:
|
| + return AndroidDevice.GetAllConnectedDevices()
|
|
|