Skip to content

Commit 6ef890c

Browse files
author
lucas
committed
HScrollView 优化
1 parent b523682 commit 6ef890c

File tree

11 files changed

+61
-30
lines changed

11 files changed

+61
-30
lines changed

VideoOS/LuaViewSDK/src/cn/com/venvy/lua/view/VenvyLVWebView.java

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -139,13 +139,13 @@ private Map getViewPriority(Globals globals) {
139139
private String getDeveloperUserId(Globals globals) {
140140
String developerUserId = null;
141141
Map<String, String> dataParams = getViewPriority(globals);
142-
if (dataParams != null || dataParams.size() <= 0) {
142+
if (dataParams.size() <= 0) {
143143
return developerUserId;
144144
}
145145
try {
146-
JSONObject dataObj = new JSONObject(dataParams.get("miniAppInfo"));
147-
// JSONObject miniAppInfoObj = dataObj.optJSONObject("miniAppInfo");
148-
developerUserId = dataObj.optString("developerUserId");
146+
JSONObject dataObj = new JSONObject(dataParams.get("data"));
147+
JSONObject miniAppInfoObj = dataObj.optJSONObject("miniAppInfo");
148+
developerUserId = miniAppInfoObj.optString("developerUserId");
149149
} catch (Exception e) {
150150
e.printStackTrace();
151151
}

VideoOS/LuaViewSDK/src/com/taobao/luaview/fun/mapper/ui/UIHorizontalScrollViewMethodMapper.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -19,6 +19,8 @@
1919

2020
import java.util.List;
2121

22+
import cn.com.venvy.common.utils.VenvyLog;
23+
2224
/**
2325
* HorizontalScrollView的方法映射
2426
*/

VideoOS/LuaViewSDK/src/com/taobao/luaview/userdata/ui/UDHorizontalScrollView.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,8 @@
1717
import org.luaj.vm2.Globals;
1818
import org.luaj.vm2.LuaValue;
1919

20+
import cn.com.venvy.common.utils.VenvyLog;
21+
2022
/**
2123
* 容器类-ListView,模拟OC的section分区实现,Section顺序排列
2224
*

VideoOS/LuaViewSDK/src/com/taobao/luaview/view/LVHorizontalScrollView.java

Lines changed: 6 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,7 @@
88

99
package com.taobao.luaview.view;
1010

11+
import android.view.MotionEvent;
1112
import android.view.ViewGroup;
1213
import android.widget.HorizontalScrollView;
1314
import android.widget.LinearLayout;
@@ -22,8 +23,6 @@
2223

2324
import java.util.ArrayList;
2425

25-
import cn.com.venvy.common.utils.VenvyUIUtil;
26-
2726
/**
2827
* LuaView - HorizontalScrollView
2928
*
@@ -77,20 +76,11 @@ protected void onScrollChanged(int l, int t, int oldl, int oldt) {
7776
}
7877

7978
@Override
80-
protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent) {
81-
boolean value = super.overScrollBy(deltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, maxOverScrollY, isTouchEvent);
82-
//注意deltaX的值和isTouchEvent的值,deltaX可以认为是X轴变化的速度,isTouchEvent意思是移动事件是否来自手势。经过多次确认,当deltaX的值为1,2或-1,-2,以及isTouchEvent值为false的时候,scrollView的移动趋于停止
83-
if (deltaX <= 2 && deltaX >= -2 && !isTouchEvent) {
84-
//scrollView停止移动了
85-
VenvyUIUtil.runOnUIThreadDelay(new Runnable() {
86-
@Override
87-
public void run() {
88-
mLuaUserdata.callOnScrollEnd();
89-
hasCallScrollBegin = false;
90-
}
91-
}, 500);
92-
79+
public boolean onTouchEvent(MotionEvent ev) {
80+
if (ev.getAction() == MotionEvent.ACTION_UP) {
81+
mLuaUserdata.callOnScrollEnd();
82+
hasCallScrollBegin = false;
9383
}
94-
return value;
84+
return super.onTouchEvent(ev);
9585
}
9686
}

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

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,8 @@ public class VenvyObservableTarget {
3838
public static final String TAG_LAUNCH_DESKTOP_PROGRAM = "notifyLaunchDesktopProgram";
3939
// 在顶层添加一个lua脚本
4040
public static final String TAG_ADD_LUA_SCRIPT_TO_TOP_LEVEL = "notifyAddLuaScriptToTopLevel";
41+
// 清除所有的视联网小程序
42+
public static final String TAG_CLEAR_ALL_VISION_PROGRAM = "notifyClearAllVisionProgram";
4143

4244
public static class Constant {
4345
public static final int CONSTANT_LANDSCAPE = 1;

VideoOS/VenvyLibrary/src/main/java/cn/com/venvy/common/utils/VenvyDeviceUtil.java

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package cn.com.venvy.common.utils;
22

3+
import android.Manifest;
34
import android.content.Context;
45
import android.content.SharedPreferences;
56
import android.net.ConnectivityManager;
@@ -30,6 +31,8 @@
3031
import java.util.Enumeration;
3132
import java.util.UUID;
3233

34+
import cn.com.venvy.common.permission.PermissionCheckHelper;
35+
3336
import static android.os.Environment.MEDIA_MOUNTED;
3437

3538

@@ -93,18 +96,20 @@ public static String getClient() {
9396
* @param context
9497
* @return
9598
*/
96-
public static String getIMEI(Context context) {
99+
public static String getIMEI(final Context context) {
97100
String IMEI = "";
98101
if (context == null) {
99102
return IMEI;
100103
}
101-
try {
102-
TelephonyManager telephonyManager = (TelephonyManager) context
103-
.getSystemService(Context.TELEPHONY_SERVICE);
104+
TelephonyManager telephonyManager = (TelephonyManager) context
105+
.getSystemService(Context.TELEPHONY_SERVICE);
106+
if (PermissionCheckHelper.isPermissionGranted(context, Manifest.permission.READ_PHONE_STATE)) {
104107
IMEI = telephonyManager.getDeviceId();
105-
//md5加密
106-
// IMEI = VenvyStringUtil.convertMD5(IMEI);
107-
} catch (Exception e) {
108+
if(TextUtils.isEmpty(IMEI)){
109+
// 部分Android 版本下获取的DeviceId为null的解决方案
110+
IMEI = Settings.Secure.getString(context.getApplicationContext().getContentResolver(),Settings.Secure.ANDROID_ID);
111+
}
112+
} else {
108113
IMEI = "000000000000000";
109114
}
110115
return IMEI;

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

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,7 @@
3131
import cn.com.venvy.common.interf.IPlatformLoginInterface;
3232
import cn.com.venvy.common.observer.ObservableManager;
3333
import cn.com.venvy.common.observer.VenvyObservable;
34+
import cn.com.venvy.common.observer.VenvyObservableTarget;
3435
import cn.com.venvy.common.observer.VenvyObserver;
3536
import cn.com.venvy.common.utils.VenvyAesUtil;
3637
import cn.com.venvy.common.utils.VenvyBase64;
@@ -134,10 +135,11 @@ public void openUrl(String jsParams) {
134135
String actionString = "";
135136
if (!TextUtils.isEmpty(linkUrl)) {
136137
actionString = linkUrl;
137-
} else if (TextUtils.isEmpty(deepLink)) {
138+
} else if (!TextUtils.isEmpty(deepLink)) {
138139
actionString = deepLink;
139-
} else if (TextUtils.isEmpty(selfLink)) {
140+
} else if (!TextUtils.isEmpty(selfLink)) {
140141
actionString = selfLink;
142+
ObservableManager.getDefaultObserable().sendToTarget(VenvyObservableTarget.TAG_CLEAR_ALL_VISION_PROGRAM);
141143
}
142144
String adID = VenvyMD5Util.MD5(actionString);
143145
WidgetInfo.WidgetActionType widgetActionType = WidgetInfo.WidgetActionType.findTypeById(1);

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

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -157,7 +157,7 @@ public void clearAllVisionProgramByOrientation(int orientationType) {
157157

158158
public void changeVisionProgramByOrientation(boolean isHorizontal) {
159159
if (programViewB != null) {
160-
programViewB.setVisibility(isHorizontal ? VISIBLE : GONE);
160+
programViewB.onScreenChanged(isHorizontal);
161161
}
162162
}
163163

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

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -33,6 +33,7 @@ public VideoPlusViewHelper(VideoPlusView videoPlusView) {
3333
ObservableManager.getDefaultObserable().addObserver(VenvyObservableTarget.TAG_CLOSE_H5_VISION_PROGRAM, this);
3434
ObservableManager.getDefaultObserable().addObserver(VenvyObservableTarget.TAG_LAUNCH_DESKTOP_PROGRAM, this);
3535
ObservableManager.getDefaultObserable().addObserver(VenvyObservableTarget.TAG_ADD_LUA_SCRIPT_TO_TOP_LEVEL, this);
36+
ObservableManager.getDefaultObserable().addObserver(VenvyObservableTarget.TAG_CLEAR_ALL_VISION_PROGRAM, this);
3637
}
3738

3839

@@ -177,6 +178,17 @@ public void run() {
177178
});
178179
return;
179180
}
181+
case VenvyObservableTarget.TAG_CLEAR_ALL_VISION_PROGRAM:{
182+
VenvyUIUtil.runOnUIThread(new Runnable() {
183+
@Override
184+
public void run() {
185+
if(videoPlusView != null){
186+
videoPlusView.clearAllVisionProgram();
187+
}
188+
}
189+
});
190+
return;
191+
}
180192
}
181193
}
182194

@@ -191,6 +203,7 @@ public void detachedFromWindow() {
191203
ObservableManager.getDefaultObserable().removeObserver(VenvyObservableTarget.TAG_CLOSE_H5_VISION_PROGRAM, this);
192204
ObservableManager.getDefaultObserable().removeObserver(VenvyObservableTarget.TAG_LAUNCH_DESKTOP_PROGRAM, this);
193205
ObservableManager.getDefaultObserable().removeObserver(VenvyObservableTarget.TAG_ADD_LUA_SCRIPT_TO_TOP_LEVEL, this);
206+
ObservableManager.getDefaultObserable().removeObserver(VenvyObservableTarget.TAG_CLEAR_ALL_VISION_PROGRAM, this);
194207
}
195208

196209
public boolean isHorizontal() {

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

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -325,6 +325,17 @@ public void onAnimationEnd(Animator animation) {
325325
}
326326

327327

328+
public void onScreenChanged(boolean isHorizontal) {
329+
setVisibility(isHorizontal ? VISIBLE : GONE);
330+
331+
if(h5ProgramMap.size() > 0){
332+
for(VideoWebToolBarView webToolBarView: h5ProgramMap.values()){
333+
webToolBarView.onScreenChanged(isHorizontal);
334+
}
335+
}
336+
}
337+
338+
328339
/**
329340
* 暂时没有注册
330341
*

0 commit comments

Comments
 (0)