refactor 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/2826a474
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/2826a474
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/2826a474

Branch: refs/heads/0.16-dev
Commit: 2826a47496e78cf7c8d3419612b32af2a9d45117
Parents: 3dc6ac7
Author: jianbai.gbj <jianbai....@alibaba-inc.com>
Authored: Thu Sep 14 12:03:54 2017 +0800
Committer: jianbai.gbj <jianbai....@alibaba-inc.com>
Committed: Thu Sep 14 12:03:54 2017 +0800

----------------------------------------------------------------------
 .../ui/component/list/RecyclerTransform.java    | 71 ++++++++++++++++++++
 .../list/template/WXRecyclerTemplateList.java   | 59 +---------------
 2 files changed, 74 insertions(+), 56 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2826a474/android/sdk/src/main/java/com/taobao/weex/ui/component/list/RecyclerTransform.java
----------------------------------------------------------------------
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/RecyclerTransform.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/RecyclerTransform.java
new file mode 100644
index 0000000..166cffe
--- /dev/null
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/RecyclerTransform.java
@@ -0,0 +1,71 @@
+package com.taobao.weex.ui.component.list;
+
+import android.support.v7.widget.RecyclerView;
+
+import com.taobao.weex.common.Constants;
+import com.taobao.weex.ui.view.listview.adapter.TransformItemDecoration;
+import com.taobao.weex.utils.WXLogUtils;
+
+import java.util.regex.Matcher;
+import java.util.regex.Pattern;
+
+/**
+ * Created by jianbai.gbj on 2017/9/14.
+ */
+public class RecyclerTransform {
+
+    public static final String TRANSFORM = "transform";
+    private static final Pattern transformPattern = 
Pattern.compile("([a-z]+)\\(([0-9\\.]+),?([0-9\\.]+)?\\)");
+    private static final String TAG = "RecyclerTransform";
+
+    /**
+     * These transform functions are supported:
+     * - `scale(x,y)`: scale item, x and y should be a positive float number.
+     * - `translate(x,y)`: translate item, `x` and `y` shoule be integer 
numbers.
+     * - `opacity(n)`: change the transparency of item, `n` must in `[0,1.0]`.
+     * - `rotate(n)`: rotate item, n is integer number.
+     *
+     * @param raw
+     * @return
+     */
+    public static RecyclerView.ItemDecoration parseTransforms(int orientation, 
String raw) {
+        if (raw == null) {
+            return null;
+        }
+        float scaleX = 0f, scaleY = 0f;
+        int translateX = 0, translateY = 0;
+        float opacity = 0f;
+        int rotate = 0;
+        //public TransformItemDecoration(boolean isVertical,float alpha,int 
translateX,int translateY,int rotation,float scale)
+        Matcher matcher = transformPattern.matcher(raw);
+        while (matcher.find()) {
+            String match = matcher.group();
+            String name = matcher.group(1);
+            try {
+                switch (name) {
+                    case "scale":
+                        scaleX = Float.parseFloat(matcher.group(2));
+                        scaleY = Float.parseFloat(matcher.group(3));
+                        break;
+                    case "translate":
+                        translateX = Integer.parseInt(matcher.group(2));
+                        translateY = Integer.parseInt(matcher.group(3));
+                        break;
+                    case "opacity":
+                        opacity = Float.parseFloat(matcher.group(2));
+                        break;
+                    case "rotate":
+                        rotate = Integer.parseInt(matcher.group(2));
+                        break;
+                    default:
+                        WXLogUtils.e(TAG, "Invaild transform expression:" + 
match);
+                        break;
+                }
+            } catch (NumberFormatException e) {
+                WXLogUtils.e("", e);
+                WXLogUtils.e(TAG, "Invaild transform expression:" + match);
+            }
+        }
+        return new TransformItemDecoration(orientation == 
Constants.Orientation.VERTICAL, opacity, translateX, translateY, rotate, 
scaleX, scaleY);
+    }
+}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2826a474/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
----------------------------------------------------------------------
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
index 826b080..a36b912 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
@@ -65,6 +65,7 @@ import com.taobao.weex.ui.component.WXRefresh;
 import com.taobao.weex.ui.component.WXVContainer;
 import com.taobao.weex.ui.component.binding.Layouts;
 import com.taobao.weex.ui.component.binding.Statements;
