import android.content.Context import android.net.Uri import android.util.Log import android.webkit.CookieManager import org.json.JSONObject object CookieHelper { private const val PREF_NAME = "CookieHelper" fun saveSessionProfileUrlCookies(context: Context, sessionProfileId: String, url: String) { try{ val cookies = CookieManager.getInstance().getCookie(url) if (cookies != null) { val sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE) val sessionCookiesMap = sharedPreferences.getString(sessionProfileId, "{}") val sessionCookies = JSONObject(sessionCookiesMap!!) sessionCookies.put(url, cookies) sessionCookies.put(getBaseUrl(url), cookies) sharedPreferences.edit().putString(sessionProfileId, sessionCookies.toString()).apply() } } catch (e: java.lang.Exception) { Log.e("CookieHelper", "Failed to get cookies: ", e) } } fun getAllSessionProfileCookies(context: Context, sessionProfileId: String): Map { val sharedPreferences = context.getSharedPreferences(PREF_NAME, Context.MODE_PRIVATE) val sessionCookiesMap = sharedPreferences.getString(sessionProfileId, "{}") val sessionCookies = JSONObject(sessionCookiesMap!!) return sessionCookies.keys().asSequence().associateWith { sessionCookies.getString(it) } } private fun getBaseUrl(url: String): String { val uri = Uri.parse(url) return "${uri.scheme}://${uri.host}/" } }