Skip to content

Commit 2cc1ebb

Browse files
committed
Upload file
1 parent 5f96dd2 commit 2cc1ebb

1 file changed

Lines changed: 66 additions & 29 deletions

File tree

krscript/src/main/java/com/omarea/krscript/ui/ParamsAppChooserRender.kt

Lines changed: 66 additions & 29 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,11 @@ class ParamsAppChooserRender(
6060
private fun openAppChooser() {
6161
// 🔥 preload app đã chọn → có appName
6262
packages = preloadSelectedApps()
63+
64+
if (packages.isEmpty()) {
65+
// đảm bảo dialog không hiểu nhầm có selection
66+
packages.clear()
67+
}
6368

6469
val dialog = DialogAppChooser(
6570
darkMode,
@@ -228,42 +233,74 @@ class ParamsAppChooserRender(
228233
}
229234
}
230235

231-
private fun preloadSelectedApps(): ArrayList<AdapterAppChooser.AppInfo> {
232-
val pm = context.packageManager
233-
val result = ArrayList<AdapterAppChooser.AppInfo>()
234-
235-
val values = if (actionParamInfo.multiple) {
236-
valueView.text.toString()
237-
.split(actionParamInfo.separator)
238-
.filter { it.isNotEmpty() }
239-
} else {
240-
listOf(valueView.text.toString()).filter { it.isNotEmpty() }
236+
private fun resolveCurrentAppName() {
237+
val pm = context.packageManager
238+
239+
if (actionParamInfo.multiple) {
240+
val pkgs = valueView.text.toString()
241+
.split(actionParamInfo.separator)
242+
.filter { it.isNotEmpty() }
243+
244+
val names = ArrayList<String>(pkgs.size)
245+
for (pkg in pkgs) {
246+
try {
247+
val app = pm.getApplicationInfo(pkg, 0)
248+
names.add(app.loadLabel(pm)?.toString() ?: pkg)
249+
} catch (_: Exception) {
250+
names.add(pkg)
251+
}
241252
}
242-
243-
for (pkg in values) {
253+
nameView.text = names.joinToString("")
254+
} else {
255+
val pkg = valueView.text.toString()
256+
if (pkg.isNotEmpty()) {
244257
try {
245258
val app = pm.getApplicationInfo(pkg, 0)
246-
result.add(
247-
AdapterAppChooser.AppInfo().apply {
248-
packageName = pkg
249-
appName = app.loadLabel(pm)?.toString() ?: pkg
250-
selected = true
251-
}
252-
)
259+
nameView.text = app.loadLabel(pm)?.toString() ?: pkg
253260
} catch (_: Exception) {
254-
// app không tồn tại → vẫn thêm
255-
result.add(
256-
AdapterAppChooser.AppInfo().apply {
257-
packageName = pkg
258-
appName = pkg
259-
selected = true
260-
}
261-
)
261+
nameView.text = pkg
262262
}
263263
}
264-
265-
return result
266264
}
265+
}
266+
267+
private fun preloadSelectedApps(): ArrayList<AdapterAppChooser.AppInfo> {
268+
val pm = context.packageManager
269+
val result = ArrayList<AdapterAppChooser.AppInfo>()
270+
271+
val values = if (actionParamInfo.multiple) {
272+
valueView.text.toString()
273+
.split(actionParamInfo.separator)
274+
.filter { it.isNotEmpty() }
275+
} else {
276+
listOf(valueView.text.toString()).filter { it.isNotEmpty() }
277+
}
278+
279+
// ✅ nếu chưa chọn gì → trả list rỗng
280+
if (values.isEmpty()) return result
281+
282+
for (pkg in values) {
283+
try {
284+
val app = pm.getApplicationInfo(pkg, 0)
285+
result.add(
286+
AdapterAppChooser.AppInfo().apply {
287+
packageName = pkg
288+
appName = app.loadLabel(pm)?.toString() ?: pkg
289+
selected = true
290+
}
291+
)
292+
} catch (_: Exception) {
293+
result.add(
294+
AdapterAppChooser.AppInfo().apply {
295+
packageName = pkg
296+
appName = pkg
297+
selected = true
298+
}
299+
)
300+
}
301+
}
302+
return result
303+
}
267304
// =======================
268305
// CALLBACK
269306
// =======================

0 commit comments

Comments
 (0)