anchor.diff:        : super(spark, "deploy-app-old", "Deploy to Mobile", dialog) {
       _ipElement = getElement("#ip");
       _adbElement = getElement("#adb");
  +    _usbDevices = getElement("#usbDevices");
       _liveDeployCheckBox = getElement("#liveDeploy");
       _pushUrlElement = _triggerOnReturn("#pushUrl");
  +    _addDeviceButton = getElement('#addDevice');
   
       _ipElement.onChange.listen(_enableInputs);
       _adbElement.onChange.listen(_enableInputs);
       _liveDeployCheckBox.onChange.listen((_) =>
           spark.localPrefs.setValue("live-deployment", _liveDeployCheckBox.checked));
  +    if (SparkFlags.enableNewUsbApi) {
  +      _usbDevices.hidden = false;
  +      _loadUsbDevices();
  +      _addDeviceButton.onClick.listen((e) {
  +        _addDevice();
  +      });
  +      _usbDevices.onChange.listen((e) {
  +        _selectedDeviceIndex = _usbDevices.selectedIndex;
  +      });
  +    }
       _enableInputs();
     }
   
  
positive.code:   CheckboxInputElement _adbElement;
    InputElement _pushUrlElement;
    InputElement _liveDeployCheckBox;
    ws.Container deployContainer;
    ProgressMonitor _monitor;
    ws.Resource _resource;
  
negative.code: 
      MobileDeploy deployer = new MobileDeploy(deployContainer, spark.localPrefs);
  
      Future f;
  
      if (useAdb && SparkFlags.enableNewUsbApi == true) {
        int index = _usbDevices.selectedIndex;
         String deviceInfo =
             (_usbDevices.children[index] as OptionElement).value;
         List<String> info = deviceInfo.split(':');
         int productId = int.parse(info[0]);
         int vendorId = int.parse(info[1]);
         f = new Future(() {
           return deployer.pushAdb(_monitor, productId: productId, vendorId: vendorId);
         });
      } else {
        // Invoke the deployer methods in Futures in order to capture exceptions.
        f = new Future(() {
          return useAdb ?
              deployer.pushAdb(_monitor) : deployer.pushToHost(url, _monitor);
        });
      }
  
      _monitor.runCancellableFuture(f).then((_) {
        _hide();
  