cshenfu
2024-12-06 12453df3af1e251f92c38f78aeb7f7e211f4432e
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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<String, String> {
        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}/"
    }
}