Skip to content

Commit a6928a2

Browse files
committed
Update
1 parent 4b8c489 commit a6928a2

19 files changed

Lines changed: 418 additions & 67 deletions

app/src/main/assets/home/bin/coverbyte

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ fi
99

1010
# Nếu rỗng thì báo lỗi
1111
if [ "$input" == '-h' ] || [ "$input" == '--help' ] || [ -z "$input" ];then
12-
echo "Usage: coverbyte 123456"
12+
echo "Usage: coverbyte 123456" >&2
1313
exit 1
1414
fi
1515

app/src/main/assets/home/bin/findfile

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,12 @@ IFS=$'\n'
77
case "$1" in
88
0)
99
for vv in $(ls -1d *); do
10+
info=''; sizec='';
1011
[[ "$vv" == *config* || "$vv" == *raw* ]] && continue
1112
info=$(head -n1 "config/${vv}_info")
13+
[ -f "config/${vv}_size.txt" ] && sizec=" ($(cat "config/${vv}_size.txt" | coverbyte))"
1214
[[ -z "$info" ]] && continue
13-
echo "$vv|$vv ($info)"
15+
echo "$vv|$vv ($info)$sizec"
1416
done
1517
;;
1618

app/src/main/assets/home/etc/tool-tree.bash

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -911,8 +911,8 @@ echo '<group>
911911
<title>'$decompile_text'</title>
912912
<param name="cboxk" value-sh="glog dkhdh" label="'$deleted_file_text'" type="checkbox" />
913913
<param name="nounpak" value-sh="glog dkjdj" label="'$decode_text_1'" type="switch" />
914-
<param name="xoa_oat_boot" value-sh="glog xoa_oat_boot" label="'$xoaoat_text_1'" type="switch" />
915-
<param name="vavb" label="'$builds_text_8'" type="switch"/>
914+
<param name="xoa_oat_boot" value-sh="glog xoa_oat_boot" label="'$xoaoat_text_1'" type="switch" depend-on="nounpak" depend-value="1" depend-mode="hide"/>
915+
<param name="vavb" label="'$builds_text_8'" type="switch" depend-on="nounpak" depend-value="1" depend-mode="hide"/>
916916
<param name="IMAGES" desc="'$decode_text_3'" multiple="true" options-sh="findfile 2 $PTSD" required="true"/>
917917
<set>
918918
slog vavbbgdf "$vavb"

