Browse Source

Call KMPDFLongPressCreateAnnotController::longPress_Paste only if ClipboardManager.hasPrimaryClip()

cooperku_kdanmobile 5 years ago
parent
commit
40b5ef335a

+ 8 - 3
src/main/java/com/kdanmobile/reader/screen/contextmenu/MyKMPDFContextMenuCallback.kt

@@ -1,5 +1,6 @@
 package com.kdanmobile.reader.screen.contextmenu
 
+import android.content.ClipboardManager
 import android.content.Context
 import android.graphics.Color
 import android.graphics.Point
@@ -299,10 +300,14 @@ open class MyKMPDFContextMenuCallback(private val kmpdfFactory: KMPDFFactory?) :
     private fun createLongPressContextMenuView(context: Context): View {
         val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
         val contentView = layoutInflater.inflate(R.layout.view_context_menu_long_press, null)
+
+        val clipboardManager = context.getSystemService(Context.CLIPBOARD_SERVICE) as ClipboardManager
         contentView.findViewById<TextView>(R.id.btnPaste_contextMenu).setOnClickListener {
-            val kmpdfLongPressCreateAnnotController = kmpdfFactory?.getController(KMPDFFactory.ControllerType.LONGCLICK) as KMPDFLongPressCreateAnnotController?
-            kmpdfLongPressCreateAnnotController?.longPress_Paste()
-            onLongPress()
+            if (clipboardManager.hasPrimaryClip()) {
+                val kmpdfLongPressCreateAnnotController = kmpdfFactory?.getController(KMPDFFactory.ControllerType.LONGCLICK) as KMPDFLongPressCreateAnnotController?
+                kmpdfLongPressCreateAnnotController?.longPress_Paste()
+                onLongPress()
+            }
             dismissPopupWindow()
         }
         return contentView