diff --git a/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/WebFragment.kt b/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/WebFragment.kt index b7a1bff1..2ced27a2 100644 --- a/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/WebFragment.kt +++ b/app/src/main/java/es/verdnatura/presentation/view/feature/controlador/fragment/WebFragment.kt @@ -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(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 = 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( } } - }