12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364 |
- package com.kdanmobile.reader
- import android.annotation.SuppressLint
- import com.kdanmobile.kmpdfkit.manager.KMPDFFactory
- import com.kdanmobile.kmpdfkit.manager.controller.KMPDFDocumentController
- import com.kdanmobile.kmpdfkit.manager.controller.KMPDFSignatureController
- class ReaderModel {
- private var filename: String? = null
- var password: String = ""
- private set
- var kmpdfFactory: KMPDFFactory? = null
- private set
- @SuppressLint("StaticFieldLeak")
- var kmpdfDocumentController: KMPDFDocumentController? = null
- private set
- var kmpdfSignatureController: KMPDFSignatureController? = null
- private set
- var onPdfChangedListener: OnPdfChangedListener? = null
- var referenceCount = 0
- @Synchronized
- fun initKMPDFFactory(kmpdfFactory: KMPDFFactory?, filename: String?, password: String = "") {
- this.kmpdfFactory?.run {
- destroy()
- }
- this.kmpdfFactory = kmpdfFactory
- this.filename = filename
- this.password = password
- }
- fun initKMPDFDocumentController() {
- kmpdfDocumentController = kmpdfFactory?.getController(KMPDFFactory.ControllerType.DOCUMENT) as KMPDFDocumentController
- kmpdfSignatureController = kmpdfFactory?.getController(KMPDFFactory.ControllerType.SIGNATURE) as KMPDFSignatureController
- }
- @Synchronized
- fun destroy() {
- filename = null
- password = ""
- kmpdfFactory?.destroy()
- kmpdfFactory = null
- kmpdfDocumentController = null
- kmpdfSignatureController = null
- }
- fun register() {
- referenceCount++
- }
- fun unregister() {
- referenceCount--
- if (referenceCount == 0) {
- destroy()
- }
- }
- }
|