app/src/main/java/com/omarea/common/ui/AdapterAppChooser.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ class AdapterAppChooser(
177177
// ================= Selection =================
178178

179179
fun setSelectAllState(allSelected: Boolean) {
180-
apps.forEach { it.selected = allSelected }
180+
filterApps.forEach { it.selected = allSelected }
181181
notifyDataSetChanged()
182182
selectStateListener?.onSelectChange(getSelectedItems())
183183
}

app/src/main/java/com/omarea/common/ui/AdapterItemChooser.kt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -175,7 +175,7 @@ class AdapterItemChooser(private val context: Context, private var items: ArrayL
175175
}
176176

177177
fun setSelectAllState(allSelected: Boolean) {
178-
items.forEach {
178+
filterItems.forEach {
179179
it.selected = allSelected
180180
}
181181
notifyDataSetChanged()

app/src/main/java/com/omarea/common/ui/DialogItemChooser.kt

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -47,14 +47,14 @@ class DialogItemChooser(
4747
if (multiple) {
4848
val adapter = (absListView.adapter as AdapterItemChooser?)
4949
selectAll.visibility = View.VISIBLE
50-
selectAll.isChecked = items.filter { it.selected }.size == items.size
50+
selectAll.isChecked = adapter?.let { it.count > 0 && it.getSelectedItems().size == it.count } ?: false
5151
selectAll.setOnClickListener {
5252
adapter?.setSelectAllState((it as CompoundButton).isChecked)
5353
}
5454
adapter?.run {
5555
setSelectStateListener(object : AdapterItemChooser.SelectStateListener {
5656
override fun onSelectChange(selected: List<SelectItem>) {
57-
selectAll.isChecked = selected.size == items.size
57+
selectAll.isChecked = count > 0 && selected.size == count
5858
}
5959
})
6060
}

app/src/main/java/com/omarea/krscript/config/PageConfigReader.kt

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -315,6 +315,9 @@ class PageConfigReader {
315315
"mime" -> {
316316
actionParamInfo.mime = attrValue.lowercase(getDefault())
317317
}
318+
"path-home", "home-path", "pathhome" -> {
319+
actionParamInfo.pathHome = attrValue.trim { it <= ' ' }
320+
}
318321
"readonly" -> {
319322
val value = attrValue.lowercase(getDefault()).trim { it <= ' ' }
320323
actionParamInfo.readonly = (value == "readonly" || value == "true" || value == "1")
@@ -450,6 +453,9 @@ class PageConfigReader {
450453
"mime" -> {
451454
option.mime = parser.getAttributeValue(i).lowercase(getDefault())
452455
}
456+
"path-home", "home-path", "pathhome" -> {
457+
option.pathHome = parser.getAttributeValue(i).trim { it <= ' ' }
458+
}
453459
"box", "visible", "check" -> {
454460
option.checkedSh = parser.getAttributeValue(i)
455461
}

app/src/main/java/com/omarea/krscript/model/ActionParamInfo.kt

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,16 +26,19 @@ class ActionParamInfo {
2626
var options: ArrayList<SelectItem>? = null
2727
var optionsFromShell: ArrayList<SelectItem>? = null
2828
var optionsSh = ""
29-
// 是否允许多选(options only)
29+
// 是否允许多选(options 多选下拉; type=file/folder 时允许多选多个文件/文件夹)
3030
var multiple: Boolean = false
3131
// 是否支持
3232
var supported: Boolean = true
3333
// 文本框的水印(提示占位符)
3434
var placeholder: String = ""
3535
// 文件mime类型(仅限type=file有效)
3636
var mime: String = ""
37-
// 文件后缀(仅限type=file有效)
37+
// 文件后缀(仅限type=file有效),支持用逗号分隔多个后缀,例如 "zip,apk,7z"
3838
var suffix: String = ""
39+
// 打开文件/目录选择器时的初始目录(仅限type=file/folder有效),例如 "/sdcard/Android"
40+
// 用户仍然可以从这里返回到上一级目录
41+
var pathHome: String = ""
3942
// 是否允许用户手动输入路径
4043
var editable: Boolean = false
4144
// 多个值的分隔符(仅限多选下拉)

app/src/main/java/com/omarea/krscript/model/PageMenuOption.kt

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ class PageMenuOption(currentConfigXml: String) : RunnableNode(currentConfigXml)
1111
var mime: String = ""
1212
// 文件后缀(仅限type=file有效)
1313
var suffix: String = ""
14+
// 打开文件/目录选择器时的初始目录(仅限type=file/folder有效)
15+
var pathHome: String = ""
1416

1517
// Lệnh shell dùng để xác định trạng thái tích (checked) khi type = "checkbox".
1618
// Được chạy lại mỗi lần menu chuẩn bị hiển thị (không chỉ 1 lần lúc load trang).

app/src/main/java/com/omarea/krscript/ui/ParamsFileChooserRender.kt

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,13 @@ class ParamsFileChooserRender(
3232
fun mimeType():String?
3333
fun suffix():String?
3434
fun type(): Int
35+
// Có cho phép chọn nhiều tệp tin/thư mục cùng lúc hay không (mặc định: không)
36+
fun multiple(): Boolean = false
37+
// Dấu phân cách dùng để nối nhiều đường dẫn đã chọn thành 1 chuỗi giá trị (mặc định: xuống dòng)
38+
fun separator(): String = "\n"
39+
// Thư mục sẽ được mở sẵn khi bắt đầu chọn (ví dụ "/sdcard/Android").
40+
// Người dùng vẫn có thể quay lại thư mục cha (ví dụ /sdcard) như bình thường.
41+
fun pathHome(): String? = null
3542
}
3643

3744

@@ -104,6 +111,18 @@ class ParamsFileChooserRender(
104111
else -> FileSelectedInterface.TYPE_FILE
105112
}
106113
}
114+
115+
override fun multiple(): Boolean {
116+
return actionParamInfo.multiple
117+
}
118+
119+
override fun separator(): String {
120+
return actionParamInfo.separator
121+
}
122+
123+
override fun pathHome(): String? {
124+
return actionParamInfo.pathHome.ifEmpty { null }
125+
}
107126
})
108127
}
109128

0 commit comments

Comments
 (0)