Browse Source

Move all context menu method to ReaderViewModel::setupContextMenu()

cooperku_kdanmobile 6 years ago
parent
commit
58def824da
1 changed files with 113 additions and 113 deletions
  1. 113 113
      src/main/java/com/kdanmobile/reader/ReaderViewModel.kt

+ 113 - 113
src/main/java/com/kdanmobile/reader/ReaderViewModel.kt

@@ -432,17 +432,17 @@ class ReaderViewModel(private val pdfSdkLicense: String, private val pdfSdkRsaMs
         }
     }
 
-    private var popupWindow: PopupWindow? = null
-
-    private fun dismissPopupWindow() {
-        popupWindow?.dismiss()
-        popupWindow = null
-    }
-
     private fun setupContextMenu() {
         val controller = kmpdfFactory?.getController(KMPDFFactory.ControllerType.CONTEXT_MENU) as KMPDFContextMenuController?
         controller?.contextMenuCallback = object : KMPDFContextMenuCallback {
 
+            private var popupWindow: PopupWindow? = null
+
+            private fun dismissPopupWindow() {
+                popupWindow?.dismiss()
+                popupWindow = null
+            }
+
             override fun onDismissContextMenu(type: KMPDFContextMenuCallback.ContextMenuType?, view: View?) {
                 dismissPopupWindow()
             }
@@ -496,124 +496,124 @@ class ReaderViewModel(private val pdfSdkLicense: String, private val pdfSdkRsaMs
                     popupWindow?.showAtLocation(view, Gravity.LEFT or Gravity.TOP, positionX, positionY)
                 }
             }
-        }
-    }
 
-    private fun createMarkupContextMenuView(context: Context): View {
-        /** Just set HIGH_LIGHT then highlight, strike, underline will be triggered. **/
-        /** WTF !!!!!!!!!!! **/
-        val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
-        val contentView = layoutInflater.inflate(R.layout.view_context_menu_normal, null)
-        contentView.findViewById<TextView>(R.id.btnDelete_contextMenu).setOnClickListener {
-            (kmpdfFactory?.getController(KMPDFFactory.ControllerType.MARKER_UP) as KMPDFMarkupController).deleteMarkupAnnotView()
-            dismissPopupWindow()
-        }
-        return contentView
-    }
+            private fun createMarkupContextMenuView(context: Context): View {
+                /** Just set HIGH_LIGHT then highlight, strike, underline will be triggered. **/
+                /** WTF !!!!!!!!!!! **/
+                val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
+                val contentView = layoutInflater.inflate(R.layout.view_context_menu_normal, null)
+                contentView.findViewById<TextView>(R.id.btnDelete_contextMenu).setOnClickListener {
+                    (kmpdfFactory?.getController(KMPDFFactory.ControllerType.MARKER_UP) as KMPDFMarkupController).deleteMarkupAnnotView()
+                    dismissPopupWindow()
+                }
+                return contentView
+            }
 
-    private fun createInkContextMenuView(context: Context): View {
-        val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
-        val contentView = layoutInflater.inflate(R.layout.view_context_menu_normal, null)
-        contentView.findViewById<TextView>(R.id.btnDelete_contextMenu).setOnClickListener {
-            (kmpdfFactory?.getController(KMPDFFactory.ControllerType.INK) as KMPDFInkController).deleteInkAnnotView()
-            dismissPopupWindow()
-        }
-        return contentView
-    }
+            private fun createInkContextMenuView(context: Context): View {
+                val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
+                val contentView = layoutInflater.inflate(R.layout.view_context_menu_normal, null)
+                contentView.findViewById<TextView>(R.id.btnDelete_contextMenu).setOnClickListener {
+                    (kmpdfFactory?.getController(KMPDFFactory.ControllerType.INK) as KMPDFInkController).deleteInkAnnotView()
+                    dismissPopupWindow()
+                }
+                return contentView
+            }
 
