anchor.diff:          spark.showMessage('Push Failure', e.toString());
         }
       }).whenComplete(() {
  -      _setProgressMessage('');
  -      _toggleProgressVisible(false);
  -      _deployButton.disabled = false;
  -      _deployButton.deliverChanges();
  +      _restoreDialog();
         _monitor = null;
       });
  +  }
  +
  +  void _restoreDialog() {
  +    _setProgressMessage('');
  +    _toggleProgressVisible(false);
  +    _deployButton.disabled = false;
  +    _deployButton.deliverChanges();
     }
   
     void _cancel() {
  
positive.code:     } else if (!MobileDeploy.isAvailable()) {
        spark.showErrorMessage('Unable to Deploy', 'No USB devices available.');
      } else {
        _setProgressMessage('');
        _toggleProgressVisible(false);
        _show();
      }
    }
  
negative.code: 
    void _updateEnablement(ws.Resource resource) {
      enabled = _appliesTo(resource);
    }
  
    void _toggleProgressVisible(bool visible) {
      super._toggleProgressVisible(visible);
      _deployDeviceMessage.style.visibility = visible ? 'visible' : 'hidden';
    }
  
    void _commit() {
  