@@ -39,7 +39,10 @@ export function clearCache() {
3939 }
4040}
4141
42+ // TODO: rewrite this to not have to handle
43+ // every single property
4244let _timeout = 10 ;
45+ let _cookiesEnabled = true ;
4346
4447class HttpsResponseLegacy implements IHttpsResponseLegacy {
4548 private callback ?: com . nativescript . https . OkHttpResponse . OkHttpResponseAsyncCallback ;
@@ -229,7 +232,7 @@ export function disableSSLPinning() {
229232let Client : okhttp3 . OkHttpClient ;
230233let cookieJar : com . nativescript . https . QuotePreservingCookieJar ;
231234let cookieManager : java . net . CookieManager ;
232- function getClient ( reload : boolean = false , timeout : number = 10 ) : okhttp3 . OkHttpClient {
235+ function getClient ( reload : boolean = false , opts : Partial < HttpsRequestOptions > = { } ) : okhttp3 . OkHttpClient {
233236 if ( ! Client ) {
234237 // ssl error fix on KitKat. Only need to be done once.
235238 // client will be null only onced so will run only once
@@ -245,24 +248,48 @@ function getClient(reload: boolean = false, timeout: number = 10): okhttp3.OkHtt
245248 // Client.connectionPool().evictAll()
246249 // Client = null
247250 // }
251+ const timeout = opts . timeout ?? 10 ;
252+ const cookiesEnabled = opts . cookiesEnabled ?? true ;
248253 if ( Client && reload === false ) {
249- if ( timeout === _timeout ) {
254+ const needTimeoutChange = timeout === _timeout ;
255+ const needCookiesChange = cookiesEnabled === _cookiesEnabled ;
256+ if ( ! needTimeoutChange && ! needCookiesChange ) {
250257 return Client ;
251258 } else {
252- return Client . newBuilder ( )
253- . connectTimeout ( timeout , java . util . concurrent . TimeUnit . SECONDS )
254- . writeTimeout ( timeout , java . util . concurrent . TimeUnit . SECONDS )
255- . readTimeout ( timeout , java . util . concurrent . TimeUnit . SECONDS )
256- . build ( ) ;
259+ const builder = Client . newBuilder ( ) ;
260+ if ( needTimeoutChange ) {
261+ builder
262+ . connectTimeout ( timeout , java . util . concurrent . TimeUnit . SECONDS )
263+ . writeTimeout ( timeout , java . util . concurrent . TimeUnit . SECONDS )
264+ . readTimeout ( timeout , java . util . concurrent . TimeUnit . SECONDS ) ;
265+ }
266+ if ( needCookiesChange ) {
267+ if ( cookiesEnabled ) {
268+ if ( ! cookieJar ) {
269+ cookieManager = new java . net . CookieManager ( ) ;
270+ cookieManager . setCookiePolicy ( java . net . CookiePolicy . ACCEPT_ALL ) ;
271+ cookieJar = new com . nativescript . https . QuotePreservingCookieJar ( cookieManager ) ;
272+ }
273+ builder . cookieJar ( cookieJar ) ;
274+ } else {
275+ builder . cookieJar ( null ) ;
276+ }
277+ }
278+ return builder . build ( ) ;
257279 }
258280 }
259- if ( ! cookieJar ) {
260- cookieManager = new java . net . CookieManager ( ) ;
261- cookieManager . setCookiePolicy ( java . net . CookiePolicy . ACCEPT_ALL ) ;
262- cookieJar = new com . nativescript . https . QuotePreservingCookieJar ( cookieManager ) ;
281+ const builder = new okhttp3 . OkHttpClient . Builder ( ) ;
282+
283+ _cookiesEnabled = cookiesEnabled ;
284+ if ( cookiesEnabled ) {
285+ if ( ! cookieJar ) {
286+ cookieManager = new java . net . CookieManager ( ) ;
287+ cookieManager . setCookiePolicy ( java . net . CookiePolicy . ACCEPT_ALL ) ;
288+ cookieJar = new com . nativescript . https . QuotePreservingCookieJar ( cookieManager ) ;
289+ }
290+ builder . cookieJar ( cookieJar ) ;
263291 }
264292
265- const builder = new okhttp3 . OkHttpClient . Builder ( ) ;
266293 interceptors . forEach ( ( interceptor ) => builder . addInterceptor ( interceptor ) ) ;
267294 networkInterceptors . forEach ( ( interceptor ) => builder . addNetworkInterceptor ( interceptor ) ) ;
268295 if ( peer . enabled === true ) {
@@ -333,9 +360,6 @@ function getClient(reload: boolean = false, timeout: number = 10): okhttp3.OkHtt
333360 builder . addInterceptor ( com . nativescript . https . CacheInterceptor . INTERCEPTOR ) ;
334361 }
335362 }
336- if ( cookieJar ) {
337- builder . cookieJar ( cookieJar ) ;
338- }
339363
340364 Client = builder . build ( ) ;
341365 return Client ;
@@ -385,7 +409,7 @@ const runningClients: { [k: string]: okhttp3.OkHttpClient } = {};
385409
386410let OkHttpResponse : typeof com . nativescript . https . OkHttpResponse ;
387411export function createRequest ( opts : HttpsRequestOptions , useLegacy : boolean = true ) : HttpsRequest {
388- const client = getClient ( false , opts . timeout ) ;
412+ const client = getClient ( false , opts ) ;
389413
390414 const request = new okhttp3 . Request . Builder ( ) ;
391415 request . url ( opts . url ) ;
0 commit comments