「Change」

修复bug
http://jira.zhidaohulian.com/browse/YHJSYHZNWL-1037
【RoboTaxi司机端V2.8.0】长时间停留在开始行程页面,启动页面未正常关闭,感觉乘客屏卡死
http://jira.zhidaohulian.com/browse/YHJSYHZNWL-1052
【RoboTaxi乘客屏V1.3.0】开始行程页面,司机端启动自动驾驶,出现启动页面和侧边栏同时存在的场景(偶现)

Signed-off-by: donghongyu <donghongyu@zhidaoauto.com>
This commit is contained in:
donghongyu
2022-06-27 11:33:55 +08:00
committed by liujing
parent 6914aa8b8e
commit 1cd6421e36

View File

@@ -16,21 +16,20 @@ public class OverlayViewUtils {
private static WindowManager windowManager; private static WindowManager windowManager;
private static Context applicationContext; private static Context applicationContext;
private static volatile boolean isShowing = false;
/** /**
* 记录上一次的View * 记录上一次的View
*/ */
private static View lastOverlayView; private static View lastOverlayView;
public static void showOverlayView(Activity context, View overlayView){ public static void showOverlayView(Activity context, View overlayView) {
showOverlayView(context,overlayView,-1); showOverlayView(context, overlayView, -1);
} }
/** /**
* 添加覆盖View在Activity上面 * 添加覆盖View在Activity上面
*/ */
public static void showOverlayView(Activity context, View overlayView,int ani) { public static void showOverlayView(Activity context, View overlayView, int ani) {
if (applicationContext == null) { if (applicationContext == null) {
applicationContext = context.getApplicationContext(); applicationContext = context.getApplicationContext();
} }
@@ -54,7 +53,7 @@ public class OverlayViewUtils {
params.type = WindowManager.LayoutParams.TYPE_APPLICATION_PANEL; params.type = WindowManager.LayoutParams.TYPE_APPLICATION_PANEL;
// 没有边界限制,允许窗口扩展到屏幕外 // 没有边界限制,允许窗口扩展到屏幕外
params.flags = WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS; params.flags = WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIMITS;
if(ani!=-1){ if (ani != -1) {
params.windowAnimations = ani; params.windowAnimations = ani;
} }
@@ -71,7 +70,6 @@ public class OverlayViewUtils {
// }); // });
lastOverlayView = overlayView; lastOverlayView = overlayView;
windowManager.addView(overlayView, params); windowManager.addView(overlayView, params);
isShowing = true;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }
@@ -82,17 +80,13 @@ public class OverlayViewUtils {
* 移除覆盖View在Activity上面 * 移除覆盖View在Activity上面
*/ */
public static void dismissOverlayView(View overlayView) { public static void dismissOverlayView(View overlayView) {
if (!isShowing) {
return;
}
try { try {
if (windowManager != null && overlayView != null) { if (windowManager != null && overlayView != null) {
windowManager.removeView(overlayView); windowManager.removeView(overlayView);
} }
if(lastOverlayView!=null&&lastOverlayView==overlayView){ if (lastOverlayView != null && lastOverlayView == overlayView) {
lastOverlayView = null; lastOverlayView = null;
} }
isShowing = false;
} catch (Exception e) { } catch (Exception e) {
e.printStackTrace(); e.printStackTrace();
} }