-    private fun createSelectTextContextMenuView(context: Context): View {
-        val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
-        val contentView = layoutInflater.inflate(R.layout.view_context_menu_select_text, null)
-        contentView.findViewById<TextView>(R.id.btnCopy_contextMenu).setOnClickListener {
-            (kmpdfFactory?.getController(KMPDFFactory.ControllerType.SELECT_TEXT) as KMPDFSelectTextController).copySelectedText()
-            dismissPopupWindow()
-        }
-        contentView.findViewById<TextView>(R.id.btnHighlight_contextMenu).setOnClickListener {
-            (kmpdfFactory?.getController(KMPDFFactory.ControllerType.SELECT_TEXT) as KMPDFSelectTextController).highlightSelectedText()
-            dismissPopupWindow()
-        }
-        contentView.findViewById<TextView>(R.id.btnUnderline_contextMenu).setOnClickListener {
-            (kmpdfFactory?.getController(KMPDFFactory.ControllerType.SELECT_TEXT) as KMPDFSelectTextController).underlineSelectedText()
-            dismissPopupWindow()
-        }
-        contentView.findViewById<TextView>(R.id.btnStrikeout_contextMenu).setOnClickListener {
-            (kmpdfFactory?.getController(KMPDFFactory.ControllerType.SELECT_TEXT) as KMPDFSelectTextController).strikeoutSelectedText()
-            dismissPopupWindow()
-        }
-        return contentView
-    }
+            private fun createSelectTextContextMenuView(context: Context): View {
+                val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
+                val contentView = layoutInflater.inflate(R.layout.view_context_menu_select_text, null)
+                contentView.findViewById<TextView>(R.id.btnCopy_contextMenu).setOnClickListener {
+                    (kmpdfFactory?.getController(KMPDFFactory.ControllerType.SELECT_TEXT) as KMPDFSelectTextController).copySelectedText()
+                    dismissPopupWindow()
+                }
+                contentView.findViewById<TextView>(R.id.btnHighlight_contextMenu).setOnClickListener {
+                    (kmpdfFactory?.getController(KMPDFFactory.ControllerType.SELECT_TEXT) as KMPDFSelectTextController).highlightSelectedText()
+                    dismissPopupWindow()
+                }
+                contentView.findViewById<TextView>(R.id.btnUnderline_contextMenu).setOnClickListener {
+                    (kmpdfFactory?.getController(KMPDFFactory.ControllerType.SELECT_TEXT) as KMPDFSelectTextController).underlineSelectedText()
+                    dismissPopupWindow()
+                }
+                contentView.findViewById<TextView>(R.id.btnStrikeout_contextMenu).setOnClickListener {
+                    (kmpdfFactory?.getController(KMPDFFactory.ControllerType.SELECT_TEXT) as KMPDFSelectTextController).strikeoutSelectedText()
+                    dismissPopupWindow()
+                }
+                return contentView
+            }
 
-    private fun createShapeContextMenuView(context: Context): View {
-        val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
-        val contentView = layoutInflater.inflate(R.layout.view_context_menu_normal, null)
-        contentView.findViewById<TextView>(R.id.btnDelete_contextMenu).setOnClickListener {
-            (kmpdfFactory?.getController(KMPDFFactory.ControllerType.SHAPE) as KMPDFShapeAnnotController).deleteShapeAnnotView()
-            dismissPopupWindow()
-        }
-        return contentView
-    }
+            private fun createShapeContextMenuView(context: Context): View {
+                val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
+                val contentView = layoutInflater.inflate(R.layout.view_context_menu_normal, null)
+                contentView.findViewById<TextView>(R.id.btnDelete_contextMenu).setOnClickListener {
+                    (kmpdfFactory?.getController(KMPDFFactory.ControllerType.SHAPE) as KMPDFShapeAnnotController).deleteShapeAnnotView()
+                    dismissPopupWindow()
+                }
+                return contentView
+            }
 
-    private var textBoxContextMenuActionListener: TextBoxContextMenuActionListener? = null
+            private fun createTextBoxContextMenuView(context: Context): View {
+                val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
+                val contentView = layoutInflater.inflate(R.layout.view_context_menu_textbox, null)
+                contentView.findViewById<TextView>(R.id.btnDelete_contextMenu).setOnClickListener {
+                    textBoxContextMenuActionListener?.onDelete()
+                    dismissPopupWindow()
+                }
+                contentView.findViewById<TextView>(R.id.btnStyle_contextMenu).setOnClickListener {
+                    textBoxContextMenuActionListener?.onEditStyle()
+                    dismissPopupWindow()
+                }
+                contentView.findViewById<TextView>(R.id.btnEdit_contextMenu).setOnClickListener {
+                    textBoxContextMenuActionListener?.onEditText()
+                    dismissPopupWindow()
+                }
+                contentView.findViewById<TextView>(R.id.btnCopy_contextMenu).setOnClickListener {
+                    textBoxContextMenuActionListener?.onCopy()
+                    dismissPopupWindow()
+                }
+                return contentView
+            }
 
