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.iconicsMaterial
implementation kau.Dependencies.iconicsCommunity implementation kau.Dependencies.iconicsCommunity
implementation kau.Dependencies.materialDialog("input")
implementation "org.jsoup:jsoup:${Versions.jsoup}" implementation "org.jsoup:jsoup:${Versions.jsoup}"
implementation "com.squareup.okhttp3:okhttp:${Versions.okhttp}" implementation "com.squareup.okhttp3:okhttp:${Versions.okhttp}"

View File

@ -19,11 +19,16 @@ package com.pitchedapps.frost.web
import android.net.Uri import android.net.Uri
import android.webkit.ConsoleMessage import android.webkit.ConsoleMessage
import android.webkit.GeolocationPermissions import android.webkit.GeolocationPermissions
import android.webkit.JsPromptResult
import android.webkit.JsResult
import android.webkit.ValueCallback import android.webkit.ValueCallback
import android.webkit.WebChromeClient import android.webkit.WebChromeClient
import android.webkit.WebView import android.webkit.WebView
import ca.allanwang.kau.permissions.PERMISSION_ACCESS_FINE_LOCATION import ca.allanwang.kau.permissions.PERMISSION_ACCESS_FINE_LOCATION
import ca.allanwang.kau.permissions.kauRequestPermissions 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.R
import com.pitchedapps.frost.contracts.ActivityContract import com.pitchedapps.frost.contracts.ActivityContract
import com.pitchedapps.frost.utils.L import com.pitchedapps.frost.utils.L
@ -73,6 +78,73 @@ class FrostChromeClient(web: FrostWebView) : WebChromeClient() {
return activity != null 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( override fun onGeolocationPermissionsShowPrompt(
origin: String, origin: String,
callback: GeolocationPermissions.Callback callback: GeolocationPermissions.Callback

View File

@ -3,4 +3,6 @@ v2.4.2
* Fix back stack history * Fix back stack history
* Fix search suggestions * Fix search suggestions
* Redesign navigation layout * 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> <resources>
<color name="frost_splash_background">@color/facebook_blue</color> <color name="frost_splash_background">@color/facebook_blue</color>
<color name="facebook_blue">#3b5998</color> <color name="facebook_blue">#3b5998</color>
<color name="facebook_blue_light">#6183C8</color>
<color name="facebook_blue_dark">#2e4b86</color> <color name="facebook_blue_dark">#2e4b86</color>
<color name="frost_notification_accent">@color/facebook_blue</color> <color name="frost_notification_accent">@color/facebook_blue</color>
</resources> </resources>

View File

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

View File

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

View File

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