1
0
mirror of https://github.com/AllanWang/Frost-for-Facebook.git synced 2024-11-10 04:52:38 +01:00

Fix link issue and add option to use default browser

This commit is contained in:
Allan Wang 2017-08-19 20:31:53 -07:00
parent 86630a1a6b
commit bf2168ee57
5 changed files with 14 additions and 6 deletions

View File

@ -23,6 +23,10 @@ fun SettingsActivity.getBehaviourPrefs(): KPrefAdapterBuilder.() -> Unit = {
descRes = R.string.overlay_full_screen_swipe_desc
}
checkbox(R.string.open_links_in_default, { Prefs.linksInDefaultApp }, { Prefs.linksInDefaultApp = it }) {
descRes = R.string.open_links_in_default_desc
}
checkbox(R.string.viewpager_swipe, { Prefs.viewpagerSwipe }, { Prefs.viewpagerSwipe = it }) {
descRes = R.string.viewpager_swipe_desc
}

View File

@ -131,4 +131,5 @@ object Prefs : KPref() {
var debugSettings: Boolean by kpref("debug_settings", false)
var linksInDefaultApp: Boolean by kpref("link_in_default_app", false)
}

View File

@ -65,9 +65,10 @@ fun Context.launchWebOverlay(url: String) {
val argUrl = url.formattedFbUrl
L.v("Launch received", url)
L.i("Launch web overlay", argUrl)
startActivity(WebOverlayActivity::class.java, false, intentBuilder = {
putExtra(ARG_URL, argUrl)
})
if (!(Prefs.linksInDefaultApp && resolveActivityForUri(Uri.parse(argUrl))))
startActivity(WebOverlayActivity::class.java, false, intentBuilder = {
putExtra(ARG_URL, argUrl)
})
}
fun Context.launchImageActivity(imageUrl: String, text: String?) {

View File

@ -48,7 +48,7 @@ open class FrostWebViewClient(val webCore: FrostWebViewCore) : BaseWebViewClient
override fun onPageStarted(view: WebView, url: String?, favicon: Bitmap?) {
super.onPageStarted(view, url, favicon)
if (url == null) return
L.i("FWV Loading", url)
L.d("FWV Loading", url)
refreshObservable.onNext(true)
if (!url.isFacebookUrl) return
if (url.contains("logout.php")) FbCookie.logout(Prefs.userId, { launchLogin(view.context) })
@ -81,7 +81,7 @@ open class FrostWebViewClient(val webCore: FrostWebViewCore) : BaseWebViewClient
override fun onPageFinished(view: WebView, url: String?) {
url ?: return
L.i("Page finished", url)
L.d("Page finished", url)
if (!url.isFacebookUrl) {
refreshObservable.onNext(false)
return
@ -141,7 +141,7 @@ open class FrostWebViewClient(val webCore: FrostWebViewCore) : BaseWebViewClient
if (path.startsWith("/composer/")) return launchRequest(request)
if (request.url.toString().contains("scontent-sea1-1.xx.fbcdn.net") && (path.endsWith(".jpg") || path.endsWith(".png")))
return launchImage(request.url.toString())
if (view.context.resolveActivityForUri(request.url)) return true
if (Prefs.linksInDefaultApp && view.context.resolveActivityForUri(request.url)) return true
return super.shouldOverrideUrlLoading(view, request)
}

View File

@ -7,6 +7,8 @@
<string name="overlay_swipe_desc">Pressing most links will launch in a new overlay so you can easily swipe back to the original page. Note that this does result in slightly longer loads given that the whole page is reloaded.</string>
<string name="overlay_full_screen_swipe">Overlay Full Screen Swipe to Dismiss</string>
<string name="overlay_full_screen_swipe_desc">Swipe right from anywhere on the overlaying web to close the browser. If disabled, only swiping from the left edge will move it.</string>
<string name="open_links_in_default">Open Links in Default App</string>
<string name="open_links_in_default_desc">When possible, open links in the default app rather than through the Frost web overlay</string>
<string name="viewpager_swipe">Viewpager Swipe</string>
<string name="viewpager_swipe_desc">Allow swiping between the pages in the main view to switch tabs. By default, the swiping automatically stops when you long press on an item, such as the like button. Disabling this will prevent page swiping altogether.</string>
<string name="search_bar">Search Bar</string>