refs #4683 feat:webFragment
This commit is contained in:
parent
982713f4a2
commit
281f33047a
|
@ -1,14 +1,18 @@
|
|||
package es.verdnatura.presentation.view.feature.controlador.fragment
|
||||
|
||||
|
||||
import android.annotation.SuppressLint
|
||||
import android.content.Context
|
||||
import android.graphics.drawable.Drawable
|
||||
import android.os.Build
|
||||
import android.os.Bundle
|
||||
import android.print.PrintAttributes
|
||||
import android.print.PrintManager
|
||||
import android.view.GestureDetector
|
||||
import android.view.MotionEvent
|
||||
import android.view.View
|
||||
import android.webkit.WebChromeClient
|
||||
import android.webkit.WebView
|
||||
import android.widget.ImageView
|
||||
import androidx.core.view.GestureDetectorCompat
|
||||
import androidx.recyclerview.widget.LinearLayoutManager
|
||||
import es.verdnatura.R
|
||||
import es.verdnatura.databinding.FragmentWebBinding
|
||||
|
@ -18,12 +22,11 @@ import es.verdnatura.presentation.common.ToolBarAdapterTooltip
|
|||
import es.verdnatura.presentation.view.component.CustomDialog
|
||||
import org.json.JSONObject
|
||||
|
||||
|
||||
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
|
||||
class WebFragment(
|
||||
var entryPoint: String = ""
|
||||
) : BaseFragment<FragmentWebBinding, ControladorViewModel>(ControladorViewModel::class) {
|
||||
|
||||
private lateinit var gestureDetector: GestureDetectorCompat
|
||||
override fun getLayoutId(): Int = R.layout.fragment_web
|
||||
private lateinit var customDialog: CustomDialog
|
||||
|
||||
|
@ -33,16 +36,41 @@ class WebFragment(
|
|||
|
||||
override fun init() {
|
||||
|
||||
|
||||
customDialog = CustomDialog(requireContext())
|
||||
setToolbar()
|
||||
setWeb()
|
||||
super.init()
|
||||
}
|
||||
|
||||
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
|
||||
|
||||
gestureDetector = GestureDetectorCompat(
|
||||
requireActivity(),
|
||||
object : GestureDetector.SimpleOnGestureListener() {
|
||||
override fun onFling(
|
||||
e1: MotionEvent?,
|
||||
e2: MotionEvent,
|
||||
velocityX: Float,
|
||||
velocityY: Float
|
||||
): Boolean {
|
||||
if (velocityX > 100 && velocityY < 2000) {
|
||||
binding.webView.goBack()
|
||||
return true
|
||||
|
||||
}
|
||||
return false
|
||||
}
|
||||
}
|
||||
)
|
||||
|
||||
super.onViewCreated(view, savedInstanceState)
|
||||
}
|
||||
|
||||
@SuppressLint("ClickableViewAccessibility")
|
||||
private fun setWeb() {
|
||||
|
||||
binding.webView.webChromeClient = WebChromeClient()
|
||||
|
||||
val webSettings = binding.webView.settings
|
||||
webSettings.javaScriptEnabled = true
|
||||
webSettings.domStorageEnabled = true
|
||||
|
@ -52,16 +80,18 @@ class WebFragment(
|
|||
webSettings.displayZoomControls = false
|
||||
webSettings.setSupportZoom(true)
|
||||
webSettings.allowFileAccess = true
|
||||
//webSettings.defaultTextEncodingName = "utf-8"
|
||||
|
||||
var dataScanned = JSONObject(entryPoint)
|
||||
binding.webView.setOnTouchListener { v, event ->
|
||||
gestureDetector.onTouchEvent(event)
|
||||
}
|
||||
|
||||
val dataScanned = JSONObject(entryPoint)
|
||||
|
||||
if (dataScanned.toString().contains("cmr?")){
|
||||
if (dataScanned.toString().contains("cmr?")) {
|
||||
val pdfUrl = "${dataScanned.get("web")}"
|
||||
val googleDocsViewerUrl = "https://docs.google.com/gview?embedded=true&url=$pdfUrl"
|
||||
binding.webView.loadUrl(googleDocsViewerUrl)
|
||||
}else{
|
||||
} else {
|
||||
binding.webView.loadUrl(dataScanned.get("web").toString())
|
||||
}
|
||||
|
||||
|
@ -70,17 +100,15 @@ class WebFragment(
|
|||
private fun setToolbar() {
|
||||
|
||||
binding.mainToolbar.toolbarTitle.text =
|
||||
getString(R.string.item) + JSONObject(entryPoint).get("entryPoint").toString()
|
||||
buildString {
|
||||
append(getString(R.string.item))
|
||||
append(JSONObject(entryPoint).get("entryPoint").toString())
|
||||
}
|
||||
|
||||
val listIcons: ArrayList<ImageView> = ArrayList()
|
||||
val iconPrint = ImageView(context)
|
||||
iconPrint.setImageResource(R.drawable.ic_print_black_24dp)
|
||||
|
||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
||||
|
||||
iconPrint.tooltipText = getTooltip(R.drawable.ic_print_black_24dp)
|
||||
|
||||
}
|
||||
iconPrint.tooltipText = getTooltip(R.drawable.ic_print_black_24dp)
|
||||
|
||||
//listIcons.add(iconPrint)
|
||||
|
||||
|
@ -97,12 +125,10 @@ class WebFragment(
|
|||
binding.mainToolbar.toolbarIcons.layoutManager =
|
||||
LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
|
||||
|
||||
|
||||
}
|
||||
|
||||
private fun createWebPrintJob(webView: WebView) {
|
||||
|
||||
|
||||
// Get a PrintManager instance
|
||||
(activity?.getSystemService(Context.PRINT_SERVICE) as? PrintManager)?.let { printManager ->
|
||||
|
||||
|
@ -124,6 +150,5 @@ class WebFragment(
|
|||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in New Issue