|  |  |  | @ -64,9 +64,7 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  |     private var historyFlowJob: Job? = null | 
			
		
	
		
			
				
					|  |  |  |  |     private var booksFlowJob: Job? = null | 
			
		
	
		
			
				
					|  |  |  |  |     private var menu: Menu? = null | 
			
		
	
		
			
				
					|  |  |  |  |     private var precisionSearchMenuItem: MenuItem? = null | 
			
		
	
		
			
				
					|  |  |  |  |     private var groups = linkedSetOf<String>() | 
			
		
	
		
			
				
					|  |  |  |  |     private var isManualStopSearch = false | 
			
		
	
		
			
				
					|  |  |  |  |     private val searchFinishCallback: (isEmpty: Boolean) -> Unit = searchFinish@{ isEmpty -> | 
			
		
	
		
			
				
					|  |  |  |  |         val searchGroup = AppConfig.searchGroup | 
			
		
	
	
		
			
				
					|  |  |  | @ -114,8 +112,6 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel | 
			
		
	
		
			
				
					|  |  |  |  |         menuInflater.inflate(R.menu.book_search, menu) | 
			
		
	
		
			
				
					|  |  |  |  |         precisionSearchMenuItem = menu.findItem(R.id.menu_precision_search) | 
			
		
	
		
			
				
					|  |  |  |  |         precisionSearchMenuItem?.isChecked = getPrefBoolean(PreferKey.precisionSearch) | 
			
		
	
		
			
				
					|  |  |  |  |         this.menu = menu | 
			
		
	
		
			
				
					|  |  |  |  |         upGroupMenu() | 
			
		
	
		
			
				
					|  |  |  |  |         return super.onCompatCreateOptionsMenu(menu) | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | @ -249,19 +245,12 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel | 
			
		
	
		
			
				
					|  |  |  |  |                 delay(1000) | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         launch { | 
			
		
	
		
			
				
					|  |  |  |  |             appDb.bookSourceDao.flowEnabledGroups().conflate().collect { | 
			
		
	
		
			
				
					|  |  |  |  |                 groups.clear() | 
			
		
	
		
			
				
					|  |  |  |  |                 groups.addAll(it) | 
			
		
	
		
			
				
					|  |  |  |  |                 upGroupMenu() | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private fun receiptIntent(intent: Intent? = null) { | 
			
		
	
		
			
				
					|  |  |  |  |         val searchScope = intent?.getStringExtra("searchScope") | 
			
		
	
		
			
				
					|  |  |  |  |         searchScope?.let { | 
			
		
	
		
			
				
					|  |  |  |  |             viewModel.searchScope.scope = searchScope | 
			
		
	
		
			
				
					|  |  |  |  |             viewModel.searchScope.update(searchScope) | 
			
		
	
		
			
				
					|  |  |  |  |             searchScopeAdapter.setItems(viewModel.searchScope.getShowNames()) | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         val key = intent?.getStringExtra("key") | 
			
		
	
	
		
			
				
					|  |  |  | @ -300,30 +289,6 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 更新分组菜单 | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     private fun upGroupMenu() = menu?.let { menu -> | 
			
		
	
		
			
				
					|  |  |  |  |         val selectedGroup = AppConfig.searchGroup | 
			
		
	
		
			
				
					|  |  |  |  |         menu.removeGroup(R.id.source_group) | 
			
		
	
		
			
				
					|  |  |  |  |         val allItem = menu.add(R.id.source_group, Menu.NONE, Menu.NONE, R.string.all_source) | 
			
		
	
		
			
				
					|  |  |  |  |         var hasSelectedGroup = false | 
			
		
	
		
			
				
					|  |  |  |  |         groups.sortedWith { o1, o2 -> | 
			
		
	
		
			
				
					|  |  |  |  |             o1.cnCompare(o2) | 
			
		
	
		
			
				
					|  |  |  |  |         }.forEach { group -> | 
			
		
	
		
			
				
					|  |  |  |  |             menu.add(R.id.source_group, Menu.NONE, Menu.NONE, group)?.let { | 
			
		
	
		
			
				
					|  |  |  |  |                 if (group == selectedGroup) { | 
			
		
	
		
			
				
					|  |  |  |  |                     it.isChecked = true | 
			
		
	
		
			
				
					|  |  |  |  |                     hasSelectedGroup = true | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         menu.setGroupCheckable(R.id.source_group, true, true) | 
			
		
	
		
			
				
					|  |  |  |  |         if (!hasSelectedGroup) { | 
			
		
	
		
			
				
					|  |  |  |  |             allItem.isChecked = true | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     /** | 
			
		
	
		
			
				
					|  |  |  |  |      * 更新搜索历史 | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
	
		
			
				
					|  |  |  | @ -424,7 +389,8 @@ class SearchActivity : VMBaseActivity<ActivityBookSearchBinding, SearchViewModel | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     override fun onSearchScopeOk(searchScope: SearchScope) { | 
			
		
	
		
			
				
					|  |  |  |  |         viewModel.searchScope = searchScope | 
			
		
	
		
			
				
					|  |  |  |  |         searchScope.save() | 
			
		
	
		
			
				
					|  |  |  |  |         viewModel.searchScope.update(searchScope.toString()) | 
			
		
	
		
			
				
					|  |  |  |  |         searchScopeAdapter.setItems(searchScope.getShowNames()) | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
	
		
			
				
					|  |  |  | 
 |