8000 request update: merge taohome · pythonzz/LuaViewSDK@ef72a10 · GitHub
[go: up one dir, main page]

Skip to content

Commit ef72a10

Browse files
author
野松
committed
request update: merge taohome
2 parents 5507455 + 671536e commit ef72a10

File tree

4 files changed

+42
-41
lines changed

4 files changed

+42
-41
lines changed

Android/LuaViewSDK/src/com/taobao/luaview/global/LuaScriptLoader.java

Lines changed: 19 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -28,6 +28,20 @@
2828
* @date 15/11/10
2929
*/
3030
public class LuaScriptLoader {
31+
32+
/**
33+
* Lua脚本加载事件
34+
*/
35+
public enum LuaScriptLoadEvent {
36+
EVENT_DOWNLOAD_START,
37+
EVENT_DOWNLOAD_END,
38+
EVENT_LOAD_CACHE,
39+
EVENT_LOAD_LOCAL,
40+
EVENT_LOAD_PREDOWNLOAD,
41+
EVENT_LOAD_ASSET
42+
}
43+
44+
3145
private Context mContext;
3246

3347
public LuaScriptLoader(final Context context) {
@@ -46,9 +60,7 @@ public interface ScriptLoaderCallback {
4660
}
4761

4862
public interface ScriptLoaderCallback2 extends ScriptLoaderCallback {
49-
void onScriptDownloadStart();//下载开始
50-
51-
void onScriptDownloadEnd(final ScriptBundle bundle);//包内设置的脚本加载
63+
void onEvent(LuaScriptLoadEvent event, Object params);
5264
}
5365

5466
/**
@@ -86,18 +98,10 @@ public interface ScriptExecuteCallback {
8698
public interface ScriptExecuteCallback2 extends ScriptExecuteCallback {
8799

88100
/**
89-
* 脚本下载开始
101+
* @param event
102+
* @param params
90103
*/
91-
void onScriptDownloadStart();
92-
93-
/**
94-
* 脚本下载完毕
95-
*
96-
* @param bundle
97-
* @return
98-
*/
99-
void onScriptDownloadEnd(ScriptBundle bundle);
100-
104+
void onEvent(LuaScriptLoadEvent event, Object params);
101105
}
102106

103107
//-----------------------------------------static methods---------------------------------------
@@ -154,7 +158,7 @@ public void load(final String url, final ScriptLoaderCallback callback) {
154158
public void load(final String url, final String sha256, final ScriptLoaderCallback callback) {
155159
new ScriptBundleUltimateLoadTask(mContext, callback).load(url, sha256);
156160
}
157-
161+
158162

159163
//--------------------------------preload script------------------------------------------------
160164

Android/LuaViewSDK/src/com/taobao/luaview/global/LuaViewCore.java

Lines changed: 2 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -195,16 +195,9 @@ public LuaViewCore loadUrl(final String url, final String sha256, final LuaScrip
195195
if (!TextUtils.isEmpty(url)) {
196196
new LuaScriptLoader(mContext).load(url, sha256, new LuaScriptLoader.ScriptLoaderCallback2() {
197197
@Override
198-
public void onScriptDownloadStart() {//下载开始,不一定会调用,存在调用失败的情况
198+
public void onEvent(LuaScriptLoader.LuaScriptLoadEvent event, Object params) {
199199
if (callback instanceof LuaScriptLoader.ScriptExecuteCallback2) {
200-
((LuaScriptLoader.ScriptExecuteCallback2) callback).onScriptDownloadStart();
201-
}
202-
}
203-
204-
@Override
205-
public void onScriptDownloadEnd(ScriptBundle bundle) {//下载完成,不一定会调用,如果调用的话,且packageName不为空的话,则onScriptLoaded加载的是Asset预置脚本
206-
if (callback instanceof LuaScriptLoader.ScriptExecuteCallback2) {
207-
((LuaScriptLoader.ScriptExecuteCallback2) callback).onScriptDownloadEnd(bundle);
200+
((LuaScriptLoader.ScriptExecuteCallback2) callback).onEvent(event, params);
208201
}
209202
}
210203

Android/LuaViewSDK/src/com/taobao/luaview/scriptbundle/asynctask/ScriptBundleUltimateLoadTask.java

Lines changed: 17 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -75,18 +75,23 @@ public ScriptBundle doInBackground(String... params) {
7575
if (LuaScriptManager.existsScriptBundle(urlOrAssetPath)) {//读取并加载,之前的脚本
7676
scriptBundle = AppCache.getCache(AppCache.CACHE_SCRIPTS).getLru(urlOrAssetPath);
7777
if (scriptBundle != null) {
78+
79+
callLoaderCallbackOnEvent(LuaScriptLoader.LuaScriptLoadEvent.EVENT_LOAD_CACHE, scriptBundle);
7880
return scriptBundle;
7981
} else {
8082
DebugUtil.tsi("luaviewp-loadBundle");
8183

8284
scriptBundle = ScriptBundleUnpackDelegate.loadBundle(LuaScriptManager.isLuaBytecodeUrl(urlOrAssetPath), urlOrAssetPath, destFolderPath);//TODO 性能瓶颈
8385

8486
DebugUtil.tei("luaviewp-loadBundle");
87+
88+
callLoaderCallbackOnEvent(LuaScriptLoader.LuaScriptLoadEvent.EVENT_LOAD_LOCAL, scriptBundle);
8589
}
8690

8791
} else if (LuaScriptManager.existsPredownloadBundle(urlOrAssetPath)) {//预先加载的地址有脚本,则尝试解压并加载 xxx.zip
8892
scriptBundle = AppCache.getCache(AppCache.CACHE_SCRIPTS).getLru(urlOrAssetPath);
8993
if (scriptBundle != null) {
94+
callLoaderCallbackOnEvent(LuaScriptLoader.LuaScriptLoadEvent.EVENT_LOAD_CACHE, scriptBundle);
9095
return scriptBundle;
9196
} else {
9297
DebugUtil.tsi("luaviewp-loadPredownloadBundle");
@@ -96,18 +101,22 @@ public ScriptBundle doInBackground(String... params) {
96101
scriptBundle = ScriptBundleUnpackDelegate.unpack(urlOrAssetPath, inputStream);
97102

98103
DebugUtil.tei("luaviewp-loadPredownloadBundle");
104+
105+
callLoaderCallbackOnEvent(LuaScriptLoader.LuaScriptLoadEvent.EVENT_LOAD_PREDOWNLOAD, scriptBundle);
99106
}
100107
} else if (URLUtil.isAssetUrl(urlOrAssetPath) && AssetUtil.exists(mContext, urlOrAssetPath)) {//asset file exists
101108
if (LuaScriptManager.isLuaScriptZip(urlOrAssetPath)) {//asset下的包加载
102109
scriptBundle = ScriptBundleUnpackDelegate.unpack(mContext, FileUtil.removePostfix(urlOrAssetPath), urlOrAssetPath);
103110
}
111+
112+
callLoaderCallbackOnEvent(LuaScriptLoader.LuaScriptLoadEvent.EVENT_LOAD_ASSET, scriptBundle);
104113
} else {//下载解压加载
105114

106115
// Assert 预置包
107116
// loadAssertScriptBundle();
108117

109118
// 下载包
110-
callLoaderDownloadStart();
119+
callLoaderCallbackOnEvent(LuaScriptLoader.LuaScriptLoadEvent.EVENT_DOWNLOAD_START, null);
111120

112121
// download
113122
ScriptBundleDownloadDelegate downloadDelegate = new ScriptBundleDownloadDelegate(urlOrAssetPath, sha256);
@@ -123,7 +132,7 @@ public ScriptBundle doInBackground(String... params) {
123132
}
124133

125134
//下载结束
126-
callLoaderDownloadEnd(scriptBundle);
135+
callLoaderCallbackOnEvent(LuaScriptLoader.LuaScriptLoadEvent.EVENT_DOWNLOAD_END, scriptBundle);
127136
}
128137

129138
scriptBundle = new ScriptBundleLoadDelegate().load(mContext, scriptBundle);//解密脚本或者加载Prototype
@@ -216,22 +225,13 @@ protected void onPostExecute(ScriptBundle unzippedScripts) {
216225
}
217226

218227
/**
219-
* 开始下载
220-
*/
221-
private void callLoaderDownloadStart() {
222-
if (mScriptLoaderCallback instanceof LuaScriptLoader.ScriptLoaderCallback2) {
223-
((LuaScriptLoader.ScriptLoaderCallback2) mScriptLoaderCallback).onScriptDownloadStart();
224-
}
225-
}
226-
227-
/**
228-
* 下载结束
229-
*
230-
* @param bundle
228+
* 事件回调
229+
* @param event
230+
* @param args
231231
*/
232-
private void callLoaderDownloadEnd(ScriptBundle bundle) {
233-
if (mScriptLoaderCallback instanceof LuaScriptLoader.ScriptLoaderCallback2) {
234-
((LuaScriptLoader.ScriptLoaderCallback2) mScriptLoaderCallback).onScriptDownloadEnd(bundle);
232+
private void callLoaderCallbackOnEvent(LuaScriptLoader.LuaScriptLoadEvent event, Object args){
233+
if(mScriptLoaderCallback instanceof LuaScriptLoader.ScriptExecuteCallback2){
234+
((LuaScriptLoader.ScriptExecuteCallback2) mScriptLoaderCallback).onEvent(event, args);
235235
}
236236
}
237237

Android/LuaViewSDK/src/com/taobao/luaview/view/LVViewGroup.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -119,6 +119,10 @@ public boolean onKeyUp(int keyCode, KeyEvent event) {
119119
return super.onKeyUp(keyCode, event);
120120
}
121121

122+
/**
123+
* onBack pressed
124+
* @return
125+
*/
122126
public boolean onBackPressed(){
123127
LuaValue result = mLuaUserdata != null ? mLuaUserdata.callOnBack() : LuaValue.FALSE;
124128
return result != null && result.optboolean(false);

0 commit comments

Comments
 (0)
0