@@ -48,6 +48,7 @@ public class PersistentCookieStore implements CookieStore {
48
48
private static final String COOKIE_PREFS = "CookiePrefsFile" ;
49
49
private static final String COOKIE_NAME_STORE = "names" ;
50
50
private static final String COOKIE_NAME_PREFIX = "cookie_" ;
51
+ private boolean omitNonPersistentCookies = false ;
51
52
52
53
private final ConcurrentHashMap <String , Cookie > cookies ;
53
54
private final SharedPreferences cookiePrefs ;
@@ -82,6 +83,8 @@ public PersistentCookieStore(Context context) {
82
83
83
84
@ Override
84
85
public void addCookie (Cookie cookie ) {
86
+ if (omitNonPersistentCookies && !cookie .isPersistent ())
87
+ return ;
85
88
String name = cookie .getName () + cookie .getDomain ();
86
89
87
90
// Save cookie into local store, or remove if expired
@@ -146,6 +149,29 @@ public List<Cookie> getCookies() {
146
149
return new ArrayList <>(cookies .values ());
147
150
}
148
151
152
+ /**
153
+ * Will make PersistentCookieStore instance ignore Cookies, which are non-persistent by
154
+ * signature (`Cookie.isPersistent`)
155
+ *
156
+ * @param omitNonPersistentCookies true if non-persistent cookies should be omited
157
+ */
158
+ public void setOmitNonPersistentCookies (boolean omitNonPersistentCookies ) {
159
+ this .omitNonPersistentCookies = omitNonPersistentCookies ;
160
+ }
161
+
162
+ /**
163
+ * Non-standard helper method, to delete cookie
164
+ *
165
+ * @param cookie cookie to be removed
166
+ */
167
+ public void deleteCookie (Cookie cookie ) {
168
+ String name = cookie .getName ();
169
+ cookies .remove (name );
170
+ SharedPreferences .Editor prefsWriter = cookiePrefs .edit ();
171
+ prefsWriter .remove (COOKIE_NAME_PREFIX + name );
172
+ prefsWriter .commit ();
173
+ }
174
+
149
175
/**
150
176
* Serializes Cookie object into String
151
177
*
0 commit comments