|  |  |  | @ -1,15 +1,21 @@ | 
			
		
	
		
			
				
					|  |  |  |  | package io.legado.app.ui.config | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | import android.os.Bundle | 
			
		
	
		
			
				
					|  |  |  |  | import android.util.Log | 
			
		
	
		
			
				
					|  |  |  |  | import android.view.View | 
			
		
	
		
			
				
					|  |  |  |  | import android.view.ViewGroup | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.R | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.base.BaseDialogFragment | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.databinding.DialogCoverRuleConfigBinding | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.lib.theme.primaryColor | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.model.BookCover | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.utils.GSON | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.utils.setLayout | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.utils.toastOnUi | 
			
		
	
		
			
				
					|  |  |  |  | import io.legado.app.utils.viewbindingdelegate.viewBinding | 
			
		
	
		
			
				
					|  |  |  |  | import kotlinx.coroutines.Dispatchers.IO | 
			
		
	
		
			
				
					|  |  |  |  | import kotlinx.coroutines.launch | 
			
		
	
		
			
				
					|  |  |  |  | import kotlinx.coroutines.withContext | 
			
		
	
		
			
				
					|  |  |  |  | import splitties.views.onClick | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | class CoverRuleConfigDialog : BaseDialogFragment(R.layout.dialog_cover_rule_config) { | 
			
		
	
	
		
			
				
					|  |  |  | @ -22,9 +28,8 @@ class CoverRuleConfigDialog : BaseDialogFragment(R.layout.dialog_cover_rule_conf | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     override fun onFragmentCreated(view: View, savedInstanceState: Bundle?) { | 
			
		
	
		
			
				
					|  |  |  |  |         binding.cbEnable.isChecked = BookCover.coverRuleConfig.enable | 
			
		
	
		
			
				
					|  |  |  |  |         binding.editSearchUrl.setText(BookCover.coverRuleConfig.searchUrl) | 
			
		
	
		
			
				
					|  |  |  |  |         binding.editCoverUrlRule.setText(BookCover.coverRuleConfig.coverRule) | 
			
		
	
		
			
				
					|  |  |  |  |         binding.toolBar.setBackgroundColor(primaryColor) | 
			
		
	
		
			
				
					|  |  |  |  |         initData() | 
			
		
	
		
			
				
					|  |  |  |  |         binding.tvCancel.onClick { | 
			
		
	
		
			
				
					|  |  |  |  |             dismissAllowingStateLoss() | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
	
		
			
				
					|  |  |  | @ -35,16 +40,28 @@ class CoverRuleConfigDialog : BaseDialogFragment(R.layout.dialog_cover_rule_conf | 
			
		
	
		
			
				
					|  |  |  |  |             if (searchUrl.isNullOrBlank() || coverRule.isNullOrBlank()) { | 
			
		
	
		
			
				
					|  |  |  |  |                 toastOnUi("搜索url和cover规则不能为空") | 
			
		
	
		
			
				
					|  |  |  |  |             } else { | 
			
		
	
		
			
				
					|  |  |  |  |                 BookCover.CoverRuleConfig(enable, searchUrl, coverRule).let { config -> | 
			
		
	
		
			
				
					|  |  |  |  |                     BookCover.saveCoverRuleConfig(config) | 
			
		
	
		
			
				
					|  |  |  |  |                 BookCover.CoverRule(enable, searchUrl, coverRule).let { config -> | 
			
		
	
		
			
				
					|  |  |  |  |                     BookCover.saveCoverRule(config) | 
			
		
	
		
			
				
					|  |  |  |  |                 } | 
			
		
	
		
			
				
					|  |  |  |  |                 dismissAllowingStateLoss() | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |         binding.tvFooterLeft.onClick { | 
			
		
	
		
			
				
					|  |  |  |  |             BookCover.delCoverRuleConfig() | 
			
		
	
		
			
				
					|  |  |  |  |             BookCover.delCoverRule() | 
			
		
	
		
			
				
					|  |  |  |  |             dismissAllowingStateLoss() | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  |     private fun initData() { | 
			
		
	
		
			
				
					|  |  |  |  |         launch { | 
			
		
	
		
			
				
					|  |  |  |  |             val rule = withContext(IO) { | 
			
		
	
		
			
				
					|  |  |  |  |                 BookCover.getCoverRule() | 
			
		
	
		
			
				
					|  |  |  |  |             } | 
			
		
	
		
			
				
					|  |  |  |  |             Log.e("coverRule", GSON.toJson(rule)) | 
			
		
	
		
			
				
					|  |  |  |  |             binding.cbEnable.isChecked = rule.enable | 
			
		
	
		
			
				
					|  |  |  |  |             binding.editSearchUrl.setText(rule.searchUrl) | 
			
		
	
		
			
				
					|  |  |  |  |             binding.editCoverUrlRule.setText(rule.coverRule) | 
			
		
	
		
			
				
					|  |  |  |  |         } | 
			
		
	
		
			
				
					|  |  |  |  |     } | 
			
		
	
		
			
				
					|  |  |  |  | 
 | 
			
		
	
		
			
				
					|  |  |  |  | } |