Skip to content

Commit 4e8b91b

Browse files
committed
Upload file
1 parent 6f4a58d commit 4e8b91b

1 file changed

Lines changed: 14 additions & 42 deletions

File tree

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

Lines changed: 14 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -84,22 +84,31 @@ class ParamsAppChooserRender(
8484
list: MutableList<AdapterAppChooser.AppInfo>,
8585
item: AdapterAppChooser.AppInfo
8686
) {
87+
val isSelected =
88+
item.packageName != null &&
89+
selectedValues.contains(item.packageName)
90+
91+
// gán luôn trạng thái selected tại đây
92+
item.selected = isSelected
93+
8794
var low = 0
8895
var high = list.size
89-
9096
val name = item.appName ?: ""
91-
val selected = item.selected
9297

9398
while (low < high) {
9499
val mid = (low + high) ushr 1
95100
val m = list[mid]
96101

102+
val mSelected =
103+
m.packageName != null &&
104+
selectedValues.contains(m.packageName)
105+
97106
when {
98107
// 1️⃣ Ưu tiên app đã chọn
99-
m.selected != selected ->
100-
if (selected) high = mid else low = mid + 1
108+
mSelected != isSelected ->
109+
if (isSelected) high = mid else low = mid + 1
101110

102-
// 2️⃣ Cùng trạng thái → sort A–Z (đa ngôn ngữ)
111+
// 2️⃣ Cùng trạng thái → sort A–Z
103112
collator.compare(m.appName ?: "", name) < 0 ->
104113
low = mid + 1
105114

@@ -261,43 +270,6 @@ class ParamsAppChooserRender(
261270
}
262271
}
263272

264-
private fun preloadSelectedApps(): ArrayList<AdapterAppChooser.AppInfo> {
265-
val pm = context.packageManager
266-
val result = ArrayList<AdapterAppChooser.AppInfo>()
267-
268-
val values = if (actionParamInfo.multiple) {
269-
valueView.text.toString()
270-
.split(actionParamInfo.separator)
271-
.filter { it.isNotEmpty() }
272-
} else {
273-
listOf(valueView.text.toString()).filter { it.isNotEmpty() }
274-
}
275-
276-
// ✅ nếu chưa chọn gì → trả list rỗng
277-
if (values.isEmpty()) return result
278-
279-
for (pkg in values) {
280-
try {
281-
val app = pm.getApplicationInfo(pkg, 0)
282-
result.add(
283-
AdapterAppChooser.AppInfo().apply {
284-
packageName = pkg
285-
appName = app.loadLabel(pm)?.toString() ?: pkg
286-
selected = true
287-
}
288-
)
289-
} catch (_: Exception) {
290-
result.add(
291-
AdapterAppChooser.AppInfo().apply {
292-
packageName = pkg
293-
appName = pkg
294-
selected = true
295-
}
296-
)
297-
}
298-
}
299-
return result
300-
}
301273
// =======================
302274
// CALLBACK
303275
// =======================

0 commit comments

Comments
 (0)