Browse Source

If current document is not a PDF, then all edit functions are disable

cooperku_kdanmobile 6 năm trước cách đây
mục cha
commit
4895c56e26

+ 28 - 5
src/main/java/com/kdanmobile/reader/ReaderActivity.kt

@@ -150,9 +150,7 @@ abstract class ReaderActivity : AppCompatActivity() {
 
         cloneOriginConstraintSet()
         setupToolbar()
-        setupLeftToolbar()
         setupRightSideToolbar()
-        setupBottomToolbar()
         setupMediaBoxView()
 
         FileUtil.init(getKdanPdfReaderFolder())
@@ -184,7 +182,9 @@ abstract class ReaderActivity : AppCompatActivity() {
             }
             viewModel.openPdfFile(applicationContext, Uri.parse(filePath), password, Runnable { requestPassword() }, intent.type)
         }
+        setupLeftToolbar()
         setupRightToolbar()
+        setupBottomToolbar()
         viewModel.pageIndexLiveData.observe(this, Observer(this::onPageIndexChanged))
         viewModel.isPageInBookmarksLiveData.observe(this, Observer(this::onIsPageInBookmarksChanged))
         viewModel.isLeftToolbarOpenLiveData.observe(this, Observer(this::onLeftToolbarOpenStateChanged))
@@ -215,6 +215,10 @@ abstract class ReaderActivity : AppCompatActivity() {
         startActivityForResult(intent, REQUEST_PASSWORD)
     }
 
+    fun isPdf(): Boolean {
+        return filePath?.toLowerCase(Locale.US)?.endsWith(".pdf") ?: false
+    }
+
     override fun onBackPressed() {
         when {
             mediaBoxView.isShown -> mediaBoxView.dismiss()
@@ -229,14 +233,13 @@ abstract class ReaderActivity : AppCompatActivity() {
         if (Build.VERSION.SDK_INT < Build.VERSION_CODES.KITKAT) {
             menu?.findItem(R.id.item_reader_more_print)?.isVisible = false
         }
-        // TODO: Check is pdf file or epub file, these action support only pdf file
-        val isPdf = true
-        if (!isPdf) {
+        if (!isPdf()) {
             menu?.apply {
                 findItem(R.id.item_reader_more_text_reflow)?.isVisible = false
                 findItem(R.id.item_reader_more_file_info)?.isVisible = false
                 findItem(R.id.item_reader_more_print)?.isVisible = false
             }
+            menuItemBookmark?.isVisible = false
         }
         return true
     }
@@ -661,10 +664,16 @@ abstract class ReaderActivity : AppCompatActivity() {
         iv_readerActivity_bookmark.setOnClickListener { onClickLeftToolbarItem(ReaderViewModel.LeftToolbarType.BOOKMARK) }
         iv_readerActivity_outline.setOnClickListener { onClickLeftToolbarItem(ReaderViewModel.LeftToolbarType.OUTLINE) }
         iv_readerActivity_search.setOnClickListener { onClickLeftToolbarItem(ReaderViewModel.LeftToolbarType.SEARCH) }
+
+        if (!isPdf()) {
+            iv_readerActivity_bookmark.visibility = View.GONE
+            iv_readerActivity_outline.visibility = View.GONE
+        }
     }
 
     private val readerSettingListener = object : ReaderSettingListener {
         override fun onReadModeChanged(readMode: Int) {
+            println("onReadModeChanged $readMode")
             viewModel.readMode = when (readMode) {
                 ReadingModeSelectView.modeDay -> ReaderViewModel.ReadMode.READ_MODE_DAY
                 ReadingModeSelectView.modeNight -> ReaderViewModel.ReadMode.READ_MODE_NIGHT
@@ -787,6 +796,10 @@ abstract class ReaderActivity : AppCompatActivity() {
         ib_readerActivity_bottomToolbarShare.setOnClickListener {
             onClickShare()
         }
+
+        if (!isPdf()) {
+            ib_readerActivity_bottomToolbarMediaBox.visibility = View.GONE
+        }
     }
 
     private fun setupMediaBoxView() {
@@ -958,6 +971,16 @@ abstract class ReaderActivity : AppCompatActivity() {
                 return@setOnLongClickListener true
             }
         }
+
+        if (!isPdf()) {
+            iv_readerActivity_highLight.visibility = View.GONE
+            iv_readerActivity_strike.visibility = View.GONE
+            iv_readerActivity_underline.visibility = View.GONE
+            iv_readerActivity_ink.visibility = View.GONE
+            view_readerActivity_highLightStroke.visibility = View.GONE
+            view_readerActivity_strikeStroke.visibility = View.GONE
+            view_readerActivity_underlineStroke.visibility = View.GONE
+        }
     }
 
     private fun setLeftToolbarWidth(width: Int) {

+ 2 - 2
src/main/java/com/kdanmobile/reader/thumb/PdfThumbViewModel.kt

@@ -15,7 +15,7 @@ import io.reactivex.android.schedulers.AndroidSchedulers
 import io.reactivex.disposables.Disposable
 import io.reactivex.schedulers.Schedulers
 import java.io.File
-import java.util.HashMap
+import java.util.*
 
 class PdfThumbViewModel: ViewModel() {
     private var pageCount = 0
@@ -29,7 +29,7 @@ class PdfThumbViewModel: ViewModel() {
     val mapSelect: MutableMap<Int, Boolean> = HashMap()
     var mode: Mode
     var isEdit = false
-    var isPdf = true
+    var isPdf = kmpdfFactory?.fileName?.toLowerCase(Locale.US)?.endsWith(".pdf") ?: false
 
     init {
         pageCount = kmpdfDocumentController?.getDocumentPageCount(false) ?: 0