Skip to content

Commit a567958

Browse files
committed
Update
1 parent 02f1543 commit a567958

2 files changed

Lines changed: 47 additions & 27 deletions

File tree

app/src/main/java/com/tool/tree/ActionPageOnline.kt

Lines changed: 46 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ import android.net.Uri
99
import android.os.Bundle
1010
import android.os.Handler
1111
import android.os.Looper
12+
import android.view.Menu
1213
import android.view.MenuItem
1314
import android.view.View
1415
import android.webkit.*
@@ -35,48 +36,35 @@ class ActionPageOnline : AppCompatActivity() {
3536
private var progressPolling: Timer? = null
3637
private var fileSelectedInterface: ParamsFileChooserRender.FileSelectedInterface? = null
3738
private val ACTION_FILE_PATH_CHOOSER = 65400
38-
39-
// ID định danh cho mục menu mới
39+
40+
// ID định danh cho mục menu mở trình duyệt
4041
private val MENU_OPEN_BROWSER = 1001
4142

4243
override fun onCreate(savedInstanceState: Bundle?) {
4344
super.onCreate(savedInstanceState)
4445

46+
// Sử dụng ThemeModeState để quản lý giao diện
4547
themeMode = ThemeModeState.switchTheme(this)
4648

4749
binding = ActivityActionPageOnlineBinding.inflate(layoutInflater)
4850
setContentView(binding.root)
4951

50-
// Lấy toolbar từ layout được include (webappbar)
52+
// Thiết lập Toolbar từ layout được include (webappbar)
5153
val toolbar = binding.webappbar.toolbar
5254
setSupportActionBar(toolbar)
5355
setTitle(R.string.app_name)
5456

55-
supportActionBar?.setDisplayHomeAsUpEnabled(true)
56-
supportActionBar?.setHomeButtonEnabled(true)
57-
58-
toolbar.setNavigationOnClickListener {
59-
finish()
57+
// Hiển thị nút quay lại
58+
supportActionBar?.apply {
59+
setDisplayHomeAsUpEnabled(true)
60+
setHomeButtonEnabled(true)
6061
}
6162

62-
// --- THÊM MENU 3 CHẤM BẰNG CODE ---
63-
// Thêm mục "Mở bằng trình duyệt" vào menu
64-
toolbar.menu.add(0, MENU_OPEN_BROWSER, 0, "Mở bằng trình duyệt").apply {
65-
setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER)
66-
}
67-
68-
// Xử lý sự kiện khi click vào menu
69-
toolbar.setOnMenuItemClickListener { item ->
70-
when (item.itemId) {
71-
MENU_OPEN_BROWSER -> {
72-
openInDefaultBrowser()
73-
true
74-
}
75-
else -> false
76-
}
63+
toolbar.setNavigationOnClickListener {
64+
finish()
7765
}
78-
// ----------------------------------
7966

67+
// Xử lý nút back chuẩn Android 13+
8068
onBackPressedDispatcher.addCallback(this) {
8169
if (binding.krOnlineWebview.canGoBack()) {
8270
binding.krOnlineWebview.goBack()
@@ -88,7 +76,37 @@ class ActionPageOnline : AppCompatActivity() {
8876
loadIntentData()
8977
}
9078

91-
// Hàm thực hiện mở URL hiện tại bằng trình duyệt mặc định của máy
79+
/**
80+
* Tạo menu 3 chấm (Overflow Menu) trực tiếp bằng code
81+
*/
82+
override fun onCreateOptionsMenu(menu: Menu?): Boolean {
83+
// SHOW_AS_ACTION_NEVER sẽ ép item này vào menu 3 chấm mặc định
84+
menu?.add(0, MENU_OPEN_BROWSER, 0, "Mở bằng trình duyệt")?.apply {
85+
setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER)
86+
}
87+
return true
88+
}
89+
90+
/**
91+
* Xử lý sự kiện khi click vào item trong menu 3 chấm
92+
*/
93+
override fun onOptionsItemSelected(item: MenuItem): Boolean {
94+
return when (item.itemId) {
95+
MENU_OPEN_BROWSER -> {
96+
openInDefaultBrowser()
97+
true
98+
}
99+
android.R.id.home -> {
100+
finish()
101+
true
102+
}
103+
else -> super.onOptionsItemSelected(item)
104+
}
105+
}
106+
107+
/**
108+
* Mở URL hiện tại của WebView bằng trình duyệt mặc định của hệ thống
109+
*/
92110
private fun openInDefaultBrowser() {
93111
val currentUrl = binding.krOnlineWebview.url
94112
if (!currentUrl.isNullOrEmpty()) {
@@ -99,7 +117,7 @@ class ActionPageOnline : AppCompatActivity() {
99117
Toast.makeText(this, "Không tìm thấy trình duyệt phù hợp", Toast.LENGTH_SHORT).show()
100118
}
101119
} else {
102-
Toast.makeText(this, "Trang web hiện không có URL hợp lệ", Toast.LENGTH_SHORT).show()
120+
Toast.makeText(this, "Đang tải trang, vui lòng đợi...", Toast.LENGTH_SHORT).show()
103121
}
104122
}
105123

@@ -111,11 +129,13 @@ class ActionPageOnline : AppCompatActivity() {
111129
title = extras.getString("title")
112130
}
113131

132+
// Load URL vào Webview
114133
when {
115134
extras.containsKey("config") -> initWebview(extras.getString("config"))
116135
extras.containsKey("url") -> initWebview(extras.getString("url"))
117136
}
118137

138+
// Xử lý download nếu có
119139
if (extras.containsKey("downloadUrl")) {
120140
val downloader = Downloader(this)
121141
val url = extras.getString("downloadUrl")!!

app/src/main/res/values/colors.xml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
<color name="status_bg_dark">#222222</color>
66
<color name="status_bg_light">@android:color/white</color>
77
<color name="cardBgDark">#222222</color>
8-
<color name="cardBgDarkTransparent">#9A111111</color>
8+
<color name="cardBgDarkTransparent">#9A050505</color>
99
<color name="cardBgLight">#CCFFFFFF</color>
1010
<color name="cardBgLightTransparent">#B3FFFFFF</color>
1111

0 commit comments

Comments
 (0)