@Override
 public void onStop() {
   super.onStop();
   if (isBoundToService && mCalibreService != null) {
     mCalibreService.setListener(null);
     mActivity.getApplicationContext().unbindService(mServiceConnection);
     isBoundToService = false;
   }
 }
  @Override
  public void onConnectClick(ConnectionInfo ci) {
    OPDSBrowserFragment frag = ((OPDSBrowserFragment) tab_opds.getFragment());

    if (mCalibreService != null) {
      mCalibreService.connectToServer(ci);
    }
    if (frag != null) {
      frag.loadURL(ci.getContentServerURL(), false);
    }
  }
 @Override
 public void onServiceConnected(ComponentName name, IBinder service) {
   mCalibreService = ((CalibreService.CalibreBinder) service).getService();
   mCalibreService.setListener((CalibreService.CalibreListener) mActivity);
   isBoundToService = true;
 }
 @Override
 public void onRetryClick() {
   if (mCalibreService != null) mCalibreService.discoverServers();
 }