Sfoglia il codice sorgente

Merge branch 'decouplingKMPDFAnnotEditMode.Mode'

cooperku_kdanmobile 6 anni fa
parent
commit
e4a7aa74f5

+ 6 - 7
src/main/java/com/kdanmobile/reader/ReaderActivity.kt

@@ -22,7 +22,6 @@ import android.widget.EditText
 import android.widget.LinearLayout
 import android.widget.LinearLayout
 import android.widget.TextView
 import android.widget.TextView
 import android.widget.Toast
 import android.widget.Toast
-import com.kdanmobile.kmpdfkit.globaldata.KMPDFAnnotEditMode
 import com.kdanmobile.kmpdfkit.pdfcommon.KMPDFReaderView
 import com.kdanmobile.kmpdfkit.pdfcommon.KMPDFReaderView
 import com.kdanmobile.kmpdfkit.pdfcommon.PDFInfo
 import com.kdanmobile.kmpdfkit.pdfcommon.PDFInfo
 import com.kdanmobile.reader.Utils.applyConstraintSet
 import com.kdanmobile.reader.Utils.applyConstraintSet
@@ -387,19 +386,19 @@ abstract class ReaderActivity : AppCompatActivity(), ReaderSettingListener, PdfT
         readerModel.onPdfChangedListener?.onPageUpdated(arrayListOf(currentPageIndex))
         readerModel.onPdfChangedListener?.onPageUpdated(arrayListOf(currentPageIndex))
     }
     }
 
 
