Use new IDevice.reboot method.

Change-Id: Ic8756ce1e32d594e9c9515df01ab35cf426b9bba
diff --git a/src/com/android/tradefed/device/TestDevice.java b/src/com/android/tradefed/device/TestDevice.java
index 3435c57..397e6f1 100644
--- a/src/com/android/tradefed/device/TestDevice.java
+++ b/src/com/android/tradefed/device/TestDevice.java
@@ -587,7 +587,7 @@
         } else {
             Log.i(LOG_TAG, String.format("Booting device %s into bootloader",
                     getSerialNumber()));
-            executeAdbCommand("reboot", "bootloader");
+            doAdbReboot("bootloader");
         }
         if (!mMonitor.waitForDeviceBootloader(FASTBOOT_TIMEOUT)) {
             // TODO: add recoverBootloader method
@@ -606,9 +606,8 @@
             executeFastbootCommand("reboot");
         } else {
             Log.i(LOG_TAG, String.format("Rebooting device %s", getSerialNumber()));
-            executeAdbCommand("reboot");
+            doAdbReboot(null);
             waitForDeviceNotAvailable("reboot", 2*60*1000);
-
         }
         if (!mMonitor.waitForDeviceAvailable()) {
             recoverDevice();
@@ -616,6 +615,23 @@
         postBootSetup();
     }
 
+    /**
+     * Perform a adb reboot.
+     *
+     * @param into the bootloader name to reboot into, or <code>null</code> to just reboot the
+     * device.
+     * @throws DeviceNotAvailableException
+     */
+    private void doAdbReboot(final String into) throws DeviceNotAvailableException {
+        IDeviceAction rebootAction = new IDeviceAction() {
+            public boolean doAction() throws IOException {
+                getIDevice().reboot(into);
+                return true;
+            }
+        };
+        performDeviceAction("reboot", rebootAction, MAX_RETRY_ATTEMPTS);
+    }
+
     private void waitForDeviceNotAvailable(String operationDesc, long time) {
         // TODO: a bit of a race condition here. Would be better to start a device listener
         // before the operation