You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by gu...@apache.org on 2017/10/18 07:57:34 UTC

[1/4] incubator-weex git commit: * [android] fix flicker caused by coexistence of box-shadow and border-radius

Repository: incubator-weex
Updated Branches:
  refs/heads/release-0.16 db5b1e046 -> 64dd40bc3


* [android] fix flicker caused by coexistence of box-shadow and border-radius


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/e777ac8d
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/e777ac8d
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/e777ac8d

Branch: refs/heads/release-0.16
Commit: e777ac8dd8f02805c5adee19364d87ee5c40bf9d
Parents: 045e838
Author: misakuo <mi...@apache.org>
Authored: Tue Oct 10 18:20:24 2017 +0800
Committer: misakuo <mi...@apache.org>
Committed: Tue Oct 10 18:20:24 2017 +0800

----------------------------------------------------------------------
 .../taobao/weex/ui/component/WXComponent.java   | 25 +++++++-------------
 .../taobao/weex/ui/component/WXVContainer.java  | 25 +++++++++++++++++++-
 2 files changed, 33 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e777ac8d/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
index d801290..74e4db4 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
@@ -759,22 +759,9 @@ public abstract class  WXComponent<T extends View> implements IWXObject, IWXActi
       case Constants.Name.BORDER_TOP_RIGHT_RADIUS:
       case Constants.Name.BORDER_BOTTOM_RIGHT_RADIUS:
       case Constants.Name.BORDER_BOTTOM_LEFT_RADIUS:
-        final Float radius = WXUtils.getFloat(param,null);
-        final String finalKey = key;
+        Float radius = WXUtils.getFloat(param,null);
         if (radius != null) {
-          if (this instanceof WXDiv && mHost != null) {
-            /* Hacked by moxun
-               Set border radius on ViewGroup will cause the Overlay to be cut and don't know why
-               Delay setting border radius can avoid the problem, and don't know why too, dog science…… */
-            mHost.postDelayed(new Runnable() {
-              @Override
-              public void run() {
-                setBorderRadius(finalKey, radius);
-              }
-            }, 64);
-          } else {
-            setBorderRadius(finalKey, radius);
-          }
+          setBorderRadius(key, radius);
         }
         return true;
       case Constants.Name.BORDER_WIDTH:
@@ -898,7 +885,13 @@ public abstract class  WXComponent<T extends View> implements IWXObject, IWXActi
           }
         }
       }
-      BoxShadowUtil.setBoxShadow(mHost, boxShadow.toString(), radii, getInstance().getInstanceViewPortWidth());
+
+      View target = mHost;
+      if (this instanceof WXVContainer) {
+        target = ((WXVContainer) this).getBoxShadowHost();
+      }
+
+      BoxShadowUtil.setBoxShadow(target, boxShadow.toString(), radii, getInstance().getInstanceViewPortWidth());
     } else {
       WXLogUtils.w("Can not resolve styles");
     }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e777ac8d/android/sdk/src/main/java/com/taobao/weex/ui/component/WXVContainer.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXVContainer.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXVContainer.java
index 43b45a7..4570729 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXVContainer.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXVContainer.java
@@ -18,15 +18,19 @@
  */
 package com.taobao.weex.ui.component;
 
+import android.content.Context;
 import android.content.Intent;
-import android.util.Pair;
 import android.support.annotation.Nullable;
+import android.util.Pair;
 import android.view.Menu;
 import android.view.View;
 import android.view.ViewGroup;
+
 import com.taobao.weex.WXSDKInstance;
 import com.taobao.weex.common.Constants;
 import com.taobao.weex.dom.WXDomObject;
+import com.taobao.weex.utils.WXViewUtils;
+
 import java.util.ArrayList;
 
 /**
@@ -36,6 +40,7 @@ public abstract class WXVContainer<T extends ViewGroup> extends WXComponent<T> {
 
   private static final String TAG="WXVContainer";
   protected ArrayList<WXComponent> mChildren = new ArrayList<>();
+  private BoxShadowHost mBoxShadowHost;
 
   @Deprecated
   public WXVContainer(WXSDKInstance instance, WXDomObject dom, WXVContainer parent, String instanceId, boolean isLazy) {
@@ -474,4 +479,22 @@ public abstract class WXVContainer<T extends ViewGroup> extends WXComponent<T> {
   /********************************
    *  end hook Activity life cycle callback
    ********************************************************/
+
+  public @Nullable View getBoxShadowHost() {
+    if (mBoxShadowHost == null) {
+      mBoxShadowHost = new BoxShadowHost(getContext());
+      WXViewUtils.setBackGround(mBoxShadowHost, null);
+      mBoxShadowHost.setLayoutParams(new ViewGroup.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
+      getHostView().addView(mBoxShadowHost);
+    }
+    getHostView().removeView(mBoxShadowHost);
+    getHostView().addView(mBoxShadowHost);
+    return mBoxShadowHost;
+  }
+
+  private class BoxShadowHost extends View {
+    public BoxShadowHost(Context context) {
+      super(context);
+    }
+  }
 }


[2/4] incubator-weex git commit: * [android] fix shadow remains after component size changed

Posted by gu...@apache.org.
* [android] fix shadow remains after component size changed


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/d5731c2c
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/d5731c2c
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/d5731c2c

