Skip to content

Commit 5507455

Browse files
author
野松
committed
request update: 兼容标准语法
1 parent d03b97c commit 5507455

File tree

6 files changed

+174
-37
lines changed

6 files changed

+174
-37
lines changed
Lines changed: 97 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,97 @@
1+
-- Created by LuaView.
2+
-- Copyright (c) 2017, Alibaba Group. All rights reserved.
3+
--
4+
-- This source code is licensed under the MIT.
5+
-- For the full copyright and license information,please view the LICENSE file in the root directory of this source tree.
6+
7+
-- Created by LuaView.
8+
-- Copyright (c) 2017, Alibaba Group. All rights reserved.
9+
--
10+
-- This source code is licensed under the MIT.
11+
-- For the full copyright and license information,please view the LICENSE file in the root directory of this source tree.
12+
13+
14+
local label = Label()
15+
label:text("请看日志输出")
16+
label:frame(0, 0, System.screenSize())
17+
18+
http = Http()
19+
http:get("http://www.baidu.com", {
20+
query = 1
21+
}, function(response)
22+
local data = response:data()
23+
24+
print(data)
25+
test1(data)
26+
test2(data)
27+
test3(data)
28+
end)
29+
30+
31+
function test1(data)
32+
print("-------------------------test1---------------------")
33+
print("save", File.save(data, "test.html"))
34+
print("read", File.read("test.html"))
35+
print("path", File.path("test.html"))
36+
print("exists", File.exists("test.html"))
37+
print("--------------------------test1---------------------")
38+
end
39+
40+
function test2(data)
41+
print("-------------------------test2---------------------")
42+
print("save", File.save(data, "demo/test.html"))
43+
print("read", File.read("demo/test.html"))
44+
print("path", File.path("demo/test.html"))
45+
print("exists", File.exists("demo/test.html"))
46+
print("--------------------------test2---------------------")
47+
end
48+
49+
function test3(data)
50+
print("-------------------------test3---------------------")
51+
print("save", File.save(data, "../../../common/test.html"))
52+
print("read", File.read("../../../common/test.html"))
53+
print("path", File.path("../../../common/test.html"))
54+
print("exists", File.exists("../../../common/test.html"))
55+
print("--------------------------test3---------------------")
56+
end
57+
58+
function test4(data)
59+
print("-------------------------test4---------------------")
60+
61+
File.save(data, "test1.html", function(status)
62+
print("file saved", status, File.exists("test1.html"))
63+
print("read1", File.read("test1.html"), "xxx")
64+
65+
66+
print("path2", File.path("test1.html"))
67+
print("exists1", File.exists("test1.html"))
68+
print("exists3", File.exists("test2.html"))
69+
70+
File.read("test1.html", function(data)
71+
print("read2", data)
72+
print("-------------------------test4---------------------")
73+
end)
74+
end)
75+
76+
77+
end
78+
79+
80+
81+
82+
http = Http()
83+
http:get("https://gju1.alicdn.com/bao/uploaded/i4/100000120700895002/TB2Qu0_fXXXXXb9XpXXXXXXXXXX_!!0-0-juitemmedia.jpg_560x560Q90.jpg", function(response)
84+
local data = response:data()
85+
86+
File.save(data, "../common/test.png")
87+
88+
File.read("../common/test.png", function(data)
89+
local img = Image()
90+
img:frame(0, 0, 100, 100)
91+
img:image("../common/test.png")
92+
93+
local img2 = Image()
94+
img2:frame(101, 0, 100, 100)
95+
img2:image(data)
96+
end)
97+
end)

Android/LuaViewSDK/src/com/taobao/luaview/userdata/kit/UDActionBar.java

Lines changed: 24 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -57,14 +57,19 @@ private void init() {
5757
set("rightBarButton", new right());//@Deprecated
5858
}
5959

