Change some naming

This commit is contained in:
ganfra 2020-05-14 17:05:08 +02:00
parent 996aa9ef66
commit 03389fc040
3 changed files with 34 additions and 49 deletions

View File

@ -95,7 +95,7 @@ import im.vector.riotx.features.settings.ignored.VectorSettingsIgnoredUsersFragm
import im.vector.riotx.features.settings.push.PushGatewaysFragment
import im.vector.riotx.features.share.IncomingShareFragment
import im.vector.riotx.features.signout.soft.SoftLogoutFragment
import im.vector.riotx.features.widgets.WidgetFragment
import im.vector.riotx.features.widgets.RoomWidgetFragment
@Module
interface FragmentModule {
@ -472,6 +472,6 @@ interface FragmentModule {
@Binds
@IntoMap
@FragmentKey(WidgetFragment::class)
fun bindWidgetFragment(fragment: WidgetFragment): Fragment
@FragmentKey(RoomWidgetFragment::class)
fun bindWidgetFragment(fragment: RoomWidgetFragment): Fragment
}

View File

@ -16,24 +16,14 @@
package im.vector.riotx.features.widgets
import android.annotation.SuppressLint
import android.os.Build
import android.os.Bundle
import android.os.Parcelable
import android.view.View
import android.view.ViewGroup
import android.webkit.CookieManager
import android.webkit.PermissionRequest
import android.webkit.WebChromeClient
import android.webkit.WebSettings
import com.airbnb.mvrx.args
import com.airbnb.mvrx.fragmentViewModel
import com.airbnb.mvrx.withState
import im.vector.fragments.roomwidgets.WebviewPermissionUtils
import im.vector.riotx.R
import im.vector.riotx.core.platform.VectorBaseFragment
import im.vector.riotx.features.themes.ThemeUtils
import im.vector.riotx.features.webview.VectorWebViewClient
import im.vector.riotx.features.webview.WebViewEventListener
import im.vector.riotx.features.widgets.webview.clearAfterWidget
import im.vector.riotx.features.widgets.webview.setupForWidget
@ -47,7 +37,7 @@ data class WidgetArgs(
val widgetId: String
) : Parcelable
class WidgetFragment @Inject constructor(
class RoomWidgetFragment @Inject constructor(
private val viewModelFactory: RoomWidgetViewModel.Factory
) : VectorBaseFragment(), RoomWidgetViewModel.Factory by viewModelFactory, WebViewEventListener {
@ -87,7 +77,6 @@ class WidgetFragment @Inject constructor(
}
override fun onPageStarted(url: String) {
}
override fun onPageFinished(url: String) {
@ -95,7 +84,5 @@ class WidgetFragment @Inject constructor(
}
override fun onPageError(url: String, errorCode: Int, description: String) {
}
}

View File

@ -33,43 +33,41 @@ import im.vector.riotx.features.webview.WebViewEventListener
@SuppressLint("NewApi")
fun WebView.setupForWidget(webViewEventListener: WebViewEventListener) {
// xml value seems ignored
this.setBackgroundColor(ThemeUtils.getColor(context, R.attr.vctr_bottom_nav_background_color))
setBackgroundColor(ThemeUtils.getColor(context, R.attr.vctr_bottom_nav_background_color))
// clear caches
this.clearHistory()
this.clearFormData()
this.clearCache(true)
clearHistory()
clearFormData()
clearCache(true)
this.settings.let { settings ->
// does not cache the data
settings.cacheMode = WebSettings.LOAD_NO_CACHE
// does not cache the data
settings.cacheMode = WebSettings.LOAD_NO_CACHE
// Enable Javascript
settings.javaScriptEnabled = true
// Enable Javascript
settings.javaScriptEnabled = true
// Use WideViewport and Zoom out if there is no viewport defined
settings.useWideViewPort = true
settings.loadWithOverviewMode = true
// Use WideViewport and Zoom out if there is no viewport defined
settings.useWideViewPort = true
settings.loadWithOverviewMode = true
// Enable pinch to zoom without the zoom buttons
settings.builtInZoomControls = true
// Enable pinch to zoom without the zoom buttons
settings.builtInZoomControls = true
// Allow use of Local Storage
settings.domStorageEnabled = true
// Allow use of Local Storage
settings.domStorageEnabled = true
settings.allowFileAccessFromFileURLs = true
settings.allowUniversalAccessFromFileURLs = true
settings.allowFileAccessFromFileURLs = true
settings.allowUniversalAccessFromFileURLs = true
settings.displayZoomControls = false
}
settings.displayZoomControls = false
// Permission requests
this.webChromeClient = object : WebChromeClient() {
webChromeClient = object : WebChromeClient() {
override fun onPermissionRequest(request: PermissionRequest) {
WebviewPermissionUtils.promptForPermissions(R.string.room_widget_resource_permission_title, request, context)
}
}
this.webViewClient = VectorWebViewClient(webViewEventListener)
webViewClient = VectorWebViewClient(webViewEventListener)
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
val cookieManager = CookieManager.getInstance()
@ -79,26 +77,26 @@ fun WebView.setupForWidget(webViewEventListener: WebViewEventListener) {
fun WebView.clearAfterWidget() {
// Make sure you remove the WebView from its parent view before doing anything.
(this.parent as? ViewGroup)?.removeAllViews()
this.webChromeClient = null
this.webViewClient = null
this.clearHistory()
(parent as? ViewGroup)?.removeAllViews()
webChromeClient = null
webViewClient = null
clearHistory()
// NOTE: clears RAM cache, if you pass true, it will also clear the disk cache.
this.clearCache(true)
clearCache(true)
// Loading a blank page is optional, but will ensure that the WebView isn't doing anything when you destroy it.
this.loadUrl("about:blank")
loadUrl("about:blank")
this.onPause()
this.removeAllViews()
onPause()
removeAllViews()
// NOTE: This pauses JavaScript execution for ALL WebViews,
// do not use if you have other WebViews still alive.
// If you create another WebView after calling this,
// make sure to call mWebView.resumeTimers().
this.pauseTimers()
pauseTimers()
// NOTE: This can occasionally cause a segfault below API 17 (4.2)
this.destroy()
destroy()
}