You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by so...@apache.org on 2017/06/29 03:33:14 UTC
[3/5] incubator-weex git commit: * [android] clean up csslayout code
* [android] clean up csslayout code
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/d44f9618
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/d44f9618
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/d44f9618
Branch: refs/heads/android-feature-yoga
Commit: d44f9618473ec50c201f0ecaa7063546a59c6fc4
Parents: 851248c
Author: sospartan <so...@apache.org>
Authored: Mon Jun 26 17:43:49 2017 +0800
Committer: sospartan <so...@apache.org>
Committed: Wed Jun 28 11:17:25 2017 +0800
----------------------------------------------------------------------
.../taobao/weex/dom/BasicEditTextDomObject.java | 3 -
.../com/taobao/weex/dom/CSSAlignConvert.java | 61 --
.../weex/dom/CSSFlexDirectionConvert.java | 43 -
.../com/taobao/weex/dom/CSSJustifyConvert.java | 43 -
.../taobao/weex/dom/CSSPositionTypeConvert.java | 36 -
.../com/taobao/weex/dom/CSSWrapConvert.java | 37 -
.../taobao/weex/dom/DOMActionContextImpl.java | 1 -
.../com/taobao/weex/dom/ImmutableDomObject.java | 4 -
.../java/com/taobao/weex/dom/LayoutUtility.java | 147 +++
.../com/taobao/weex/dom/ResultDomObject.java | 2 -
.../main/java/com/taobao/weex/dom/Spacing.java | 245 +++++
.../com/taobao/weex/dom/WXCellDomObject.java | 5 -
.../java/com/taobao/weex/dom/WXDomObject.java | 5 +-
.../taobao/weex/dom/WXRecyclerDomObject.java | 1 -
.../main/java/com/taobao/weex/dom/WXStyle.java | 14 +-
.../com/taobao/weex/dom/WXSwitchDomObject.java | 4 +-
.../com/taobao/weex/dom/WXTextDomObject.java | 10 +-
.../java/com/taobao/weex/dom/YogaUtility.java | 136 ---
.../weex/dom/action/UpdateStyleAction.java | 2 +-
.../java/com/taobao/weex/dom/flex/CSSAlign.java | 15 -
.../com/taobao/weex/dom/flex/CSSConstants.java | 16 -
.../com/taobao/weex/dom/flex/CSSDirection.java | 13 -
.../taobao/weex/dom/flex/CSSFlexDirection.java | 14 -
.../com/taobao/weex/dom/flex/CSSJustify.java | 15 -
.../com/taobao/weex/dom/flex/CSSLayout.java | 77 --
.../taobao/weex/dom/flex/CSSLayoutContext.java | 19 -
.../java/com/taobao/weex/dom/flex/CSSNode.java | 605 ------------
.../taobao/weex/dom/flex/CSSPositionType.java | 12 -
.../java/com/taobao/weex/dom/flex/CSSStyle.java | 124 ---
.../java/com/taobao/weex/dom/flex/CSSWrap.java | 12 -
.../taobao/weex/dom/flex/CachedCSSLayout.java | 19 -
.../com/taobao/weex/dom/flex/FloatUtil.java | 19 -
.../com/taobao/weex/dom/flex/LayoutEngine.java | 935 -------------------
.../com/taobao/weex/dom/flex/MeasureOutput.java | 16 -
.../java/com/taobao/weex/dom/flex/Spacing.java | 238 -----
.../taobao/weex/ui/RenderActionContextImpl.java | 15 -
.../taobao/weex/ui/component/WXComponent.java | 2 +-
.../taobao/weex/ui/component/list/WXCell.java | 1 -
.../weex/ui/component/list/WXListComponent.java | 2 +-
.../weex/ui/view/border/BorderCorner.java | 4 +-
.../weex/ui/view/border/BorderDrawable.java | 20 +-
.../taobao/weex/ui/view/border/BorderEdge.java | 2 +-
.../taobao/weex/ui/view/border/BorderStyle.java | 2 +-
.../taobao/weex/ui/view/border/BorderUtil.java | 2 +-
.../view/border/BorderWidthStyleColorType.java | 2 +-
.../java/com/taobao/weex/utils/WXDomUtils.java | 21 +-
.../java/com/taobao/weex/dom/TestDomObject.java | 1 -
.../taobao/weex/dom/WXTextDomObjectTest.java | 10 +-
.../com/taobao/weex/ui/component/WXDivTest.java | 6 +-
.../taobao/weex/ui/component/WXTextTest.java | 2 +-
.../weex/ui/view/border/BorderDrawableTest.java | 2 +-
51 files changed, 439 insertions(+), 2603 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/BasicEditTextDomObject.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/BasicEditTextDomObject.java b/android/sdk/src/main/java/com/taobao/weex/dom/BasicEditTextDomObject.java
index 73103c3..95ea40a 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/BasicEditTextDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/BasicEditTextDomObject.java
@@ -25,9 +25,6 @@ import com.facebook.yoga.YogaMeasureMode;
import com.facebook.yoga.YogaMeasureOutput;
import com.facebook.yoga.YogaNode;
import com.taobao.weex.common.Constants;
-import com.taobao.weex.dom.flex.CSSConstants;
-import com.taobao.weex.dom.flex.CSSNode;
-import com.taobao.weex.dom.flex.MeasureOutput;
import com.taobao.weex.ui.component.WXText;
import com.taobao.weex.utils.TypefaceUtil;
import com.taobao.weex.utils.WXViewUtils;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/CSSAlignConvert.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/CSSAlignConvert.java b/android/sdk/src/main/java/com/taobao/weex/dom/CSSAlignConvert.java
deleted file mode 100644
index eb6a575..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/CSSAlignConvert.java
+++ /dev/null
@@ -1,61 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.taobao.weex.dom;
-
-import android.text.TextUtils;
-
-import com.taobao.weex.dom.flex.CSSAlign;
-
-@Deprecated
-final class CSSAlignConvert {
-
- public static CSSAlign convert2AlignItems(String s) {
- CSSAlign align = CSSAlign.STRETCH;
- if (TextUtils.isEmpty(s)) {
- align = CSSAlign.STRETCH;
- } else if (s.equals("stretch")) {
- align = CSSAlign.STRETCH;
- } else if (s.equals("flex-end")) {
- align = CSSAlign.FLEX_END;
- } else if (s.equals("auto")) {
- align = CSSAlign.AUTO;
- } else if (s.equals("center")) {
- align = CSSAlign.CENTER;
- }
-
- return align;
- }
-
- public static CSSAlign convert2AlignSelf(String s) {
- CSSAlign align = CSSAlign.AUTO;
- if (TextUtils.isEmpty(s)) {
- align = CSSAlign.AUTO;
- } else if (s.equals("flex-start")) {
- align = CSSAlign.FLEX_START;
- } else if (s.equals("flex-end")) {
- align = CSSAlign.FLEX_END;
- } else if (s.equals("stretch")) {
- align = CSSAlign.STRETCH;
- } else if (s.equals("center")) {
- align = CSSAlign.CENTER;
- }
-
- return align;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/CSSFlexDirectionConvert.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/CSSFlexDirectionConvert.java b/android/sdk/src/main/java/com/taobao/weex/dom/CSSFlexDirectionConvert.java
deleted file mode 100644
index bf37547..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/CSSFlexDirectionConvert.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.taobao.weex.dom;
-
-import android.text.TextUtils;
-
-import com.taobao.weex.dom.flex.CSSFlexDirection;
-
-@Deprecated
-class CSSFlexDirectionConvert {
-
- public static CSSFlexDirection convert(String s) {
- CSSFlexDirection cssFlexDirection = CSSFlexDirection.ROW;
- if (TextUtils.isEmpty(s)) {
- cssFlexDirection = CSSFlexDirection.ROW;
- } else if (s.equals("column")) {
- cssFlexDirection = CSSFlexDirection.COLUMN;
- } else if (s.equals("column-reverse")) {
- cssFlexDirection = CSSFlexDirection.COLUMN_REVERSE;
- } else if (s.equals("row")) {
- cssFlexDirection = CSSFlexDirection.ROW;
- } else if (s.equals("row-reverse")) {
- cssFlexDirection = CSSFlexDirection.ROW_REVERSE;
- }
- return cssFlexDirection;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/CSSJustifyConvert.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/CSSJustifyConvert.java b/android/sdk/src/main/java/com/taobao/weex/dom/CSSJustifyConvert.java
deleted file mode 100644
index bfdb98e..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/CSSJustifyConvert.java
+++ /dev/null
@@ -1,43 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.taobao.weex.dom;
-
-import android.text.TextUtils;
-
-import com.taobao.weex.dom.flex.CSSJustify;
-
-@Deprecated
-class CSSJustifyConvert {
-
- public static CSSJustify convert(String s) {
- CSSJustify cssJustify = CSSJustify.FLEX_START;
- if (TextUtils.isEmpty(s) || s.equals("flex-start")) {
- cssJustify = CSSJustify.FLEX_START;
- } else if (s.equals("flex-end")) {
- cssJustify = CSSJustify.FLEX_END;
- } else if (s.equals("center")) {
- cssJustify = CSSJustify.CENTER;
- } else if (s.equals("space-between")) {
- cssJustify = CSSJustify.SPACE_BETWEEN;
- } else if (s.equals("space-around")) {
- cssJustify = CSSJustify.SPACE_AROUND;
- }
- return cssJustify;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/CSSPositionTypeConvert.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/CSSPositionTypeConvert.java b/android/sdk/src/main/java/com/taobao/weex/dom/CSSPositionTypeConvert.java
deleted file mode 100644
index 673b8be..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/CSSPositionTypeConvert.java
+++ /dev/null
@@ -1,36 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.taobao.weex.dom;
-
-import android.text.TextUtils;
-
-import com.taobao.weex.dom.flex.CSSPositionType;
-
-class CSSPositionTypeConvert {
-
- public static CSSPositionType convert(String s) {
- CSSPositionType position = CSSPositionType.RELATIVE;
- if (TextUtils.isEmpty(s) || s.equals("relative") || s.equals("sticky")) {
- position = CSSPositionType.RELATIVE;
- } else if (s.equals("absolute") || s.equals("fixed")) {
- position = CSSPositionType.ABSOLUTE;
- }
- return position;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/CSSWrapConvert.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/CSSWrapConvert.java b/android/sdk/src/main/java/com/taobao/weex/dom/CSSWrapConvert.java
deleted file mode 100644
index 34a21f4..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/CSSWrapConvert.java
+++ /dev/null
@@ -1,37 +0,0 @@
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.taobao.weex.dom;
-
-import android.text.TextUtils;
-
-import com.taobao.weex.dom.flex.CSSWrap;
-
-@Deprecated
-class CSSWrapConvert {
-
- public static CSSWrap convert(String s) {
- CSSWrap cssWrap = CSSWrap.NOWRAP;
- if (TextUtils.isEmpty(s)) {
- return cssWrap;
- } else if (s.equals("wrap")) {
- return CSSWrap.WRAP;
- }
- return cssWrap;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/DOMActionContextImpl.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/DOMActionContextImpl.java b/android/sdk/src/main/java/com/taobao/weex/dom/DOMActionContextImpl.java
index d565eff..cf9647b 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/DOMActionContextImpl.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/DOMActionContextImpl.java
@@ -26,7 +26,6 @@ import com.taobao.weex.WXEnvironment;
import com.taobao.weex.WXSDKInstance;
import com.taobao.weex.WXSDKManager;
import com.taobao.weex.dom.action.Actions;
-import com.taobao.weex.dom.flex.CSSLayoutContext;
import com.taobao.weex.ui.IWXRenderTask;
import com.taobao.weex.ui.WXRenderManager;
import com.taobao.weex.ui.animation.WXAnimationBean;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/ImmutableDomObject.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/ImmutableDomObject.java b/android/sdk/src/main/java/com/taobao/weex/dom/ImmutableDomObject.java
index 55439c3..339bcd1 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/ImmutableDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/ImmutableDomObject.java
@@ -20,10 +20,6 @@ package com.taobao.weex.dom;
import android.support.annotation.NonNull;
-import com.taobao.weex.dom.flex.Spacing;
-
-import static com.taobao.weex.dom.WXDomObject.DESTROYED;
-
/**
* Created by sospartan on 25/10/2016.
*/
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/LayoutUtility.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/LayoutUtility.java b/android/sdk/src/main/java/com/taobao/weex/dom/LayoutUtility.java
new file mode 100644
index 0000000..0172e33
--- /dev/null
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/LayoutUtility.java
@@ -0,0 +1,147 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.taobao.weex.dom;
+
+import android.text.TextUtils;
+import android.view.View;
+
+import com.facebook.yoga.YogaAlign;
+import com.facebook.yoga.YogaFlexDirection;
+import com.facebook.yoga.YogaJustify;
+import com.facebook.yoga.YogaMeasureMode;
+import com.facebook.yoga.YogaPositionType;
+import com.facebook.yoga.YogaWrap;
+
+
+/**
+ * Created by sospartan on 21/06/2017.
+ */
+
+public class LayoutUtility {
+ public static final float UNDEFINED = Float.NaN;
+ private static final float EPSILON = .00001f;
+
+ public static boolean isUndefined(float value) {
+ return Float.compare(value, UNDEFINED) == 0;
+ }
+
+ public static YogaAlign alignItems(String s) {
+ YogaAlign align = YogaAlign.STRETCH;
+ if (TextUtils.isEmpty(s)) {
+ align = YogaAlign.STRETCH;
+ } else if (s.equals("stretch")) {
+ align = YogaAlign.STRETCH;
+ } else if (s.equals("flex-end")) {
+ align = YogaAlign.FLEX_END;
+ } else if (s.equals("auto")) {
+ align = YogaAlign.AUTO;
+ } else if (s.equals("center")) {
+ align = YogaAlign.CENTER;
+ }
+
+ return align;
+ }
+
+ public static YogaAlign alignSelf(String s) {
+ YogaAlign align = YogaAlign.AUTO;
+ if (TextUtils.isEmpty(s)) {
+ align = YogaAlign.AUTO;
+ } else if (s.equals("flex-start")) {
+ align = YogaAlign.FLEX_START;
+ } else if (s.equals("flex-end")) {
+ align = YogaAlign.FLEX_END;
+ } else if (s.equals("stretch")) {
+ align = YogaAlign.STRETCH;
+ } else if (s.equals("center")) {
+ align = YogaAlign.CENTER;
+ }
+
+ return align;
+ }
+
+ public static YogaFlexDirection flexDirection(String s) {
+ YogaFlexDirection cssFlexDirection = YogaFlexDirection.ROW;
+ if (TextUtils.isEmpty(s)) {
+ cssFlexDirection = YogaFlexDirection.ROW;
+ } else if (s.equals("column")) {
+ cssFlexDirection = YogaFlexDirection.COLUMN;
+ } else if (s.equals("column-reverse")) {
+ cssFlexDirection = YogaFlexDirection.COLUMN_REVERSE;
+ } else if (s.equals("row")) {
+ cssFlexDirection = YogaFlexDirection.ROW;
+ } else if (s.equals("row-reverse")) {
+ cssFlexDirection = YogaFlexDirection.ROW_REVERSE;
+ }
+ return cssFlexDirection;
+ }
+
+ public static YogaJustify justify(String s) {
+ YogaJustify cssJustify = YogaJustify.FLEX_START;
+ if (TextUtils.isEmpty(s) || s.equals("flex-start")) {
+ cssJustify = YogaJustify.FLEX_START;
+ } else if (s.equals("flex-end")) {
+ cssJustify = YogaJustify.FLEX_END;
+ } else if (s.equals("center")) {
+ cssJustify = YogaJustify.CENTER;
+ } else if (s.equals("space-between")) {
+ cssJustify = YogaJustify.SPACE_BETWEEN;
+ } else if (s.equals("space-around")) {
+ cssJustify = YogaJustify.SPACE_AROUND;
+ }
+ return cssJustify;
+ }
+
+ public static YogaWrap wrap(String s) {
+ YogaWrap cssWrap = YogaWrap.NO_WRAP;
+ if (TextUtils.isEmpty(s)) {
+ return cssWrap;
+ } else if (s.equals("wrap")) {
+ return YogaWrap.WRAP;
+ }
+ return cssWrap;
+ }
+
+ public static YogaPositionType positionType(String s) {
+ YogaPositionType position = YogaPositionType.RELATIVE;
+ if (TextUtils.isEmpty(s) || s.equals("relative") || s.equals("sticky")) {
+ position = YogaPositionType.RELATIVE;
+ } else if (s.equals("absolute") || s.equals("fixed")) {
+ position = YogaPositionType.ABSOLUTE;
+ }
+ return position;
+ }
+
+
+ public static int viewMeasureSpec(YogaMeasureMode mode) {
+ if (mode == YogaMeasureMode.AT_MOST) {
+ return View.MeasureSpec.AT_MOST;
+ } else if (mode == YogaMeasureMode.EXACTLY) {
+ return View.MeasureSpec.EXACTLY;
+ } else {
+ return View.MeasureSpec.UNSPECIFIED;
+ }
+ }
+
+ public static boolean floatsEqual(float f1, float f2) {
+ if (Float.isNaN(f1) || Float.isNaN(f2)) {
+ return Float.isNaN(f1) && Float.isNaN(f2);
+ }
+ return Math.abs(f2 - f1) < EPSILON;
+ }
+}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/ResultDomObject.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/ResultDomObject.java b/android/sdk/src/main/java/com/taobao/weex/dom/ResultDomObject.java
index f6e25a1..5b868fb 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/ResultDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/ResultDomObject.java
@@ -20,8 +20,6 @@ package com.taobao.weex.dom;
import android.support.annotation.NonNull;
-import com.taobao.weex.dom.flex.Spacing;
-
/**
* Created by sospartan on 22/06/2017.
*/
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/Spacing.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/Spacing.java b/android/sdk/src/main/java/com/taobao/weex/dom/Spacing.java
new file mode 100755
index 0000000..70761a6
--- /dev/null
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/Spacing.java
@@ -0,0 +1,245 @@
+/**
+ * Copyright (c) 2014, Facebook, Inc. All rights reserved. <p/> This source code is licensed under
+ * the BSD-style license found in the LICENSE file in the root directory of this source tree. An
+ * additional grant of patent rights can be found in the PATENTS file in the same directory.
+ */
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements. See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership. The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License. You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied. See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.taobao.weex.dom;
+
+//import javax.annotation.Nullable;
+
+import java.util.Arrays;
+
+/**
+ * Class representing CSS spacing (padding, margin, and borders). This is mostly necessary to
+ * properly implement interactions and updates for properties like margin, marginLeft, and
+ * marginHorizontal.
+ */
+@Deprecated
+public class Spacing /**implements Cloneable**/
+{
+
+ /**
+ * Spacing type that represents the left direction. E.g. {@code marginLeft}.
+ */
+ public static final int LEFT = 0;
+ /**
+ * Spacing type that represents the top direction. E.g. {@code marginTop}.
+ */
+ public static final int TOP = 1;
+ /**
+ * Spacing type that represents the right direction. E.g. {@code marginRight}.
+ */
+ public static final int RIGHT = 2;
+ /**
+ * Spacing type that represents the bottom direction. E.g. {@code marginBottom}.
+ */
+ public static final int BOTTOM = 3;
+ /**
+ * Spacing type that represents vertical direction (top and bottom). E.g. {@code marginVertical}.
+ */
+ public static final int VERTICAL = 4;
+ /**
+ * Spacing type that represents horizontal direction (left and right). E.g.
+ * {@code marginHorizontal}.
+ */
+ public static final int HORIZONTAL = 5;
+ /**
+ * Spacing type that represents start direction e.g. left in left-to-right, right in right-to-left.
+ */
+ public static final int START = 6;
+ /**
+ * Spacing type that represents end direction e.g. right in left-to-right, left in right-to-left.
+ */
+ public static final int END = 7;
+ /**
+ * Spacing type that represents all directions (left, top, right, bottom). E.g. {@code margin}.
+ */
+ public static final int ALL = 8;
+
+ private static final int[] sFlagsMap = {
+ 1, /*LEFT*/
+ 2, /*TOP*/
+ 4, /*RIGHT*/
+ 8, /*BOTTOM*/
+ 16, /*VERTICAL*/
+ 32, /*HORIZONTAL*/
+ 64, /*START*/
+ 128, /*END*/
+ 256, /*ALL*/
+ };
+
+ private final float[] mSpacing = newFullSpacingArray();
+ private float[] mDefaultSpacing = null;
+ private int mValueFlags = 0;
+ private boolean mHasAliasesSet;
+
+ private static float[] newFullSpacingArray() {
+ return new float[]{
+ LayoutUtility.UNDEFINED,
+ LayoutUtility.UNDEFINED,
+ LayoutUtility.UNDEFINED,
+ LayoutUtility.UNDEFINED,
+ LayoutUtility.UNDEFINED,
+ LayoutUtility.UNDEFINED,
+ LayoutUtility.UNDEFINED,
+ LayoutUtility.UNDEFINED,
+ LayoutUtility.UNDEFINED,
+ };
+ }
+
+ /**
+ * Set a spacing value.
+ *
+ * @param spacingType one of {@link #LEFT}, {@link #TOP}, {@link #RIGHT}, {@link #BOTTOM},
+ * {@link #VERTICAL}, {@link #HORIZONTAL}, {@link #ALL}
+ * @param value the value for this direction
+ * @return {@code true} if the spacing has changed, or {@code false} if the same value was already
+ * set
+ */
+ public boolean set(int spacingType, float value) {
+ if (!LayoutUtility.floatsEqual(mSpacing[spacingType], value)) {
+ mSpacing[spacingType] = value;
+
+ if (LayoutUtility.isUndefined(value)) {
+ mValueFlags &= ~sFlagsMap[spacingType];
+ } else {
+ mValueFlags |= sFlagsMap[spacingType];
+ }
+
+ mHasAliasesSet =
+ (mValueFlags & sFlagsMap[ALL]) != 0 ||
+ (mValueFlags & sFlagsMap[VERTICAL]) != 0 ||
+ (mValueFlags & sFlagsMap[HORIZONTAL]) != 0;
+
+ return true;
+ }
+ return false;
+ }
+
+ /**
+ * Set a default spacing value. This is used as a fallback when no spacing has been set for a
+ * particular direction.
+ *
+ * @param spacingType one of {@link #LEFT}, {@link #TOP}, {@link #RIGHT}, {@link #BOTTOM}
+ * @param value the default value for this direction
+ * @return
+ */
+ public boolean setDefault(int spacingType, float value) {
+ if (mDefaultSpacing == null) {
+ mDefaultSpacing = newSpacingResultArray();
+ }
+ if (!LayoutUtility.floatsEqual(mDefaultSpacing[spacingType], value)) {
+ mDefaultSpacing[spacingType] = value;
+ return true;
+ }
+ return false;
+ }
+
+ private static float[] newSpacingResultArray() {
+ return newSpacingResultArray(0);
+ }
+
+ private static float[] newSpacingResultArray(float defaultValue) {
+ return new float[]{
+ defaultValue,
+ defaultValue,
+ defaultValue,
+ defaultValue,
+ defaultValue,
+ defaultValue,
+ LayoutUtility.UNDEFINED,
+ LayoutUtility.UNDEFINED,
+ defaultValue,
+ };
+ }
+
+ /**
+ * Get the raw value (that was set using {@link #set(int, float)}), without taking into account
+ * any default values.
+ *
+ * @param spacingType one of {@link #LEFT}, {@link #TOP}, {@link #RIGHT}, {@link #BOTTOM},
+ * {@link #VERTICAL}, {@link #HORIZONTAL}, {@link #ALL}
+ */
+ public float getRaw(int spacingType) {
+ return mSpacing[spacingType];
+ }
+
+ /**
+ * Resets the spacing instance to its default state. This method is meant to be used when
+ * recycling {@link Spacing} instances.
+ */
+ void reset() {
+ Arrays.fill(mSpacing, LayoutUtility.UNDEFINED);
+ mDefaultSpacing = null;
+ mHasAliasesSet = false;
+ mValueFlags = 0;
+ }
+
+ /**
+ * Try to get start value and fallback to given type if not defined. This is used privately
+ * by the layout engine as a more efficient way to fetch direction-aware values by
+ * avoid extra method invocations.
+ */
+ float getWithFallback(int spacingType, int fallbackType) {
+ return
+ (mValueFlags & sFlagsMap[spacingType]) != 0
+ ? mSpacing[spacingType]
+ : get(fallbackType);
+ }
+
+ /**
+ * Get the spacing for a direction. This takes into account any default values that have been set.
+ *
+ * @param spacingType one of {@link #LEFT}, {@link #TOP}, {@link #RIGHT}, {@link #BOTTOM}
+ */
+ public float get(int spacingType) {
+ float defaultValue = (mDefaultSpacing != null)
+ ? mDefaultSpacing[spacingType]
+ : (spacingType == START || spacingType == END ? LayoutUtility.UNDEFINED : 0);
+
+ if (mValueFlags == 0) {
+ return defaultValue;
+ }
+
+ if ((mValueFlags & sFlagsMap[spacingType]) != 0) {
+ return mSpacing[spacingType];
+ }
+
+ if (mHasAliasesSet) {
+ int secondType = spacingType == TOP || spacingType == BOTTOM ? VERTICAL : HORIZONTAL;
+ if ((mValueFlags & sFlagsMap[secondType]) != 0) {
+ return mSpacing[secondType];
+ } else if ((mValueFlags & sFlagsMap[ALL]) != 0) {
+ return mSpacing[ALL];
+ }
+ }
+
+ return defaultValue;
+ }
+
+ public boolean equal(Spacing spacing) {
+ return LayoutUtility.floatsEqual(get(LEFT), spacing.get(LEFT))
+ && LayoutUtility.floatsEqual(get(TOP), spacing.get(TOP))
+ && LayoutUtility.floatsEqual(get(RIGHT), spacing.get(RIGHT))
+ && LayoutUtility.floatsEqual(get(BOTTOM), spacing.get(BOTTOM));
+ }
+
+}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
index 11cde51..930e3b7 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
@@ -18,12 +18,7 @@
*/
package com.taobao.weex.dom;
-import com.facebook.yoga.YogaMeasureFunction;
-import com.facebook.yoga.YogaMeasureMode;
-import com.facebook.yoga.YogaMeasureOutput;
import com.facebook.yoga.YogaNode;
-import com.taobao.weex.dom.flex.CSSNode;
-import com.taobao.weex.dom.flex.MeasureOutput;
import com.taobao.weex.ui.component.WXBasicComponentType;
import com.taobao.weex.utils.WXLogUtils;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
index 0007522..0b889ba 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
@@ -32,9 +32,6 @@ import com.taobao.weex.WXSDKInstance;
import com.taobao.weex.WXSDKManager;
import com.taobao.weex.bridge.WXValidateProcessor;
import com.taobao.weex.common.Constants;
-import com.taobao.weex.dom.flex.CSSLayoutContext;
-import com.taobao.weex.dom.flex.CSSNode;
-import com.taobao.weex.dom.flex.Spacing;
import com.taobao.weex.ui.component.WXBasicComponentType;
import com.taobao.weex.utils.WXLogUtils;
import com.taobao.weex.utils.WXViewUtils;
@@ -266,7 +263,7 @@ public class WXDomObject extends YogaNode implements Cloneable,ImmutableDomObjec
/**
* Tell whether this object need to be updated. This is usually called when
- * {@link CSSNode#calculateLayout(CSSLayoutContext)} finishes and new layout has been
+ * {@link WXDomObject} finishes and new layout has been
* calculated. This method is a simple wrapper method for {@link #hasNewLayout()} and
* {@link #isDirty()}.
* @return true for need update since last update.
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java
index 8bd1e2c..e081977 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java
@@ -20,7 +20,6 @@ package com.taobao.weex.dom;
import com.taobao.weex.WXEnvironment;
import com.taobao.weex.common.Constants;
-import com.taobao.weex.dom.flex.Spacing;
import com.taobao.weex.ui.component.WXBasicComponentType;
import com.taobao.weex.utils.WXLogUtils;
import com.taobao.weex.utils.WXViewUtils;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/WXStyle.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXStyle.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXStyle.java
index 2fff536..beb727d 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXStyle.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXStyle.java
@@ -31,8 +31,6 @@ import com.facebook.yoga.YogaJustify;
import com.facebook.yoga.YogaPositionType;
import com.facebook.yoga.YogaWrap;
import com.taobao.weex.common.Constants;
-import com.taobao.weex.dom.flex.CSSPositionType;
-import com.taobao.weex.dom.flex.CSSWrap;
import com.taobao.weex.ui.component.WXText;
import com.taobao.weex.ui.component.WXTextDecoration;
import com.taobao.weex.utils.WXUtils;
@@ -211,7 +209,7 @@ public class WXStyle implements Map<String, Object>,Cloneable {
if (alignItems == null) {
return YogaAlign.STRETCH;
}
- return YogaUtility.alignItems(alignItems.toString().trim());
+ return LayoutUtility.alignItems(alignItems.toString().trim());
}
public YogaAlign getAlignSelf() {
@@ -219,7 +217,7 @@ public class WXStyle implements Map<String, Object>,Cloneable {
if (alignSelf == null) {
return YogaAlign.AUTO;
}
- return YogaUtility.alignSelf(alignSelf.toString().trim());
+ return LayoutUtility.alignSelf(alignSelf.toString().trim());
}
public float getFlex() {
@@ -231,7 +229,7 @@ public class WXStyle implements Map<String, Object>,Cloneable {
if (flexDirection == null) {
return YogaFlexDirection.COLUMN;
}
- return YogaUtility.flexDirection(flexDirection.toString().trim());
+ return LayoutUtility.flexDirection(flexDirection.toString().trim());
}
public YogaJustify getJustifyContent() {
@@ -239,7 +237,7 @@ public class WXStyle implements Map<String, Object>,Cloneable {
if (justifyContent == null) {
return YogaJustify.FLEX_START;
}
- return YogaUtility.justify(justifyContent.toString().trim());
+ return LayoutUtility.justify(justifyContent.toString().trim());
}
public YogaWrap getCSSWrap() {
@@ -247,7 +245,7 @@ public class WXStyle implements Map<String, Object>,Cloneable {
if (cssWrap == null) {
return YogaWrap.NO_WRAP;
}
- return YogaUtility.wrap(cssWrap.toString().trim());
+ return LayoutUtility.wrap(cssWrap.toString().trim());
}
/*
@@ -558,7 +556,7 @@ public class WXStyle implements Map<String, Object>,Cloneable {
if (position == null) {
return YogaPositionType.RELATIVE;
}
- return YogaUtility.positionType(position.toString().trim());
+ return LayoutUtility.positionType(position.toString().trim());
}
public boolean isSticky() {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/WXSwitchDomObject.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXSwitchDomObject.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXSwitchDomObject.java
index 2b6dfec..d96ea41 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXSwitchDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXSwitchDomObject.java
@@ -25,8 +25,6 @@ import com.facebook.yoga.YogaMeasureFunction;
import com.facebook.yoga.YogaMeasureMode;
import com.facebook.yoga.YogaMeasureOutput;
import com.facebook.yoga.YogaNode;
-import com.taobao.weex.dom.flex.CSSNode;
-import com.taobao.weex.dom.flex.MeasureOutput;
import com.taobao.weex.ui.view.WXSwitchView;
import com.taobao.weex.utils.WXLogUtils;
@@ -39,7 +37,7 @@ public class WXSwitchDomObject extends WXDomObject {
Context context=((WXDomObject) yogaNode).getDomContext().getUIContext();
WXSwitchView wxSwitchView = new WXSwitchView(context);
int widthSpec, heightSpec;
- heightSpec = MeasureSpec.makeMeasureSpec((int)height, YogaUtility.viewMeasureSpec(widthMeasureMode));
+ heightSpec = MeasureSpec.makeMeasureSpec((int)height, LayoutUtility.viewMeasureSpec(widthMeasureMode));
if (Float.isNaN(width)) {
widthSpec = MeasureSpec.makeMeasureSpec(0, MeasureSpec.UNSPECIFIED);
} else {
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java
index a76da0b..302d07c 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java
@@ -40,10 +40,6 @@ import com.facebook.yoga.YogaMeasureOutput;
import com.facebook.yoga.YogaNode;
import com.taobao.weex.WXEnvironment;
import com.taobao.weex.common.Constants;
-import com.taobao.weex.dom.flex.CSSConstants;
-import com.taobao.weex.dom.flex.CSSNode;
-import com.taobao.weex.dom.flex.FloatUtil;
-import com.taobao.weex.dom.flex.MeasureOutput;
import com.taobao.weex.ui.component.WXText;
import com.taobao.weex.ui.component.WXTextDecoration;
import com.taobao.weex.utils.WXDomUtils;
@@ -174,7 +170,7 @@ public class WXTextDomObject extends WXDomObject {
public void layoutAfter() {
if (hasBeenMeasured) {
if (layout != null &&
- !FloatUtil.floatsEqual(WXDomUtils.getContentWidth(this), previousWidth)) {
+ !LayoutUtility.floatsEqual(WXDomUtils.getContentWidth(this), previousWidth)) {
recalculateLayout();
}
} else {
@@ -304,7 +300,7 @@ public class WXTextDomObject extends WXDomObject {
float textWidth;
textWidth = getTextWidth(mTextPaint, width, forceWidth);
Layout layout;
- if (!FloatUtil.floatsEqual(previousWidth, textWidth) || previousLayout == null) {
+ if (!LayoutUtility.floatsEqual(previousWidth, textWidth) || previousLayout == null) {
layout = new StaticLayout(spanned, mTextPaint, (int) Math.ceil(textWidth),
Layout.Alignment.ALIGN_NORMAL, 1, 0, false);
} else {
@@ -363,7 +359,7 @@ public class WXTextDomObject extends WXDomObject {
textWidth = outerWidth;
} else {
float desiredWidth = Layout.getDesiredWidth(spanned, textPaint);
- if (CSSConstants.isUndefined(outerWidth) || desiredWidth < outerWidth) {
+ if (LayoutUtility.isUndefined(outerWidth) || desiredWidth < outerWidth) {
textWidth = desiredWidth;
} else {
textWidth = outerWidth;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/YogaUtility.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/YogaUtility.java b/android/sdk/src/main/java/com/taobao/weex/dom/YogaUtility.java
deleted file mode 100644
index b7d1167..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/YogaUtility.java
+++ /dev/null
@@ -1,136 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements. See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership. The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License. You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied. See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.taobao.weex.dom;
-
-import android.text.TextUtils;
-import android.view.View;
-
-import com.facebook.yoga.YogaAlign;
-import com.facebook.yoga.YogaFlexDirection;
-import com.facebook.yoga.YogaJustify;
-import com.facebook.yoga.YogaMeasureMode;
-import com.facebook.yoga.YogaPositionType;
-import com.facebook.yoga.YogaWrap;
-import com.taobao.weex.dom.flex.CSSFlexDirection;
-import com.taobao.weex.dom.flex.CSSJustify;
-import com.taobao.weex.dom.flex.CSSPositionType;
-import com.taobao.weex.dom.flex.CSSWrap;
-
-/**
- * Created by sospartan on 21/06/2017.
- */
-
-class YogaUtility {
- public static YogaAlign alignItems(String s) {
- YogaAlign align = YogaAlign.STRETCH;
- if (TextUtils.isEmpty(s)) {
- align = YogaAlign.STRETCH;
- } else if (s.equals("stretch")) {
- align = YogaAlign.STRETCH;
- } else if (s.equals("flex-end")) {
- align = YogaAlign.FLEX_END;
- } else if (s.equals("auto")) {
- align = YogaAlign.AUTO;
- } else if (s.equals("center")) {
- align = YogaAlign.CENTER;
- }
-
- return align;
- }
-
- public static YogaAlign alignSelf(String s) {
- YogaAlign align = YogaAlign.AUTO;
- if (TextUtils.isEmpty(s)) {
- align = YogaAlign.AUTO;
- } else if (s.equals("flex-start")) {
- align = YogaAlign.FLEX_START;
- } else if (s.equals("flex-end")) {
- align = YogaAlign.FLEX_END;
- } else if (s.equals("stretch")) {
- align = YogaAlign.STRETCH;
- } else if (s.equals("center")) {
- align = YogaAlign.CENTER;
- }
-
- return align;
- }
-
- public static YogaFlexDirection flexDirection(String s) {
- YogaFlexDirection cssFlexDirection = YogaFlexDirection.ROW;
- if (TextUtils.isEmpty(s)) {
- cssFlexDirection = YogaFlexDirection.ROW;
- } else if (s.equals("column")) {
- cssFlexDirection = YogaFlexDirection.COLUMN;
- } else if (s.equals("column-reverse")) {
- cssFlexDirection = YogaFlexDirection.COLUMN_REVERSE;
- } else if (s.equals("row")) {
- cssFlexDirection = YogaFlexDirection.ROW;
- } else if (s.equals("row-reverse")) {
- cssFlexDirection = YogaFlexDirection.ROW_REVERSE;
- }
- return cssFlexDirection;
- }
-
- public static YogaJustify justify(String s) {
- YogaJustify cssJustify = YogaJustify.FLEX_START;
- if (TextUtils.isEmpty(s) || s.equals("flex-start")) {
- cssJustify = YogaJustify.FLEX_START;
- } else if (s.equals("flex-end")) {
- cssJustify = YogaJustify.FLEX_END;
- } else if (s.equals("center")) {
- cssJustify = YogaJustify.CENTER;
- } else if (s.equals("space-between")) {
- cssJustify = YogaJustify.SPACE_BETWEEN;
- } else if (s.equals("space-around")) {
- cssJustify = YogaJustify.SPACE_AROUND;
- }
- return cssJustify;
- }
-
- public static YogaWrap wrap(String s) {
- YogaWrap cssWrap = YogaWrap.NO_WRAP;
- if (TextUtils.isEmpty(s)) {
- return cssWrap;
- } else if (s.equals("wrap")) {
- return YogaWrap.WRAP;
- }
- return cssWrap;
- }
-
- public static YogaPositionType positionType(String s) {
- YogaPositionType position = YogaPositionType.RELATIVE;
- if (TextUtils.isEmpty(s) || s.equals("relative") || s.equals("sticky")) {
- position = YogaPositionType.RELATIVE;
- } else if (s.equals("absolute") || s.equals("fixed")) {
- position = YogaPositionType.ABSOLUTE;
- }
- return position;
- }
-
-
- public static int viewMeasureSpec(YogaMeasureMode mode) {
- if (mode == YogaMeasureMode.AT_MOST) {
- return View.MeasureSpec.AT_MOST;
- } else if (mode == YogaMeasureMode.EXACTLY) {
- return View.MeasureSpec.EXACTLY;
- } else {
- return View.MeasureSpec.UNSPECIFIED;
- }
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/action/UpdateStyleAction.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/action/UpdateStyleAction.java b/android/sdk/src/main/java/com/taobao/weex/dom/action/UpdateStyleAction.java
index aa56e70..6dcadbe 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/action/UpdateStyleAction.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/action/UpdateStyleAction.java
@@ -30,7 +30,7 @@ import com.taobao.weex.dom.DOMActionContext;
import com.taobao.weex.dom.RenderAction;
import com.taobao.weex.dom.RenderActionContext;
import com.taobao.weex.dom.WXDomObject;
-import com.taobao.weex.dom.flex.Spacing;
+import com.taobao.weex.dom.Spacing;
import com.taobao.weex.ui.component.WXComponent;
import java.util.Map;
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSAlign.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSAlign.java b/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSAlign.java
deleted file mode 100755
index 04148fe..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSAlign.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Copyright (c) 2014, Facebook, Inc. All rights reserved. <p/> This source code is licensed under
- * the BSD-style license found in the LICENSE file in the root directory of this source tree. An
- * additional grant of patent rights can be found in the PATENTS file in the same directory.
- */
-package com.taobao.weex.dom.flex;
-
-@Deprecated
-public enum CSSAlign {
- AUTO,
- FLEX_START,
- CENTER,
- FLEX_END,
- STRETCH,
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSConstants.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSConstants.java b/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSConstants.java
deleted file mode 100755
index ceb5f38..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSConstants.java
+++ /dev/null
@@ -1,16 +0,0 @@
-/**
- * Copyright (c) 2014, Facebook, Inc. All rights reserved. <p/> This source code is licensed under
- * the BSD-style license found in the LICENSE file in the root directory of this source tree. An
- * additional grant of patent rights can be found in the PATENTS file in the same directory.
- */
-package com.taobao.weex.dom.flex;
-
-@Deprecated
-public class CSSConstants {
-
- public static final float UNDEFINED = Float.NaN;
-
- public static boolean isUndefined(float value) {
- return Float.compare(value, UNDEFINED) == 0;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSDirection.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSDirection.java b/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSDirection.java
deleted file mode 100755
index f6f4a48..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSDirection.java
+++ /dev/null
@@ -1,13 +0,0 @@
-/**
- * Copyright (c) 2014, Facebook, Inc. All rights reserved. <p/> This source code is licensed under
- * the BSD-style license found in the LICENSE file in the root directory of this source tree. An
- * additional grant of patent rights can be found in the PATENTS file in the same directory.
- */
-package com.taobao.weex.dom.flex;
-
-@Deprecated
-public enum CSSDirection {
- INHERIT,
- LTR,
- RTL,
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSFlexDirection.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSFlexDirection.java b/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSFlexDirection.java
deleted file mode 100755
index b474b71..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSFlexDirection.java
+++ /dev/null
@@ -1,14 +0,0 @@
-/**
- * Copyright (c) 2014, Facebook, Inc. All rights reserved. <p/> This source code is licensed under
- * the BSD-style license found in the LICENSE file in the root directory of this source tree. An
- * additional grant of patent rights can be found in the PATENTS file in the same directory.
- */
-package com.taobao.weex.dom.flex;
-
-@Deprecated
-public enum CSSFlexDirection {
- COLUMN,
- COLUMN_REVERSE,
- ROW,
- ROW_REVERSE
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSJustify.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSJustify.java b/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSJustify.java
deleted file mode 100755
index 4bba4fb..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSJustify.java
+++ /dev/null
@@ -1,15 +0,0 @@
-/**
- * Copyright (c) 2014, Facebook, Inc. All rights reserved. <p/> This source code is licensed under
- * the BSD-style license found in the LICENSE file in the root directory of this source tree. An
- * additional grant of patent rights can be found in the PATENTS file in the same directory.
- */
-package com.taobao.weex.dom.flex;
-
-@Deprecated
-public enum CSSJustify {
- FLEX_START,
- CENTER,
- FLEX_END,
- SPACE_BETWEEN,
- SPACE_AROUND,
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSLayout.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSLayout.java b/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSLayout.java
deleted file mode 100755
index 920e819..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSLayout.java
+++ /dev/null
@@ -1,77 +0,0 @@
-/**
- * Copyright (c) 2014, Facebook, Inc. All rights reserved. <p/> This source code is licensed under
- * the BSD-style license found in the LICENSE file in the root directory of this source tree. An
- * additional grant of patent rights can be found in the PATENTS file in the same directory.
- */
-package com.taobao.weex.dom.flex;
-
-import java.util.Arrays;
-
-/**
- * Where the output of {@link LayoutEngine#layoutNode(CSSLayoutContext, CSSNode, float,
- * CSSDirection)} will go in the CSSNode.
- */
-@Deprecated
-public class CSSLayout {
-
- public static final int POSITION_LEFT = 0;
- public static final int POSITION_TOP = 1;
- public static final int POSITION_RIGHT = 2;
- public static final int POSITION_BOTTOM = 3;
-
- public static final int DIMENSION_WIDTH = 0;
- public static final int DIMENSION_HEIGHT = 1;
-
- public float[] position = new float[4];
- public float[] dimensions = new float[2];
- public CSSDirection direction = CSSDirection.LTR;
-
- /**
- * This should always get called before calling {@link LayoutEngine#layoutNode(CSSLayoutContext,
- * CSSNode, float, CSSDirection)}
- */
- public void resetResult() {
- Arrays.fill(position, 0);
- Arrays.fill(dimensions, CSSConstants.UNDEFINED);
- direction = CSSDirection.LTR;
- }
-
- public void copy(CSSLayout layout) {
- position[POSITION_LEFT] = layout.position[POSITION_LEFT];
- position[POSITION_TOP] = layout.position[POSITION_TOP];
- position[POSITION_RIGHT] = layout.position[POSITION_RIGHT];
- position[POSITION_BOTTOM] = layout.position[POSITION_BOTTOM];
- dimensions[DIMENSION_WIDTH] = layout.dimensions[DIMENSION_WIDTH];
- dimensions[DIMENSION_HEIGHT] = layout.dimensions[DIMENSION_HEIGHT];
- direction = layout.direction;
- }
-
- @Override
- public String toString() {
- return "layout: {" +
- "left: " + position[POSITION_LEFT] + ", " +
- "top: " + position[POSITION_TOP] + ", " +
- "width: " + dimensions[DIMENSION_WIDTH] + ", " +
- "height: " + dimensions[DIMENSION_HEIGHT] + ", " +
- "direction: " + direction +
- "}";
- }
-
- @Override
- public boolean equals(Object o) {
- if(this == o){
- return true;
- }
- if(o instanceof CSSLayout){
- CSSLayout cl = (CSSLayout)o;
- return FloatUtil.floatsEqual(cl.position[POSITION_LEFT],this.position[POSITION_LEFT]) &&
- FloatUtil.floatsEqual(cl.position[POSITION_TOP],this.position[POSITION_TOP]) &&
- FloatUtil.floatsEqual(cl.position[POSITION_RIGHT],this.position[POSITION_RIGHT]) &&
- FloatUtil.floatsEqual(cl.position[POSITION_BOTTOM],this.position[POSITION_BOTTOM]) &&
- FloatUtil.floatsEqual(cl.dimensions[DIMENSION_HEIGHT],this.dimensions[DIMENSION_HEIGHT]) &&
- FloatUtil.floatsEqual(cl.dimensions[DIMENSION_WIDTH],this.dimensions[DIMENSION_WIDTH]);
-
- }
- return false;
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSLayoutContext.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSLayoutContext.java b/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSLayoutContext.java
deleted file mode 100755
index 38a6680..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSLayoutContext.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * Copyright (c) 2014, Facebook, Inc. All rights reserved. <p/> This source code is licensed under
- * the BSD-style license found in the LICENSE file in the root directory of this source tree. An
- * additional grant of patent rights can be found in the PATENTS file in the same directory.
- */
-package com.taobao.weex.dom.flex;
-
-/**
- * A context for holding values local to a given instance of layout computation.
- *
- * This is necessary for making layout thread-safe. A separate instance should
- * be used when {@link CSSNode#calculateLayout} is called concurrently on
- * different node hierarchies.
- */
-@Deprecated
-public class CSSLayoutContext {
-
- /*package*/ final MeasureOutput measureOutput = new MeasureOutput();
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSNode.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSNode.java b/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSNode.java
deleted file mode 100755
index 5957798..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSNode.java
+++ /dev/null
@@ -1,605 +0,0 @@
-/**
- * Copyright (c) 2014, Facebook, Inc. All rights reserved. <p/> This source code is licensed under
- * the BSD-cssstyle license found in the LICENSE file in the root directory of this source tree. An
- * additional grant of patent rights can be found in the PATENTS file in the same directory.
- */
-package com.taobao.weex.dom.flex;
-
-//import javax.annotation.Nullable;
-
-import android.support.annotation.NonNull;
-
-import java.util.ArrayList;
-
-import static com.taobao.weex.dom.flex.CSSLayout.DIMENSION_HEIGHT;
-import static com.taobao.weex.dom.flex.CSSLayout.DIMENSION_WIDTH;
-import static com.taobao.weex.dom.flex.CSSLayout.POSITION_BOTTOM;
-import static com.taobao.weex.dom.flex.CSSLayout.POSITION_LEFT;
-import static com.taobao.weex.dom.flex.CSSLayout.POSITION_RIGHT;
-import static com.taobao.weex.dom.flex.CSSLayout.POSITION_TOP;
-
-//import com.facebook.infer.annotation.Assertions;
-
-/**
- * A CSS Node. It has a cssstyle object you can manipulate at {@link #cssstyle}. After calling
- * {@link #calculateLayout(CSSLayoutContext)}, {@link #csslayout} will be filled with the results of
- * the csslayout.
- */
-@Deprecated
-public class CSSNode {
-
- // VisibleForTesting
- /*package*/public final CSSStyle cssstyle = new CSSStyle();
- /*package*/ public final CSSLayout csslayout = new CSSLayout();
- /*package*/ final CachedCSSLayout lastLayout = new CachedCSSLayout();
- public int lineIndex = 0;
- /*package*/ CSSNode nextAbsoluteChild;
- /*package*/ CSSNode nextFlexChild;
- private ArrayList<CSSNode> mChildren;
- private CSSNode mParent;
- private MeasureFunction mMeasureFunction = null;
- private LayoutState mLayoutState = LayoutState.DIRTY;
- private boolean mShow = true;
-
- private boolean mIsLayoutChanged = true;
-
- public boolean isShow() {
- return mShow;
- }
-
- public void setVisible(boolean isShow) {
- if (!mShow && isShow) {
- mLayoutState = LayoutState.UP_TO_DATE;
- }
- mShow = isShow;
- dirty();
- }
-
- /**
- * whether layout changed when {@link #updateLastLayout(CSSLayout)} invoked last time.
- * @return
- */
- public boolean isLayoutChanged(){
- return mIsLayoutChanged;
- }
-
- /**
- * must invoke after every layout finished,even nothing changed.
- * @param newLayout
- * @return
- */
- public boolean updateLastLayout(CSSLayout newLayout){
- mIsLayoutChanged = !lastLayout.equals(newLayout);
- if(mIsLayoutChanged) {
- lastLayout.copy(newLayout);
- }
- return mIsLayoutChanged;
- }
-
- public int getChildCount() {
- return mChildren == null ? 0 : mChildren.size();
- }
-
- public CSSNode getChildAt(int i) {
- // Assertions.assertNotNull(mChildren);
- return mChildren.get(i);
- }
-
- public void addChildAt(CSSNode child, int i) {
- if (child.mParent != null) {
- throw new IllegalStateException("Child already has a parent, it must be removed first.");
- }
- if (mChildren == null) {
- // 4 is kinda arbitrary, but the default of 10 seems really high for an average View.
- mChildren = new ArrayList<CSSNode>(4);
- }
-
- mChildren.add(i, child);
- child.mParent = this;
- dirty();
- }
-
- public CSSNode removeChildAt(int i) {
- // Assertions.assertNotNull(mChildren);
- CSSNode removed = mChildren.remove(i);
- removed.mParent = null;
- dirty();
- return removed;
- }
-
- public void setParentNull() {
- mParent = null;
- }
-
- public CSSNode getParent() {
- return mParent;
- }
-
- /**
- * @return the index of the given child, or -1 if the child doesn't exist in this node.
- */
- public int indexOf(CSSNode child) {
- // Assertions.assertNotNull(mChildren);
- return mChildren.indexOf(child);
- }
-
- public void setMeasureFunction(MeasureFunction measureFunction) {
- if (mMeasureFunction != measureFunction) {
- mMeasureFunction = measureFunction;
- dirty();
- }
- }
-
- /*package*/ MeasureOutput measure(MeasureOutput measureOutput, float width) {
- if (!isMeasureDefined()) {
- throw new RuntimeException("Measure function isn't defined!");
- }
- measureOutput.height = CSSConstants.UNDEFINED;
- measureOutput.width = CSSConstants.UNDEFINED;
- if (mMeasureFunction != null) {
- mMeasureFunction.measure(this, width, measureOutput);
- }
- // Assertions.assertNotNull(mMeasureFunction).measure(this, width, measureOutput);
- return measureOutput;
- }
-
- public boolean isMeasureDefined() {
- return mMeasureFunction != null;
- }
-
- /**
- * Performs the actual csslayout and saves the results in {@link #csslayout}
- */
- public void calculateLayout(CSSLayoutContext layoutContext) {
- csslayout.resetResult();
- LayoutEngine.layoutNode(layoutContext, this, CSSConstants.UNDEFINED, null);
- }
-
- /**
- * See {@link LayoutState#DIRTY}.
- */
- protected boolean isDirty() {
- return mLayoutState == LayoutState.DIRTY;
- }
-
- protected void dirty() {
- if (mLayoutState == LayoutState.DIRTY) {
- return;
- } else if (mLayoutState == LayoutState.HAS_NEW_LAYOUT) {
- throw new IllegalStateException("Previous csslayout was ignored! markLayoutSeen() never called");
- }
-
- mLayoutState = LayoutState.DIRTY;
-
- if (mParent != null) {
- mParent.dirty();
- }
- }
-
- /*package*/ void markHasNewLayout() {
- mLayoutState = LayoutState.HAS_NEW_LAYOUT;
- }
-
- /**
- * Tells the node that the current values in {@link #csslayout} have been seen. Subsequent calls
- * to {@link #hasNewLayout()} will return false until this node is laid out with new parameters.
- * You must call this each time the csslayout is generated if the node has a new csslayout.
- */
- public void markLayoutSeen() {
- if (!hasNewLayout()) {
- throw new IllegalStateException("Expected node to have a new csslayout to be seen!");
- }
-
- mLayoutState = LayoutState.UP_TO_DATE;
- }
-
- /**
- * See {@link LayoutState#HAS_NEW_LAYOUT}.
- */
- public boolean hasNewLayout() {
- return mLayoutState == LayoutState.HAS_NEW_LAYOUT;
- }
-
- private void toStringWithIndentation(StringBuilder result, int level) {
- // Spaces and tabs are dropped by IntelliJ logcat integration, so rely on __ instead.
- StringBuilder indentation = new StringBuilder();
- for (int i = 0; i < level; ++i) {
- indentation.append("__");
- }
-
- result.append(indentation.toString());
- result.append(csslayout.toString());
- result.append(cssstyle.toString());
-
- if (getChildCount() == 0) {
- return;
- }
-
- result.append(", children: [\n");
- for (int i = 0; i < getChildCount(); i++) {
- getChildAt(i).toStringWithIndentation(result, level + 1);
- result.append("\n");
- }
- result.append(indentation + "]");
- }
-
- @Override
- public String toString() {
- StringBuilder sb = new StringBuilder();
- this.toStringWithIndentation(sb, 0);
- return sb.toString();
- }
-
- protected boolean valuesEqual(float f1, float f2) {
- return FloatUtil.floatsEqual(f1, f2);
- }
-
- /**
- * Get this node's direction, as defined in the cssstyle.
- */
- public CSSDirection getStyleDirection() {
- return cssstyle.direction;
- }
-
- public void setDirection(CSSDirection direction) {
- if (cssstyle.direction != direction) {
- cssstyle.direction = direction;
- dirty();
- }
- }
-
- /**
- * Get this node's flex direction, as defined by cssstyle.
- */
- public CSSFlexDirection getFlexDirection() {
- return cssstyle.flexDirection;
- }
-
- public void setFlexDirection(CSSFlexDirection flexDirection) {
- if (cssstyle.flexDirection != flexDirection) {
- cssstyle.flexDirection = flexDirection;
- dirty();
- }
- }
-
- /**
- * Get this node's justify content, as defined by cssstyle.
- */
- public CSSJustify getJustifyContent() {
- return cssstyle.justifyContent;
- }
-
- public void setJustifyContent(CSSJustify justifyContent) {
- if (cssstyle.justifyContent != justifyContent) {
- cssstyle.justifyContent = justifyContent;
- dirty();
- }
- }
-
- /**
- * Get this node's align items, as defined by cssstyle.
- */
- public CSSAlign getAlignItems() {
- return cssstyle.alignItems;
- }
-
- public void setAlignItems(CSSAlign alignItems) {
- if (cssstyle.alignItems != alignItems) {
- cssstyle.alignItems = alignItems;
- dirty();
- }
- }
-
- /**
- * Get this node's align items, as defined by cssstyle.
- */
- public CSSAlign getAlignSelf() {
- return cssstyle.alignSelf;
- }
-
- public void setAlignSelf(CSSAlign alignSelf) {
- if (cssstyle.alignSelf != alignSelf) {
- cssstyle.alignSelf = alignSelf;
- dirty();
- }
- }
-
- /**
- * Get this node's position type, as defined by cssstyle.
- */
- public CSSPositionType getPositionType() {
- return cssstyle.positionType;
- }
-
- public void setPositionType(CSSPositionType positionType) {
- if (cssstyle.positionType != positionType) {
- cssstyle.positionType = positionType;
- dirty();
- }
- }
-
- public void setWrap(CSSWrap flexWrap) {
- if (cssstyle.flexWrap != flexWrap) {
- cssstyle.flexWrap = flexWrap;
- dirty();
- }
- }
-
- /**
- * Get this node's flex, as defined by cssstyle.
- */
- public float getFlex() {
- return cssstyle.flex;
- }
-
- public void setFlex(float flex) {
- if (!valuesEqual(cssstyle.flex, flex)) {
- cssstyle.flex = flex;
- dirty();
- }
- }
-
- /**
- * Get this node's margin, as defined by cssstyle + default margin.
- */
- public @NonNull Spacing getMargin() {
- return cssstyle.margin;
- }
-
- public void setMargin(int spacingType, float margin) {
- if (cssstyle.margin.set(spacingType, margin)) {
- dirty();
- }
- }
-
- public void setMinWidth(float minWidth) {
- if (!valuesEqual(cssstyle.minWidth, minWidth)) {
- cssstyle.minWidth = minWidth;
- dirty();
- }
- }
-
- public void setMaxWidth(float maxWidth) {
- if (!valuesEqual(cssstyle.maxWidth, maxWidth)) {
- cssstyle.maxWidth = maxWidth;
- dirty();
- }
- }
-
- public void setMinHeight(float minHeight) {
- if (!valuesEqual(cssstyle.minHeight, minHeight)) {
- cssstyle.minHeight = minHeight;
- dirty();
- }
- }
-
- public void setMaxHeight(float maxHeight) {
- if (!valuesEqual(cssstyle.maxHeight, maxHeight)) {
- cssstyle.maxHeight = maxHeight;
- dirty();
- }
- }
-
- /**
- * Get this node's padding, as defined by cssstyle + default padding.
- */
- public @NonNull Spacing getPadding() {
- return cssstyle.padding;
- }
-
- public void setPadding(int spacingType, float padding) {
- if (cssstyle.padding.set(spacingType, padding)) {
- dirty();
- }
- }
-
- /**
- * Get this node's border, as defined by cssstyle.
- */
- public @NonNull Spacing getBorder() {
- return cssstyle.border;
- }
-
- public void setBorder(int spacingType, float border) {
- if (cssstyle.border.set(spacingType, border)) {
- dirty();
- }
- }
-
- /**
- * Get this node's position top, as defined by cssstyle.
- */
- public float getPositionTop() {
- return cssstyle.position[POSITION_TOP];
- }
-
- public void setPositionTop(float positionTop) {
- if (!valuesEqual(cssstyle.position[POSITION_TOP], positionTop)) {
- cssstyle.position[POSITION_TOP] = positionTop;
- dirty();
- }
- }
-
- /**
- * Get this node's position bottom, as defined by cssstyle.
- */
- public float getPositionBottom() {
- return cssstyle.position[POSITION_BOTTOM];
- }
-
- public void setPositionBottom(float positionBottom) {
- if (!valuesEqual(cssstyle.position[POSITION_BOTTOM], positionBottom)) {
- cssstyle.position[POSITION_BOTTOM] = positionBottom;
- dirty();
- }
- }
-
- /**
- * Get this node's position left, as defined by cssstyle.
- */
- public float getPositionLeft() {
- return cssstyle.position[POSITION_LEFT];
- }
-
- public void setPositionLeft(float positionLeft) {
- if (!valuesEqual(cssstyle.position[POSITION_LEFT], positionLeft)) {
- cssstyle.position[POSITION_LEFT] = positionLeft;
- dirty();
- }
- }
-
- /**
- * Get this node's position right, as defined by cssstyle.
- */
- public float getPositionRight() {
- return cssstyle.position[POSITION_RIGHT];
- }
-
- public void setPositionRight(float positionRight) {
- if (!valuesEqual(cssstyle.position[POSITION_RIGHT], positionRight)) {
- cssstyle.position[POSITION_RIGHT] = positionRight;
- dirty();
- }
- }
-
- /**
- * Get this node's width, as defined in the cssstyle.
- */
- public float getStyleWidth() {
- return cssstyle.dimensions[DIMENSION_WIDTH];
- }
-
- public void setStyleWidth(float width) {
- if (!valuesEqual(cssstyle.dimensions[DIMENSION_WIDTH], width)) {
- cssstyle.dimensions[DIMENSION_WIDTH] = width;
- dirty();
- }
- }
-
- /**
- * Get this node's height, as defined in the cssstyle.
- */
- public float getStyleHeight() {
- return cssstyle.dimensions[DIMENSION_HEIGHT];
- }
-
- public void setStyleHeight(float height) {
- if (!valuesEqual(cssstyle.dimensions[DIMENSION_HEIGHT], height)) {
- cssstyle.dimensions[DIMENSION_HEIGHT] = height;
- dirty();
- }
- }
-
- public float getLayoutX() {
- return csslayout.position[POSITION_LEFT];
- }
-
- public void setLayoutX(float x) {
- csslayout.position[POSITION_LEFT] = x;
- }
-
- public float getLayoutY() {
- return csslayout.position[POSITION_TOP];
- }
-
- public void setLayoutY(float y) {
- csslayout.position[POSITION_TOP] = y;
- }
-
- public float getLayoutWidth() {
- return csslayout.dimensions[DIMENSION_WIDTH];
- }
-
- public void setLayoutWidth(float width) {
- csslayout.dimensions[DIMENSION_WIDTH] = width;
- }
-
- public float getLayoutHeight() {
- return csslayout.dimensions[DIMENSION_HEIGHT];
- }
-
- public void setLayoutHeight(float height) {
- csslayout.dimensions[DIMENSION_HEIGHT] = height;
- }
-
- public CSSDirection getLayoutDirection() {
- return csslayout.direction;
- }
-
- /**
- * Set a default padding (left/top/right/bottom) for this node.
- */
- public void setDefaultPadding(int spacingType, float padding) {
- if (cssstyle.padding.setDefault(spacingType, padding)) {
- dirty();
- }
- }
-
- /**
- * Resets this instance to its default state. This method is meant to be used when recycling
- * {@link CSSNode} instances.
- */
- public void reset() {
- if (mParent != null || (mChildren != null && mChildren.size() > 0)) {
- throw new IllegalStateException("You should not reset an attached CSSNode");
- }
-
- cssstyle.reset();
- csslayout.resetResult();
- lineIndex = 0;
- mLayoutState = LayoutState.DIRTY;
- }
-
- private static enum LayoutState {
- /**
- * Some property of this node or its children has changes and the current values in {@link
- * #csslayout} are not valid.
- */
- DIRTY,
-
- /**
- * This node has a new csslayout relative to the last time {@link #markLayoutSeen()} was
- * called.
- */
- HAS_NEW_LAYOUT,
-
- /**
- * {@link #csslayout} is valid for the node's properties and this csslayout has been marked as
- * having been seen.
- */
- UP_TO_DATE,
- }
-
- public static interface MeasureFunction {
-
- /**
- * Should measure the given node and put the result in the given MeasureOutput.
- * NB: measure is NOT guaranteed to be threadsafe/re-entrant safe!
- */
- public void measure(CSSNode node, float width, MeasureOutput measureOutput);
- }
-
- public float getCSSLayoutHeight() {
- return csslayout.dimensions[CSSLayout.DIMENSION_HEIGHT];
- }
-
- public float getCSSLayoutWidth() {
- return csslayout.dimensions[CSSLayout.DIMENSION_WIDTH];
- }
-
- public float getCSSLayoutTop() {
- return csslayout.position[CSSLayout.POSITION_TOP];
- }
-
- public float getCSSLayoutBottom() {
- return csslayout.position[CSSLayout.POSITION_BOTTOM];
- }
-
- public float getCSSLayoutLeft() {
- return csslayout.position[CSSLayout.POSITION_LEFT];
- }
-
- public float getCSSLayoutRight() {
- return csslayout.position[CSSLayout.POSITION_RIGHT];
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSPositionType.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSPositionType.java b/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSPositionType.java
deleted file mode 100755
index 4d396f6..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSPositionType.java
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Copyright (c) 2014, Facebook, Inc. All rights reserved. <p/> This source code is licensed under
- * the BSD-style license found in the LICENSE file in the root directory of this source tree. An
- * additional grant of patent rights can be found in the PATENTS file in the same directory.
- */
-package com.taobao.weex.dom.flex;
-
-@Deprecated
-public enum CSSPositionType {
- RELATIVE,
- ABSOLUTE,
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSStyle.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSStyle.java b/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSStyle.java
deleted file mode 100755
index f3087c4..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSStyle.java
+++ /dev/null
@@ -1,124 +0,0 @@
-/**
- * Copyright (c) 2014, Facebook, Inc. All rights reserved. <p/> This source code is licensed under
- * the BSD-style license found in the LICENSE file in the root directory of this source tree. An
- * additional grant of patent rights can be found in the PATENTS file in the same directory.
- */
-package com.taobao.weex.dom.flex;
-
-import java.util.Arrays;
-
-import static com.taobao.weex.dom.flex.CSSLayout.DIMENSION_HEIGHT;
-import static com.taobao.weex.dom.flex.CSSLayout.DIMENSION_WIDTH;
-import static com.taobao.weex.dom.flex.CSSLayout.POSITION_BOTTOM;
-import static com.taobao.weex.dom.flex.CSSLayout.POSITION_LEFT;
-import static com.taobao.weex.dom.flex.CSSLayout.POSITION_RIGHT;
-import static com.taobao.weex.dom.flex.CSSLayout.POSITION_TOP;
-
-/**
- * The CSS style definition for a {@link CSSNode}.
- */
-@Deprecated
-public class CSSStyle {
-
- public CSSDirection direction;
- public CSSFlexDirection flexDirection;
- public CSSJustify justifyContent;
- public CSSAlign alignContent;
- public CSSAlign alignItems;
- public CSSAlign alignSelf;
- public CSSPositionType positionType;
- public CSSWrap flexWrap;
- public float flex;
-
- public Spacing margin = new Spacing();
- public Spacing padding = new Spacing();
- public Spacing border = new Spacing();
-
- public float[] position = new float[4];
- public float[] dimensions = new float[2];
-
- public float minWidth = CSSConstants.UNDEFINED;
- public float minHeight = CSSConstants.UNDEFINED;
-
- public float maxWidth = CSSConstants.UNDEFINED;
- public float maxHeight = CSSConstants.UNDEFINED;
-
- CSSStyle() {
- reset();
- }
-
- void reset() {
- direction = CSSDirection.INHERIT;
- flexDirection = CSSFlexDirection.COLUMN;
- justifyContent = CSSJustify.FLEX_START;
- alignContent = CSSAlign.FLEX_START;
- alignItems = CSSAlign.STRETCH;
- alignSelf = CSSAlign.AUTO;
- positionType = CSSPositionType.RELATIVE;
- flexWrap = CSSWrap.NOWRAP;
- flex = 0f;
-
- margin.reset();
- padding.reset();
- border.reset();
-
- Arrays.fill(position, CSSConstants.UNDEFINED);
- Arrays.fill(dimensions, CSSConstants.UNDEFINED);
-
- minWidth = CSSConstants.UNDEFINED;
- minHeight = CSSConstants.UNDEFINED;
-
- maxWidth = CSSConstants.UNDEFINED;
- maxHeight = CSSConstants.UNDEFINED;
- }
-
- public void copy(CSSStyle cssStyle) {
- direction = cssStyle.direction;
- flexDirection = cssStyle.flexDirection;
- justifyContent = cssStyle.justifyContent;
- alignContent = cssStyle.alignContent;
- alignItems = cssStyle.alignItems;
- alignSelf = cssStyle.alignSelf;
- positionType = cssStyle.positionType;
- flexWrap = cssStyle.flexWrap;
- flex = cssStyle.flex;
- margin = cssStyle.margin;
- padding = cssStyle.padding;
- border = cssStyle.border;
- position[POSITION_TOP] = cssStyle.position[POSITION_TOP];
- position[POSITION_BOTTOM] = cssStyle.position[POSITION_BOTTOM];
- position[POSITION_LEFT] = cssStyle.position[POSITION_LEFT];
- position[POSITION_RIGHT] = cssStyle.position[POSITION_RIGHT];
- dimensions[DIMENSION_WIDTH] = cssStyle.dimensions[DIMENSION_WIDTH];
- dimensions[DIMENSION_HEIGHT] = cssStyle.dimensions[DIMENSION_HEIGHT];
- minWidth = cssStyle.minWidth;
- minHeight = cssStyle.minHeight;
- maxWidth = cssStyle.maxWidth;
- maxHeight = cssStyle.maxHeight;
- }
-
- public String toString() {
- return "direction =" + direction + "\n"
- + "flexDirection =" + flexDirection + "\n"
- + "justifyContent=" + justifyContent + "\n"
- + "alignContent =" + alignContent + "\n"
- + "alignItems =" + alignItems + "\n"
- + "alignSelf =" + alignSelf + "\n"
- + "positionType =" + positionType + "\n"
- + "flexWrap =" + flexWrap + "\n"
- + "flex =" + flex + "\n"
- + "margin =" + margin + "\n"
- + "padding =" + padding + "\n"
- + "border =" + border + "\n"
- + "position[POSITION_TOP] =" + position[POSITION_TOP] + "\n"
- + "position[POSITION_BOTTOM] =" + position[POSITION_BOTTOM] + "\n"
- + "position[POSITION_LEFT] =" + position[POSITION_LEFT] + "\n"
- + "position[POSITION_RIGHT] =" + position[POSITION_RIGHT] + "\n"
- + "position[DIMENSION_WIDTH] =" + position[DIMENSION_WIDTH] + "\n"
- + "position[DIMENSION_HEIGHT] =" + position[DIMENSION_HEIGHT] + "\n"
- + "minWidth =" + minWidth + "\n"
- + "minHeight =" + minHeight + "\n"
- + "maxWidth =" + maxWidth + "\n"
- + "maxHeight =" + maxHeight + "\n";
- }
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSWrap.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSWrap.java b/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSWrap.java
deleted file mode 100755
index 68c8ca4..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CSSWrap.java
+++ /dev/null
@@ -1,12 +0,0 @@
-/**
- * Copyright (c) 2014, Facebook, Inc. All rights reserved. <p/> This source code is licensed under
- * the BSD-style license found in the LICENSE file in the root directory of this source tree. An
- * additional grant of patent rights can be found in the PATENTS file in the same directory.
- */
-package com.taobao.weex.dom.flex;
-
-@Deprecated
-public enum CSSWrap {
- NOWRAP,
- WRAP,
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/flex/CachedCSSLayout.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CachedCSSLayout.java b/android/sdk/src/main/java/com/taobao/weex/dom/flex/CachedCSSLayout.java
deleted file mode 100755
index 99aaa0c..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/flex/CachedCSSLayout.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * Copyright (c) 2014, Facebook, Inc. All rights reserved. <p/> This source code is licensed under
- * the BSD-style license found in the LICENSE file in the root directory of this source tree. An
- * additional grant of patent rights can be found in the PATENTS file in the same directory.
- */
-package com.taobao.weex.dom.flex;
-
-/**
- * CSSLayout with additional information about the conditions under which it was generated.
- * {@link #requestedWidth} and {@link #requestedHeight} are the width and height the parent set on
- * this node before calling layout visited us.
- */
-@Deprecated
-public class CachedCSSLayout extends CSSLayout {
-
- public float requestedWidth = CSSConstants.UNDEFINED;
- public float requestedHeight = CSSConstants.UNDEFINED;
- public float parentMaxWidth = CSSConstants.UNDEFINED;
-}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d44f9618/android/sdk/src/main/java/com/taobao/weex/dom/flex/FloatUtil.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/flex/FloatUtil.java b/android/sdk/src/main/java/com/taobao/weex/dom/flex/FloatUtil.java
deleted file mode 100755
index 4dbfeba..0000000
--- a/android/sdk/src/main/java/com/taobao/weex/dom/flex/FloatUtil.java
+++ /dev/null
@@ -1,19 +0,0 @@
-/**
- * Copyright (c) 2014, Facebook, Inc. All rights reserved. <p/> This source code is licensed under
- * the BSD-style license found in the LICENSE file in the root directory of this source tree. An
- * additional grant of patent rights can be found in the PATENTS file in the same directory.
- */
-package com.taobao.weex.dom.flex;
-
-@Deprecated
-public class FloatUtil {
-
- private static final float EPSILON = .00001f;
-
- public static boolean floatsEqual(float f1, float f2) {
- if (Float.isNaN(f1) || Float.isNaN(f2)) {
- return Float.isNaN(f1) && Float.isNaN(f2);
- }
- return Math.abs(f2 - f1) < EPSILON;
- }
-}