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
|
package es.verdnatura.presentation.view.feature.controlador.fragment
|
||||||
|
|
||||||
|
import android.annotation.SuppressLint
|
||||||
import android.content.Context
|
import android.content.Context
|
||||||
import android.graphics.drawable.Drawable
|
import android.graphics.drawable.Drawable
|
||||||
import android.os.Build
|
import android.os.Bundle
|
||||||
import android.print.PrintAttributes
|
import android.print.PrintAttributes
|
||||||
import android.print.PrintManager
|
import android.print.PrintManager
|
||||||
|
import android.view.GestureDetector
|
||||||
|
import android.view.MotionEvent
|
||||||
|
import android.view.View
|
||||||
import android.webkit.WebChromeClient
|
import android.webkit.WebChromeClient
|
||||||
import android.webkit.WebView
|
import android.webkit.WebView
|
||||||
import android.widget.ImageView
|
import android.widget.ImageView
|
||||||
|
import androidx.core.view.GestureDetectorCompat
|
||||||
import androidx.recyclerview.widget.LinearLayoutManager
|
import androidx.recyclerview.widget.LinearLayoutManager
|
||||||
import es.verdnatura.R
|
import es.verdnatura.R
|
||||||
import es.verdnatura.databinding.FragmentWebBinding
|
import es.verdnatura.databinding.FragmentWebBinding
|
||||||
|
@ -18,12 +22,11 @@ import es.verdnatura.presentation.common.ToolBarAdapterTooltip
|
||||||
import es.verdnatura.presentation.view.component.CustomDialog
|
import es.verdnatura.presentation.view.component.CustomDialog
|
||||||
import org.json.JSONObject
|
import org.json.JSONObject
|
||||||
|
|
||||||
|
|
||||||
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
|
@Suppress("UNUSED_ANONYMOUS_PARAMETER")
|
||||||
class WebFragment(
|
class WebFragment(
|
||||||
var entryPoint: String = ""
|
var entryPoint: String = ""
|
||||||
) : BaseFragment<FragmentWebBinding, ControladorViewModel>(ControladorViewModel::class) {
|
) : BaseFragment<FragmentWebBinding, ControladorViewModel>(ControladorViewModel::class) {
|
||||||
|
private lateinit var gestureDetector: GestureDetectorCompat
|
||||||
override fun getLayoutId(): Int = R.layout.fragment_web
|
override fun getLayoutId(): Int = R.layout.fragment_web
|
||||||
private lateinit var customDialog: CustomDialog
|
private lateinit var customDialog: CustomDialog
|
||||||
|
|
||||||
|
@ -33,16 +36,41 @@ class WebFragment(
|
||||||
|
|
||||||
override fun init() {
|
override fun init() {
|
||||||
|
|
||||||
|
|
||||||
customDialog = CustomDialog(requireContext())
|
customDialog = CustomDialog(requireContext())
|
||||||
setToolbar()
|
setToolbar()
|
||||||
setWeb()
|
setWeb()
|
||||||
super.init()
|
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() {
|
private fun setWeb() {
|
||||||
|
|
||||||
binding.webView.webChromeClient = WebChromeClient()
|
binding.webView.webChromeClient = WebChromeClient()
|
||||||
|
|
||||||
val webSettings = binding.webView.settings
|
val webSettings = binding.webView.settings
|
||||||
webSettings.javaScriptEnabled = true
|
webSettings.javaScriptEnabled = true
|
||||||
webSettings.domStorageEnabled = true
|
webSettings.domStorageEnabled = true
|
||||||
|
@ -52,16 +80,18 @@ class WebFragment(
|
||||||
webSettings.displayZoomControls = false
|
webSettings.displayZoomControls = false
|
||||||
webSettings.setSupportZoom(true)
|
webSettings.setSupportZoom(true)
|
||||||
webSettings.allowFileAccess = 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 pdfUrl = "${dataScanned.get("web")}"
|
||||||
val googleDocsViewerUrl = "https://docs.google.com/gview?embedded=true&url=$pdfUrl"
|
val googleDocsViewerUrl = "https://docs.google.com/gview?embedded=true&url=$pdfUrl"
|
||||||
binding.webView.loadUrl(googleDocsViewerUrl)
|
binding.webView.loadUrl(googleDocsViewerUrl)
|
||||||
}else{
|
} else {
|
||||||
binding.webView.loadUrl(dataScanned.get("web").toString())
|
binding.webView.loadUrl(dataScanned.get("web").toString())
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -70,17 +100,15 @@ class WebFragment(
|
||||||
private fun setToolbar() {
|
private fun setToolbar() {
|
||||||
|
|
||||||
binding.mainToolbar.toolbarTitle.text =
|
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 listIcons: ArrayList<ImageView> = ArrayList()
|
||||||
val iconPrint = ImageView(context)
|
val iconPrint = ImageView(context)
|
||||||
iconPrint.setImageResource(R.drawable.ic_print_black_24dp)
|
iconPrint.setImageResource(R.drawable.ic_print_black_24dp)
|
||||||
|
iconPrint.tooltipText = getTooltip(R.drawable.ic_print_black_24dp)
|
||||||
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
|
|
||||||
|
|
||||||
iconPrint.tooltipText = getTooltip(R.drawable.ic_print_black_24dp)
|
|
||||||
|
|
||||||
}
|
|
||||||
|
|
||||||
//listIcons.add(iconPrint)
|
//listIcons.add(iconPrint)
|
||||||
|
|
||||||
|
@ -97,12 +125,10 @@ class WebFragment(
|
||||||
binding.mainToolbar.toolbarIcons.layoutManager =
|
binding.mainToolbar.toolbarIcons.layoutManager =
|
||||||
LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
|
LinearLayoutManager(requireContext(), LinearLayoutManager.HORIZONTAL, false)
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
private fun createWebPrintJob(webView: WebView) {
|
private fun createWebPrintJob(webView: WebView) {
|
||||||
|
|
||||||
|
|
||||||
// Get a PrintManager instance
|
// Get a PrintManager instance
|
||||||
(activity?.getSystemService(Context.PRINT_SERVICE) as? PrintManager)?.let { printManager ->
|
(activity?.getSystemService(Context.PRINT_SERVICE) as? PrintManager)?.let { printManager ->
|
||||||
|
|
||||||
|
@ -124,6 +150,5 @@ class WebFragment(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue