|
@@ -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() {
|