From c7cfb2c8682b223e5949735a015cb920934b36cd Mon Sep 17 00:00:00 2001 From: Allan Wang Date: Sat, 23 May 2020 18:36:41 -0700 Subject: Create full size image css --- .../com/pitchedapps/frost/injectors/CssHider.kt | 4 ++-- .../pitchedapps/frost/injectors/CssSmallAssets.kt | 20 ++++++++++++++++++++ .../main/kotlin/com/pitchedapps/frost/utils/Prefs.kt | 2 ++ .../kotlin/com/pitchedapps/frost/web/DebugWebView.kt | 2 ++ .../com/pitchedapps/frost/web/FrostWebViewClients.kt | 4 +++- 5 files changed, 29 insertions(+), 3 deletions(-) create mode 100644 app/src/main/kotlin/com/pitchedapps/frost/injectors/CssSmallAssets.kt (limited to 'app') diff --git a/app/src/main/kotlin/com/pitchedapps/frost/injectors/CssHider.kt b/app/src/main/kotlin/com/pitchedapps/frost/injectors/CssHider.kt index 94367853..9630117d 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/injectors/CssHider.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/injectors/CssHider.kt @@ -24,7 +24,7 @@ import com.pitchedapps.frost.utils.Prefs * * List of elements to hide */ -enum class CssHider(vararg val items: String) : InjectorContract { +enum class CssHider(private vararg val items: String) : InjectorContract { CORE("[data-sigil=m_login_upsell]", "[role=progressbar]"), HEADER( "#header:not(.mFuturePageHeader):not(.titled)", @@ -51,7 +51,7 @@ enum class CssHider(vararg val items: String) : InjectorContract { val injector: JsInjector by lazy { JsBuilder().css("${items.joinToString(separator = ",")}{display:none !important}") - .single(name).build() + .single("css-hider-$name").build() } override fun inject(webView: WebView, prefs: Prefs) = diff --git a/app/src/main/kotlin/com/pitchedapps/frost/injectors/CssSmallAssets.kt b/app/src/main/kotlin/com/pitchedapps/frost/injectors/CssSmallAssets.kt new file mode 100644 index 00000000..e2485c71 --- /dev/null +++ b/app/src/main/kotlin/com/pitchedapps/frost/injectors/CssSmallAssets.kt @@ -0,0 +1,20 @@ +package com.pitchedapps.frost.injectors + +import android.webkit.WebView +import com.pitchedapps.frost.utils.Prefs + +/** + * Small misc inline css assets + */ +enum class CssSmallAssets(private val content: String) : InjectorContract { + FullSizeImage("div._4prr[style*=\"max-width\"][style*=\"max-height\"]{max-width:none !important;max-height:none !important}") + ; + + val injector: JsInjector by lazy { + JsBuilder().css(content).single("css-small-assets-$name").build() + } + + override fun inject(webView: WebView, prefs: Prefs) { + injector.inject(webView, prefs) + } +} \ No newline at end of file diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt index 8b2b5067..1dfd6871 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt @@ -198,6 +198,8 @@ class Prefs(factory: KPrefFactory) : KPref("${BuildConfig.APPLICATION_ID}.prefs" var showCreateFab: Boolean by kpref("show_create_fab", true) + var fullSizeImage: Boolean by kpref("full_size_image", false) + inline val mainActivityLayout: MainActivityLayout get() = MainActivityLayout(mainActivityLayoutType) diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/DebugWebView.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/DebugWebView.kt index 8d4deef8..199e9cfb 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/DebugWebView.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/DebugWebView.kt @@ -26,6 +26,7 @@ import android.webkit.WebView import ca.allanwang.kau.utils.withAlpha import com.pitchedapps.frost.facebook.USER_AGENT import com.pitchedapps.frost.injectors.CssHider +import com.pitchedapps.frost.injectors.CssSmallAssets import com.pitchedapps.frost.injectors.jsInject import com.pitchedapps.frost.utils.L import com.pitchedapps.frost.utils.Prefs @@ -116,6 +117,7 @@ class DebugWebView @JvmOverloads constructor( (url?.contains("?sk=h_chr") ?: false) && prefs.aggressiveRecents ), + CssSmallAssets.FullSizeImage.maybe(prefs.fullSizeImage), prefs = prefs ) } diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt index 4d635547..3e47fd2a 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt @@ -29,6 +29,7 @@ import com.pitchedapps.frost.facebook.FbItem import com.pitchedapps.frost.facebook.WWW_FACEBOOK_COM import com.pitchedapps.frost.facebook.formattedFbUrl import com.pitchedapps.frost.injectors.CssHider +import com.pitchedapps.frost.injectors.CssSmallAssets import com.pitchedapps.frost.injectors.JsActions import com.pitchedapps.frost.injectors.JsAssets import com.pitchedapps.frost.injectors.jsInject @@ -126,10 +127,11 @@ open class FrostWebViewClient(val web: FrostWebView) : BaseWebViewClient() { (web.url?.contains("?sk=h_chr") ?: false) && prefs.aggressiveRecents ), + CssHider.ADS.maybe(!prefs.showFacebookAds), + CssSmallAssets.FullSizeImage.maybe(prefs.fullSizeImage), JsAssets.DOCUMENT_WATCHER, JsAssets.HORIZONTAL_SCROLLING, JsAssets.CLICK_A, - CssHider.ADS.maybe(!prefs.showFacebookAds), JsAssets.CONTEXT_A, JsAssets.MEDIA, prefs = prefs -- cgit v1.2.3