aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAllan Wang <me@allanwang.ca>2017-08-19 20:31:53 -0700
committerAllan Wang <me@allanwang.ca>2017-08-19 20:31:53 -0700
commitbf2168ee57ded706819d1e4f49d729d4f45e1d29 (patch)
treee4bd606ab8fc90fa7f797709227b901fb0e946b4
parent86630a1a6bfedfb9c9834c5e1d13c45bd37e18e7 (diff)
downloadfrost-bf2168ee57ded706819d1e4f49d729d4f45e1d29.tar.gz
frost-bf2168ee57ded706819d1e4f49d729d4f45e1d29.tar.bz2
frost-bf2168ee57ded706819d1e4f49d729d4f45e1d29.zip
Fix link issue and add option to use default browser
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/settings/Behaviour.kt4
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt1
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt7
-rw-r--r--app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt6
-rw-r--r--app/src/main/res/values/strings_pref_behaviour.xml2
5 files changed, 14 insertions, 6 deletions
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/settings/Behaviour.kt b/app/src/main/kotlin/com/pitchedapps/frost/settings/Behaviour.kt
index bf524835..acdd835e 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/settings/Behaviour.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/settings/Behaviour.kt
@@ -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
}
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 34257da8..126bd500 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Prefs.kt
@@ -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)
}
diff --git a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt
index 469a3951..92d4c109 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/utils/Utils.kt
@@ -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?) {
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 b1466ee8..22b628e9 100644
--- a/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt
+++ b/app/src/main/kotlin/com/pitchedapps/frost/web/FrostWebViewClients.kt
@@ -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)
}
diff --git a/app/src/main/res/values/strings_pref_behaviour.xml b/app/src/main/res/values/strings_pref_behaviour.xml
index 6563ef69..d768a87f 100644
--- a/app/src/main/res/values/strings_pref_behaviour.xml
+++ b/app/src/main/res/values/strings_pref_behaviour.xml
@@ -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>