Branch: refs/heads/release-0.16
Commit: d5731c2caceb94f6b7cd942ae50683b38846d3c1
Parents: e777ac8
Author: misakuo <mi...@apache.org>
Authored: Wed Oct 11 18:10:48 2017 +0800
Committer: misakuo <mi...@apache.org>
Committed: Wed Oct 11 18:10:48 2017 +0800

----------------------------------------------------------------------
 .../taobao/weex/ui/component/WXComponent.java   | 29 ++++++++++++++++----
 1 file changed, 24 insertions(+), 5 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d5731c2c/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
index 74e4db4..3c0c870 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
@@ -509,6 +509,8 @@ public abstract class  WXComponent<T extends View> implements IWXObject, IWXActi
       setWidgetParams(widget, UIImp, rawOffset, realWidth, realHeight, realLeft, realRight, realTop,
           realBottom);
     } else if (mHost != null) {
+      // clear box shadow before host's size changed
+      clearBoxShadow();
       if (mDomObj.isFixed()) {
         setFixedHostLayoutParams(mHost, realWidth, realHeight, realLeft, realRight, realTop,
             realBottom);
@@ -520,6 +522,8 @@ public abstract class  WXComponent<T extends View> implements IWXObject, IWXActi
       mPreRealLeft = realLeft;
       mPreRealTop = realTop;
       onFinishLayout();
+      // restore box shadow
+      updateBoxShadow();
     }
   }
 
@@ -859,6 +863,15 @@ public abstract class  WXComponent<T extends View> implements IWXObject, IWXActi
         return;
       }
 
+      View target = mHost;
+      if (this instanceof WXVContainer) {
+        target = ((WXVContainer) this).getBoxShadowHost();
+      }
+
+      if (target == null) {
+        return;
+      }
+
       float[] radii = new float[] {0, 0, 0, 0, 0, 0, 0, 0};
       WXStyle style = getDomObject().getStyles();
       if (style != null) {
@@ -886,17 +899,23 @@ public abstract class  WXComponent<T extends View> implements IWXObject, IWXActi
         }
       }
 
-      View target = mHost;
-      if (this instanceof WXVContainer) {
-        target = ((WXVContainer) this).getBoxShadowHost();
-      }
-
       BoxShadowUtil.setBoxShadow(target, boxShadow.toString(), radii, getInstance().getInstanceViewPortWidth());
     } else {
       WXLogUtils.w("Can not resolve styles");
     }
   }
 
+  protected void clearBoxShadow() {
+    View target = mHost;
+    if (this instanceof WXVContainer) {
+      target = ((WXVContainer) this).getBoxShadowHost();
+    }
+
+    if (target != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
+      target.getOverlay().clear();
+    }
+  }
+
   @TargetApi(Build.VERSION_CODES.JELLY_BEAN)
   protected void setAriaHidden(boolean isHidden) {
     View host = getHostView();


[3/4] incubator-weex git commit: * [android] null judgement

Posted by gu...@apache.org.
* [android] null judgement


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/61ead2a4
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/61ead2a4
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/61ead2a4

Branch: refs/heads/release-0.16
Commit: 61ead2a4226ee0f17863d4c10699167b265fa0ae
Parents: d5731c2
Author: misakuo <mi...@apache.org>
Authored: Wed Oct 11 19:44:16 2017 +0800
Committer: misakuo <mi...@apache.org>
Committed: Wed Oct 11 19:44:16 2017 +0800

----------------------------------------------------------------------
 .../main/java/com/taobao/weex/ui/component/WXComponent.java    | 6 +++++-
 1 file changed, 5 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/61ead2a4/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
index 3c0c870..add0205 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
@@ -43,6 +43,7 @@ import android.view.Menu;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewGroup.MarginLayoutParams;
+import android.view.ViewOverlay;
 import android.widget.FrameLayout;
 
 import com.alibaba.fastjson.JSONArray;
@@ -912,7 +913,10 @@ public abstract class  WXComponent<T extends View> implements IWXObject, IWXActi
     }
 
     if (target != null && Build.VERSION.SDK_INT >= Build.VERSION_CODES.JELLY_BEAN_MR2) {
-      target.getOverlay().clear();
+      ViewOverlay overlay = target.getOverlay();
+      if (overlay != null) {
+        overlay.clear();
+      }
     }
   }
 


[4/4] incubator-weex git commit: * [android] fix flicker caused by coexistence of box-shadow and border

Posted by gu...@apache.org.
* [android] fix flicker caused by coexistence of box-shadow and border


Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/64dd40bc
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/64dd40bc
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/64dd40bc

Branch: refs/heads/release-0.16
Commit: 64dd40bc346295c32675a794c79d23e6aa8b693c
Parents: db5b1e0 61ead2a
Author: gurisxie <27...@qq.com>
Authored: Wed Oct 18 15:56:38 2017 +0800
Committer: gurisxie <27...@qq.com>
Committed: Wed Oct 18 15:57:08 2017 +0800

----------------------------------------------------------------------
 .../taobao/weex/ui/component/WXComponent.java   | 48 +++++++++++++-------
 .../taobao/weex/ui/component/WXVContainer.java  | 25 +++++++++-
 2 files changed, 56 insertions(+), 17 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/64dd40bc/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
----------------------------------------------------------------------