Skip to content

Commit dbd1c93

Browse files
authored
Merge pull request #28 from VideoOS/dev_2.7.0
Dev 2.7.0
2 parents 911fa09 + 454590d commit dbd1c93

File tree

11 files changed

+92
-131
lines changed

11 files changed

+92
-131
lines changed

VideoOS/LuaViewSDK/src/cn/com/venvy/lua/plugin/LVDevicePlugin.java

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
import android.os.Build;
44
import android.text.TextUtils;
55

6+
import com.taobao.luaview.util.AndroidUtil;
7+
68
import org.luaj.vm2.LuaValue;
79
import org.luaj.vm2.Varargs;
810
import org.luaj.vm2.lib.VarArgFunction;
@@ -31,6 +33,7 @@ public static void install(VenvyLVLibBinder venvyLVLibBinder, Platform platform)
3133
venvyLVLibBinder.set("isTitleBarShow", sIsTitleBarShow == null ? sIsTitleBarShow = new IsTitleBarShow() : sIsTitleBarShow);
3234
venvyLVLibBinder.set("packageName", new PackageName(platform));
3335
venvyLVLibBinder.set("getIdentity", new UDID(platform));
36+
venvyLVLibBinder.set("screenScale", new ScreenScale());
3437

3538
}
3639

@@ -51,6 +54,13 @@ public Varargs invoke(Varargs args) {
5154
}
5255
}
5356

57+
private static class ScreenScale extends VarArgFunction {
58+
@Override
59+
public Varargs invoke(Varargs args) {
60+
return valueOf(AndroidUtil.getDensity(App.getContext()) + 0.5f);
61+
}
62+
}
63+
5464
/**
5565
* 判断是否是竖屏
5666
*/

VideoOS/LuaViewSDK/src/cn/com/venvy/lua/plugin/LVEventPlugin.java

Lines changed: 19 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,10 @@
66

77
import com.taobao.luaview.util.JsonUtil;
88
import com.taobao.luaview.util.LuaUtil;
9+
import com.taobao.luaview.util.TextUtil;
910

11+
import org.json.JSONException;
12+
import org.json.JSONObject;
1013
import org.luaj.vm2.LuaTable;
1114
import org.luaj.vm2.LuaValue;
1215
import org.luaj.vm2.Varargs;
@@ -83,6 +86,22 @@ public Varargs invoke(Varargs args) {
8386
}
8487
}
8588
}
89+
if(!map.keySet().contains("miniAppId")){
90+
// 如果过来的uri中不带miniAppId,则需要尝试去table中找miniAppId put进 map里
91+
try {
92+
JSONObject jsonObject = new JSONObject(JsonUtil.toString(table));
93+
JSONObject miniAppInfo = jsonObject.getJSONObject("miniAppInfo");
94+
if(miniAppInfo != null){
95+
String miniAppId = miniAppInfo.getString("miniAppId");
96+
if(!TextUtils.isEmpty(miniAppId)){
97+
map.put("miniAppId",miniAppId);
98+
}
99+
}
100+
} catch (JSONException e) {
101+
e.printStackTrace();
102+
}
103+
}
104+
86105
if (map.size() > 0) {
87106
info.withSerializable("data", map);
88107
}

VideoOS/VenvyLibrary/src/main/assets/lua/os_shopping_hotspot.lua

Lines changed: 0 additions & 112 deletions
This file was deleted.

VideoOS/VenvyLibrary/src/main/java/cn/com/venvy/common/observer/VenvyObservableTarget.java

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -61,6 +61,9 @@ public static class Constant {
6161
public static final String CONSTANT_MINI_APP_INFO = "miniAppInfo";
6262
public static final String CONSTANT_VIDEO_MODE_TYPE = "videoModeType";
6363
public static final String CONSTANT_DEVELOPER_USER_ID = "developerUserId";
64+
public static final String CONSTANT_VIDEO_MODE_X_OFFSET = "eyeOriginPointX";
65+
public static final String CONSTANT_VIDEO_MODE_Y_OFFSET = "eyeOriginPointY";
66+
public static final String CONSTANT_LABEL_CONF_DATA = "labelConfData";
6467
}
6568

