Skip to content

Commit b3dae30

Browse files
committed
Update
1 parent ca654ef commit b3dae30

6 files changed

Lines changed: 183 additions & 114 deletions

File tree

app/src/main/assets/home/etc/boot

-136 Bytes
Binary file not shown.

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

Lines changed: 11 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -934,21 +934,24 @@ checktime
934934
<title>'$build_text'</title>
935935
<param name="boolbox" value-sh="glog boolboxdjh" label="'$deleted_project_text'" type="checkbox" />
936936
<param name="IMAGES" title="'$list_partition_text'" desc="'$builds_text_1'" multiple="true" options-sh="findfile 0 $SDH/$PTSH" required="true"/>
937-
<param name="dinh_dang" value-sh="glog dinh_dang 0" label="'$build_text'" desc="'$builds_text_2'" options-sh="echo -e '"'0|$default_text\n1|RO (EROFS)\n2|RW (EXT4)\n3|RO (F2FS)\n4|RW (F2FS)'"'"/>
938-
<param name="dang_nen" value-sh="glog dang_nen lz4hc" label="'$option_text'" desc="'$builds_text_3'" options-sh="echo -e '"'lz4hc\nlz4\nlzma\ndeflate\nzstd'"'"/>
939-
<param name="muc_nen" value-sh="glog muc_nen 8" label="'$builds_text_4'" desc="'$builds_text_6': lz4: 0, lz4hc: 0-12, deflate,lzma: 0-9, zstd: 0-22" min="0" max="22" type="seekbar"/>
940-
<param name="format_img" value-sh="glog format_imgs raw" label="'$convert_text'" desc="'$convert_img_text'" >
937+
938+
<param name="dinh_dang" value-sh="glog dinh_dang 0" label="'$build_text'" desc="'$builds_text_2'" options-sh="echo -e '"'0|$default_text\n1|RO (EROFS)\n2|RW (EXT4)\n3|RO (F2FS)\n4|RW (F2FS)'"'" depend-on="IMAGES" depend-value="(erofs),(ext),(f2fs)" depend-mode="show" />
939+
940+
<param name="dang_nen" value-sh="glog dang_nen lz4hc" label="'$option_text'" desc="'$builds_text_3'" options-sh="echo -e '"'lz4hc\nlz4\nlzma\ndeflate\nzstd'"'" depend-on="dinh_dang|IMAGES" depend-value="EXT4,F2FS|(erofs)" depend-mode="hide|show" depend-logic="priority"/>
941+
942+
<param name="muc_nen" value-sh="glog muc_nen 8" label="'$builds_text_4'" desc="'$builds_text_6': lz4: 0, lz4hc: 0-12, deflate,lzma: 0-9, zstd: 0-22" min="0" max="22" type="seekbar" depend-on="dang_nen|dinh_dang|IMAGES" depend-value="lz4|EXT4,F2FS|(erofs)" depend-mode="hide|hide|show" depend-logic="priority"/>
943+
<param name="format_img" value-sh="glog format_imgs raw" label="'$convert_text'" desc="'$convert_img_text'" depend-on="IMAGES" depend-value="(erofs),(ext),(f2fs)" depend-mode="show">
941944
<option value="raw">File.img (raw)</option>
942945
<option value="sparse">File.img (sparse)</option>
943946
<option value="zstd">File.img.zstd</option>
944947
<option value="zst">File.img.zst</option>
945948
<option value="dat">File.new.dat</option>
946949
<option value="br">File.new.dat.br</option>
947950
</param>
948-
<param name="nen_br" required="true" value-sh="glog nen_br 4" label="'$builds_text_4'" type="seekbar" min="0" max="22" desc="'$convert_text_2'"/>
949-
<param name="build_times" label="'$time_text'" value-sh="glog build_times" type="number" desc="'$build_time_text_1': '$time_riviu'" required="required" />
950-
<param name="offfscontex" value-sh="glog offfscontex 1" label="'$patch_text_fscontex'" type="switch" />
951-
<param name="build_size" label="'$sizes_text'" value-sh="glog build_size 0" type="number" desc="'$builds_text_7'" required="required" />
951+
<param name="nen_br" required="true" value-sh="glog nen_br 4" label="'$builds_text_4'" type="seekbar" min="0" max="22" desc="'$convert_text_2'" depend-on="format_img|IMAGES" depend-value="raw,sparse,File.new.dat|(erofs),(ext),(f2fs)" depend-mode="hide|show" depend-logic="priority"/>
952+
<param name="build_times" label="'$time_text'" value-sh="glog build_times" type="number" desc="'$build_time_text_1': '$time_riviu'" required="required" depend-on="IMAGES" depend-value="(erofs),(ext),(f2fs)" depend-mode="show"/>
953+
<param name="offfscontex" value-sh="glog offfscontex 1" label="'$patch_text_fscontex'" type="switch" depend-on="IMAGES" depend-value="(erofs),(ext),(f2fs)" depend-mode="show"/>
954+
<param name="build_size" label="'$sizes_text'" value-sh="glog build_size 0" type="number" desc="'$builds_text_7'" required="required" depend-on="dinh_dang|dinh_dang|IMAGES" depend-value="EROFS|EXT4,F2FS|(ext),(f2fs)" depend-mode="hide|show|show" depend-logic="priority"/>
952955
<set>
953956
slog dang_nen "$dang_nen"
954957
slog format_imgs "$format_img"

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