+import com.taobao.weex.ui.component.list.RecyclerTransform;
 import com.taobao.weex.ui.component.list.WXCell;
 import com.taobao.weex.ui.view.listview.ExtendedLinearLayoutManager;
 import com.taobao.weex.ui.view.listview.WXRecyclerView;
@@ -94,11 +95,8 @@ import java.util.regex.Pattern;
 @Component(lazyload = false)
 public class WXRecyclerTemplateList extends WXVContainer<BounceRecyclerView> 
implements
         IRecyclerAdapterListener<TemplateViewHolder>, IOnLoadMoreListener, 
Scrollable {
-    public static final String TRANSFORM = "transform";
-    private static final Pattern transformPattern = 
Pattern.compile("([a-z]+)\\(([0-9\\.]+),?([0-9\\.]+)?\\)");
     public static final String LOADMOREOFFSET = "loadmoreoffset";
     private static final String TAG = "WXRecyclerTemplateList";
-
     private WXRecyclerDomObject mDomObject;
     protected int mLayoutType = WXRecyclerView.TYPE_LINEAR_LAYOUT;
     protected int mColumnCount = 1;
@@ -178,9 +176,9 @@ public class WXRecyclerTemplateList extends 
WXVContainer<BounceRecyclerView> imp
     @Override
     protected BounceRecyclerView initComponentHostView(@NonNull Context 
context) {
         final BounceRecyclerView bounceRecyclerView = new 
BounceRecyclerView(context,mLayoutType,mColumnCount,mColumnGap, 
getOrientation());
-        String transforms = (String) getDomObject().getAttrs().get(TRANSFORM);
+        String transforms = (String) 
getDomObject().getAttrs().get(RecyclerTransform.TRANSFORM);
         if (transforms != null) {
-            
bounceRecyclerView.getInnerView().addItemDecoration(parseTransforms(transforms));
+            
bounceRecyclerView.getInnerView().addItemDecoration(RecyclerTransform.parseTransforms(getOrientation(),
 transforms));
         }
         mItemAnimator = bounceRecyclerView.getInnerView().getItemAnimator();
         RecyclerViewBaseAdapter recyclerViewBaseAdapter = new 
RecyclerViewBaseAdapter<>(this);
@@ -304,57 +302,6 @@ public class WXRecyclerTemplateList extends 
WXVContainer<BounceRecyclerView> imp
     }
 
 
-    /**
-     * These transform functions are supported:
-     * - `scale(x,y)`: scale item, x and y should be a positive float number.
-     * - `translate(x,y)`: translate item, `x` and `y` shoule be integer 
numbers.
-     * - `opacity(n)`: change the transparency of item, `n` must in `[0,1.0]`.
-     * - `rotate(n)`: rotate item, n is integer number.
-     *
-     * @param raw
-     * @return
-     */
-    private RecyclerView.ItemDecoration parseTransforms(String raw) {
-        if (raw == null) {
-            return null;
-        }
-        float scaleX = 0f, scaleY = 0f;
-        int translateX = 0, translateY = 0;
-        float opacity = 0f;
-        int rotate = 0;
-        //public TransformItemDecoration(boolean isVertical,float alpha,int 
translateX,int translateY,int rotation,float scale)
-        Matcher matcher = transformPattern.matcher(raw);
-        while (matcher.find()) {
-            String match = matcher.group();
-            String name = matcher.group(1);
-            try {
-                switch (name) {
-                    case "scale":
-                        scaleX = Float.parseFloat(matcher.group(2));
-                        scaleY = Float.parseFloat(matcher.group(3));
-                        break;
-                    case "translate":
-                        translateX = Integer.parseInt(matcher.group(2));
-                        translateY = Integer.parseInt(matcher.group(3));
-                        break;
-                    case "opacity":
-                        opacity = Float.parseFloat(matcher.group(2));
-                        break;
-                    case "rotate":
-                        rotate = Integer.parseInt(matcher.group(2));
-                        break;
-                    default:
-                        WXLogUtils.e(TAG, "Invaild transform expression:" + 
match);
-                        break;
-                }
-            } catch (NumberFormatException e) {
-                WXLogUtils.e("", e);
-                WXLogUtils.e(TAG, "Invaild transform expression:" + match);
-            }
-        }
-        return new TransformItemDecoration(getOrientation() == 
Constants.Orientation.VERTICAL, opacity, translateX, translateY, rotate, 
scaleX, scaleY);
-    }
-
     @Override
     public void bindStickStyle(WXComponent component) {
         WXComponent  template = findParentType(component, WXCell.class);

Reply via email to