1
0
mirror of https://github.com/AllanWang/Frost-for-Facebook.git synced 2024-09-19 23:21:34 +02:00

Use MaterialDialog for webviews

This commit is contained in:
Allan Wang 2019-12-30 12:18:46 -08:00
parent 999e87a8c8
commit c4afa99d44
No known key found for this signature in database
GPG Key ID: C93E3F9C679D7A56
7 changed files with 84 additions and 3 deletions

View File

@ -282,6 +282,8 @@ dependencies {
implementation kau.Dependencies.iconicsMaterial
implementation kau.Dependencies.iconicsCommunity
implementation kau.Dependencies.materialDialog("input")
implementation "org.jsoup:jsoup:${Versions.jsoup}"
implementation "com.squareup.okhttp3:okhttp:${Versions.okhttp}"

View File

@ -19,11 +19,16 @@ package com.pitchedapps.frost.web
import android.net.Uri
import android.webkit.ConsoleMessage
import android.webkit.GeolocationPermissions
import android.webkit.JsPromptResult
import android.webkit.JsResult
import android.webkit.ValueCallback
import android.webkit.WebChromeClient
import android.webkit.WebView
import ca.allanwang.kau.permissions.PERMISSION_ACCESS_FINE_LOCATION
import ca.allanwang.kau.permissions.kauRequestPermissions
import ca.allanwang.kau.utils.materialDialog
import com.afollestad.materialdialogs.callbacks.onDismiss
import com.afollestad.materialdialogs.input.input
import com.pitchedapps.frost.R
import com.pitchedapps.frost.contracts.ActivityContract
import com.pitchedapps.frost.utils.L
@ -73,6 +78,73 @@ class FrostChromeClient(web: FrostWebView) : WebChromeClient() {
return activity != null
}
override fun onJsAlert(
view: WebView,
url: String,
message: String,
result: JsResult
): Boolean {
view.context.materialDialog {
title(text = url)
message(text = message)
positiveButton { result.confirm() }
onDismiss { result.cancel() }
}
return true
}
override fun onJsConfirm(
view: WebView,
url: String,
message: String,
result: JsResult
): Boolean {
view.context.materialDialog {
title(text = url)
message(text = message)
positiveButton { result.confirm() }
negativeButton { result.cancel() }
onDismiss { result.cancel() }
}
return true
}
override fun onJsBeforeUnload(
view: WebView,
url: String,
message: String,
result: JsResult
): Boolean {
view.context.materialDialog {
title(text = url)
message(text = message)
positiveButton { result.confirm() }
negativeButton { result.cancel() }
onDismiss { result.cancel() }
}
return true
}
override fun onJsPrompt(
view: WebView,
url: String,
message: String,
defaultValue: String?,
result: JsPromptResult
): Boolean {
view.context.materialDialog {
title(text = url)
message(text = message)
input(prefill = defaultValue) { _, charSequence ->
result.confirm(charSequence.toString())
}
// positive button added through input
negativeButton { result.cancel() }
onDismiss { result.cancel() }
}
return true
}
override fun onGeolocationPermissionsShowPrompt(
origin: String,
callback: GeolocationPermissions.Callback

View File

@ -3,4 +3,6 @@ v2.4.2
* Fix back stack history
* Fix search suggestions
* Redesign navigation layout
* Update theme
* Update theme
* Open formatted urls from context menu
* Allow copying text with emojis

View File

@ -2,6 +2,7 @@
<resources>
<color name="frost_splash_background">@color/facebook_blue</color>
<color name="facebook_blue">#3b5998</color>
<color name="facebook_blue_light">#6183C8</color>
<color name="facebook_blue_dark">#2e4b86</color>
<color name="frost_notification_accent">@color/facebook_blue</color>
</resources>

View File

@ -3,7 +3,7 @@
<style name="FrostTheme" parent="Theme.MaterialComponents.NoActionBar">
<item name="colorPrimary">@color/facebook_blue</item>
<item name="colorPrimaryDark">@color/facebook_blue_dark</item>
<item name="colorAccent">@android:color/white</item>
<item name="colorAccent">@color/facebook_blue_light</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowBackground">@null</item>
<item name="android:windowSoftInputMode">adjustResize</item>
@ -14,7 +14,7 @@
<style name="FrostTheme.Light" parent="Theme.MaterialComponents.Light.NoActionBar">
<item name="colorPrimary">@color/facebook_blue</item>
<item name="colorPrimaryDark">@color/facebook_blue_dark</item>
<item name="colorAccent">@android:color/black</item>
<item name="colorAccent">@color/facebook_blue</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowBackground">@null</item>
<item name="android:windowSoftInputMode">adjustResize</item>

View File

@ -11,6 +11,8 @@
<item text="Fix search suggestions" />
<item text="Redesign navigation layout" />
<item text="Update theme" />
<item text="Open formatted urls from context menu" />
<item text="Allow copying text with emojis" />
<item text="" />
<version title="v2.4.1" />

View File

@ -5,6 +5,8 @@
* Fix search suggestions
* Redesign navigation layout
* Update theme
* Open formatted urls from context menu
* Allow copying text with emojis
## v2.4.1
* Add better support for mobile url conversions