|
|
|
@@ -16,6 +16,7 @@ import android.os.Bundle
|
|
|
|
|
import android.os.Environment
|
|
|
|
|
import android.os.Handler
|
|
|
|
|
import android.os.Message
|
|
|
|
|
import android.print.PDFPrint
|
|
|
|
|
import android.provider.MediaStore
|
|
|
|
|
import android.util.TypedValue
|
|
|
|
|
import android.view.Gravity
|
|
|
|
@@ -59,6 +60,7 @@ import androidx.appcompat.widget.Toolbar
|
|
|
|
|
import androidx.coordinatorlayout.widget.CoordinatorLayout
|
|
|
|
|
import androidx.core.content.ContextCompat
|
|
|
|
|
import androidx.core.content.FileProvider
|
|
|
|
|
import androidx.core.net.toUri
|
|
|
|
|
import com.google.android.material.snackbar.Snackbar
|
|
|
|
|
import kr.lunaticbum.awesomewebview.databinding.AwesomeWebViewBinding
|
|
|
|
|
import kr.lunaticbum.awesomewebview.enums.Position
|
|
|
|
@@ -81,6 +83,7 @@ import kr.lunaticbum.utils.log.LogUtil
|
|
|
|
|
import kr.lunaticbum.utils.service.ClipboardManagerUtil
|
|
|
|
|
import kr.lunaticbum.utils.ui.DisplayUtil
|
|
|
|
|
import kr.lunaticbum.utils.ui.ViewUtil
|
|
|
|
|
import java.io.ByteArrayInputStream
|
|
|
|
|
import java.io.File
|
|
|
|
|
import java.io.IOException
|
|
|
|
|
import java.text.SimpleDateFormat
|
|
|
|
@@ -149,6 +152,8 @@ class AwesomeWebViewActivity : AppCompatActivity(), View.OnClickListener,
|
|
|
|
|
protected var menuTextPaddingLeft: Float = 0f
|
|
|
|
|
protected var menuTextPaddingRight: Float = 0f
|
|
|
|
|
|
|
|
|
|
protected var showMenuPdf: Boolean = false
|
|
|
|
|
protected var stringResPdf: Int = 0
|
|
|
|
|
protected var showMenuRefresh: Boolean = false
|
|
|
|
|
protected var stringResRefresh: Int = 0
|
|
|
|
|
protected var showMenuFind: Boolean = false
|
|
|
|
@@ -416,6 +421,11 @@ class AwesomeWebViewActivity : AppCompatActivity(), View.OnClickListener,
|
|
|
|
|
showMenuRefresh = if (builder?.showMenuRefresh != null) builder?.showMenuRefresh!! else true
|
|
|
|
|
stringResRefresh =
|
|
|
|
|
if (builder?.stringResRefresh != null) builder?.stringResRefresh!! else R.string.refresh
|
|
|
|
|
|
|
|
|
|
showMenuPdf = if (builder?.showMenuPdf != null) builder?.showMenuPdf!! else true
|
|
|
|
|
stringResPdf =
|
|
|
|
|
if (builder?.stringResPdf != null) builder?.stringResPdf!! else R.string.save_pdf
|
|
|
|
|
|
|
|
|
|
showMenuFind = if (builder?.showMenuFind != null) builder?.showMenuFind!! else false
|
|
|
|
|
stringResFind = if (builder?.stringResFind != null) builder?.stringResFind!! else R.string.find
|
|
|
|
|
showMenuShareVia = if (builder?.showMenuShareVia != null) builder?.showMenuShareVia!! else true
|
|
|
|
@@ -715,7 +725,8 @@ class AwesomeWebViewActivity : AppCompatActivity(), View.OnClickListener,
|
|
|
|
|
binding.toolbarContent.close.visibility = if (showIconClose) View.VISIBLE else View.GONE
|
|
|
|
|
binding.toolbarContent.close.isEnabled = !disableIconClose
|
|
|
|
|
|
|
|
|
|
if (((showMenuRefresh
|
|
|
|
|
if (((showMenuPdf
|
|
|
|
|
||showMenuRefresh
|
|
|
|
|
|| showMenuFind
|
|
|
|
|
|| showMenuShareVia
|
|
|
|
|
|| showMenuCopyLink
|
|
|
|
@@ -1076,6 +1087,20 @@ class AwesomeWebViewActivity : AppCompatActivity(), View.OnClickListener,
|
|
|
|
|
params.addRule(if (rtl) RelativeLayout.ALIGN_PARENT_LEFT else RelativeLayout.ALIGN_PARENT_RIGHT)
|
|
|
|
|
binding.menus.shadowLayout.layoutParams = params
|
|
|
|
|
|
|
|
|
|
binding.menus.menuPdf.visibility = if (showMenuPdf) View.VISIBLE else View.GONE
|
|
|
|
|
binding.menus.menuPdf.setBackgroundResource(menuSelector)
|
|
|
|
|
binding.menus.menuPdf.gravity = menuTextGravity
|
|
|
|
|
binding.menus.menuPdfTv.setText(stringResPdf)
|
|
|
|
|
binding.menus.menuPdfTv.setTextSize(TypedValue.COMPLEX_UNIT_PX, menuTextSize)
|
|
|
|
|
binding.menus.menuPdfTv.setTypeface(TypefaceHelper.get(this, menuTextFont))
|
|
|
|
|
binding.menus.menuPdfTv.setTextColor(menuTextColor)
|
|
|
|
|
binding.menus.menuPdfTv.setPadding(
|
|
|
|
|
menuTextPaddingLeft.toInt(),
|
|
|
|
|
0,
|
|
|
|
|
menuTextPaddingRight.toInt(),
|
|
|
|
|
0
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
binding.menus.menuRefresh.visibility = if (showMenuRefresh) View.VISIBLE else View.GONE
|
|
|
|
|
binding.menus.menuRefresh.setBackgroundResource(menuSelector)
|
|
|
|
|
binding.menus.menuRefresh.gravity = menuTextGravity
|
|
|
|
@@ -1090,6 +1115,7 @@ class AwesomeWebViewActivity : AppCompatActivity(), View.OnClickListener,
|
|
|
|
|
0
|
|
|
|
|
)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
binding.menus.menuFind.visibility = if (showMenuFind) View.VISIBLE else View.GONE
|
|
|
|
|
binding.menus.menuFind.setBackgroundResource(menuSelector)
|
|
|
|
|
binding.menus.menuFind.gravity = menuTextGravity
|
|
|
|
@@ -1145,7 +1171,11 @@ class AwesomeWebViewActivity : AppCompatActivity(), View.OnClickListener,
|
|
|
|
|
customMenuLayout.findViewById<TextView>(R.id.customMenu)
|
|
|
|
|
customMenuLayout.setBackgroundResource(menuSelector)
|
|
|
|
|
customMenuLayout.gravity = menuTextGravity
|
|
|
|
|
customMenuTv.setText(customMenu.titleRes)
|
|
|
|
|
if (customMenu.titleRes > -1) {
|
|
|
|
|
customMenuTv.setText(customMenu.titleRes)
|
|
|
|
|
} else {
|
|
|
|
|
customMenuTv.setText(customMenu.title)
|
|
|
|
|
}
|
|
|
|
|
customMenuTv.setTextSize(TypedValue.COMPLEX_UNIT_PX, menuTextSize)
|
|
|
|
|
customMenuTv.setTypeface(TypefaceHelper.get(this, menuTextFont))
|
|
|
|
|
customMenuTv.setTextColor(menuTextColor)
|
|
|
|
@@ -1320,9 +1350,11 @@ class AwesomeWebViewActivity : AppCompatActivity(), View.OnClickListener,
|
|
|
|
|
load()
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
@SuppressLint("MissingSuperCall")
|
|
|
|
|
override fun onBackPressed() {
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
override fun onBackPressed() {
|
|
|
|
|
LogUtil.e("onBackPressed ${webChromeClient} && ${binding.menus.menuLayout.visibility}")
|
|
|
|
|
if (webChromeClient is MyWebChromeClient && (webChromeClient as MyWebChromeClient).onBackPressed()) {
|
|
|
|
|
return
|
|
|
|
|
}
|
|
|
|
@@ -1366,7 +1398,10 @@ class AwesomeWebViewActivity : AppCompatActivity(), View.OnClickListener,
|
|
|
|
|
} else if (viewId == R.id.menuRefresh) {
|
|
|
|
|
webView!!.reload()
|
|
|
|
|
hideMenu()
|
|
|
|
|
} else if (viewId == R.id.menuFind) {
|
|
|
|
|
} else if (viewId == R.id.menuPdf) {
|
|
|
|
|
// PDFPrint
|
|
|
|
|
hideMenu()
|
|
|
|
|
} else if (viewId == R.id.menuFind) {
|
|
|
|
|
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.HONEYCOMB) webView!!.showFindDialog(
|
|
|
|
|
"",
|
|
|
|
|
true
|
|
|
|
@@ -1764,19 +1799,27 @@ class AwesomeWebViewActivity : AppCompatActivity(), View.OnClickListener,
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
inner class MyWebViewClient : WebViewClient() {
|
|
|
|
|
@RequiresApi(Build.VERSION_CODES.LOLLIPOP)
|
|
|
|
|
override fun shouldInterceptRequest(
|
|
|
|
|
view: WebView,
|
|
|
|
|
request: WebResourceRequest
|
|
|
|
|
): WebResourceResponse? {
|
|
|
|
|
LogUtil.e("shouldInterceptRequest request >>> ${request.url.toString()}")
|
|
|
|
|
if (request.url.toString().contains("gif")) {
|
|
|
|
|
return WebResourceResponse(
|
|
|
|
|
"text/plain", "utf-8",
|
|
|
|
|
ByteArrayInputStream("".toByteArray())
|
|
|
|
|
)
|
|
|
|
|
}
|
|
|
|
|
return super.shouldInterceptRequest(view, request)
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
override fun shouldInterceptRequest(view: WebView, url: String): WebResourceResponse? {
|
|
|
|
|
LogUtil.e("shouldInterceptRequest String >>> $url")
|
|
|
|
|
return super.shouldInterceptRequest(view, url)
|
|
|
|
|
}
|
|
|
|
|
// override fun shouldInterceptRequest(view: WebView, url: String): WebResourceResponse? {
|
|
|
|
|
// LogUtil.e("shouldInterceptRequest String >>> $url")
|
|
|
|
|
// if (url.contains("gif")) {
|
|
|
|
|
// return null
|
|
|
|
|
// }
|
|
|
|
|
// return super.shouldInterceptRequest(view, url)
|
|
|
|
|
// }
|
|
|
|
|
|
|
|
|
|
override fun onPageStarted(view: WebView, url: String, favicon: Bitmap?) {
|
|
|
|
|
BroadCastManager.onPageStarted(this@AwesomeWebViewActivity, key, url)
|
|
|
|
|