aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2020-05-23 18:36:41 -0700
committerAllan Wang <me@allanwang.ca>2020-05-23 18:36:41 -0700
commitc7cfb2c8682b223e5949735a015cb920934b36cd (patch)
treefae5c6a5a42e327ea86d91a9397f8e68e76ebea5
parent7c8e02d385d418ebae1f8f718b72c4170a1bc819 (diff)
downloadfrost-c7cfb2c8682b223e5949735a015cb920934b36cd.tar.gz
frost-c7cfb2c8682b223e5949735a015cb920934b36cd.tar.bz2
frost-c7cfb2c8682b223e5949735a015cb920934b36cd.zip
Create full size image css
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/injectors/CssHider.kt4
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/injectors/CssSmallAssets.kt20
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt2
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/web/DebugWebView.kt2
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt4
5 files changed, 29 insertions, 3 deletions
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