Horis 1 год назад
Родитель
Сommit
df6353a053

+ 1 - 0
app/src/main/java/io/legado/app/ui/book/toc/ChapterListAdapter.kt

@@ -52,6 +52,7 @@ class ChapterListAdapter(context: Context, val callback: Callback) :
                         && oldItem.isPay == newItem.isPay
                         && oldItem.isPay == newItem.isPay
                         && oldItem.title == newItem.title
                         && oldItem.title == newItem.title
                         && oldItem.tag == newItem.tag
                         && oldItem.tag == newItem.tag
+                        && oldItem.wordCount == newItem.wordCount
                         && oldItem.isVolume == newItem.isVolume
                         && oldItem.isVolume == newItem.isVolume
             }
             }
 
 

+ 4 - 0
app/src/main/java/io/legado/app/ui/book/toc/ChapterListFragment.kt

@@ -152,6 +152,10 @@ class ChapterListFragment : VMBaseFragment<TocViewModel>(R.layout.fragment_chapt
         adapter.upDisplayTitles(mLayoutManager.findFirstVisibleItemPosition())
         adapter.upDisplayTitles(mLayoutManager.findFirstVisibleItemPosition())
     }
     }
 
 
+    override fun upAdapter() {
+        adapter.notifyItemRangeChanged(0, adapter.itemCount)
+    }
+
     override val scope: CoroutineScope
     override val scope: CoroutineScope
         get() = lifecycleScope
         get() = lifecycleScope
 
 

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

@@ -169,6 +169,7 @@ class TocActivity : VMBaseActivity<ActivityChapterListBinding, TocViewModel>(),
 
 
             R.id.menu_load_word_count -> {
             R.id.menu_load_word_count -> {
                 AppConfig.tocCountWords = !item.isChecked
                 AppConfig.tocCountWords = !item.isChecked
+                viewModel.upChapterListAdapter()
             }
             }
 
 
             R.id.menu_export_bookmark -> exportDir.launch {
             R.id.menu_export_bookmark -> exportDir.launch {

+ 6 - 0
app/src/main/java/io/legado/app/ui/book/toc/TocViewModel.kt

@@ -73,6 +73,10 @@ class TocViewModel(application: Application) : BaseViewModel(application) {
         bookMarkCallBack?.upBookmark(newText)
         bookMarkCallBack?.upBookmark(newText)
     }
     }
 
 
+    fun upChapterListAdapter() {
+        chapterListCallBack?.upAdapter()
+    }
+
     fun saveBookmark(treeUri: Uri) {
     fun saveBookmark(treeUri: Uri) {
         execute {
         execute {
             val book = bookData.value
             val book = bookData.value
@@ -119,6 +123,8 @@ class TocViewModel(application: Application) : BaseViewModel(application) {
         fun upChapterList(searchKey: String?)
         fun upChapterList(searchKey: String?)
 
 
         fun clearDisplayTitle()
         fun clearDisplayTitle()
+
+        fun upAdapter()
     }
     }
 
 
     interface BookmarkCallBack {
     interface BookmarkCallBack {

+ 10 - 3
app/src/main/res/layout/item_chapter_list.xml

@@ -14,11 +14,18 @@
         android:layout_width="0dp"
         android:layout_width="0dp"
         android:layout_height="wrap_content"
         android:layout_height="wrap_content"
         android:singleLine="true"
         android:singleLine="true"
-        app:layout_constraintBottom_toTopOf="@id/tv_word_count"
+        app:layout_constraintBottom_toTopOf="@id/barrier"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintRight_toLeftOf="@+id/iv_checked"
         app:layout_constraintRight_toLeftOf="@+id/iv_checked"
         app:layout_constraintTop_toTopOf="parent" />
         app:layout_constraintTop_toTopOf="parent" />
 
 
+    <androidx.constraintlayout.widget.Barrier
+        android:id="@+id/barrier"
+        android:layout_width="wrap_content"
+        android:layout_height="wrap_content"
+        app:barrierDirection="top"
+        app:constraint_referenced_ids="tv_word_count,tv_tag" />
+
     <TextView
     <TextView
         android:id="@+id/tv_word_count"
         android:id="@+id/tv_word_count"
         android:layout_width="wrap_content"
         android:layout_width="wrap_content"
@@ -29,7 +36,7 @@
         android:visibility="gone"
         android:visibility="gone"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintLeft_toLeftOf="parent"
         app:layout_constraintLeft_toLeftOf="parent"
-        app:layout_constraintTop_toBottomOf="@+id/tv_chapter_name"
+        app:layout_constraintTop_toBottomOf="@+id/barrier"
         tools:ignore="RtlSymmetry" />
         tools:ignore="RtlSymmetry" />
 
 
     <TextView
     <TextView
@@ -42,7 +49,7 @@
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintBottom_toBottomOf="parent"
         app:layout_constraintLeft_toRightOf="@id/tv_word_count"
         app:layout_constraintLeft_toRightOf="@id/tv_word_count"
         app:layout_constraintRight_toLeftOf="@+id/iv_checked"
         app:layout_constraintRight_toLeftOf="@+id/iv_checked"
-        app:layout_constraintTop_toBottomOf="@+id/tv_chapter_name" />
+        app:layout_constraintTop_toBottomOf="@+id/barrier" />
 
 
     <ImageView
     <ImageView
         android:id="@+id/iv_checked"
         android:id="@+id/iv_checked"