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:
parent
999e87a8c8
commit
c4afa99d44
@ -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}"
|
||||
|
@ -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
|
||||
|
@ -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
|
@ -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>
|
||||
|
@ -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>
|
||||
|
@ -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" />
|
||||
|
@ -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
|
||||
|
Loading…
Reference in New Issue
Block a user