60+
private int fixIndex(Varargs varargs){
61+
return varargs != null && varargs.arg1() instanceof UDActionBar ? 1 : 0;
62+
}
63+
6064
/**
6165
* 系统中间View
6266
*/
6367
class title extends VarArgFunction {
6468

6569
@Override
6670
public Varargs invoke(Varargs args) {
67-
if (args.narg() > 1) {
71+
final int fixIndex = fixIndex(args);
72+
if (args.narg() > fixIndex) {
6873
return new setTitle().invoke(args);
6974
} else {
7075
return new getTitle().invoke(args);
@@ -77,8 +82,9 @@ class setTitle extends VarArgFunction {
7782

7883
@Override
7984
public Varargs invoke(Varargs args) {
80-
if (args.isstring(2) || args.optvalue(2, NIL) instanceof UDSpannableString) {//title
81-
final CharSequence title = LuaViewUtil.getText(args.optvalue(2, NIL));
85+
final int fixIndex = fixIndex(args);
86+
if (args.isstring(fixIndex + 1) || args.optvalue(fixIndex + 1, NIL) instanceof UDSpannableString) {//title
87+
final CharSequence title = LuaViewUtil.getText(args.optvalue(fixIndex + 1, NIL));
8288
if (title != null) {
8389
final ActionBar actionBar = LuaViewUtil.getActionBar(getGlobals());
8490
if (actionBar != null) {
@@ -90,8 +96,8 @@ public Varargs invoke(Varargs args) {
9096
// }
9197
}
9298
}
93-
} else if (args.isuserdata(2)) {//view
94-
final LuaValue titleViewValue = args.optvalue(2, null);
99+
} else if (args.isuserdata(fixIndex + 1)) {//view
100+
final LuaValue titleViewValue = args.optvalue(fixIndex + 1, null);
95101
if (titleViewValue instanceof UDView) {
96102
final ActionBar actionBar = LuaViewUtil.getActionBar(getGlobals());
97103
if (actionBar != null) {
@@ -147,7 +153,8 @@ public Varargs invoke(Varargs args) {
147153
class background extends VarArgFunction {
148154
@Override
149155
public Varargs invoke(Varargs args) {
150-
if (args.narg() > 1) {
156+
final int fixIndex = fixIndex(args);
157+
if (args.narg() > fixIndex) {
151158
return new setBackground().invoke(args);
152159
} else {
153160
return new getBackground().invoke(args);
@@ -159,15 +166,16 @@ public Varargs invoke(Varargs args) {
159166
class setBackground extends VarArgFunction {
160167
@Override
161168
public Varargs invoke(Varargs args) {
162-
if (args.isstring(2)) {
163-
ImageUtil.fetch(getContext(), getLuaResourceFinder(), args.optjstring(2, null), new DrawableLoadCallback() {
169+
final int fixIndex = fixIndex(args);
170+
if (args.isstring(fixIndex + 1)) {
171+
ImageUtil.fetch(getContext(), getLuaResourceFinder(), args.optjstring(fixIndex + 1, null), new DrawableLoadCallback() {
164172
@Override
165173
public void onLoadResult(Drawable drawable) {
166174
setupActionBarDrawable(drawable);
167175
}
168176
});
169-
} else if (args.isuserdata(2)) {//view
170-
final LuaValue data = args.optvalue(2, null);
177+
} else if (args.isuserdata(fixIndex + 1)) {//view
178+
final LuaValue data = args.optvalue(fixIndex + 1, null);
171179
if (data instanceof UDImageView) {
172180
final ImageView imageView = (ImageView) LuaViewUtil.removeFromParent(((UDImageView) data).getView());
173181
if (imageView instanceof BaseImageView) {//TODO ActionBar支持gif
@@ -210,7 +218,8 @@ public Varargs invoke(Varargs args) {
210218
class left extends VarArgFunction {
211219
@Override
212220
public Varargs invoke(Varargs args) {
213-
if (args.narg() > 1) {
221+
final int fixIndex = fixIndex(args);
222+
if (args.narg() > fixIndex) {
214223
return new setLeft().invoke(args);
215224
} else {
216225
return new getLeft().invoke(args);
@@ -223,7 +232,8 @@ class setLeft extends VarArgFunction {
223232
public Varargs invoke(Varargs args) {
224233
final ActionBar actionBar = LuaViewUtil.getActionBar(getGlobals());
225234
if (actionBar != null) {
226-
final boolean showBack = args.optboolean(2, true);
235+
final int fixIndex = fixIndex(args);
236+
final boolean showBack = args.optboolean(fixIndex + 1, true);
227237
actionBar.setDisplayHomeAsUpEnabled(showBack);
228238
}
229239
return UDActionBar.this;
@@ -243,7 +253,8 @@ public Varargs invoke(Varargs args) {
243253
class right extends VarArgFunction {
244254
@Override
245255
public Varargs invoke(Varargs args) {
246-
if (args.narg() > 1) {
256+
final int fixIndex = fixIndex(args);
257+
if (args.narg() > fixIndex) {
247258
return new setRight().invoke(args);
248259
} else {
249260
return new getRight().invoke(args);

Android/LuaViewSDK/src/com/taobao/luaview/userdata/kit/UDFile.java

Lines changed: 22 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -49,17 +49,22 @@ private void init() {
4949
set("path", new path());
5050
}
5151

52+
private int fixIndex(Varargs args) {
53+
return args != null && args.arg1() instanceof UDFile ? 1 : 0;
54+
}
55+
5256
/**
5357
* 保存文件
5458
*/
5559
class save extends VarArgFunction {
5660
@Override
5761
public Varargs invoke(Varargs args) {
58-
if (args.narg() > 1) {
62+
final int fixIndex = fixIndex(args);
63+
if (args.narg() > fixIndex) {
5964
final LuaResourceFinder finder = getLuaResourceFinder();
6065
if (finder != null) {
61-
final LuaValue param1 = args.arg(2);
62-
final LuaValue param2 = args.arg(3);
66+
final LuaValue param1 = args.arg(fixIndex + 1);
67+
final LuaValue param2 = args.arg(fixIndex + 2);
6368

6469
String name = null;
6570
byte[] data = null;
@@ -80,8 +85,8 @@ public Varargs invoke(Varargs args) {
8085
}
8186

8287
if (data != null && data.length > 0 && !TextUtils.isEmpty(name)) {
83-
if (args.isfunction(4)) {
84-
final LuaValue callback = LuaUtil.getFunction(args, 4);
88+
if (args.isfunction(fixIndex + 3)) {
89+
final LuaValue callback = LuaUtil.getFunction(args, fixIndex + 3);
8590
new SimpleTask1<Boolean>() {
8691
@Override
8792
protected Boolean doInBackground(Object... params) {
@@ -105,20 +110,22 @@ protected void onPostExecute(Boolean o) {
105110
}
106111
}
107112

113+
108114
/**
109115
* 读取文件
110116
*/
111117
class read extends VarArgFunction {
112118
@Override
113119
public Varargs invoke(Varargs args) {
114-
if (args.narg() > 1) {
120+
final int fixIndex = fixIndex(args);
121+
if (args.narg() > fixIndex) {
115122
final LuaResourceFinder finder = getLuaResourceFinder();
116123
if (finder != null) {
117-
final String name = LuaUtil.getString(args, 2);
124+
final String name = LuaUtil.getString(args, fixIndex + 1);
118125
final String path = finder.buildSecurePathInSdcard(name);
119126

120-
if (args.isfunction(3)) {
121-
final LuaValue callback = LuaUtil.getFunction(args, 3);
127+
if (args.isfunction(fixIndex + 2)) {
128+
final LuaValue callback = LuaUtil.getFunction(args, fixIndex + 2);
122129
if (path != null) {
123130
new SimpleTask1<UDData>() {
124131
@Override
@@ -169,10 +176,11 @@ protected void onPostExecute(UDData udData) {
169176
class exists extends VarArgFunction {
170177
@Override
171178
public Varargs invoke(Varargs args) {
172-
if (args.narg() > 1) {
179+
final int fixIndex = fixIndex(args);
180+
if (args.narg() > fixIndex) {
173181
final LuaResourceFinder finder = getLuaResourceFinder();
174182
if (finder != null) {
175-
final String fileName = LuaUtil.getString(args, 2);
183+
final String fileName = LuaUtil.getString(args, fixIndex + 1);
176184
if (!TextUtils.isEmpty(fileName)) {
177185
return valueOf(finder.exists(fileName));
178186
}
@@ -188,10 +196,11 @@ public Varargs invoke(Varargs args) {
188196
class path extends VarArgFunction {
189197
@Override
190198
public Varargs invoke(Varargs args) {
191-
if (args.narg() > 1) {
199+
final int fixIndex = fixIndex(args);
200+
if (args.narg() > fixIndex) {
192201
final LuaResourceFinder finder = getLuaResourceFinder();
193202
if (finder != null) {
194-
final String fileName = LuaUtil.getString(args, 2);
203+
final String fileName = LuaUtil.getString(args, fixIndex + 1);
195204
final String path = finder.buildSecurePathInSdcard(fileName);
196205
return path != null ? valueOf(path) : NIL;
197206
}

Android/LuaViewSDK/src/com/taobao/luaview/userdata/kit/UDJson.java

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -39,13 +39,18 @@ private void init() {
3939
// set("parse", new parse());
4040
}
4141

42+
private int fixIndex(Varargs varargs){
43+
return varargs != null && varargs.arg1() instanceof UDJson ? 1 : 0;
44+
}
45+
4246
//is vaild
4347
class isValid extends VarArgFunction {
4448

4549
@Override
4650
public LuaValue invoke(Varargs args) {
47-
final LuaValue target = args.arg(2);
48-
final LuaValue callback = LuaUtil.getFunction(args, 3);
51+
final int fixIndex = fixIndex(args);
52+
final LuaValue target = args.arg(fixIndex + 1);
53+
final LuaValue callback = LuaUtil.getFunction(args, fixIndex + 2);
4954
if(callback != null){//通过callback来处理
5055
new SimpleTask1<LuaValue>() {
5156
@Override
@@ -80,8 +85,9 @@ class toTable extends VarArgFunction {
8085

8186
@Override
8287
public Varargs invoke(Varargs args) {
83-
final LuaValue target = args.arg(2);
84-
final LuaValue callback = LuaUtil.getFunction(args, 3);
88+
final int fixIndex = fixIndex(args);
89+
final LuaValue target = args.arg(fixIndex + 1);
90+
final LuaValue callback = LuaUtil.getFunction(args, fixIndex + 2);
8591
if (callback != null) {//通过callback来处理toTable
8692
new SimpleTask1<LuaValue>() {
8793
@Override

Android/LuaViewSDK/src/com/taobao/luaview/userdata/kit/UDSystem.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,6 +54,10 @@ private void init() {
5454
set("keepScreenOn", new keepScreenOn());
5555
}
5656

57+
private int fixIndex(Varargs varargs){
58+
return varargs != null && varargs.arg1() instanceof UDSystem ? 1 : 0;
59+
}
60+
5761
class ios extends VarArgFunction {
5862
@Override
5963
public Varargs invoke(Varargs args) {
@@ -168,7 +172,8 @@ class keepScreenOn extends VarArgFunction {
168172
@Override
169173
public Varargs invoke(Varargs varargs) {
170174
if (getGlobals() != null && getGlobals().getRenderTarget() != null) {
171-
final Boolean keepScreenOn = LuaUtil.getBoolean(varargs, 2);
175+
final int fixIndex = fixIndex(varargs);
176+
final Boolean keepScreenOn = LuaUtil.getBoolean(varargs, fixIndex + 1);
172177
getGlobals().getRenderTarget().setKeepScreenOn(keepScreenOn != null ? keepScreenOn : true);
173178
}
174179
return LuaValue.NIL;

Android/build/intermediates/dex-cache/cache.xml

Lines changed: 15 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,22 @@
22
<items version="2" >
33

44
<item
5-
is-multidex="false"
6-
jar="/workspace/LuaViewSDK/Android/LuaViewSDK/build/intermediates/bundles/default/classes.jar"
7-
jumboMode="false"
5+
is-multidex="true"
6+
jar="/Users/song/Projects/androidstudio/ju/LuaView/LuaViewSDK/Android/LuaViewDemo/build/intermediates/incremental-runtime-classes/debug/instant-run.jar"
7+
jumboMode="true"
88
optimize="true"
9-
revision="25.0.2"
10-
sha1="2d4264f6f5b10d538b9630658c67b8502bc67449">
11-
<dex dex="/workspace/LuaViewSDK/Android/Playground/build/intermediates/pre-dexed/debug/classes_8999f34b14a953c929e7858134b1a9333f73ba5a.jar" />
9+
revision="25.0.0"
10+
sha1="c82741bc129dd5f99f11a4ab8666ae24262053b6">
11+
<dex dex="/Users/song/Projects/androidstudio/ju/LuaView/LuaViewSDK/Android/LuaViewDemo/build/intermediates/transforms/dex/debug/folders/1000/10000/instant-run_ccb16605852375a6452339ec6b92033151f7ac50/classes.dex" />
12+
</item>
13+
<item
14+
is-multidex="true"
15+
jar="/Users/song/Projects/androidstudio/ju/LuaView/LuaViewSDK/Android/LuaViewDemo/build/intermediates/incremental-classes/debug/instant-run-bootstrap.jar"
16+
jumboMode="true"
17+
optimize="true"
18+
revision="25.0.0"
19+
sha1="083a206b3c6b43c8c8554c99b52ea9599e7ad6a0">
20+
<dex dex="/Users/song/Projects/androidstudio/ju/LuaView/LuaViewSDK/Android/LuaViewDemo/build/intermediates/transforms/dex/debug/folders/1000/10000/instant-run-bootstrap_1be86348480f9c70b069444f321e1340a8a629e3/classes.dex" />
1221
</item>
1322

1423
</items>

0 commit comments

Comments
 (0)