Browse Source

Merge remote-tracking branch 'origin/master'

kunfei 3 years ago
parent
commit
057364f2b7

+ 6 - 1
app/src/main/java/io/legado/app/ui/book/toc/TocActivity.kt

@@ -74,7 +74,12 @@ class TocActivity : VMBaseActivity<ActivityChapterListBinding, TocViewModel>(),
                 }
             }
         }
-        return super.dispatchTouchEvent(ev)
+        return try {
+            super.dispatchTouchEvent(ev)
+        } catch (e: IllegalArgumentException) {
+            e.printStackTrace()
+            false
+        }
     }
 
     override fun onCompatCreateOptionsMenu(menu: Menu): Boolean {

+ 6 - 1
app/src/main/java/io/legado/app/ui/main/MainActivity.kt

@@ -124,7 +124,12 @@ class MainActivity : VMBaseActivity<ActivityMainBinding, MainViewModel>(),
                 }
             }
         }
-        return super.dispatchTouchEvent(ev)
+        return try {
+            super.dispatchTouchEvent(ev)
+        } catch (e: IllegalArgumentException) {
+            e.printStackTrace()
+            false
+        }
     }
 
     override fun onPostCreate(savedInstanceState: Bundle?) {

+ 3 - 1
app/src/main/java/io/legado/app/ui/main/bookshelf/style1/books/BooksFragment.kt

@@ -166,7 +166,9 @@ class BooksFragment() : BaseFragment(R.layout.fragment_books),
                 AppLog.put("书架更新出错", it)
             }.conflate().collect { list ->
                 binding.tvEmptyMsg.isGone = list.isNotEmpty()
-                binding.refreshLayout.isEnabled = list.isNotEmpty()
+                binding.refreshLayout.run {
+                    isEnabled = isEnabled && list.isNotEmpty()
+                }
                 booksAdapter.setItems(list)
                 recoverPositionState()
                 delay(100)

+ 13 - 0
app/src/main/java/io/legado/app/ui/rss/article/RssSortActivity.kt

@@ -5,6 +5,7 @@ package io.legado.app.ui.rss.article
 import android.os.Bundle
 import android.view.Menu
 import android.view.MenuItem
+import android.view.MotionEvent
 import android.view.ViewGroup
 import androidx.activity.viewModels
 import androidx.fragment.app.Fragment
@@ -54,6 +55,15 @@ class RssSortActivity : VMBaseActivity<ActivityRssArtivlesBinding, RssSortViewMo
         }
     }
 
+    override fun dispatchTouchEvent(ev: MotionEvent?): Boolean {
+        return try {
+            super.dispatchTouchEvent(ev)
+        } catch (e: IllegalArgumentException) {
+            e.printStackTrace()
+            false
+        }
+    }
+
     override fun onCompatCreateOptionsMenu(menu: Menu): Boolean {
         menuInflater.inflate(R.menu.rss_articles, menu)
         return super.onCompatCreateOptionsMenu(menu)
@@ -71,6 +81,7 @@ class RssSortActivity : VMBaseActivity<ActivityRssArtivlesBinding, RssSortViewMo
                 putExtra("type", "rssSource")
                 putExtra("key", viewModel.rssSource?.sourceUrl)
             }
+
             R.id.menu_refresh_sort -> viewModel.clearSortCache { upFragments() }
             R.id.menu_set_source_variable -> setSourceVariable()
             R.id.menu_edit_source -> viewModel.rssSource?.sourceUrl?.let {
@@ -78,11 +89,13 @@ class RssSortActivity : VMBaseActivity<ActivityRssArtivlesBinding, RssSortViewMo
                     putExtra("sourceUrl", it)
                 }
             }
+
             R.id.menu_clear -> {
                 viewModel.url?.let {
                     viewModel.clearArticles()
                 }
             }
+
             R.id.menu_switch_layout -> {
                 viewModel.switchLayout()
                 upFragments()