package io.filepicker.utils; import android.content.Context; import android.os.Build; import android.webkit.CookieManager; import android.webkit.CookieSyncManager; import java.util.regex.Matcher; import java.util.regex.Pattern; import io.filepicker.api.FpApiClient; /** * Created by maciejwitowski on 1/27/15. */ // Setting, getting and clearing session cookie public class SessionUtils { private SessionUtils() {} public static void setSessionCookie(Context context) { String sessionCookie = getSessionCookie(); if (sessionCookie != null && !sessionCookie.isEmpty()) { PreferencesUtils.newInstance(context).setSessionCookie(context, sessionCookie); } // Set FpApiClient which will use the cookie FpApiClient.setFpApiClient(context); } public static void clearSessionCookies(Context context) { // Remove cookie from prefs PreferencesUtils.newInstance(context).clearSessionCookie(); // Remove cookies from CookieManager if (Build.VERSION.SDK_INT >= 21) { CookieManager.getInstance().removeAllCookies(null); } else { CookieSyncManager.createInstance(context); CookieManager cookieManager = CookieManager.getInstance(); cookieManager.removeAllCookie(); } FpApiClient.setFpApiClient(context); } // Get session cookie from CookieManager private static String getSessionCookie() { String cookie = CookieManager.getInstance().getCookie(FpApiClient.DIALOG_URL); if (cookie == null) { return null; } Pattern regex = Pattern.compile("session=\"(.*)\""); Matcher match = regex.matcher(cookie); if (!match.matches()) { return null; } return match.group(1); } }