-    private fun onAnnotationEditModeUpdate(mode: KMPDFAnnotEditMode.Mode?) {
+    private fun onAnnotationEditModeUpdate(mode: ReaderViewModel.AnnotationEitMode?) {
         when (mode) {
         when (mode) {
-            KMPDFAnnotEditMode.Mode.NULL -> {
+            ReaderViewModel.AnnotationEitMode.NULL -> {
                 showAllToolbars()
                 showAllToolbars()
                 isHideToolbar = false
                 isHideToolbar = false
                 snackbarMediaBox?.dismiss()
                 snackbarMediaBox?.dismiss()
                 snackbarMediaBox = null
                 snackbarMediaBox = null
             }
             }
-            KMPDFAnnotEditMode.Mode.FORMTEXT_MODIFY, KMPDFAnnotEditMode.Mode.SIGN_MODIFY -> {
+            ReaderViewModel.AnnotationEitMode.FORMTEXT_MODIFY, ReaderViewModel.AnnotationEitMode.SIGN_MODIFY -> {
                 hideAllToolbars()
                 hideAllToolbars()
                 isHideToolbar = true
                 isHideToolbar = true
             }
             }
-            KMPDFAnnotEditMode.Mode.FREETEXT_MODIFY, KMPDFAnnotEditMode.Mode.STAMP_MODIFY, KMPDFAnnotEditMode.Mode.SHAPE_MODIFY -> {
+            ReaderViewModel.AnnotationEitMode.FREETEXT_MODIFY, ReaderViewModel.AnnotationEitMode.STAMP_MODIFY, ReaderViewModel.AnnotationEitMode.SHAPE_MODIFY -> {
                 hideAllToolbars()
                 hideAllToolbars()
                 isHideToolbar = true
                 isHideToolbar = true
                 snackbarMediaBox?.dismiss()
                 snackbarMediaBox?.dismiss()
@@ -433,7 +432,7 @@ abstract class ReaderActivity : AppCompatActivity(), ReaderSettingListener, PdfT
 
 
             override fun onTapMainDocArea() {
             override fun onTapMainDocArea() {
                 super.onTapMainDocArea()
                 super.onTapMainDocArea()
-                if (viewModel.annotationEitModeLiveData.value == KMPDFAnnotEditMode.Mode.FORMTEXT_MODIFY) {
+                if (viewModel.annotationEitModeLiveData.value == ReaderViewModel.AnnotationEitMode.FORMTEXT_MODIFY) {
                     return
                     return
                 }
                 }
                 when (isHideToolbar) {
                 when (isHideToolbar) {
@@ -511,7 +510,7 @@ abstract class ReaderActivity : AppCompatActivity(), ReaderSettingListener, PdfT
 
 
     override fun onStop() {
     override fun onStop() {
         //  Cancel form editing state to prevent soft keyboard bouncing
         //  Cancel form editing state to prevent soft keyboard bouncing
-        if (viewModel.annotationEitModeLiveData.value == KMPDFAnnotEditMode.Mode.FORMTEXT_MODIFY) {
+        if (viewModel.annotationEitModeLiveData.value == ReaderViewModel.AnnotationEitMode.FORMTEXT_MODIFY) {
             //  ugly method to call package function readerView?.displayedView?.releaseFormText()
             //  ugly method to call package function readerView?.displayedView?.releaseFormText()
             val event = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, -1000f, -1000f, 0)
             val event = MotionEvent.obtain(0, 0, MotionEvent.ACTION_DOWN, -1000f, -1000f, 0)
             viewModel.getReaderView()?.onSingleTapUp(event)
             viewModel.getReaderView()?.onSingleTapUp(event)

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

@@ -60,6 +60,38 @@ class ReaderViewModel(private val pdfSdkLicense: String, private val pdfSdkRsaMs
         INK,
         INK,
     }
     }
 
 
+    enum class AnnotationEitMode(val mode: KMPDFAnnotEditMode.Mode) {
+        NULL(KMPDFAnnotEditMode.Mode.NULL),
+        MARKUP_CREATE(KMPDFAnnotEditMode.Mode.MARKUP_CREATE),
+        MARKUP_MODIFY(KMPDFAnnotEditMode.Mode.MARKUP_MODIFY),
+        FREETEXT_CREATE(KMPDFAnnotEditMode.Mode.FREETEXT_CREATE),
+        FREETEXT_MODIFY(KMPDFAnnotEditMode.Mode.FREETEXT_MODIFY),
+        SHAPE_CREATE(KMPDFAnnotEditMode.Mode.SHAPE_CREATE),
+        SHAPE_MODIFY(KMPDFAnnotEditMode.Mode.SHAPE_MODIFY),
+        STAMP_CREATE(KMPDFAnnotEditMode.Mode.STAMP_CREATE),
+        STAMP_MODIFY(KMPDFAnnotEditMode.Mode.STAMP_MODIFY),
+        LINK_CREATE(KMPDFAnnotEditMode.Mode.LINK_CREATE),
+        LINK_MODIFY(KMPDFAnnotEditMode.Mode.LINK_MODIFY),
+        LINK_LONGPRESS_CREATE(KMPDFAnnotEditMode.Mode.LINK_LONGPRESS_CREATE),
+        FORMTEXT_MODIFY(KMPDFAnnotEditMode.Mode.FORMTEXT_MODIFY),
+        SIGN_CREATE(KMPDFAnnotEditMode.Mode.SIGN_CREATE),
+        SIGN_MODIFY(KMPDFAnnotEditMode.Mode.SIGN_MODIFY),
+        TEXT_CREATE(KMPDFAnnotEditMode.Mode.TEXT_CREATE),
+        TEXT_MODIFY(KMPDFAnnotEditMode.Mode.TEXT_MODIFY);
+
+        companion object {
+            fun getMode(mode: KMPDFAnnotEditMode.Mode): AnnotationEitMode {
+                val editModes = AnnotationEitMode.values()
+                for (editMode in editModes) {
+                    if (editMode.mode == mode) {
+                        return editMode
+                    }
+                }
+                return NULL
+            }
+        }
+    }
+
     companion object {
     companion object {
         val DEFAULT_HIGHLIGHT_ATTR = AnnotationAttribute(Color.parseColor("#ffdc1b"), 127)
         val DEFAULT_HIGHLIGHT_ATTR = AnnotationAttribute(Color.parseColor("#ffdc1b"), 127)
         val DEFAULT_STRIKE_ATTR = AnnotationAttribute(Color.parseColor("#57d214"), 255)
         val DEFAULT_STRIKE_ATTR = AnnotationAttribute(Color.parseColor("#57d214"), 255)
@@ -107,7 +139,7 @@ class ReaderViewModel(private val pdfSdkLicense: String, private val pdfSdkRsaMs
     val isOpenedFileLiveData = MutableLiveData<Boolean>().apply { value = false }
     val isOpenedFileLiveData = MutableLiveData<Boolean>().apply { value = false }
     val fileNameLiveData = MutableLiveData<String>()
     val fileNameLiveData = MutableLiveData<String>()
     val annotationModeLiveData = MutableLiveData<AnnotationMode>().apply { value = AnnotationMode.NONE }
     val annotationModeLiveData = MutableLiveData<AnnotationMode>().apply { value = AnnotationMode.NONE }
-    val annotationEitModeLiveData = MutableLiveData<KMPDFAnnotEditMode.Mode>().apply { value = KMPDFAnnotEditMode.Mode.NULL }
+    val annotationEitModeLiveData = MutableLiveData<AnnotationEitMode>().apply { value = AnnotationEitMode.NULL }
     var isCopyModeLiveData = MutableLiveData<Boolean>().apply { value = false }
     var isCopyModeLiveData = MutableLiveData<Boolean>().apply { value = false }
 
 
     val pageIndexLiveData: LiveData<Int>
     val pageIndexLiveData: LiveData<Int>
@@ -384,7 +416,7 @@ class ReaderViewModel(private val pdfSdkLicense: String, private val pdfSdkRsaMs
         }
         }
 
 
         kmpdfFactory?.kmpdfAnnotEditModeChangeListener = KMPDFAnnotEditModeChangeListener {
         kmpdfFactory?.kmpdfAnnotEditModeChangeListener = KMPDFAnnotEditModeChangeListener {
-            annotationEitModeLiveData.postValue(it)
+            annotationEitModeLiveData.postValue(AnnotationEitMode.getMode(it))
         }
         }
 
 
         setLongPressContextMenuActions()
         setLongPressContextMenuActions()
@@ -405,7 +437,7 @@ class ReaderViewModel(private val pdfSdkLicense: String, private val pdfSdkRsaMs
         item.menu_resId = R.menu.context_menu_longpress
         item.menu_resId = R.menu.context_menu_longpress
         item.menuCallbacks.add(MenuItemCallback { view, annotType ->
         item.menuCallbacks.add(MenuItemCallback { view, annotType ->
             (kmpdfFactory?.getController(KMPDFFactory.ControllerType.LONGCLICK) as KMPDFLongPressCreateAnnotController).longPress_Paste()
             (kmpdfFactory?.getController(KMPDFFactory.ControllerType.LONGCLICK) as KMPDFLongPressCreateAnnotController).longPress_Paste()
-            annotationEitModeLiveData.postValue(KMPDFAnnotEditMode.Mode.FREETEXT_MODIFY)
+            annotationEitModeLiveData.postValue(AnnotationEitMode.FREETEXT_MODIFY)
             return@MenuItemCallback true
             return@MenuItemCallback true
         })
         })
         kmpdfFactory?.setAnnotationContextMenu(item)
         kmpdfFactory?.setAnnotationContextMenu(item)
@@ -528,7 +560,7 @@ class ReaderViewModel(private val pdfSdkLicense: String, private val pdfSdkRsaMs
     fun clearSelection() {
     fun clearSelection() {
         kmpdfFactory?.setAnnotationEditMode(KMPDFAnnotationBean.AnnotationType.NULL)
         kmpdfFactory?.setAnnotationEditMode(KMPDFAnnotationBean.AnnotationType.NULL)
         kmpdfFactory?.kmpdfAnnotEditMode?.pdfAnnotEditMode = KMPDFAnnotEditMode.Mode.NULL
         kmpdfFactory?.kmpdfAnnotEditMode?.pdfAnnotEditMode = KMPDFAnnotEditMode.Mode.NULL
-        annotationEitModeLiveData.postValue(KMPDFAnnotEditMode.Mode.NULL)
+        annotationEitModeLiveData.postValue(AnnotationEitMode.NULL)
     }
     }
 
 
     fun deleteSelectedTextBox() {
     fun deleteSelectedTextBox() {