diff options
author | Allan Wang <me@allanwang.ca> | 2018-01-10 22:13:28 -0500 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-01-10 22:13:28 -0500 |
commit | fd5f2a82eb968b5d50f586925ebb705249062446 (patch) | |
tree | 7e2cb3edad1e2398d74eb2780a912ed05188db41 /app/src/main/kotlin/com/pitchedapps/frost/web | |
parent | ad97b4ff946b4ba3a3f7ac880575eed9de810166 (diff) | |
download | frost-fd5f2a82eb968b5d50f586925ebb705249062446.tar.gz frost-fd5f2a82eb968b5d50f586925ebb705249062446.tar.bz2 frost-fd5f2a82eb968b5d50f586925ebb705249062446.zip |
Misc (#614)
* Add locale log
* Add flyweight design for authenticator
* Add option to have instant messages only
* Update interceptor
* Add hd image model loader (#613)
* Launch image view for view full image
* Update changelog
* Greatly improve ImageActivity loading
* Update hashes
* Add back keyword filter
* Clean up
Diffstat (limited to 'app/src/main/kotlin/com/pitchedapps/frost/web')
3 files changed, 12 insertions, 33 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostRequestInterceptor.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostRequestInterceptor.kt index 454e2a4b..0501e2e6 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostRequestInterceptor.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostRequestInterceptor.kt @@ -17,35 +17,13 @@ import java.io.ByteArrayInputStream */ private val blankResource: WebResourceResponse by lazy { WebResourceResponse("text/plain", "utf-8", ByteArrayInputStream("".toByteArray())) } -//these hosts will redirect to a blank resource -private val blacklistHost: Set<String> = - setOf( - // "edge-chat.facebook.com" //todo make more specific? This is required for message responses - ) - -//these hosts will return null and skip logging -private val whitelistHost: Set<String> = - setOf( - "static.xx.fbcdn.net", - "m.facebook.com", - "touch.facebook.com" - ) - -//these hosts will skip ad inspection -//this list does not have to include anything from the two above -private val adWhitelistHost: Set<String> = - setOf( - "scontent-sea1-1.xx.fbcdn.net" - ) - fun WebView.shouldFrostInterceptRequest(request: WebResourceRequest): WebResourceResponse? { - request.url ?: return null - val httpUrl = HttpUrl.parse(request.url.toString()) ?: return null + val requestUrl = request.url?.toString() ?: return null + val httpUrl = HttpUrl.parse(requestUrl) ?: return null val host = httpUrl.host() val url = httpUrl.toString() -// if (blacklistHost.contains(host)) return blankResource - if (whitelistHost.contains(host)) return null - if (!adWhitelistHost.contains(host) && FrostPglAdBlock.isAdHost(host)) return blankResource + if (host.contains("facebook") || host.contains("fbcdn")) return null + if (FrostPglAdBlock.isAdHost(host)) return blankResource // if (!shouldLoadImages && !Prefs.loadMediaOnMeteredNetwork && request.isMedia) return blankResource L.v { "Intercept Request: $host $url" } return null diff --git a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostUrlOverlayValidator.kt b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostUrlOverlayValidator.kt index 9a3dc331..6c09de7c 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostUrlOverlayValidator.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostUrlOverlayValidator.kt @@ -3,7 +3,6 @@ package com.pitchedapps.frost.web import com.pitchedapps.frost.activities.WebOverlayActivity import com.pitchedapps.frost.activities.WebOverlayActivityBase import com.pitchedapps.frost.activities.WebOverlayBasicActivity - import com.pitchedapps.frost.contracts.VideoViewHolder import com.pitchedapps.frost.facebook.FbItem import com.pitchedapps.frost.facebook.USER_AGENT_BASIC @@ -36,6 +35,11 @@ fun FrostWebView.requestWebOverlay(url: String): Boolean { context.runOnUiThread { context.showVideo(url) } return true } + if (url.isImageUrl) { + L.d { "Found fb image" } + context.launchImageActivity(url.formattedFbUrl, null) + return true + } if (!url.isIndependent) { L.d { "Forbid overlay switch" } return false @@ -43,13 +47,14 @@ fun FrostWebView.requestWebOverlay(url: String): Boolean { if (!Prefs.overlayEnabled) return false if (context is WebOverlayActivityBase) { L.v { "Check web request from overlay" } + val shouldUseBasic = url.formattedFbUrl.shouldUseBasicAgent //already overlay; manage user agent - if (userAgentString != USER_AGENT_BASIC && url.formattedFbUrl.shouldUseBasicAgent) { + if (userAgentString != USER_AGENT_BASIC && shouldUseBasic) { L.i { "Switch to basic agent overlay" } context.launchWebOverlayBasic(url) return true } - if (context is WebOverlayBasicActivity && !url.formattedFbUrl.shouldUseBasicAgent) { + if (context is WebOverlayBasicActivity && !shouldUseBasic) { L.i { "Switch from basic agent" } context.launchWebOverlay(url) return true 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 e23ec0f8..d0f7d490 100644 --- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt +++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt @@ -1,15 +1,11 @@ package com.pitchedapps.frost.web -import android.content.Context import android.graphics.Bitmap import android.graphics.Color import android.webkit.WebResourceRequest import android.webkit.WebResourceResponse import android.webkit.WebView import android.webkit.WebViewClient -import com.pitchedapps.frost.activities.LoginActivity -import com.pitchedapps.frost.activities.MainActivity -import com.pitchedapps.frost.activities.SelectorActivity import com.pitchedapps.frost.facebook.FB_URL_BASE import com.pitchedapps.frost.facebook.FbItem import com.pitchedapps.frost.injectors.* |