|  |  |  | @ -25,6 +25,7 @@ import io.legado.app.exception.NoStackTraceException | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.help.AppWebDav | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.help.BookHelp | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.help.IntentData | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.help.TTS | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.help.config.AppConfig | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.help.config.ReadBookConfig | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.help.config.ReadTipConfig | 
			
		
	
	
		
			
				
					|  |  |  | @ -140,6 +141,7 @@ class ReadBookActivity : BaseReadBookActivity(), | 
			
		
	
		
			
				
					|  |  |  |  |     private var autoPageJob: Job? = null | 
			
		
	
		
			
				
					|  |  |  |  |     private var backupJob: Job? = null | 
			
		
	
		
			
				
					|  |  |  |  |     private var keepScreenJon: Job? = null | 
			
		
	
		
			
				
					|  |  |  |  |     private val tts by lazy { TTS() } | 
			
		
	
		
			
				
					|  |  |  |  |     val textActionMenu: TextActionMenu by lazy { | 
			
		
	
		
			
				
					|  |  |  |  |         TextActionMenu(this, this) | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
	
		
			
				
					|  |  |  | @ -629,7 +631,10 @@ class ReadBookActivity : BaseReadBookActivity(), | 
			
		
	
		
			
				
					|  |  |  |  |      */ | 
			
		
	
		
			
				
					|  |  |  |  |     override fun onMenuItemSelected(itemId: Int): Boolean { | 
			
		
	
		
			
				
					|  |  |  |  |         when (itemId) { | 
			
		
	
		
			
				
					|  |  |  |  |             R.id.menu_aloud -> binding.readView.aloudStartSelect() | 
			
		
	
		
			
				
					|  |  |  |  |             R.id.menu_aloud -> when (AppConfig.contentSelectSpeakMod) { | 
			
		
	
		
			
				
					|  |  |  |  |                 1 -> binding.readView.aloudStartSelect() | 
			
		
	
		
			
				
					|  |  |  |  |                 else -> tts.speak(binding.readView.getSelectText()) | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             R.id.menu_bookmark -> binding.readView.curPage.let { | 
			
		
	
		
			
				
					|  |  |  |  |                 val bookmark = it.createBookmark() | 
			
		
	
		
			
				
					|  |  |  |  |                 if (bookmark == null) { | 
			
		
	
	
		
			
				
					|  |  |  | @ -984,7 +989,8 @@ class ReadBookActivity : BaseReadBookActivity(), | 
			
		
	
		
			
				
					|  |  |  |  |                 setMessage(chapter.title) | 
			
		
	
		
			
				
					|  |  |  |  |                 yesButton { | 
			
		
	
		
			
				
					|  |  |  |  |                     Coroutine.async { | 
			
		
	
		
			
				
					|  |  |  |  |                         val source = ReadBook.bookSource ?: throw NoStackTraceException("no book source") | 
			
		
	
		
			
				
					|  |  |  |  |                         val source = | 
			
		
	
		
			
				
					|  |  |  |  |                             ReadBook.bookSource ?: throw NoStackTraceException("no book source") | 
			
		
	
		
			
				
					|  |  |  |  |                         val payAction = source.getContentRule().payAction | 
			
		
	
		
			
				
					|  |  |  |  |                         if (payAction.isNullOrBlank()) { | 
			
		
	
		
			
				
					|  |  |  |  |                             throw NoStackTraceException("no pay action") | 
			
		
	
	
		
			
				
					|  |  |  | @ -1190,6 +1196,7 @@ class ReadBookActivity : BaseReadBookActivity(), | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     override fun onDestroy() { | 
			
		
	
		
			
				
					|  |  |  |  |         super.onDestroy() | 
			
		
	
		
			
				
					|  |  |  |  |         tts.clearTts() | 
			
		
	
		
			
				
					|  |  |  |  |         textActionMenu.dismiss() | 
			
		
	
		
			
				
					|  |  |  |  |         popupAction.dismiss() | 
			
		
	
		
			
				
					|  |  |  |  |         binding.readView.onDestroy() | 
			
		
	
	
		
			
				
					|  |  |  | 
 |