diff --git a/.idea/misc.xml b/.idea/misc.xml index 707ee6e613..2dc54c489f 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,6 +1,6 @@ - + \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 0bc7e428f7..40c2515c00 100644 --- a/gradle.properties +++ b/gradle.properties @@ -24,7 +24,7 @@ SNAPSHOT_REPOSITORY_URL=http://nexus.zhidaoauto.com/repository/maven-snapshots/ USERNAME=xintai PASSWORD=xintai2018 # 编译模式: false - 依赖本地版本, true - 依赖 maven 版本 -RELEASE=false +RELEASE=true # 模块版本 DEMO_MODULE_MAP_VERSION=1.0.0-SNAPSHOT DEMO_MODULE_MAP2_VERSION=1.0.0-SNAPSHOT diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/MogoWindowManager.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/MogoWindowManager.java index fdba48199c..67e6a8ea3e 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/MogoWindowManager.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/MogoWindowManager.java @@ -17,6 +17,11 @@ import com.mogo.service.windowview.IMogoWindowManager; @Route( path = MogoServicePaths.PATH_WINDOW_MANAGER ) public class MogoWindowManager implements IMogoWindowManager { + @Override + public void addView( View view, int x, int y, boolean movable ) { + WindowViewHandler.addView( view, x, y, movable ); + } + @Override public void addView( int priority, View view, int x, int y, boolean movable ) { WindowViewHandler.addView( view, priority, x, y, movable ); diff --git a/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/WindowViewHandler.java b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/WindowViewHandler.java index a0dcc94cd8..a81e50ab49 100644 --- a/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/WindowViewHandler.java +++ b/modules/mogo-module-main/src/main/java/com/mogo/module/main/windowview/WindowViewHandler.java @@ -41,6 +41,39 @@ public class WindowViewHandler { sFloatingLayout = frameLayout; } + /** + * 添加任意view到布局,不考虑优先级 + * + * @param view + * @param x + * @param y + * @param movable + */ + public static void addView( View view, int x, int y, boolean movable ) { + if ( view == null ) { + return; + } + + if ( sFloatingLayout == null ) { + Logger.e( TAG, "no floating frame. " ); + return; + } + + FrameLayout.LayoutParams params = new FrameLayout.LayoutParams( ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT ); + params.leftMargin = x; + params.topMargin = y; + sFloatingLayout.addView( view, params ); + } + + /** + * 添加view到布局,优先级大的展示 + * + * @param view + * @param priority + * @param x + * @param y + * @param movable + */ public static void addView( View view, int priority, int x, int y, boolean movable ) { if ( view == null ) { return; @@ -71,6 +104,14 @@ public class WindowViewHandler { addView(); } + /** + * 添加view到布局,优先级大的展示 + * + * @param view + * @param priority + * @param params + * @param movable + */ public static void addView( View view, int priority, FrameLayout.LayoutParams params, boolean movable ) { if ( view == null ) { return; @@ -104,19 +145,16 @@ public class WindowViewHandler { if ( sFloatingLayout == null ) { return; } - if ( sView != view ) { - Logger.w( TAG, "view do not added." ); - return; - } if ( view == null ) { return; } sFloatingLayout.removeView( view ); - sView = null; - sPriority = Integer.MIN_VALUE; - sMovable = false; - sParams = null; - DispatchTouchEventWrapper.getInstance().release(); + if ( sView == view ) { + sView = null; + sPriority = Integer.MIN_VALUE; + sMovable = false; + sParams = null; + } } private static void addView() { diff --git a/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoWindowManager.java b/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoWindowManager.java index 1439b190a4..170d20a8eb 100644 --- a/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoWindowManager.java +++ b/services/mogo-service-api/src/main/java/com/mogo/service/windowview/IMogoWindowManager.java @@ -13,8 +13,19 @@ import com.alibaba.android.arouter.facade.template.IProvider; */ public interface IMogoWindowManager extends IProvider { + /** - * 向window中添加指定的布局 + * 向window中添加指定的布局,不考虑优先级 + * + * @param view 添加的实例 + * @param x 左上角x坐标 + * @param y 左上角y坐标 + * @param movable 是否可移动(无效) + */ + void addView( View view, int x, int y, boolean movable ); + + /** + * 向window中添加指定的布局,优先级大的展示 * * @param priority 优先级 * @param view 添加的实例 @@ -25,7 +36,7 @@ public interface IMogoWindowManager extends IProvider { void addView( int priority, View view, int x, int y, boolean movable ); /** - * 向window中添加指定的布局 + * 向window中添加指定的布局,优先级大的展示 * * @param priority 优先级 * @param view 添加的实例