Lines changed: 53 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -41,19 +41,19 @@ class ActionParamInfo {
4141
// 多个值的分隔符(仅限多选下拉)
4242
var separator: String = "\n"
4343

44+
// ========== 新增依赖管理功能 ==========
45+
4446
// Tên (các) param điều khiển: param này sẽ ẩn/hiện dựa theo giá trị của (các) param có
4547
// "name" trùng dependOn. Có thể khai báo NHIỀU param cha cùng lúc, nối bằng dấu "|",
4648
// ví dụ: "mode|cam" -> phụ thuộc đồng thời vào cả param "mode" và "cam" (tất cả phải
4749
// cùng thỏa điều kiện tương ứng - AND).
4850
var dependOn: String? = null
51+
4952
// Danh sách giá trị cần khớp cho từng param cha (theo đúng thứ tự khai báo ở dependOn),
5053
// các param cha cách nhau bởi dấu "|"; trong mỗi vị trí, các giá trị được chấp nhận (OR)
5154
// cách nhau bởi dấu phẩy, ví dụ: "a|b,c" -> cha 1 khớp khi = a, cha 2 khớp khi = b hoặc c.
52-
// Giá trị so khớp không chỉ là value thực tế của option, mà còn có thể là title (label)
53-
// hiển thị của option, hoặc phần văn bản nằm trong dấu ngoặc () của title (khớp cả có
54-
// ngoặc lẫn không ngoặc). Ví dụ option-sh="echo -e 'a|A (so)'" (value=a, title="A (so)")
55-
// thì depend-value="a,A,(so)" đều khớp được (qua value "a", qua title "A", qua "(so)"/"so").
5655
var dependValue: String? = null
56+
5757
// "show": chỉ hiện khi khớp dependValue (mặc định) | "hide": ẩn khi khớp dependValue
5858
// Cũng có thể khai báo riêng cho từng param cha, nối bằng "|", theo đúng thứ tự dependOn,
5959
// ví dụ: "show|hide".
@@ -63,14 +63,55 @@ class ActionParamInfo {
6363
// - "and" (mặc định): TẤT CẢ điều kiện phải cùng thỏa (giữ tương thích hành vi cũ).
6464
// - "priority" (hoặc "or"): xét theo THỨ TỰ ưu tiên từ TRÁI SANG PHẢI theo đúng thứ tự
6565
// khai báo trong dependOn. Điều kiện nào (đã tính cả dependMode của chính nó) thỏa
66-
// trước sẽ quyết định luôn kết quả là "show" (không cần xét tiếp các điều kiện còn lại).
67-
// Nếu không có điều kiện nào thỏa thì "hide".
68-
// Ví dụ: depend-on="mode|level" depend-value="b|7" depend-mode="show|show"
69-
// depend-logic="priority"
70-
// -> Nếu "mode" khớp "b" thì show luôn (bất kể level).
71-
// -> Nếu "mode" không khớp nhưng "level" khớp "7" thì vẫn show.
72-
// -> Nếu cả hai đều không khớp thì hide.
66+
// trước sẽ quyết định luôn kết quả.
67+
// Nếu không có điều kiện nào thỏa thì sử dụng dependDefault.
7368
// - "priority-rtl" (hoặc "or-rtl"): giống "priority" nhưng xét theo thứ tự ưu tiên từ
74-
// PHẢI SANG TRÁI (điều kiện cuối cùng trong dependOn được xét trước).
69+
// PHẢI SANG TRÁI.
70+
// - "xor": chỉ ĐÚNG MỘT điều kiện phải thỏa.
71+
// - "nand": phủ định của "and" (không phải tất cả điều kiện đều thỏa).
7572
var dependLogic: String = "and"
73+
74+
// ========== TÍNH NĂNG MỚI: MẶC ĐỊNH ẨN/HIỆN ==========
75+
// Giá trị mặc định khi KHÔNG có điều kiện phụ thuộc nào thỏa mãn:
76+
// - "show" (mặc định): hiển thị khi không có điều kiện nào khớp
77+
// - "hide": ẩn khi không có điều kiện nào khớp
78+
// Ví dụ: depend-on="mode" depend-value="advanced"
79+
// depend-default="hide"
80+
// -> Khi mode != advanced thì ẩn (không phải "show")
81+
var dependDefault: String = "show"
82+
83+
// ========== TÍNH NĂNG MỚI: TRẠNG THÁI KHỞI ĐỘNG ==========
84+
// Trạng thái ẩn/hiện BAN ĐẦU khi chưa đánh giá bất kỳ điều kiện nào:
85+
// - "auto" (mặc định): tự động xác định dựa trên dependDefault
86+
// - "show": luôn hiển thị lúc đầu
87+
// - "hide": luôn ẩn lúc đầu
88+
// Hữu ích khi bạn không muốn param nhấp nháy lúc tải dialog.
89+
var dependInitialState: String = "auto"
90+
91+
// ========== TÍNH NĂNG MỚI: ĐẢO NGƯỢC ĐIỀU KIỆN ==========
92+
// Nếu true, tất cả các điều kiện sẽ bị đảo ngược (NOT logic):
93+
// - "show" trở thành "hide"
94+
// - "hide" trở thành "show"
95+
// Ví dụ: depend-on="admin" depend-value="1" depend-negate="true"
96+
// -> Hiện khi admin != 1 (ẩn khi admin = 1)
97+
var dependNegate: Boolean = false
98+
99+
// ========== TÍNH NĂNG MỚI: NGƯỠNG ĐIỀU KIỆN (CHO "AND") ==========
100+
// Với logic "and", chỉ bao nhiêu % điều kiện cần thỏa mãn:
101+
// - -1 (mặc định): 100% (tất cả phải thỏa) - hành vi cũ
102+
// - 0-100: % số điều kiện cần thỏa, vd: 50 = ít nhất 50% điều kiện phải thỏa
103+
// Ví dụ: depend-on="a|b|c" 3 điều kiện
104+
// depend-threshold="67" (tối thiểu 2/3 điều kiện)
105+
// -> Chỉ cần tối thiểu 2 trong 3 điều kiện thỏa mãn
106+
var dependThreshold: Int = -1
107+
108+
// ========== TÍNH NĂNG MỚI: HOẠT ĐỘNG KHÔNG ĐỒNG THỜI ==========
109+
// Nếu true, param ẩn sẽ vẫn được đưa vào kết quả readParamsValue() nếu nó có giá trị
110+
// (thay vì bỏ qua param ẩn). Hữu ích cho các param ẩn nhưng vẫn cần giá trị.
111+
var dependIncludeHidden: Boolean = false
112+
113+
// ========== TÍNH NĂNG MỚI: LÀMĐIỀU GỌILẠI KHI THAY ĐỔI DEPENDENCY ==========
114+
// Tên shell script/callback để gọi khi param này thay đổi trạng thái ẩn/hiện
115+
// (chỉ gọi khi trạng thái thực sự thay đổi, từ visible -> hidden hoặc ngược lại)
116+
var dependOnChangeCallback: String? = null
76117
}

0 commit comments

Comments
 (0)