diff --git a/packages/types-android/src/lib/android/org.nativescript.widgets.d.ts b/packages/types-android/src/lib/android/org.nativescript.widgets.d.ts index e0d9e7deb..125841d6d 100644 --- a/packages/types-android/src/lib/android/org.nativescript.widgets.d.ts +++ b/packages/types-android/src/lib/android/org.nativescript.widgets.d.ts @@ -73,6 +73,8 @@ public error: java.lang.Exception; } + export function setCookieManager(cookieManager: java.net.CookieManager): void; + export function initializeCookieManager(): java.net.CookieManager; export function MakeRequest(options: RequestOptions, callback: CompleteCallback, context: any); } } diff --git a/packages/ui-mobile-base/android/widgets/src/main/java/org/nativescript/widgets/Async.java b/packages/ui-mobile-base/android/widgets/src/main/java/org/nativescript/widgets/Async.java index d36b04fdd..f84e58975 100644 --- a/packages/ui-mobile-base/android/widgets/src/main/java/org/nativescript/widgets/Async.java +++ b/packages/ui-mobile-base/android/widgets/src/main/java/org/nativescript/widgets/Async.java @@ -297,10 +297,32 @@ public class Async { private static final String HEAD_METHOD = "HEAD"; private static CookieManager cookieManager; + public static void setCookieManager(CookieManager manager) { + if(manager == null) return; + + cookieManager = manager; + if (CookieHandler.getDefault() == null) { + CookieHandler.setDefault(manager); + } + } + + public static CookieManager initializeCookieManager() { + if (cookieManager == null) { + CookieHandler defaultHandler = CookieHandler.getDefault(); + if (defaultHandler instanceof CookieManager) { + cookieManager = (CookieManager) defaultHandler; + } else { + cookieManager = new CookieManager(); + CookieHandler.setDefault(cookieManager); + } + } + + return cookieManager; + } + public static void MakeRequest(final RequestOptions options, final CompleteCallback callback, final Object context) { if (cookieManager == null) { - cookieManager = new CookieManager(); - CookieHandler.setDefault(cookieManager); + initializeCookieManager(); } final android.os.Handler mHandler = new android.os.Handler(Looper.myLooper());