public VideoViewRenderer(Context context) : base(context) { // https://github.com/square/okhttp/issues/3372 httpClient ??= new OkHttpClient().NewBuilder() .WriteTimeout(5, Java.Util.Concurrent.TimeUnit.Minutes) .ReadTimeout(5, Java.Util.Concurrent.TimeUnit.Minutes) .AddInterceptor(chain => { var request = chain.Request(); try { var response = chain.Proceed(request); if (response.IsSuccessful) { var body = response.Body(); var contentLength = body.ContentLength(); StreamingResponse?.Invoke(this, new StreamingResponseEventArgs(contentLength)); } return(response); } catch (Java.IO.InterruptedIOException ex) { var contentLength = ex.BytesTransferred; StreamingResponse?.Invoke(this, new StreamingResponseEventArgs(contentLength)); PlaybackError?.Invoke(this, new PlaybackErrorEventArgs(ex)); return(DefaultEmptyHttpResponse(request)); } catch (Exception ex) { if (ex is Java.Net.ConnectException) { } if (ex is Java.Net.UnknownHostException) { // probably no internet } PlaybackError?.Invoke(this, new PlaybackErrorEventArgs(ex)); return(DefaultEmptyHttpResponse(request)); } }) .Build(); }