diff --git a/app/src/androidTest/java/com/hippo/ehviewer/CookieDBTest.java b/app/src/androidTest/java/com/hippo/ehviewer/CookieDBTest.java index f46a9f3a0..128df76d9 100644 --- a/app/src/androidTest/java/com/hippo/ehviewer/CookieDBTest.java +++ b/app/src/androidTest/java/com/hippo/ehviewer/CookieDBTest.java @@ -16,38 +16,7 @@ package com.hippo.ehviewer; -import com.hippo.okhttp.CookieDB; - -import junit.framework.Assert; import junit.framework.TestCase; public class CookieDBTest extends TestCase { - - private static final String[] TEST_DOMAIN = { - null, - "", - "asdfghjkl", - "asdfghjkl.sds", - "asdfghjkl.sds.sddddd", - "asdfghjkl.sds.sddddd.aaaaa", - "asdfghjkl.sds.sddddd.", - "asdfghjkl.sds..", - }; - - private static final String[] TEST_COOKIES_DOMAIN = { - "", - "", - "asdfghjkl", - "asdfghjkl.sds", - "sds.sddddd", - "sddddd.aaaaa", - "sddddd.", - ".", - }; - - public void testCookiesDomain() { - for (int i = 0; i < TEST_DOMAIN.length; i++) { - Assert.assertEquals(TEST_COOKIES_DOMAIN[i], CookieDB.cookiesDomain(TEST_DOMAIN[i])); - } - } } diff --git a/app/src/main/java/com/hippo/ehviewer/Settings.java b/app/src/main/java/com/hippo/ehviewer/Settings.java index 77f11f22c..ea92df9d5 100644 --- a/app/src/main/java/com/hippo/ehviewer/Settings.java +++ b/app/src/main/java/com/hippo/ehviewer/Settings.java @@ -20,16 +20,25 @@ import android.content.Context; import android.content.SharedPreferences; import android.preference.PreferenceManager; +import com.hippo.ehviewer.client.EhConfig; import com.hippo.yorozuya.NumberUtils; public class Settings { private static Context sContext; private static SharedPreferences sSettingsPre; + private static EhConfig sEhConfig; public static void initialize(Context context) { sContext = context.getApplicationContext(); sSettingsPre = PreferenceManager.getDefaultSharedPreferences(sContext); + sEhConfig = loadEhConfig(); + } + + private static EhConfig loadEhConfig() { + EhConfig ehConfig= new EhConfig(); + // TODO + return ehConfig; } public static boolean getBoolean(String key, boolean defValue) { @@ -101,4 +110,14 @@ public class Settings { public static void putShowWarning(boolean value) { putBoolean(KEY_SHOW_WARNING, value); } + + + + public static EhConfig getEhConfig() { + return sEhConfig; + } + + + + } diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhConfig.java b/app/src/main/java/com/hippo/ehviewer/client/EhConfig.java index 28f696e0e..220618049 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhConfig.java +++ b/app/src/main/java/com/hippo/ehviewer/client/EhConfig.java @@ -488,7 +488,7 @@ public class EhConfig implements Cloneable { * key: {@link #KEY_PREVIEW_SIZE}
* value: {@link #PREVIEW_SIZE_NORMAL}, {@link #PREVIEW_SIZE_LARGE} */ - public String previewSize = PREVIEW_SIZE_NORMAL; + public String previewSize = PREVIEW_SIZE_LARGE; /** * Preview row
@@ -650,16 +650,12 @@ public class EhConfig implements Cloneable { KEY_MULTI_PAGE_THUMB + "_" + multiPageThumb; } - /* - public void fillCookie(Cookie cookie) { + public String uconfig() { if (mDirty) { mDirty = false; updateUconfig(); } - cookie.put(KEY_UCONFIG, mUconfig); - cookie.put(KEY_LOFI_RESOLUTION, lofiResolution); - cookie.put(KEY_CONTENT_WARNING, contentWarning); + return mUconfig; } - */ } diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhCookieStore.java b/app/src/main/java/com/hippo/ehviewer/client/EhCookieStore.java index d3132df53..8e79ebfd2 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhCookieStore.java +++ b/app/src/main/java/com/hippo/ehviewer/client/EhCookieStore.java @@ -19,10 +19,12 @@ package com.hippo.ehviewer.client; import com.hippo.okhttp.CookieDBStore; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import okhttp3.Cookie; import okhttp3.HttpUrl; +import okhttp3.Request; public class EhCookieStore extends CookieDBStore { @@ -61,19 +63,52 @@ public class EhCookieStore extends CookieDBStore { return builder.build(); } + @Override + public List loadForRequest(HttpUrl url, Request request) { + List cookies = super.loadForRequest(url, request); + Object tag = request.tag(); + + if (url.host().equals(EhUrl.DOMAIN_EX) && tag instanceof EhConfig) { + EhConfig ehConfig = (EhConfig) tag; + + List result = new ArrayList<>(cookies.size() + 1); + // Add all but skip uconfig + for (Cookie cookie: cookies) { + if (EhConfig.KEY_UCONFIG.equals(cookie.name())) { + continue; + } + result.add(cookie); + } + // Add uconfig from EhConfig + Cookie uconfigCookie = new Cookie.Builder() + .name(EhConfig.KEY_UCONFIG) + .value(ehConfig.uconfig()) + .domain(EhUrl.DOMAIN_EX) + .path("/") + .build(); + result.add(uconfigCookie); + + return Collections.unmodifiableList(result); + } else { + return cookies; + } + } + @Override public void saveFromResponse(HttpUrl url, List cookies) { - List cs = new ArrayList<>(cookies.size() + 2); + List result = new ArrayList<>(cookies.size() + 2); for (Cookie cookie: cookies) { - cs.add(cookie); + result.add(cookie); + + // Save id and hash for exhentai if (EhUrl.DOMAIN_E.equals(cookie.domain()) && (KEY_IPD_MEMBER_ID.equals(cookie.name()) || KEY_IPD_PASS_HASH.equals(cookie.name()))) { - cs.add(newCookie(cookie, EhUrl.DOMAIN_EX)); + result.add(newCookie(cookie, EhUrl.DOMAIN_EX)); } } - super.saveFromResponse(url, cs); + super.saveFromResponse(url, Collections.unmodifiableList(result)); } } diff --git a/app/src/main/java/com/hippo/ehviewer/client/EhRequestBuilder.java b/app/src/main/java/com/hippo/ehviewer/client/EhRequestBuilder.java index 78a533ef7..ec681f78b 100644 --- a/app/src/main/java/com/hippo/ehviewer/client/EhRequestBuilder.java +++ b/app/src/main/java/com/hippo/ehviewer/client/EhRequestBuilder.java @@ -16,14 +16,17 @@ package com.hippo.ehviewer.client; +import com.hippo.ehviewer.Settings; import com.hippo.okhttp.ChromeRequestBuilder; public class EhRequestBuilder extends ChromeRequestBuilder { public EhRequestBuilder(String url) { - super(url); + this(url, Settings.getEhConfig()); } - - + public EhRequestBuilder(String url, EhConfig ehConfig) { + super(url); + tag(ehConfig); + } } diff --git a/beerbelly b/beerbelly index 6163029f6..f13aeed90 160000 --- a/beerbelly +++ b/beerbelly @@ -1 +1 @@ -Subproject commit 6163029f62204bd090e75ba9dc87b62485383572 +Subproject commit f13aeed90431e50b6a06951c6a24411b866f1bbe diff --git a/cardsalon b/cardsalon index 59b2b3618..0ea892e7e 160000 --- a/cardsalon +++ b/cardsalon @@ -1 +1 @@ -Subproject commit 59b2b3618713a569d937790337f3512552fbf9c1 +Subproject commit 0ea892e7ec34131d87cb9e91a939ede2cad0b6c5 diff --git a/conaco b/conaco index a6d0f5a7a..becb4a8c4 160000 --- a/conaco +++ b/conaco @@ -1 +1 @@ -Subproject commit a6d0f5a7a6232941af33cccd0ec1a2107140fd1d +Subproject commit becb4a8c420476198d1cb63d894ca4e599e7195d diff --git a/yorozuya b/yorozuya index 8d2a07ead..cd9bd4ca5 160000 --- a/yorozuya +++ b/yorozuya @@ -1 +1 @@ -Subproject commit 8d2a07ead62485d09223ded67176e924779af2da +Subproject commit cd9bd4ca50123d53e599c3d19955ea33f871ed6f