summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChristian Dywan <christian@twotoasts.de>2018-12-31 16:02:24 +0100
committerGitHub <noreply@github.com>2018-12-31 16:02:24 +0100
commit5b322e9befe115fedb4f1c22e51474b885f9a558 (patch)
tree8885102b8789a893bcc3329b144be44581312ed5
parent886029e6254495d2526845c8b6e0513d2690b073 (diff)
downloadmidori-git-5b322e9befe115fedb4f1c22e51474b885f9a558.tar.gz
android: add request desktop site toggle (#224)
Provide a menu item - to change the user agent platform from Android to X11 Linux - drop the 'Mobile' keyword from the user agent - change view port to desktop behavior
-rw-r--r--app/src/main/java/org/midori_browser/midori/BrowserActivity.kt22
-rw-r--r--app/src/main/res/menu/app_menu.xml3
-rw-r--r--app/src/main/res/values/strings.xml1
3 files changed, 25 insertions, 1 deletions
diff --git a/app/src/main/java/org/midori_browser/midori/BrowserActivity.kt b/app/src/main/java/org/midori_browser/midori/BrowserActivity.kt
index 337301f1..8eefda7e 100644
--- a/app/src/main/java/org/midori_browser/midori/BrowserActivity.kt
+++ b/app/src/main/java/org/midori_browser/midori/BrowserActivity.kt
@@ -31,7 +31,7 @@ class BrowserActivity : AppCompatActivity() {
val webSettings = webView.settings
webSettings.javaScriptEnabled = true
- webSettings.userAgentString += " " + getString(R.string.userAgentVersion)
+ requestDesktopSite(false)
webSettings.databaseEnabled = true
webSettings.setAppCacheEnabled(true)
webSettings.domStorageEnabled = true
@@ -106,6 +106,20 @@ class BrowserActivity : AppCompatActivity() {
}
val completion = listOf("www.midori-browser.org", "example.com", "duckduckgo.com")
+ fun requestDesktopSite(desktopSite: Boolean) {
+ webView.settings.apply {
+ userAgentString = null // Reset to default
+ userAgentString = userAgentString + " " + getString(R.string.userAgentVersion)
+ if (desktopSite) {
+ // Websites look for "Android" and "Mobile" keywords to decide what's not desktop
+ val mobileOS = userAgentString.substring(userAgentString.indexOf("("), userAgentString.indexOf(")") + 1)
+ userAgentString = userAgentString.replace(mobileOS, "(X11; Linux x86_64)").replace(" Mobile", "")
+ }
+ useWideViewPort = desktopSite
+ loadWithOverviewMode = desktopSite
+ }
+ }
+
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
menuInflater.inflate(R.menu.app_menu, menu)
@@ -129,6 +143,12 @@ class BrowserActivity : AppCompatActivity() {
webView.clearCache(true)
true
}
+ R.id.actionRequestDesktopSite -> {
+ item.isChecked = !item.isChecked
+ requestDesktopSite(item.isChecked)
+ webView.reload()
+ true
+ }
else -> {
super.onOptionsItemSelected(item)
}
diff --git a/app/src/main/res/menu/app_menu.xml b/app/src/main/res/menu/app_menu.xml
index ae19d8b1..1358707a 100644
--- a/app/src/main/res/menu/app_menu.xml
+++ b/app/src/main/res/menu/app_menu.xml
@@ -10,4 +10,7 @@
android:title="@string/actionClearPrivateData"
android:icon="@drawable/ic_clear_private_data_24dp"
app:showAsAction="ifRoom"/>
+ <item android:id="@+id/actionRequestDesktopSite"
+ android:title="@string/actionRequestDesktopSite"
+ android:checkable="true"/>
</menu>
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 5d899290..17088d3d 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -5,6 +5,7 @@
<string name="actionShare">Share</string>
<string name="actionClearPrivateData">Clear Private Data</string>
+ <string name="actionRequestDesktopSite">Request Desktop site</string>
<string name="hintSearchOrEnterAddress">Search or enter an address</string>
</resources>