-    fun setTextBoxContextMenuActions(listener: TextBoxContextMenuActionListener) {
-        textBoxContextMenuActionListener = listener
-    }
+            private fun createSignatureContextMenuView(context: Context): View {
+                val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
+                val contentView = layoutInflater.inflate(R.layout.view_context_menu_signature, null)
+                contentView.findViewById<TextView>(R.id.btnDelete_contextMenu).setOnClickListener {
+                    (kmpdfFactory?.getController(KMPDFFactory.ControllerType.SIGNATURE) as KMPDFSignatureController).deleteSignatureAnnotView()
+                    dismissPopupWindow()
+                }
+                contentView.findViewById<TextView>(R.id.btnAdd_contextMenu).setOnClickListener {
+                    (kmpdfFactory?.getController(KMPDFFactory.ControllerType.SIGNATURE) as KMPDFSignatureController).saveSignatureAnnot()
+                    dismissPopupWindow()
+                }
+                return contentView
+            }
 
-    private fun createTextBoxContextMenuView(context: Context): View {
-        val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
-        val contentView = layoutInflater.inflate(R.layout.view_context_menu_textbox, null)
-        contentView.findViewById<TextView>(R.id.btnDelete_contextMenu).setOnClickListener {
-            textBoxContextMenuActionListener?.onDelete()
-            dismissPopupWindow()
-        }
-        contentView.findViewById<TextView>(R.id.btnStyle_contextMenu).setOnClickListener {
-            textBoxContextMenuActionListener?.onEditStyle()
-            dismissPopupWindow()
-        }
-        contentView.findViewById<TextView>(R.id.btnEdit_contextMenu).setOnClickListener {
-            textBoxContextMenuActionListener?.onEditText()
-            dismissPopupWindow()
-        }
-        contentView.findViewById<TextView>(R.id.btnCopy_contextMenu).setOnClickListener {
-            textBoxContextMenuActionListener?.onCopy()
-            dismissPopupWindow()
-        }
-        return contentView
-    }
+            private fun createStampContextMenuView(context: Context): View {
+                val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
+                val contentView = layoutInflater.inflate(R.layout.view_context_menu_normal, null)
+                contentView.findViewById<TextView>(R.id.btnDelete_contextMenu).setOnClickListener {
+                    (kmpdfFactory?.getController(KMPDFFactory.ControllerType.STAMP) as KMPDFStampController).deleteStampAnnotView()
+                    dismissPopupWindow()
+                }
+                return contentView
+            }
 
-    private fun createSignatureContextMenuView(context: Context): View {
-        val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
-        val contentView = layoutInflater.inflate(R.layout.view_context_menu_signature, null)
-        contentView.findViewById<TextView>(R.id.btnDelete_contextMenu).setOnClickListener {
-            (kmpdfFactory?.getController(KMPDFFactory.ControllerType.SIGNATURE) as KMPDFSignatureController).deleteSignatureAnnotView()
-            dismissPopupWindow()
-        }
-        contentView.findViewById<TextView>(R.id.btnAdd_contextMenu).setOnClickListener {
-            (kmpdfFactory?.getController(KMPDFFactory.ControllerType.SIGNATURE) as KMPDFSignatureController).saveSignatureAnnot()
-            dismissPopupWindow()
+            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)
+                contentView.findViewById<TextView>(R.id.btnPaste_contextMenu).setOnClickListener {
+                    (kmpdfFactory?.getController(KMPDFFactory.ControllerType.LONGCLICK) as KMPDFLongPressCreateAnnotController).longPress_Paste()
+                    annotationEitModeLiveData.postValue(AnnotationEitMode.FREETEXT_MODIFY)
+                    dismissPopupWindow()
+                }
+                return contentView
+            }
         }
-        return contentView
     }
 
-    private fun createStampContextMenuView(context: Context): View {
-        val layoutInflater = context.getSystemService(Context.LAYOUT_INFLATER_SERVICE) as LayoutInflater
-        val contentView = layoutInflater.inflate(R.layout.view_context_menu_normal, null)
-        contentView.findViewById<TextView>(R.id.btnDelete_contextMenu).setOnClickListener {
-            (kmpdfFactory?.getController(KMPDFFactory.ControllerType.STAMP) as KMPDFStampController).deleteStampAnnotView()
-            dismissPopupWindow()
-        }
-        return contentView
-    }
+    private var textBoxContextMenuActionListener: TextBoxContextMenuActionListener? = null
 
-    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)
-        contentView.findViewById<TextView>(R.id.btnPaste_contextMenu).setOnClickListener {
-            (kmpdfFactory?.getController(KMPDFFactory.ControllerType.LONGCLICK) as KMPDFLongPressCreateAnnotController).longPress_Paste()
-            annotationEitModeLiveData.postValue(AnnotationEitMode.FREETEXT_MODIFY)
-            dismissPopupWindow()
-        }
-        return contentView
+    fun setTextBoxContextMenuActions(listener: TextBoxContextMenuActionListener) {
+        textBoxContextMenuActionListener = listener
     }
 
     private fun restoreStateBeforeDestroy() {