|
|
|
|
@ -6,7 +6,6 @@ import android.webkit.CookieManager; |
|
|
|
|
import androidx.annotation.NonNull; |
|
|
|
|
|
|
|
|
|
import java.util.ArrayList; |
|
|
|
|
import java.util.Collection; |
|
|
|
|
import java.util.Collections; |
|
|
|
|
import java.util.List; |
|
|
|
|
|
|
|
|
|
@ -16,23 +15,33 @@ import okhttp3.HttpUrl; |
|
|
|
|
|
|
|
|
|
public class OkCookieJar implements CookieJar { |
|
|
|
|
|
|
|
|
|
private CookieManager manager; |
|
|
|
|
|
|
|
|
|
public OkCookieJar() { |
|
|
|
|
try { |
|
|
|
|
manager = CookieManager.getInstance(); |
|
|
|
|
} catch (Throwable ignored) { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@NonNull |
|
|
|
|
@Override |
|
|
|
|
public synchronized List<Cookie> loadForRequest(@NonNull HttpUrl url) { |
|
|
|
|
try { |
|
|
|
|
List<Cookie> items = new ArrayList<>(); |
|
|
|
|
String cookie = CookieManager.getInstance().getCookie(url.toString()); |
|
|
|
|
if (!TextUtils.isEmpty(cookie)) for (String split : cookie.split(";")) items.add(Cookie.parse(url, split)); |
|
|
|
|
String cookie = manager.getCookie(url.toString()); |
|
|
|
|
if (TextUtils.isEmpty(cookie)) return Collections.emptyList(); |
|
|
|
|
for (String split : cookie.split(";")) items.add(Cookie.parse(url, split)); |
|
|
|
|
return items; |
|
|
|
|
} catch (Throwable e) { |
|
|
|
|
return new ArrayList<>(); |
|
|
|
|
return Collections.emptyList(); |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
@Override |
|
|
|
|
public synchronized void saveFromResponse(@NonNull HttpUrl url, @NonNull List<Cookie> cookies) { |
|
|
|
|
try { |
|
|
|
|
for (Cookie cookie : cookies) CookieManager.getInstance().setCookie(url.toString(), cookie.toString()); |
|
|
|
|
for (Cookie cookie : cookies) manager.setCookie(url.toString(), cookie.toString()); |
|
|
|
|
} catch (Throwable ignored) { |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
|