handleError() and done() both call activity.postResult().  Maybe handleError() should call done() instead?  handleError() does it on a timer though.

If you write a separate handleYoutubeError() function you could avoid this problem.