@@ -45,13 +45,11 @@ class ActionPageOnline : AppCompatActivity() {
4545 override fun onCreate (savedInstanceState : Bundle ? ) {
4646 super .onCreate(savedInstanceState)
4747
48- // Sử dụng ThemeModeState để quản lý giao diện
4948 themeMode = ThemeModeState .switchTheme(this )
5049
5150 binding = ActivityActionPageOnlineBinding .inflate(layoutInflater)
5251 setContentView(binding.root)
5352
54- // Thiết lập Toolbar
5553 val toolbar: Toolbar = binding.webappbar.toolbar
5654 setSupportActionBar(toolbar)
5755 setTitle(R .string.app_name)
@@ -65,10 +63,8 @@ class ActionPageOnline : AppCompatActivity() {
6563 finish()
6664 }
6765
68- // Bật tăng tốc phần cứng cho WebView
6966 binding.krOnlineWebview.setLayerType(View .LAYER_TYPE_HARDWARE , null )
7067
71- // Xử lý nút back chuẩn Android 13+
7268 onBackPressedDispatcher.addCallback(this ) {
7369 if (binding.krOnlineWebview.canGoBack()) {
7470 binding.krOnlineWebview.goBack()
@@ -148,16 +144,14 @@ class ActionPageOnline : AppCompatActivity() {
148144 binding.krOnlineWebview.visibility = View .VISIBLE
149145 val settings = binding.krOnlineWebview.settings
150146
151- // Tối ưu cấu hình
152147 settings.javaScriptEnabled = true
153148 settings.domStorageEnabled = true
154149 settings.databaseEnabled = true
155150 settings.cacheMode = WebSettings .LOAD_DEFAULT
156151
157- // Chặn ảnh tạm thời để ưu tiên load layout/script
158- settings.blockNetworkImage = true
152+ settings.blockNetworkImage = false
153+ settings.loadsImagesAutomatically = true
159154
160- // Cập nhật Dark Mode dựa trên ThemeModeState
161155 if (WebViewFeature .isFeatureSupported(WebViewFeature .FORCE_DARK )) {
162156 val isDark = ThemeModeState .isDarkMode()
163157 WebSettingsCompat .setForceDark(settings, if (isDark) FORCE_DARK_ON else FORCE_DARK_OFF )
@@ -191,14 +185,16 @@ class ActionPageOnline : AppCompatActivity() {
191185 override fun onPageFinished (view : WebView ? , url : String? ) {
192186 super .onPageFinished(view, url)
193187 progressBarDialog.hideDialog()
194- // Mở lại việc tải ảnh
195- view?.settings?.blockNetworkImage = false
196188 view?.title?.let { setTitle(it) }
197189 }
198190
199191 override fun onPageStarted (view : WebView ? , url : String? , favicon : Bitmap ? ) {
200192 super .onPageStarted(view, url, favicon)
201- progressBarDialog.showDialog(getString(R .string.please_wait))
193+ // CẬP NHẬT: Thêm nút hủy và xử lý stopLoading()
194+ progressBarDialog.showDialog(getString(R .string.please_wait), getString(R .string.btn_cancel)) {
195+ binding.krOnlineWebview.stopLoading()
196+ progressBarDialog.hideDialog()
197+ }
202198 }
203199
204200 override fun shouldOverrideUrlLoading (view : WebView ? , request : WebResourceRequest ? ): Boolean {
@@ -217,7 +213,6 @@ class ActionPageOnline : AppCompatActivity() {
217213 }
218214 }
219215
220- // Khởi chạy Injector
221216 WebViewInjector (binding.krOnlineWebview,
222217 object : ParamsFileChooserRender .FileChooserInterface {
223218 override fun openFileChooser (fileSelectedInterface : ParamsFileChooserRender .FileSelectedInterface ): Boolean {
@@ -312,7 +307,6 @@ class ActionPageOnline : AppCompatActivity() {
312307 try {
313308 val nameColumn = cursor.getColumnIndexOrThrow(DownloadManager .COLUMN_LOCAL_URI )
314309 val uriStr = cursor.getString(nameColumn)
315- // Sử dụng extension toUri() đã import
316310 absPath = FilePathResolver ().getPath(this @ActionPageOnline, uriStr.toUri()) ? : " "
317311 fileName = absPath
318312 } catch (_: Exception ) {}
0 commit comments