6669
}

VideoOS/VenvyLibrary/src/main/java/cn/com/venvy/common/webview/JsBridge.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,7 @@ public void commonData(String jsParams) {
112112
objSize.put("height", height);
113113
obj.put("common", CommonParam.getCommonParamJson(mPlatform.getPlatformInfo().getAppKey()));
114114
obj.put("size", objSize);
115+
obj.put("screenScale", String.valueOf(mContext.getResources().getDisplayMetrics().density + 0.5f));// 屏幕拉伸倍率
115116

116117
xyObj.put("x", mVenvyWebView.getWebViewX());
117118
xyObj.put("y", mVenvyWebView.getWebViewY());

VideoOS/venvy_pub/src/main/java/cn/com/videopls/pub/VideoPlusController.java

Lines changed: 13 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -180,13 +180,14 @@ public void successful(Object result, String miniAppInfo, final ServiceQueryAdsI
180180
jsonObject.put(CONSTANT_VIDEO_MODE_TYPE, "0");
181181
}
182182

183+
183184
// miniAppInfo
184185
if (!TextUtils.isEmpty(miniAppInfo)) {
185186
JSONObject miniAppJson = new JSONObject(miniAppInfo);
186187
jsonObject.put(CONSTANT_MINI_APP_INFO, miniAppJson);
187-
builder.appendQueryParameter(VenvySchemeUtil.QUERY_MINIAPP_ID,miniAppJson.getString("miniAppId"));
188-
}else{
189-
builder.appendQueryParameter(VenvySchemeUtil.QUERY_MINIAPP_ID,"");
188+
builder.appendQueryParameter(VenvySchemeUtil.QUERY_MINIAPP_ID, miniAppJson.getString("miniAppId"));
189+
} else {
190+
builder.appendQueryParameter(VenvySchemeUtil.QUERY_MINIAPP_ID, "");
190191
}
191192
skipParams.put(CONSTANT_DATA, jsonObject.toString());
192193
} catch (JSONException e) {
@@ -494,15 +495,19 @@ public void downComplete(String entranceLua, String miniAppInfo) {
494495

495496

496497
JSONObject paramsJson = new JSONObject();
497-
498+
HashMap<String, String> finalParams = new HashMap<>();
498499
try {
499500
paramsJson.put("data", new JSONObject(params.get("data")));
500-
paramsJson.put("miniAppInfo", new JSONObject(miniAppInfo));
501+
JSONObject miniAppJson = new JSONObject(miniAppInfo);
502+
paramsJson.put("miniAppInfo", miniAppJson);
503+
String miniAppId = miniAppJson.getString("miniAppId");
504+
if (!TextUtils.isEmpty(miniAppId)) {
505+
builder.appendQueryParameter(VenvySchemeUtil.QUERY_MINIAPP_ID, miniAppId);
506+
}
501507
} catch (JSONException e) {
502508
e.printStackTrace();
503509
}
504510

505-
HashMap<String, String> finalParams = new HashMap<>();
506511
finalParams.put("data", paramsJson.toString());
507512
navigation(builder.build(), finalParams, new IRouterCallback() {
508513
@Override
@@ -536,9 +541,9 @@ public void downError(Throwable t) {
536541
new VideoServiceQueryAdsModel.ServiceQueryAdsCallback() {
537542

538543
@Override
539-
public void queryComplete(Object queryAdsData, ServiceQueryAdsInfo queryAdsInfo) {
544+
public void queryComplete(Object queryAdsData, String miniAppInfo, ServiceQueryAdsInfo queryAdsInfo) {
540545
if (result != null) {
541-
result.successful(queryAdsData, "", queryAdsInfo);
546+
result.successful(queryAdsData, miniAppInfo, queryAdsInfo);
542547
}
543548
}
544549

VideoOS/venvy_pub/src/main/java/cn/com/videopls/pub/VideoPlusView.java

Lines changed: 17 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import android.support.annotation.NonNull;
77
import android.text.TextUtils;
88
import android.util.AttributeSet;
9+
import android.util.Pair;
910
import android.widget.FrameLayout;
1011

1112
import org.json.JSONException;
@@ -45,6 +46,8 @@ public abstract class VideoPlusView<T extends VideoPlusController> extends Frame
4546

4647
private VideoPlusAdapter adapter;
4748

49+
private Pair<Float, Float> videoModeDeskOffset; // 视联网模式桌面偏移量
50+
4851
public VideoPlusView(Context context) {
4952
super(context);
5053
init();
@@ -268,7 +271,7 @@ public void launchH5VisionProgram(String url, String developerUserId) {
268271
}
269272

270273

271-
public void launchDesktopProgram(String targetName, String miniAppInfo, String videoModeType) {
274+
public void launchDesktopProgram(String targetName, String miniAppInfo, String videoModeType, String originData) {
272275
// 桌面存在则不需要重复加载桌面
273276
if (programViewDesktop != null) return;
274277

@@ -286,6 +289,13 @@ public void launchDesktopProgram(String targetName, String miniAppInfo, String v
286289
uri = Uri.parse("LuaView://desktopLuaView?template=" + targetName + "&miniAppId=" + miniAppInfoJson.getString("miniAppId") + "&id=" + targetName.substring(0, targetName.lastIndexOf(".")));
287290
jsonObject.put(VenvyObservableTarget.Constant.CONSTANT_MINI_APP_INFO, miniAppInfoJson);// miniAppInfo
288291
jsonObject.put(VenvyObservableTarget.Constant.CONSTANT_VIDEO_MODE_TYPE, videoModeType);// videoModeType
292+
if (videoModeDeskOffset != null && (videoModeDeskOffset.first > 0 || videoModeDeskOffset.second > 0)) {
293+
// 设置桌面初始偏移量
294+
jsonObject.put(VenvyObservableTarget.Constant.CONSTANT_VIDEO_MODE_X_OFFSET, videoModeDeskOffset.first);
295+
jsonObject.put(VenvyObservableTarget.Constant.CONSTANT_VIDEO_MODE_Y_OFFSET, videoModeDeskOffset.second);
296+
}
297+
jsonObject.put(VenvyObservableTarget.Constant.CONSTANT_LABEL_CONF_DATA, originData);
298+
289299
} catch (JSONException e) {
290300
e.printStackTrace();
291301
}
@@ -310,6 +320,12 @@ public void closeH5VisionProgram(String appletId) {
310320

311321

312322
public void startService(ServiceType serviceType, HashMap<String, String> params, IServiceCallback callback) {
323+
startService(serviceType, params, new Pair<>(0.0f, 0.0f), callback);
324+
325+
}
326+
327+
public void startService(ServiceType serviceType, HashMap<String, String> params, Pair<Float, Float> videoModeDeskOffset, IServiceCallback callback) {
328+
this.videoModeDeskOffset = videoModeDeskOffset;
313329
switch (serviceType) {
314330
case ServiceTypeFrontVideo:
315331
case ServiceTypeLaterVideo:
@@ -326,8 +342,6 @@ public void startService(ServiceType serviceType, HashMap<String, String> params
326342
}
327343
break;
328344
}
329-
330-
331345
}
332346

333347
public void reResumeService(ServiceType serviceType) {

VideoOS/venvy_pub/src/main/java/cn/com/videopls/pub/VideoPlusViewHelper.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -158,7 +158,8 @@ public void run() {
158158
String luaName = bundle.getString(VenvyObservableTarget.Constant.CONSTANT_LUA_NAME);
159159
String miniAppInfo = bundle.getString(VenvyObservableTarget.Constant.CONSTANT_MINI_APP_INFO);
160160
String videoModeType = bundle.getString(VenvyObservableTarget.Constant.CONSTANT_VIDEO_MODE_TYPE);
161-
videoPlusView.launchDesktopProgram(luaName, miniAppInfo, videoModeType);
161+
String originData = bundle.getString(VenvyObservableTarget.Constant.CONSTANT_DATA);
162+
videoPlusView.launchDesktopProgram(luaName, miniAppInfo, videoModeType,originData);
162163
}
163164
}
164165
});

VideoOS/venvy_pub/src/main/java/cn/com/videopls/pub/VideoServiceQueryAdsModel.java

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -101,7 +101,7 @@ public void requestFinish(Request request, IResponse response) {
101101
}
102102

103103
final String id = launchInfoObj.optString("id");
104-
JSONObject miniAppInfoObj = launchInfoObj.optJSONObject("miniAppInfo");
104+
final JSONObject miniAppInfoObj = launchInfoObj.optJSONObject("miniAppInfo");
105105
if (TextUtils.isEmpty(id) || miniAppInfoObj == null) {
106106
callbackException("id or miniAppInfo is null");
107107
return;
@@ -154,7 +154,7 @@ public void updateComplete(boolean isUpdateByNetWork) {
154154
.setQueryAdsId(id)
155155
.setQueryAdsType(!TextUtils.isEmpty(adsType) ?
156156
Integer.valueOf(adsType) : 0).build();
157-
callback.queryComplete(launchInfoObj.toString(),
157+
callback.queryComplete(launchInfoObj.toString(),miniAppInfoObj.toString(),
158158
queryAdsInfo);
159159
}
160160
}
@@ -228,7 +228,7 @@ private Map<String, String> createBody(Map<String, String> params) {
228228
}
229229

230230
public interface ServiceQueryAdsCallback {
231-
void queryComplete(Object queryAdsData, ServiceQueryAdsInfo queryAdsInfo);
231+
void queryComplete(Object queryAdsData, String miniAppInfo,ServiceQueryAdsInfo queryAdsInfo);
232232

233233
void queryError(Throwable t);
234234
}

VideoOS/venvy_pub/src/main/java/cn/com/videopls/pub/VideoServiceQueryChainModel.java

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ public void requestFinish(Request request, IResponse response) {
8888
AppSecret.getAppSecret(getPlatform()),
8989
AppSecret.getAppSecret(getPlatform()));
9090
final String queryAdsId = VenvyMD5Util.MD5(decrypt);
91-
JSONObject obj = new JSONObject(decrypt);
91+
final JSONObject obj = new JSONObject(decrypt);
9292
String resCode = obj.optString("resCode");
9393
if (TextUtils.equals(resCode, "01")) {
9494
ServiceQueryChainCallback callback = getQueryChainCallback();
@@ -170,9 +170,9 @@ public void updateComplete(boolean isUpdateByNetWork) {
170170
VideoOSLuaView.destroyLuaScript();
171171
}
172172
// load desktop lua
173-
loadDesktopProgram(desktopTemplate, desktopMiniAppInfoObj.toString());
173+
loadDesktopProgram(desktopTemplate, desktopMiniAppInfoObj.toString(), obj.toString());
174174

175-
if ( dataJsonArray != null && dataJsonArray.length() > 0) {
175+
if (dataJsonArray != null && dataJsonArray.length() > 0) {
176176
mDownZipUpdate.startDownloadZipFile(dataJsonArray);
177177
}
178178
}
@@ -285,11 +285,12 @@ private Map<String, String> createBody(Map<String, String> params) {
285285
}
286286

287287

288-
private void loadDesktopProgram(String luaName, String miniAppInfo) {
288+
private void loadDesktopProgram(String luaName, String miniAppInfo, String originData) {
289289
Bundle bundle = new Bundle();
290290
bundle.putString(VenvyObservableTarget.Constant.CONSTANT_LUA_NAME, luaName);
291291
bundle.putString(VenvyObservableTarget.Constant.CONSTANT_MINI_APP_INFO, miniAppInfo);
292292
bundle.putString(VenvyObservableTarget.Constant.CONSTANT_VIDEO_MODE_TYPE, isTagMode ? "0" : "1");
293+
bundle.putString(VenvyObservableTarget.Constant.CONSTANT_DATA, originData);
293294
ObservableManager.getDefaultObserable().sendToTarget(VenvyObservableTarget.TAG_LAUNCH_DESKTOP_PROGRAM, bundle);
294295
}
295296

0 commit comments

Comments
 (0)