|
@@ -1,14 +1,9 @@
|
|
package com.kdanmobile.reader.thumb
|
|
package com.kdanmobile.reader.thumb
|
|
|
|
|
|
import android.arch.lifecycle.ViewModel
|
|
import android.arch.lifecycle.ViewModel
|
|
-import android.graphics.Bitmap
|
|
|
|
import com.kdanmobile.kmpdfkit.manager.KMPDFFactory
|
|
import com.kdanmobile.kmpdfkit.manager.KMPDFFactory
|
|
import com.kdanmobile.kmpdfkit.manager.controller.KMPDFDocumentController
|
|
import com.kdanmobile.kmpdfkit.manager.controller.KMPDFDocumentController
|
|
-import com.kdanmobile.kmpdfkit.pdfcommon.Bookmark
|
|
|
|
-import com.kdanmobile.kmpdfkit.pdfcommon.TextChar
|
|
|
|
-import com.kdanmobile.kmpdfkit.pdfcommon.TextWord
|
|
|
|
import com.kdanmobile.reader.ReaderModel
|
|
import com.kdanmobile.reader.ReaderModel
|
|
-import com.kdanmobile.reader.screen.handler.*
|
|
|
|
import com.kdanmobile.reader.thumb.mode.Mode
|
|
import com.kdanmobile.reader.thumb.mode.Mode
|
|
import com.kdanmobile.reader.thumb.mode.NormalMode
|
|
import com.kdanmobile.reader.thumb.mode.NormalMode
|
|
import io.reactivex.Observable
|
|
import io.reactivex.Observable
|
|
@@ -32,70 +27,15 @@ class PdfThumbViewModel(private val readerModel: ReaderModel): ViewModel() {
|
|
var isEdit = false
|
|
var isEdit = false
|
|
var isPdf = false
|
|
var isPdf = false
|
|
|
|
|
|
- val pdfInfoHandler = object : PdfInfoHandler {
|
|
|
|
- override fun getOpenPdfFilename(): String {
|
|
|
|
- return kmpdfFactory?.fileName ?: ""
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- override fun getPdfPageCount(isNativeRefresh: Boolean): Int {
|
|
|
|
- return kmpdfDocumentController?.getDocumentPageCount(isNativeRefresh) ?: 0
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- override fun getCurrentPage(): Int {
|
|
|
|
- return kmpdfDocumentController?.currentPageNum ?: 0
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- override fun setCurrentPage(page: Int): Boolean {
|
|
|
|
- return kmpdfDocumentController?.gotoPage(page) ?: false
|
|
|
|
- }
|
|
|
|
|
|
+ val pdfInfoHandler = readerModel.pdfInfoHandler
|
|
|
|
|
|
- override fun textLines(page: Int): Array<Array<TextWord>> {
|
|
|
|
- return kmpdfDocumentController?.textLines(page) ?: arrayOf()
|
|
|
|
- }
|
|
|
|
|
|
+ val thumbnailHandler = readerModel.thumbnailHandler
|
|
|
|
|
|
- override fun getPageChars(page: Int): Array<Array<Array<Array<TextChar>>>> {
|
|
|
|
- return kmpdfDocumentController?.getPageChars(page) ?: arrayOf()
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ private val bookmarkHandler = readerModel.bookmarkHandler
|
|
|
|
|
|
- val thumbnailHandler = object : ThumbnailHandler {
|
|
|
|
- override fun getPdfBitmap(position: Int, picWidth: Int, mode: Int, isDrawAnnot: Boolean): Bitmap {
|
|
|
|
- return kmpdfDocumentController?.covertPDFToBitmap(position, picWidth, mode, isDrawAnnot) ?: Bitmap.createBitmap(0, 0, Bitmap.Config.ARGB_4444)
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ private val operateHandler = readerModel.operateHandler
|
|
|
|
|
|
- private val bookmarkHandler = object : BookmarkHandler {
|
|
|
|
- override fun getBookmarks(): Array<Bookmark> {
|
|
|
|
- return kmpdfDocumentController?.bookmarks ?: arrayOf()
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- private val operateHandler = object : OperateHandler {
|
|
|
|
- override fun rotatePages(pages: IntArray, rotateDirection: KMPDFDocumentController.RotationalDirection): Boolean {
|
|
|
|
- return kmpdfDocumentController?.rotatePages(pages, rotateDirection) ?: false
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- override fun deletePages(pages: IntArray): Boolean {
|
|
|
|
- return kmpdfDocumentController?.deletePages(pages) ?: false
|
|
|
|
- }
|
|
|
|
- override fun save(): Boolean {
|
|
|
|
- return kmpdfDocumentController?.save() ?: false
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- override fun reorderPage(fromPage: Int, toPage: Int): Boolean {
|
|
|
|
- return kmpdfDocumentController?.reorderPages(fromPage,toPage) ?: false
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- override fun splitPDFWithPages(path: String, selectPage: IntArray): Boolean {
|
|
|
|
- return kmpdfDocumentController?.splitPDFWithPages(path, selectPage) ?: false
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- val passwordHandler = object : PasswordHandler {
|
|
|
|
- override fun isNeedPassword(): Boolean {
|
|
|
|
- return kmpdfFactory?.needPassWord() ?: false
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
|
|
+ val passwordHandler = readerModel.passwordHandler
|
|
|
|
|
|
init {
|
|
init {
|
|
isPdf = kmpdfFactory?.fileName?.toLowerCase(Locale.US)?.endsWith(".pdf") ?: false
|
|
isPdf = kmpdfFactory?.fileName?.toLowerCase(Locale.US)?.endsWith(".pdf") ?: false
|
|
@@ -232,11 +172,11 @@ class PdfThumbViewModel(private val readerModel: ReaderModel): ViewModel() {
|
|
// update selected page
|
|
// update selected page
|
|
val currentPage = pdfInfoHandler.getCurrentPage()
|
|
val currentPage = pdfInfoHandler.getCurrentPage()
|
|
if (currentPage < 0) {
|
|
if (currentPage < 0) {
|
|
- pdfInfoHandler.setCurrentPage(0)
|
|
|
|
|
|
+ pdfInfoHandler.goToCurrentPage(0)
|
|
thumbData.currentPage = 0
|
|
thumbData.currentPage = 0
|
|
}
|
|
}
|
|
else if (currentPage >= pdfPageCount) {
|
|
else if (currentPage >= pdfPageCount) {
|
|
- pdfInfoHandler.setCurrentPage(pdfPageCount - 1)
|
|
|
|
|
|
+ pdfInfoHandler.goToCurrentPage(pdfPageCount - 1)
|
|
thumbData.currentPage = pdfPageCount - 1
|
|
thumbData.currentPage = pdfPageCount - 1
|
|
}
|
|
}
|
|
}
|
|
}
|