Horis 1 년 전
부모
커밋
81dfcb1822

+ 18 - 8
app/src/main/java/io/legado/app/ui/book/search/SearchActivity.kt

@@ -191,7 +191,8 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel
             }
 
             override fun onQueryTextChange(newText: String): Boolean {
-                if (newText.isBlank()) viewModel.stop()
+                viewModel.stop()
+                binding.fbStartStop.invisible()
                 upHistory(newText.trim())
                 return false
             }
@@ -246,15 +247,19 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel
     }
 
     private fun initOtherView() {
-        binding.fbStop.backgroundTintList =
+        binding.fbStartStop.backgroundTintList =
             Selector.colorBuild()
                 .setDefaultColor(accentColor)
                 .setPressedColor(ColorUtils.darkenColor(accentColor))
                 .create()
-        binding.fbStop.setOnClickListener {
-            isManualStopSearch = true
-            viewModel.stop()
-            binding.refreshProgressBar.isAutoLoading = false
+        binding.fbStartStop.setOnClickListener {
+            if (viewModel.isSearchLiveData.value == true) {
+                isManualStopSearch = true
+                viewModel.stop()
+                binding.refreshProgressBar.isAutoLoading = false
+            } else {
+                viewModel.search("")
+            }
         }
         binding.tvClearHistory.setOnClickListener { alertClearHistory() }
     }
@@ -374,7 +379,8 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel
     private fun startSearch() {
         binding.refreshProgressBar.visible()
         binding.refreshProgressBar.isAutoLoading = true
-        binding.fbStop.visible()
+        binding.fbStartStop.setImageResource(R.drawable.ic_stop_black_24dp)
+        binding.fbStartStop.visible()
     }
 
     /**
@@ -383,7 +389,11 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel
     private fun searchFinally() {
         binding.refreshProgressBar.isAutoLoading = false
         binding.refreshProgressBar.gone()
-        binding.fbStop.invisible()
+        if (viewModel.hasMore) {
+            binding.fbStartStop.setImageResource(R.drawable.ic_play_24dp)
+        } else {
+            binding.fbStartStop.invisible()
+        }
     }
 
     override fun observeLiveBus() {

+ 1 - 1
app/src/main/java/io/legado/app/ui/book/search/SearchViewModel.kt

@@ -47,9 +47,9 @@ class SearchViewModel(application: Application) : BaseViewModel(application) {
         }
 
         override fun onSearchFinish(isEmpty: Boolean, hasMore: Boolean) {
+            this@SearchViewModel.hasMore = hasMore
             isSearchLiveData.postValue(false)
             searchFinishLiveData.postValue(isEmpty)
-            this@SearchViewModel.hasMore = hasMore
         }
 
         override fun onSearchCancel(exception: Throwable?) {

+ 1 - 1
app/src/main/res/layout/activity_book_search.xml

@@ -94,7 +94,7 @@
     </LinearLayout>
 
     <com.google.android.material.floatingactionbutton.FloatingActionButton
-        android:id="@+id/fb_stop"
+        android:id="@+id/fb_start_stop"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_margin="16dp"