You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by cx...@apache.org on 2017/04/11 06:38:32 UTC

[01/18] incubator-weex git commit: * [ios] add icon resource for app

Repository: incubator-weex
Updated Branches:
  refs/heads/0.12-dev ee660b63c -> 1b24005fc


* [ios] add icon resource for app


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

Branch: refs/heads/0.12-dev
Commit: 159e7a54b6a1e28fcd93ca5e9c5afe63525430f5
Parents: ba19f55
Author: acton393 <zh...@gmail.com>
Authored: Thu Mar 30 21:19:51 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Thu Mar 30 21:19:51 2017 +0800

----------------------------------------------------------------------
 .../delete.imageset/Contents.json               |  23 +++++++++++++++++++
 .../Assets.xcassets/delete.imageset/delete.png  | Bin 0 -> 289 bytes
 .../delete.imageset/delete@2x.png               | Bin 0 -> 504 bytes
 .../delete.imageset/delete@3x.png               | Bin 0 -> 690 bytes
 .../scan_history.imageset/Contents.json         |  23 +++++++++++++++++++
 .../scan_history.imageset/history.png           | Bin 0 -> 486 bytes
 .../scan_history.imageset/history@2x.png        | Bin 0 -> 961 bytes
 .../scan_history.imageset/history@3x.png        | Bin 0 -> 1491 bytes
 8 files changed, 46 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/159e7a54/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/Contents.json
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/Contents.json b/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/Contents.json
new file mode 100644
index 0000000..1231572
--- /dev/null
+++ b/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "delete.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "delete@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "delete@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/159e7a54/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete.png
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete.png b/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete.png
new file mode 100644
index 0000000..d7cc20a
Binary files /dev/null and b/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete.png differ

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/159e7a54/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@2x.png
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@2x.png b/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@2x.png
new file mode 100644
index 0000000..63aa9cb
Binary files /dev/null and b/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@2x.png differ

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/159e7a54/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@3x.png
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@3x.png b/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@3x.png
new file mode 100644
index 0000000..5963f9c
Binary files /dev/null and b/ios/playground/WeexDemo/Assets.xcassets/delete.imageset/delete@3x.png differ

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/159e7a54/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/Contents.json
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/Contents.json b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/Contents.json
new file mode 100644
index 0000000..e972e4e
--- /dev/null
+++ b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/Contents.json
@@ -0,0 +1,23 @@
+{
+  "images" : [
+    {
+      "idiom" : "universal",
+      "filename" : "history.png",
+      "scale" : "1x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "history@2x.png",
+      "scale" : "2x"
+    },
+    {
+      "idiom" : "universal",
+      "filename" : "history@3x.png",
+      "scale" : "3x"
+    }
+  ],
+  "info" : {
+    "version" : 1,
+    "author" : "xcode"
+  }
+}
\ No newline at end of file

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/159e7a54/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history.png
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history.png b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history.png
new file mode 100644
index 0000000..c6ace4a
Binary files /dev/null and b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history.png differ

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/159e7a54/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@2x.png
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@2x.png b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@2x.png
new file mode 100644
index 0000000..ad62096
Binary files /dev/null and b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@2x.png differ

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/159e7a54/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@3x.png
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@3x.png b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@3x.png
new file mode 100644
index 0000000..fe90b7a
Binary files /dev/null and b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@3x.png differ


[05/18] incubator-weex git commit: * [ios] update image resource size

Posted by cx...@apache.org.
* [ios] update image resource size


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

Branch: refs/heads/0.12-dev
Commit: 1ac185e1da0997837fff502092b7e7d4ce7fa55a
Parents: f6759e8
Author: acton393 <zh...@gmail.com>
Authored: Fri Mar 31 11:24:51 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Fri Mar 31 11:24:51 2017 +0800

----------------------------------------------------------------------
 .../scan_history.imageset/history.png            | Bin 486 -> 546 bytes
 .../scan_history.imageset/history@2x.png         | Bin 961 -> 1037 bytes
 .../scan_history.imageset/history@3x.png         | Bin 1491 -> 1628 bytes
 3 files changed, 0 insertions(+), 0 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1ac185e1/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history.png
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history.png b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history.png
index c6ace4a..48aac03 100644
Binary files a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history.png and b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history.png differ

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1ac185e1/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@2x.png
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@2x.png b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@2x.png
index ad62096..dd94cb7 100644
Binary files a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@2x.png and b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@2x.png differ

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1ac185e1/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@3x.png
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@3x.png b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@3x.png
index fe90b7a..2d5f2b4 100644
Binary files a/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@3x.png and b/ios/playground/WeexDemo/Assets.xcassets/scan_history.imageset/history@3x.png differ


[08/18] incubator-weex git commit: Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev

Posted by cx...@apache.org.
Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev


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

Branch: refs/heads/0.12-dev
Commit: cf2d9b3c1b36078872c7f981129899b3cfaae1a4
Parents: c7b3954 d8c36f4
Author: acton393 <zh...@gmail.com>
Authored: Fri Mar 31 14:17:46 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Fri Mar 31 14:17:46 2017 +0800

----------------------------------------------------------------------
 .../src/main/java/com/alibaba/weex/Utility.java | 277 +++++++++++++++++++
 .../java/com/alibaba/weex/WXPageActivity.java   |  58 ++++
 .../app/src/main/res/layout/id_stub.xml         |  57 ++++
 package.json                                    |   2 +-
 test/ci-funcs.sh                                |   2 +
 test/pages/image-onload.vue                     |   2 +-
 test/pages/index.vue                            |  10 +-
 test/scripts/index.test.js                      |  14 +-
 8 files changed, 408 insertions(+), 14 deletions(-)
----------------------------------------------------------------------



[11/18] incubator-weex git commit: Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev

Posted by cx...@apache.org.
Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev


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

Branch: refs/heads/0.12-dev
Commit: e2252c50980bba4aa856fd5d76573ca2f12f96fa
Parents: 5bf791a d14aeb2
Author: acton393 <zh...@gmail.com>
Authored: Thu Apr 6 17:40:12 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Thu Apr 6 17:40:12 2017 +0800

----------------------------------------------------------------------
 android/sdk/assets/main.js                           | 14 +++++++-------
 .../src/main/java/com/taobao/weex/WXSDKInstance.java |  5 +----
 build/config.js                                      |  8 ++++++--
 build/karma.vue.conf.js                              | 15 ++++++++++-----
 build/webpack.examples.config.js                     |  4 ++--
 doc/source/cn/references/modules/dom.md              |  3 ++-
 doc/source/references/modules/dom.md                 |  3 ++-
 examples/module/componentRect.we                     |  4 ++--
 html5/frameworks/legacy/static/life.js               |  8 +++++---
 ios/sdk/WeexSDK/Resources/main.js                    | 14 +++++++-------
 package.json                                         |  9 ++++++---
 11 files changed, 50 insertions(+), 37 deletions(-)
----------------------------------------------------------------------



[04/18] incubator-weex git commit: * [ios] convert value to long format

Posted by cx...@apache.org.
* [ios] convert value to long format


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

Branch: refs/heads/0.12-dev
Commit: f6759e8a6537329176a3e37e9a3672d740403578
Parents: 58afeca
Author: acton393 <zh...@gmail.com>
Authored: Fri Mar 31 11:07:36 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Fri Mar 31 11:07:36 2017 +0800

----------------------------------------------------------------------
 ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/f6759e8a/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m b/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m
index 4ca306a..5df630d 100644
--- a/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m
+++ b/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m
@@ -61,7 +61,7 @@
     UILongPressGestureRecognizer * longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
     longPressGesture.minimumPressDuration = 1.0;
     [cell addGestureRecognizer:longPressGesture];
-    NSMutableAttributedString * attributeString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%d %@",indexPath.row+1,[_scanner_history objectAtIndex:indexPath.row]]];
+    NSMutableAttributedString * attributeString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%ld %@",(long)indexPath.row+1,[_scanner_history objectAtIndex:indexPath.row]]];
     [attributeString addAttribute:(NSString*)NSForegroundColorAttributeName value:(id)[UIColor redColor].CGColor range:NSMakeRange(0, 1)];
     NSDictionary<NSString*, id> *attributes = @{
                                                NSForegroundColorAttributeName:[UIColor redColor],


[09/18] incubator-weex git commit: Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev

Posted by cx...@apache.org.
Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev


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

Branch: refs/heads/0.12-dev
Commit: 9dd78d4a311d37c3f8ec322b822f14653275eb2c
Parents: cf2d9b3 b74c338
Author: acton393 <zh...@gmail.com>
Authored: Fri Mar 31 17:20:19 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Fri Mar 31 17:20:19 2017 +0800

----------------------------------------------------------------------
 .eslintrc                                       |   10 +
 .flowconfig                                     |   16 +
 bin/dist-vue.sh                                 |   42 +
 build/config.js                                 |    9 +-
 build/webpack.examples.web.config.js            |   24 +-
 dangerfile.js                                   |   28 +
 examples/vue/animation.vue                      |    4 +-
 examples/vue/components/countdown.vue           |    2 +-
 examples/vue/components/image.vue               |    2 +-
 examples/vue/components/list.vue                |   19 +-
 examples/vue/components/marquee.vue             |    3 +-
 examples/vue/components/navigator.vue           |    7 +-
 examples/vue/components/scroller.vue            |   34 +-
 examples/vue/components/slider.vue              |   22 +-
 examples/vue/components/text.vue                |    2 +-
 examples/vue/components/textarea.vue            |   57 +
 examples/vue/components/video.vue               |    2 +-
 examples/vue/components/web.vue                 |    2 +-
 examples/vue/iconfont.vue                       |    2 +-
 examples/vue/include/base-url.js                |    4 +-
 examples/vue/include/button.vue                 |    2 +-
 examples/vue/include/countdown.vue              |    2 +-
 examples/vue/include/example-list-item.vue      |    2 +-
 examples/vue/include/example-list.vue           |    2 +-
 examples/vue/include/h1.vue                     |    2 +-
 examples/vue/include/h2.vue                     |    2 +-
 examples/vue/include/h3.vue                     |    2 +-
 examples/vue/include/hn.vue                     |    2 +-
 examples/vue/include/list-item.vue              |    2 +-
 examples/vue/include/marquee.vue                |    4 +-
 examples/vue/include/navbar.vue                 |    2 +-
 examples/vue/include/navpage.vue                |    2 +-
 examples/vue/include/panel.vue                  |   10 +-
 examples/vue/include/slider-item.vue            |    2 +-
 examples/vue/include/slider-page.vue            |    5 +-
 examples/vue/include/tabbar.vue                 |    6 +-
 examples/vue/include/tabitem.vue                |    2 +-
 examples/vue/include/tip.vue                    |    2 +-
 examples/vue/include/wxc-list-item.vue          |    2 +-
 examples/vue/modules/stream.vue                 |    2 +-
 examples/vue/showcase/calculator.vue            |    2 +-
 examples/vue/showcase/include/banners.vue       |    4 +-
 examples/vue/showcase/include/brand.vue         |    2 +-
 examples/vue/showcase/include/category.vue      |    8 +-
 examples/vue/showcase/include/coupon.vue        |    2 +-
 examples/vue/showcase/include/goods.vue         |    4 +-
 examples/vue/showcase/include/headlines.vue     |    2 +-
 examples/vue/showcase/include/match.vue         |    4 +-
 examples/vue/showcase/include/resource.vue      |    2 +-
 examples/vue/showcase/include/scene.vue         |    4 +-
 examples/vue/showcase/itemlist.vue              |  246 +-
 examples/vue/showcase/new-fashion.vue           |    2 +-
 examples/vue/style/index.vue                    |    2 +-
 examples/vue/style/style-box.vue                |    2 +-
 examples/vue/style/style-flex.vue               |    2 +-
 examples/vue/style/style-item.vue               |    2 +-
 examples/vue/syntax/hello-world-3.vue           |    4 +-
 examples/vue/syntax/hello-world-4.vue           |    4 +-
 examples/vue/syntax/hello-world-5.vue           |    4 +-
 examples/vue/syntax/hello-world.vue             |    4 +-
 examples/vue/syntax/include/btn.vue             |    2 +-
 examples/vue/syntax/include/sub.vue             |    2 +-
 examples/vue/syntax/script-component.vue        |    2 +-
 examples/vue/syntax/script-data.vue             |    2 +-
 examples/vue/syntax/script-events.vue           |    4 +-
 examples/vue/syntax/script-instance.vue         |    2 +-
 examples/vue/syntax/script-lifecycle.vue        |    4 +-
 examples/vue/syntax/script-module.vue           |    2 +-
 examples/vue/syntax/script-options.vue          |    2 +-
 examples/vue/syntax/template-class.vue          |    2 +-
 examples/vue/syntax/template-event.vue          |    2 +-
 examples/vue/syntax/template-if.vue             |    2 +-
 examples/vue/syntax/template-repeat-update.vue  |    2 +-
 examples/vue/syntax/template-repeat.vue         |    8 +-
 flow-typed/npm/animationjs_vx.x.x.js            |   60 +
 flow-typed/npm/babel-core_vx.x.x.js             |  227 +
 flow-typed/npm/babel-eslint_vx.x.x.js           |   73 +
 flow-typed/npm/babel-istanbul_vx.x.x.js         |  353 +
 flow-typed/npm/babel-loader_vx.x.x.js           |   67 +
 flow-typed/npm/babel-plugin-coverage_vx.x.x.js  |   32 +
 flow-typed/npm/babel-preset-es2015_vx.x.x.js    |   32 +
 flow-typed/npm/babel-runtime_vx.x.x.js          | 1691 ++++
 flow-typed/npm/chai_v3.5.x.js                   |  212 +
 flow-typed/npm/chromedriver_vx.x.x.js           |   46 +
 flow-typed/npm/core-js_vx.x.x.js                | 9390 ++++++++++++++++++
 flow-typed/npm/cross-spawn_vx.x.x.js            |   59 +
 flow-typed/npm/css-loader_vx.x.x.js             |   87 +
 flow-typed/npm/cubicbezier_vx.x.x.js            |  109 +
 flow-typed/npm/danger_vx.x.x.js                 |  284 +
 flow-typed/npm/envd_vx.x.x.js                   |  109 +
 flow-typed/npm/eslint-plugin-flowtype_vx.x.x.js |  319 +
 flow-typed/npm/eslint_vx.x.x.js                 | 1978 ++++
 flow-typed/npm/flow-bin_v0.x.x.js               |    6 +
 flow-typed/npm/fs-extra_vx.x.x.js               |  221 +
 flow-typed/npm/http-server_vx.x.x.js            |   39 +
 flow-typed/npm/httpurl_vx.x.x.js                |   67 +
 flow-typed/npm/inline-style-prefixer_vx.x.x.js  |  347 +
 flow-typed/npm/json-loader_vx.x.x.js            |   33 +
 flow-typed/npm/karma-coverage_vx.x.x.js         |   81 +
 flow-typed/npm/karma-mocha-reporter_vx.x.x.js   |   38 +
 flow-typed/npm/karma-mocha_vx.x.x.js            |   53 +
 .../npm/karma-phantomjs-launcher_vx.x.x.js      |   59 +
 flow-typed/npm/karma-sourcemap-loader_vx.x.x.js |   33 +
 flow-typed/npm/karma-webpack_vx.x.x.js          |   45 +
 flow-typed/npm/karma_vx.x.x.js                  |  445 +
 flow-typed/npm/lazyimg_vx.x.x.js                |   32 +
 flow-typed/npm/macaca-cli_vx.x.x.js             |  123 +
 flow-typed/npm/macaca-utils_vx.x.x.js           |   39 +
 flow-typed/npm/mocha_v2.4.x.js                  |   25 +
 flow-typed/npm/modals_vx.x.x.js                 |   81 +
 flow-typed/npm/nightwatch_vx.x.x.js             |  633 ++
 flow-typed/npm/phantomjs-prebuilt_vx.x.x.js     |  389 +
 flow-typed/npm/query-string_vx.x.x.js           |   33 +
 flow-typed/npm/reify_vx.x.x.js                  |   95 +
 flow-typed/npm/rollup-plugin-buble_vx.x.x.js    |   39 +
 flow-typed/npm/rollup-plugin-commonjs_vx.x.x.js |   81 +
 flow-typed/npm/rollup-plugin-eslint_vx.x.x.js   |   39 +
 .../rollup-plugin-flow-no-whitespace_vx.x.x.js  |   33 +
 flow-typed/npm/rollup-plugin-flow_vx.x.x.js     |   33 +
 flow-typed/npm/rollup-plugin-json_vx.x.x.js     |   46 +
 .../npm/rollup-plugin-node-resolve_vx.x.x.js    |   53 +
 flow-typed/npm/rollup-plugin-postcss_vx.x.x.js  |   38 +
 flow-typed/npm/rollup-plugin-replace_vx.x.x.js  |   46 +
 flow-typed/npm/rollup-plugin-uglify_vx.x.x.js   |   32 +
 flow-typed/npm/rollup-watch_vx.x.x.js           |   67 +
 flow-typed/npm/rollup_vx.x.x.js                 |   46 +
 flow-typed/npm/scroll-to_vx.x.x.js              |   33 +
 flow-typed/npm/selenium-server_vx.x.x.js        |   39 +
 flow-typed/npm/semver_v5.1.x.js                 |   81 +
 flow-typed/npm/serve_vx.x.x.js                  |   18 +
 flow-typed/npm/sinon-chai_vx.x.x.js             |   32 +
 flow-typed/npm/sinon_vx.x.x.js                  |  263 +
 flow-typed/npm/uglify-js_vx.x.x.js              |  116 +
 flow-typed/npm/vue-loader_vx.x.x.js             |  122 +
 flow-typed/npm/vue-template-compiler_vx.x.x.js  |   38 +
 flow-typed/npm/vue_vx.x.x.js                    | 1089 ++
 flow-typed/npm/webdriver-client_vx.x.x.js       |  129 +
 flow-typed/npm/webpack_vx.x.x.js                | 1523 +++
 flow-typed/npm/weex-components_vx.x.x.js        |   33 +
 flow-typed/npm/weex-loader_vx.x.x.js            |  108 +
 flow-typed/npm/weex-picker_vx.x.x.js            |   81 +
 flow-typed/npm/weex-rax-framework_vx.x.x.js     |  165 +
 flow-typed/npm/weex-styler_vx.x.x.js            |   66 +
 flow-typed/npm/weex-vdom-tester_vx.x.x.js       |  108 +
 flow-typed/npm/weex-vue-framework_vx.x.x.js     |   33 +
 flow-typed/npm/weex-wd_vx.x.x.js                |   38 +
 flow-typed/npm/wwp_vx.x.x.js                    |   39 +
 flow-typed/npm/xml2map_vx.x.x.js                |   45 +
 html5/render/browser/extend/api/stream.js       |    2 +-
 html5/render/browser/extend/components/input.js |   33 +
 .../browser/extend/components/textarea.js       |   32 +
 html5/render/browser/utils/index.js             |    9 +
 html5/render/vue/README.md                      |   51 +-
 html5/render/vue/components/a.js                |   15 +-
 html5/render/vue/components/div.js              |   15 +-
 html5/render/vue/components/image.js            |   81 +-
 html5/render/vue/components/index.js            |    9 +-
 html5/render/vue/components/input.js            |   31 +-
 .../render/vue/components/scrollable/header.js  |   40 +-
 .../vue/components/scrollable/list/cell.js      |   15 +-
 .../vue/components/scrollable/list/index.js     |   32 +-
 .../vue/components/scrollable/list/listMixin.js |  118 +-
 .../components/scrollable/loading-indicator.js  |    3 +-
 .../render/vue/components/scrollable/loading.js |   55 +-
 .../render/vue/components/scrollable/refresh.js |   64 +-
 .../vue/components/scrollable/scroller.js       |   30 +-
 .../render/vue/components/scrollable/shared.js  |   22 -
 html5/render/vue/components/slider/index.js     |   40 +-
 html5/render/vue/components/slider/indicator.js |  115 +-
 .../render/vue/components/slider/slideMixin.js  |  141 +-
 html5/render/vue/components/switch.js           |   11 +-
 html5/render/vue/components/text.js             |   45 +-
 html5/render/vue/components/textarea.js         |   29 +-
 html5/render/vue/components/video.js            |   14 +-
 html5/render/vue/components/web.js              |   19 +-
 html5/render/vue/env/WXEnvironment.js           |   39 -
 html5/render/vue/env/index.js                   |   17 +-
 html5/render/vue/env/viewport.js                |   56 +-
 html5/render/vue/env/weex.js                    |   30 +-
 html5/render/vue/env/wx-env.js                  |   48 +
 html5/render/vue/index.js                       |   64 +-
 html5/render/vue/mixins/base.js                 |  103 +-
 html5/render/vue/mixins/event.js                |   76 -
 html5/render/vue/mixins/index.js                |    8 +-
 html5/render/vue/mixins/input-common.js         |   47 +
 html5/render/vue/mixins/scrollable.js           |  110 +
 html5/render/vue/mixins/style.js                |  265 +-
 html5/render/vue/modules/dom.js                 |   69 +-
 html5/render/vue/modules/index.js               |   42 +-
 html5/render/vue/styles/components.css          |  225 +-
 html5/render/vue/styles/reset.css               |   44 +-
 html5/render/vue/utils/component.js             |   83 +-
 html5/render/vue/utils/event.js                 |   91 +-
 html5/render/vue/utils/func.js                  |   81 +-
 html5/render/vue/utils/index.js                 |   55 +-
 html5/render/vue/utils/lazyload.js              |  102 +
 html5/render/vue/utils/perf.js                  |  170 +
 html5/render/vue/utils/style.js                 |   21 +
 html5/render/vue/utils/type.js                  |   20 +
 index.html                                      |    3 +-
 .../Recycler/WXRecyclerDataController.m         |    2 +-
 .../Component/WXComponent+GradientColor.h       |    3 -
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.m   |   12 +-
 ios/sdk/WeexSDK/Sources/WeexSDK.h               |    1 +
 package.json                                    |   20 +-
 packages/weex-vue-render/README.md              |   51 +-
 packages/weex-vue-render/package.json           |   13 +-
 test/ci-funcs.sh                                |    2 +
 vue.html                                        |   53 +-
 209 files changed, 25348 insertions(+), 1238 deletions(-)
----------------------------------------------------------------------



[06/18] incubator-weex git commit: * [ios] add shortcut for scanner history

Posted by cx...@apache.org.
* [ios] add shortcut for scanner history


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

Branch: refs/heads/0.12-dev
Commit: cf9fcf49690c0c6295e472cc2fa979c7fa0c6766
Parents: 1ac185e
Author: acton393 <zh...@gmail.com>
Authored: Fri Mar 31 11:29:05 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Fri Mar 31 11:29:05 2017 +0800

----------------------------------------------------------------------
 ios/playground/WeexDemo/AppDelegate.m |  5 +++++
 ios/playground/WeexDemo/DemoDefine.h  |  1 +
 ios/playground/WeexDemo/Info.plist    | 12 +++++++++++-
 3 files changed, 17 insertions(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cf9fcf49/ios/playground/WeexDemo/AppDelegate.m
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/AppDelegate.m b/ios/playground/WeexDemo/AppDelegate.m
index 4cb55de..d02a04c 100644
--- a/ios/playground/WeexDemo/AppDelegate.m
+++ b/ios/playground/WeexDemo/AppDelegate.m
@@ -15,6 +15,7 @@
 #import "WXImgLoaderDefaultImpl.h"
 #import "DemoDefine.h"
 #import "WXScannerVC.h"
+#import "WXScannerHistoryVC.h"
 #import "WXSyncTestModule.h"
 #import "UIView+UIThreadCheck.h"
 #import <WeexSDK/WeexSDK.h>
@@ -55,6 +56,10 @@
         WXScannerVC * scanViewController = [[WXScannerVC alloc] init];
         [(WXRootViewController*)self.window.rootViewController pushViewController:scanViewController animated:YES];
     }
+    if ([shortcutItem.type isEqualToString:QRSCAN_HISTORY]) {
+        WXScannerHistoryVC *scannerHistoryVC = [WXScannerHistoryVC new];
+        [(WXRootViewController*)self.window.rootViewController pushViewController:scannerHistoryVC animated:YES];
+    }
 }
 
 - (void)applicationDidEnterBackground:(UIApplication *)application

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cf9fcf49/ios/playground/WeexDemo/DemoDefine.h
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/DemoDefine.h b/ios/playground/WeexDemo/DemoDefine.h
index 2c0be7c..9f3bdf9 100644
--- a/ios/playground/WeexDemo/DemoDefine.h
+++ b/ios/playground/WeexDemo/DemoDefine.h
@@ -25,5 +25,6 @@
 #define UITEST_HOME_URL @"http://test?_wx_tpl=http://localhost:12580/test/build/TC__Home.js"
 
 #define QRSCAN  @"com.taobao.WeexDemo.scan"
+#define QRSCAN_HISTORY  @"com.taobao.WeexDemo.scan.history"
 #define WEEX_COLOR [UIColor colorWithRed:0.27 green:0.71 blue:0.94 alpha:1]
 #define WX_SCANNER_HISTORY @"wx_scanner_history"

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/cf9fcf49/ios/playground/WeexDemo/Info.plist
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Info.plist b/ios/playground/WeexDemo/Info.plist
index a60368b..12ee186 100644
--- a/ios/playground/WeexDemo/Info.plist
+++ b/ios/playground/WeexDemo/Info.plist
@@ -54,10 +54,20 @@
 	<key>UIApplicationShortcutItems</key>
 	<array>
 		<dict>
+			<key>UIApplicationShortcutItemTitle</key>
+			<string>Scan history</string>
+			<key>UIApplicationShortcutItemType</key>
+			<string>com.taobao.WeexDemo.scan.history</string>
+			<key>UIApplicationShortcutItemSubtitle</key>
+			<string>history</string>
+			<key>UIApplicationShortcutItemIconFile</key>
+			<string>scan_history</string>
+		</dict>
+		<dict>
 			<key>UIApplicationShortcutItemIconFile</key>
 			<string>scan</string>
 			<key>UIApplicationShortcutItemSubtitle</key>
-			<string>scan your QR code</string>
+			<string>scan QR code</string>
 			<key>UIApplicationShortcutItemTitle</key>
 			<string>Scan QR</string>
 			<key>UIApplicationShortcutItemType</key>


[16/18] incubator-weex git commit: * [ios] ignore document comment warning

Posted by cx...@apache.org.
* [ios] ignore document comment warning


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

Branch: refs/heads/0.12-dev
Commit: 9f17ff234e9e603d2d616b28751c31d84b77e95e
Parents: c00e12e
Author: acton393 <zh...@gmail.com>
Authored: Mon Apr 10 14:33:41 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Mon Apr 10 14:33:41 2017 +0800

----------------------------------------------------------------------
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj | 2 ++
 1 file changed, 2 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9f17ff23/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
----------------------------------------------------------------------
diff --git a/ios/sdk/WeexSDK.xcodeproj/project.pbxproj b/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
index fd4eac8..d211f5f 100644
--- a/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
+++ b/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
@@ -1860,6 +1860,7 @@
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SKIP_INSTALL = YES;
 				VALID_ARCHS = "arm64 armv7 x86_64 i386";
+				WARNING_CFLAGS = "-Wno-documentation";
 			};
 			name = Debug;
 		};
@@ -1903,6 +1904,7 @@
 				PRODUCT_NAME = "$(TARGET_NAME)";
 				SKIP_INSTALL = YES;
 				VALID_ARCHS = "arm64 armv7 x86_64 i386";
+				WARNING_CFLAGS = "-Wno-documentation";
 			};
 			name = Release;
 		};


[02/18] incubator-weex git commit: * [ios] add project settings for new files

Posted by cx...@apache.org.
* [ios] add project settings for new files


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

Branch: refs/heads/0.12-dev
Commit: ba27a81f5350cf8a3b81a68a3a3cc5839284ba34
Parents: 159e7a5
Author: acton393 <zh...@gmail.com>
Authored: Thu Mar 30 21:22:02 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Thu Mar 30 21:22:02 2017 +0800

----------------------------------------------------------------------
 ios/playground/WeexDemo.xcodeproj/project.pbxproj | 6 ++++++
 1 file changed, 6 insertions(+)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ba27a81f/ios/playground/WeexDemo.xcodeproj/project.pbxproj
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo.xcodeproj/project.pbxproj b/ios/playground/WeexDemo.xcodeproj/project.pbxproj
index 5fb8ccb..b613286 100644
--- a/ios/playground/WeexDemo.xcodeproj/project.pbxproj
+++ b/ios/playground/WeexDemo.xcodeproj/project.pbxproj
@@ -30,6 +30,7 @@
 		846FC8DB1E1B853600949E7D /* WXATViewHierarchyPlugin.m in Sources */ = {isa = PBXBuildFile; fileRef = DCABAFF21D029685001C8592 /* WXATViewHierarchyPlugin.m */; };
 		84D7CAC71CE3266C00D48D46 /* libsqlite3.0.tbd in Frameworks */ = {isa = PBXBuildFile; fileRef = 7475ACA01CD8444A0044E96C /* libsqlite3.0.tbd */; };
 		8A0B5EFFF75BF82EA481983D /* libPods-WeexUITestDemo.a in Frameworks */ = {isa = PBXBuildFile; fileRef = E48C20F443AA337D1FE97622 /* libPods-WeexUITestDemo.a */; };
+		DC5B53691E8CED9400E02125 /* WXScannerHistoryVC.m in Sources */ = {isa = PBXBuildFile; fileRef = DC5B53681E8CED9400E02125 /* WXScannerHistoryVC.m */; };
 		DC5E503E1D0D97130059F0EB /* weex.png in Resources */ = {isa = PBXBuildFile; fileRef = DC5E503C1D0D97130059F0EB /* weex.png */; };
 		DC5E503F1D0D97130059F0EB /* weex@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DC5E503D1D0D97130059F0EB /* weex@2x.png */; };
 		DC65C4FA1CEB032F00B2F84F /* bundlejs in Resources */ = {isa = PBXBuildFile; fileRef = DC65C4F91CEB032F00B2F84F /* bundlejs */; };
@@ -87,6 +88,8 @@
 		775BEE9A1C1E8ECC008D1629 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
 		84361D751CA10F8E00F43825 /* WeexUITestDemo.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = WeexUITestDemo.app; sourceTree = BUILT_PRODUCTS_DIR; };
 		9420131417A731ED089B0814 /* Pods-WeexDemo.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-WeexDemo.release.xcconfig"; path = "Pods/Target Support Files/Pods-WeexDemo/Pods-WeexDemo.release.xcconfig"; sourceTree = "<group>"; };
+		DC5B53671E8CED9400E02125 /* WXScannerHistoryVC.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = WXScannerHistoryVC.h; path = Scanner/WXScannerHistoryVC.h; sourceTree = "<group>"; };
+		DC5B53681E8CED9400E02125 /* WXScannerHistoryVC.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = WXScannerHistoryVC.m; path = Scanner/WXScannerHistoryVC.m; sourceTree = "<group>"; };
 		DC5E503C1D0D97130059F0EB /* weex.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = weex.png; sourceTree = "<group>"; };
 		DC5E503D1D0D97130059F0EB /* weex@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "weex@2x.png"; sourceTree = "<group>"; };
 		DC65C4F91CEB032F00B2F84F /* bundlejs */ = {isa = PBXFileReference; lastKnownFileType = folder; path = bundlejs; sourceTree = "<group>"; };
@@ -140,6 +143,8 @@
 			children = (
 				2AE88A2A1C8544E6003329DE /* WXScannerVC.h */,
 				2AE88A2B1C8544E6003329DE /* WXScannerVC.m */,
+				DC5B53671E8CED9400E02125 /* WXScannerHistoryVC.h */,
+				DC5B53681E8CED9400E02125 /* WXScannerHistoryVC.m */,
 			);
 			name = scanner;
 			sourceTree = "<group>";
@@ -570,6 +575,7 @@
 				DCABAFF31D029685001C8592 /* WXATLoggerPlugin.m in Sources */,
 				2AE88A2C1C8544E6003329DE /* WXScannerVC.m in Sources */,
 				775BEE861C1E8ECC008D1629 /* WXDemoViewController.m in Sources */,
+				DC5B53691E8CED9400E02125 /* WXScannerHistoryVC.m in Sources */,
 				74CC79EB1C2B9E4700829368 /* UIViewController+WXDemoNaviBar.m in Sources */,
 				DCABB0011D02975E001C8592 /* WXEventModule.m in Sources */,
 				7478481E1E0CD4910044500D /* WXSyncTestModule.m in Sources */,


[18/18] incubator-weex git commit: Merge branch '0.12-dev' of https://git-wip-us.apache.org/repos/asf/incubator-weex into 0.12-dev

Posted by cx...@apache.org.
Merge branch '0.12-dev' of https://git-wip-us.apache.org/repos/asf/incubator-weex into 0.12-dev


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

Branch: refs/heads/0.12-dev
Commit: 1b24005fcaa17a90bda1f64e8a41a965b2102fd6
Parents: b2e7a7a ee660b6
Author: cxfeng <cx...@apache.org>
Authored: Tue Apr 11 14:37:50 2017 +0800
Committer: cxfeng <cx...@apache.org>
Committed: Tue Apr 11 14:37:50 2017 +0800

----------------------------------------------------------------------
 .rat-excludes                                   |  11 +
 NOTICE                                          |   7 +-
 .../alibaba/weex/commons/ApplicationTest.java   | 222 +-----
 .../weex/commons/AbstractWeexActivity.java      | 222 +-----
 .../weex/commons/SimpleWeexActivity.java        | 220 +-----
 .../weex/commons/WXAnalyzerDelegate.java        | 220 +-----
 .../alibaba/weex/commons/adapter/BlurTool.java  | 220 +-----
 .../commons/adapter/BlurTransformation.java     | 222 +-----
 .../adapter/DefaultWebSocketAdapter.java        | 220 +-----
 .../adapter/DefaultWebSocketAdapterFactory.java | 220 +-----
 .../commons/adapter/FrescoImageAdapter.java     | 220 +-----
 .../commons/adapter/FrescoImageComponent.java   | 220 +-----
 .../weex/commons/adapter/FrescoImageView.java   | 220 +-----
 .../weex/commons/adapter/ImageAdapter.java      | 220 +-----
 .../commons/adapter/JSExceptionAdapter.java     | 220 +-----
 .../alibaba/weex/commons/util/AssertUtil.java   | 220 +-----
 .../alibaba/weex/commons/util/ScreenUtil.java   | 220 +-----
 .../java/com/alibaba/weex/ApplicationTest.java  |  20 +-
 .../com/alibaba/weex/WeappJsBaseTestCase.java   |  18 +
 .../benchmark/BenchmarkActivityTestRule.java    | 218 +-----
 .../alibaba/weex/benchmark/BenchmarkTest.java   | 218 +-----
 .../com/alibaba/weex/benchmark/BoxPlot.java     | 218 +-----
 .../java/com/alibaba/weex/benchmark/Repeat.java | 218 +-----
 .../com/alibaba/weex/benchmark/RepeatRule.java  | 218 +-----
 .../weex/benchmark/WeexNativeCompareTest.java   | 218 +-----
 .../java/com/alibaba/weex/util/Falcon.java      |  18 +
 .../java/com/alibaba/weex/util/ScreenShot.java  |  18 +
 .../com/alibaba/weex/util/SdCardHelper.java     |  18 +
 .../java/com/alibaba/weex/util/TestFlow.java    |  18 +
 .../java/com/alibaba/weex/util/ViewUtil.java    |  18 +
 .../com/alibaba/weex/BenchmarkActivity.java     | 218 +-----
 .../java/com/alibaba/weex/IndexActivity.java    | 220 +-----
 .../java/com/alibaba/weex/SplashActivity.java   | 220 +-----
 .../src/main/java/com/alibaba/weex/Utility.java | 220 +-----
 .../java/com/alibaba/weex/WXApplication.java    | 220 +-----
 .../java/com/alibaba/weex/WXBaseActivity.java   | 220 +-----
 .../java/com/alibaba/weex/WXDebugActivity.java  | 220 +-----
 .../java/com/alibaba/weex/WXPageActivity.java   | 220 +-----
 .../com/alibaba/weex/constants/Constants.java   | 220 +-----
 .../alibaba/weex/extend/PlayDebugAdapter.java   | 220 +-----
 .../extend/WXInstanceStatisticsListener.java    | 220 +-----
 .../extend/adapter/InterceptWXHttpAdapter.java  | 220 +-----
 .../alibaba/weex/extend/component/RichText.java | 220 +-----
 .../extend/component/WXComponentSyncTest.java   | 220 +-----
 .../alibaba/weex/extend/component/WXMask.java   | 126 +---
 .../extend/component/dom/WXMaskDomObject.java   | 220 +-----
 .../weex/extend/module/GeolocationModule.java   | 220 +-----
 .../alibaba/weex/extend/module/MyModule.java    | 220 +-----
 .../weex/extend/module/RenderModule.java        | 220 +-----
 .../weex/extend/module/SyncTestModule.java      | 220 +-----
 .../weex/extend/module/WXEventModule.java       | 220 +-----
 .../extend/module/location/DefaultLocation.java | 222 +-----
 .../weex/extend/module/location/ILocatable.java | 220 +-----
 .../extend/module/location/LocationFactory.java | 220 +-----
 .../alibaba/weex/extend/view/WXMaskView.java    | 220 +-----
 .../alibaba/weex/https/HotRefreshManager.java   | 220 +-----
 .../com/alibaba/weex/https/WXHttpManager.java   | 220 +-----
 .../com/alibaba/weex/https/WXHttpResponse.java  | 220 +-----
 .../java/com/alibaba/weex/https/WXHttpTask.java | 220 +-----
 .../alibaba/weex/https/WXOkHttpDispatcher.java  | 220 +-----
 .../alibaba/weex/https/WXRequestListener.java   | 220 +-----
 android/sdk/license/LICENSE                     | 218 +-----
 .../taobao/weex/IWXActivityStateListener.java   | 220 +-----
 .../java/com/taobao/weex/IWXRenderListener.java | 220 +-----
 .../com/taobao/weex/IWXStatisticsListener.java  | 220 +-----
 .../main/java/com/taobao/weex/InitConfig.java   | 220 +-----
 .../java/com/taobao/weex/RenderContainer.java   | 220 +-----
 .../java/com/taobao/weex/WXEnvironment.java     | 238 +------
 .../com/taobao/weex/WXGlobalEventModule.java    | 126 +---
 .../com/taobao/weex/WXGlobalEventReceiver.java  | 220 +-----
 .../java/com/taobao/weex/WXRenderErrorCode.java | 220 +-----
 .../main/java/com/taobao/weex/WXSDKEngine.java  | 129 +---
 .../java/com/taobao/weex/WXSDKInstance.java     | 224 +-----
 .../main/java/com/taobao/weex/WXSDKManager.java | 153 +----
 .../taobao/weex/adapter/DefaultUriAdapter.java  | 220 +-----
 .../weex/adapter/DefaultWXHttpAdapter.java      | 220 +-----
 .../taobao/weex/adapter/DrawableStrategy.java   | 218 +-----
 .../taobao/weex/adapter/IDrawableLoader.java    | 218 +-----
 .../taobao/weex/adapter/IWXDebugAdapter.java    | 220 +-----
 .../com/taobao/weex/adapter/IWXHttpAdapter.java | 220 +-----
 .../weex/adapter/IWXImgLoaderAdapter.java       | 220 +-----
 .../weex/adapter/IWXJSExceptionAdapter.java     | 220 +-----
 .../taobao/weex/adapter/IWXSoLoaderAdapter.java | 220 +-----
 .../weex/adapter/IWXUserTrackAdapter.java       | 220 +-----
 .../com/taobao/weex/adapter/URIAdapter.java     | 220 +-----
 .../com/taobao/weex/annotation/Component.java   | 220 +-----
 .../com/taobao/weex/annotation/JSMethod.java    | 220 +-----
 .../weex/appfram/clipboard/IWXClipboard.java    | 220 +-----
 .../appfram/clipboard/WXClipboardModule.java    | 220 +-----
 .../navigator/IActivityNavBarSetter.java        | 220 +-----
 .../appfram/navigator/WXNavigatorModule.java    | 130 +---
 .../weex/appfram/pickers/DatePickerImpl.java    | 220 +-----
 .../weex/appfram/pickers/WXPickersModule.java   | 220 +-----
 .../weex/appfram/storage/DefaultWXStorage.java  | 220 +-----
 .../taobao/weex/appfram/storage/IWXStorage.java | 220 +-----
 .../weex/appfram/storage/IWXStorageAdapter.java | 220 +-----
 .../appfram/storage/StorageResultHandler.java   | 220 +-----
 .../appfram/storage/WXSQLiteOpenHelper.java     | 220 +-----
 .../weex/appfram/storage/WXStorageModule.java   | 220 +-----
 .../appfram/websocket/IWebSocketAdapter.java    | 220 +-----
 .../websocket/IWebSocketAdapterFactory.java     | 220 +-----
 .../appfram/websocket/WebSocketCloseCodes.java  | 220 +-----
 .../weex/appfram/websocket/WebSocketModule.java | 220 +-----
 .../java/com/taobao/weex/bridge/Invoker.java    | 220 +-----
 .../java/com/taobao/weex/bridge/JSCallback.java | 220 +-----
 .../taobao/weex/bridge/JavascriptInvokable.java | 220 +-----
 .../com/taobao/weex/bridge/MethodInvoker.java   | 220 +-----
 .../com/taobao/weex/bridge/ModuleFactory.java   | 220 +-----
 .../taobao/weex/bridge/NativeInvokeHelper.java  | 220 +-----
 .../taobao/weex/bridge/SimpleJSCallback.java    | 220 +-----
 .../java/com/taobao/weex/bridge/WXBridge.java   | 220 +-----
 .../com/taobao/weex/bridge/WXBridgeManager.java | 223 +-----
 .../java/com/taobao/weex/bridge/WXHashMap.java  | 220 +-----
 .../java/com/taobao/weex/bridge/WXJSObject.java | 220 +-----
 .../com/taobao/weex/bridge/WXModuleManager.java | 220 +-----
 .../java/com/taobao/weex/bridge/WXParams.java   | 143 +---
 .../taobao/weex/bridge/WXServiceManager.java    | 220 +-----
 .../java/com/taobao/weex/bridge/WXTask.java     | 220 +-----
 .../taobao/weex/bridge/WXValidateProcessor.java | 220 +-----
 .../java/com/taobao/weex/common/Constants.java  | 222 +-----
 .../com/taobao/weex/common/Destroyable.java     | 220 +-----
 .../java/com/taobao/weex/common/IWXBridge.java  | 220 +-----
 .../com/taobao/weex/common/IWXDebugProxy.java   | 220 +-----
 .../java/com/taobao/weex/common/IWXObject.java  | 220 +-----
 .../java/com/taobao/weex/common/IWXTask.java    | 220 +-----
 .../taobao/weex/common/OnWXScrollListener.java  | 143 +---
 .../taobao/weex/common/TypeModuleFactory.java   | 220 +-----
 .../com/taobao/weex/common/WXCompatModule.java  | 220 +-----
 .../java/com/taobao/weex/common/WXConfig.java   | 220 +-----
 .../com/taobao/weex/common/WXErrorCode.java     | 220 +-----
 .../com/taobao/weex/common/WXException.java     | 220 +-----
 .../com/taobao/weex/common/WXImageSharpen.java  | 220 +-----
 .../com/taobao/weex/common/WXImageStrategy.java | 222 +-----
 .../com/taobao/weex/common/WXInstanceWrap.java  | 220 +-----
 .../taobao/weex/common/WXJSBridgeMsgType.java   | 220 +-----
 .../taobao/weex/common/WXJSEngineListener.java  | 220 +-----
 .../taobao/weex/common/WXJSExceptionInfo.java   | 220 +-----
 .../com/taobao/weex/common/WXJSService.java     | 220 +-----
 .../java/com/taobao/weex/common/WXModule.java   | 220 +-----
 .../com/taobao/weex/common/WXModuleAnno.java    | 222 +-----
 .../com/taobao/weex/common/WXPerformance.java   | 222 +-----
 .../com/taobao/weex/common/WXRefreshData.java   | 220 +-----
 .../taobao/weex/common/WXRenderStrategy.java    | 223 +-----
 .../java/com/taobao/weex/common/WXRequest.java  | 220 +-----
 .../taobao/weex/common/WXRequestListener.java   | 220 +-----
 .../java/com/taobao/weex/common/WXResponse.java | 220 +-----
 .../taobao/weex/common/WXRuntimeException.java  | 220 +-----
 .../java/com/taobao/weex/common/WXThread.java   | 220 +-----
 .../com/taobao/weex/dom/ApplyStyleConsumer.java | 220 +-----
 .../taobao/weex/dom/BasicEditTextDomObject.java | 220 +-----
 .../com/taobao/weex/dom/CSSAlignConvert.java    | 220 +-----
 .../weex/dom/CSSFlexDirectionConvert.java       | 220 +-----
 .../com/taobao/weex/dom/CSSJustifyConvert.java  | 220 +-----
 .../taobao/weex/dom/CSSPositionTypeConvert.java | 220 +-----
 .../com/taobao/weex/dom/CSSWrapConvert.java     | 220 +-----
 .../java/com/taobao/weex/dom/DOMAction.java     | 220 +-----
 .../com/taobao/weex/dom/DOMActionContext.java   | 220 +-----
 .../taobao/weex/dom/DOMActionContextImpl.java   | 222 +-----
 .../java/com/taobao/weex/dom/DomContext.java    | 220 +-----
 .../com/taobao/weex/dom/ImmutableDomObject.java | 220 +-----
 .../java/com/taobao/weex/dom/RenderAction.java  | 220 +-----
 .../taobao/weex/dom/RenderActionContext.java    | 220 +-----
 .../com/taobao/weex/dom/RenderActionTask.java   | 220 +-----
 .../weex/dom/SafePutConcurrentHashMap.java      | 220 +-----
 .../weex/dom/TextAreaEditTextDomObject.java     | 220 +-----
 .../main/java/com/taobao/weex/dom/WXAttr.java   | 220 +-----
 .../com/taobao/weex/dom/WXCustomStyleSpan.java  | 220 +-----
 .../java/com/taobao/weex/dom/WXDomHandler.java  | 220 +-----
 .../java/com/taobao/weex/dom/WXDomManager.java  | 220 +-----
 .../java/com/taobao/weex/dom/WXDomModule.java   | 220 +-----
 .../java/com/taobao/weex/dom/WXDomObject.java   | 220 +-----
 .../com/taobao/weex/dom/WXDomObjectFactory.java | 220 +-----
 .../java/com/taobao/weex/dom/WXDomRegistry.java | 220 +-----
 .../java/com/taobao/weex/dom/WXDomTask.java     | 220 +-----
 .../main/java/com/taobao/weex/dom/WXEvent.java  | 220 +-----
 .../com/taobao/weex/dom/WXImageQuality.java     | 222 +-----
 .../com/taobao/weex/dom/WXLineHeightSpan.java   | 220 +-----
 .../com/taobao/weex/dom/WXListDomObject.java    | 220 +-----
 .../taobao/weex/dom/WXRecyclerDomObject.java    | 220 +-----
 .../taobao/weex/dom/WXScrollerDomObject.java    | 220 +-----
 .../main/java/com/taobao/weex/dom/WXStyle.java  | 220 +-----
 .../com/taobao/weex/dom/WXSwitchDomObject.java  | 220 +-----
 .../com/taobao/weex/dom/WXTextDomObject.java    | 220 +-----
 .../dom/action/AbstractAddElementAction.java    | 220 +-----
 .../dom/action/AbstractLayoutFinishAction.java  | 220 +-----
 .../java/com/taobao/weex/dom/action/Action.java | 220 +-----
 .../com/taobao/weex/dom/action/Actions.java     | 220 +-----
 .../weex/dom/action/AddElementAction.java       | 220 +-----
 .../taobao/weex/dom/action/AddEventAction.java  | 220 +-----
 .../taobao/weex/dom/action/AddRuleAction.java   | 220 +-----
 .../taobao/weex/dom/action/AnimationAction.java | 218 +-----
 .../weex/dom/action/CreateBodyAction.java       | 220 +-----
 .../weex/dom/action/CreateFinishAction.java     | 220 +-----
 .../weex/dom/action/GetComponentRectAction.java | 220 +-----
 .../weex/dom/action/InvokeMethodAction.java     | 220 +-----
 .../weex/dom/action/MoveElementAction.java      | 220 +-----
 .../weex/dom/action/RefreshFinishAction.java    | 220 +-----
 .../weex/dom/action/RemoveElementAction.java    | 220 +-----
 .../weex/dom/action/RemoveEventAction.java      | 220 +-----
 .../weex/dom/action/ScrollToElementAction.java  | 220 +-----
 .../weex/dom/action/UpdateAttributeAction.java  | 220 +-----
 .../weex/dom/action/UpdateFinishAction.java     | 220 +-----
 .../weex/dom/action/UpdateStyleAction.java      | 220 +-----
 .../main/java/com/taobao/weex/http/Options.java | 220 +-----
 .../main/java/com/taobao/weex/http/Status.java  | 220 +-----
 .../java/com/taobao/weex/http/WXHttpUtil.java   | 220 +-----
 .../com/taobao/weex/http/WXStreamModule.java    | 220 +-----
 .../com/taobao/weex/ui/ComponentCreator.java    | 220 +-----
 .../weex/ui/ExternalLoaderComponentHolder.java  | 220 +-----
 .../weex/ui/IExternalComponentGetter.java       | 220 +-----
 .../taobao/weex/ui/IExternalMoudleGetter.java   | 220 +-----
 .../com/taobao/weex/ui/IFComponentHolder.java   | 220 +-----
 .../java/com/taobao/weex/ui/IWXRenderTask.java  | 220 +-----
 .../taobao/weex/ui/RenderActionContextImpl.java | 220 +-----
 .../taobao/weex/ui/SimpleComponentHolder.java   | 220 +-----
 .../com/taobao/weex/ui/WXComponentRegistry.java | 220 +-----
 .../com/taobao/weex/ui/WXRenderHandler.java     | 220 +-----
 .../com/taobao/weex/ui/WXRenderManager.java     | 220 +-----
 .../ui/animation/BackgroundColorProperty.java   | 218 +-----
 .../ui/animation/DimensionUpdateListener.java   | 218 +-----
 .../weex/ui/animation/WXAnimationBean.java      | 220 +-----
 .../weex/ui/animation/WXAnimationModule.java    | 220 +-----
 .../ui/component/AbstractEditComponent.java     | 270 ++------
 .../weex/ui/component/AppearanceHelper.java     | 220 +-----
 .../weex/ui/component/NestedContainer.java      | 220 +-----
 .../taobao/weex/ui/component/Scrollable.java    | 220 +-----
 .../com/taobao/weex/ui/component/Textarea.java  | 220 +-----
 .../java/com/taobao/weex/ui/component/WXA.java  | 220 +-----
 .../taobao/weex/ui/component/WXBaseRefresh.java | 220 +-----
 .../weex/ui/component/WXBasicComponentType.java | 221 +-----
 .../taobao/weex/ui/component/WXComponent.java   | 148 +---
 .../weex/ui/component/WXComponentFactory.java   | 220 +-----
 .../weex/ui/component/WXComponentProp.java      | 220 +-----
 .../com/taobao/weex/ui/component/WXDiv.java     | 220 +-----
 .../com/taobao/weex/ui/component/WXEmbed.java   | 262 ++-----
 .../com/taobao/weex/ui/component/WXHeader.java  | 220 +-----
 .../com/taobao/weex/ui/component/WXImage.java   | 225 +------
 .../taobao/weex/ui/component/WXIndicator.java   | 220 +-----
 .../com/taobao/weex/ui/component/WXInput.java   | 220 +-----
 .../com/taobao/weex/ui/component/WXLoading.java | 220 +-----
 .../weex/ui/component/WXLoadingIndicator.java   | 220 +-----
 .../com/taobao/weex/ui/component/WXRefresh.java | 220 +-----
 .../taobao/weex/ui/component/WXScroller.java    | 220 +-----
 .../com/taobao/weex/ui/component/WXSlider.java  | 220 +-----
 .../weex/ui/component/WXSliderNeighbor.java     | 220 +-----
 .../com/taobao/weex/ui/component/WXSwitch.java  | 220 +-----
 .../com/taobao/weex/ui/component/WXText.java    | 220 +-----
 .../weex/ui/component/WXTextDecoration.java     | 220 +-----
 .../taobao/weex/ui/component/WXVContainer.java  | 220 +-----
 .../com/taobao/weex/ui/component/WXVideo.java   | 220 +-----
 .../com/taobao/weex/ui/component/WXWeb.java     | 220 +-----
 .../component/helper/SoftKeyboardDetector.java  | 148 ++++
 .../ui/component/helper/WXStickyHelper.java     | 220 +-----
 .../ui/component/helper/WXTimeInputHelper.java  | 222 +-----
 .../ui/component/list/BasicListComponent.java   | 220 +-----
 .../component/list/HorizontalListComponent.java | 220 +-----
 .../ui/component/list/ListComponentView.java    | 220 +-----
 .../ui/component/list/SimpleListComponent.java  | 220 +-----
 .../ui/component/list/SimpleRecyclerView.java   | 220 +-----
 .../ui/component/list/StickyHeaderHelper.java   | 220 +-----
 .../taobao/weex/ui/component/list/WXCell.java   | 220 +-----
 .../weex/ui/component/list/WXListComponent.java | 220 +-----
 .../component/pesudo/OnActivePseudoListner.java | 220 +-----
 .../weex/ui/component/pesudo/PesudoStatus.java  | 220 +-----
 .../pesudo/TouchActivePseudoListener.java       | 220 +-----
 .../com/taobao/weex/ui/module/WXMetaModule.java | 220 +-----
 .../taobao/weex/ui/module/WXModalUIModule.java  | 222 +-----
 .../taobao/weex/ui/module/WXTimerModule.java    | 222 +-----
 .../taobao/weex/ui/module/WXWebViewModule.java  | 220 +-----
 .../com/taobao/weex/ui/view/IRenderStatus.java  | 218 +-----
 .../com/taobao/weex/ui/view/IWXScroller.java    | 220 +-----
 .../com/taobao/weex/ui/view/IWXTextView.java    | 220 +-----
 .../java/com/taobao/weex/ui/view/IWebView.java  | 220 +-----
 .../weex/ui/view/WXBaseCircleIndicator.java     | 222 +-----
 .../weex/ui/view/WXBaseRefreshLayout.java       | 220 +-----
 .../taobao/weex/ui/view/WXCircleIndicator.java  | 220 +-----
 .../weex/ui/view/WXCirclePageAdapter.java       | 220 +-----
 .../taobao/weex/ui/view/WXCircleViewPager.java  | 220 +-----
 .../com/taobao/weex/ui/view/WXEditText.java     | 220 +-----
 .../com/taobao/weex/ui/view/WXFrameLayout.java  | 220 +-----
 .../weex/ui/view/WXHorizontalScrollView.java    | 220 +-----
 .../com/taobao/weex/ui/view/WXImageView.java    | 220 +-----
 .../taobao/weex/ui/view/WXLoadingLayout.java    | 220 +-----
 .../taobao/weex/ui/view/WXRefreshLayout.java    | 220 +-----
 .../com/taobao/weex/ui/view/WXScrollView.java   | 220 +-----
 .../taobao/weex/ui/view/WXSmoothScroller.java   | 220 +-----
 .../com/taobao/weex/ui/view/WXSwitchView.java   | 220 +-----
 .../com/taobao/weex/ui/view/WXTextView.java     | 220 +-----
 .../com/taobao/weex/ui/view/WXVideoView.java    | 220 +-----
 .../java/com/taobao/weex/ui/view/WXWebView.java | 220 +-----
 .../weex/ui/view/border/BorderCorner.java       | 220 +-----
 .../weex/ui/view/border/BorderDrawable.java     | 222 +-----
 .../taobao/weex/ui/view/border/BorderEdge.java  | 220 +-----
 .../weex/ui/view/border/BorderRadiusType.java   | 218 +-----
 .../taobao/weex/ui/view/border/BorderStyle.java | 220 +-----
 .../taobao/weex/ui/view/border/BorderUtil.java  | 220 +-----
 .../view/border/BorderWidthStyleColorType.java  | 218 +-----
 .../weex/ui/view/border/BottomLeftCorner.java   | 220 +-----
 .../weex/ui/view/border/BottomRightCorner.java  | 220 +-----
 .../weex/ui/view/border/TopLeftCorner.java      | 220 +-----
 .../weex/ui/view/border/TopRightCorner.java     | 220 +-----
 .../taobao/weex/ui/view/gesture/WXGesture.java  | 229 +------
 .../ui/view/gesture/WXGestureObservable.java    | 220 +-----
 .../weex/ui/view/gesture/WXGestureType.java     | 220 +-----
 .../listview/ExtendedLinearLayoutManager.java   | 220 +-----
 .../weex/ui/view/listview/WXRecyclerView.java   | 220 +-----
 .../listview/adapter/IOnLoadMoreListener.java   | 220 +-----
 .../adapter/IRecyclerAdapterListener.java       | 220 +-----
 .../listview/adapter/ListBaseViewHolder.java    | 220 +-----
 .../adapter/RecyclerViewBaseAdapter.java        | 222 +-----
 .../adapter/TransformItemDecoration.java        | 220 +-----
 .../adapter/WXRecyclerViewOnScrollListener.java | 220 +-----
 .../refresh/circlebar/CircleProgressBar.java    | 222 +-----
 .../circlebar/MaterialProgressDrawable.java     | 222 +-----
 .../ui/view/refresh/core/WXRefreshView.java     | 220 +-----
 .../ui/view/refresh/core/WXSwipeLayout.java     | 220 +-----
 .../ui/view/refresh/wrapper/BaseBounceView.java | 220 +-----
 .../refresh/wrapper/BounceRecyclerView.java     | 220 +-----
 .../refresh/wrapper/BounceScrollerView.java     | 220 +-----
 .../java/com/taobao/weex/utils/ATagUtil.java    | 226 +------
 .../main/java/com/taobao/weex/utils/FontDO.java | 222 +-----
 .../com/taobao/weex/utils/FunctionParser.java   | 220 +-----
 .../com/taobao/weex/utils/ImageDrawable.java    | 218 +-----
 .../java/com/taobao/weex/utils/ImgURIUtil.java  | 218 +-----
 .../java/com/taobao/weex/utils/LogLevel.java    | 220 +-----
 .../java/com/taobao/weex/utils/OsVersion.java   | 220 +-----
 .../taobao/weex/utils/SingleFunctionParser.java | 218 +-----
 .../main/java/com/taobao/weex/utils/Trace.java  | 220 +-----
 .../com/taobao/weex/utils/TypefaceUtil.java     | 220 +-----
 .../taobao/weex/utils/WXDataStructureUtil.java  | 220 +-----
 .../java/com/taobao/weex/utils/WXDomUtils.java  | 218 +-----
 .../java/com/taobao/weex/utils/WXFileUtils.java | 220 +-----
 .../com/taobao/weex/utils/WXInterception.java   | 220 +-----
 .../java/com/taobao/weex/utils/WXJsonUtils.java | 220 +-----
 .../java/com/taobao/weex/utils/WXLogUtils.java  | 126 +---
 .../taobao/weex/utils/WXReflectionUtils.java    | 220 +-----
 .../com/taobao/weex/utils/WXResourceUtils.java  | 220 +-----
 .../taobao/weex/utils/WXSoInstallMgrSdk.java    | 220 +-----
 .../java/com/taobao/weex/utils/WXUtils.java     | 220 +-----
 .../java/com/taobao/weex/utils/WXViewUtils.java | 220 +-----
 .../taobao/weex/utils/batch/BactchExecutor.java | 220 +-----
 .../weex/utils/batch/BatchOperationHelper.java  | 220 +-----
 .../taobao/weex/utils/batch/Interceptor.java    | 220 +-----
 .../test/java/com/taobao/weex/TestActivity.java | 220 +-----
 .../java/com/taobao/weex/TestApplication.java   | 220 +-----
 .../java/com/taobao/weex/WXSDKEngineTest.java   | 222 +-----
 .../java/com/taobao/weex/WXSDKInstanceTest.java | 222 +-----
 .../java/com/taobao/weex/WXSDKManagerTest.java  | 222 +-----
 .../weex/adapter/DefaultUriAdapterTest.java     | 222 +-----
 .../clipboard/WXClipboardModuleTest.java        | 222 +-----
 .../navigator/WXNavigatorModuleTest.java        | 222 +-----
 .../appfram/storage/DefaultWXStorageTest.java   | 222 +-----
 .../appfram/storage/WXStorageModuleTest.java    | 222 +-----
 .../taobao/weex/bridge/WXBridgeManagerTest.java | 222 +-----
 .../com/taobao/weex/bridge/WXBridgeTest.java    | 222 +-----
 .../com/taobao/weex/bridge/WXHashMapTest.java   | 220 +-----
 .../taobao/weex/bridge/WXModuleManagerTest.java | 222 +-----
 .../java/com/taobao/weex/common/TestModule.java | 220 +-----
 .../taobao/weex/common/TestModuleFactory.java   | 220 +-----
 .../com/taobao/weex/common/WXModuleTest.java    | 222 +-----
 .../java/com/taobao/weex/dom/TestDomObject.java | 220 +-----
 .../java/com/taobao/weex/dom/WXAttrTest.java    | 222 +-----
 .../com/taobao/weex/dom/WXDomManagerTest.java   | 222 +-----
 .../com/taobao/weex/dom/WXDomModuleTest.java    | 222 +-----
 .../com/taobao/weex/dom/WXDomObjectTest.java    | 222 +-----
 .../com/taobao/weex/dom/WXDomStatementTest.java | 222 +-----
 .../java/com/taobao/weex/dom/WXStyleTest.java   | 220 +-----
 .../taobao/weex/dom/WXTextDomObjectTest.java    | 222 +-----
 .../com/taobao/weex/dom/action/TestActions.java |  18 +
 .../taobao/weex/http/WXStreamModuleTest.java    | 220 +-----
 .../com/taobao/weex/ui/ComponentHolderTest.java | 222 +-----
 .../taobao/weex/ui/WXRenderStatementTest.java   | 222 +-----
 .../ui/animation/WXAnimationModuleTest.java     | 222 +-----
 .../taobao/weex/ui/component/ComponentTest.java | 220 +-----
 .../weex/ui/component/EditComponentTest.java    | 222 +-----
 .../taobao/weex/ui/component/TestComponent.java | 220 +-----
 .../taobao/weex/ui/component/TestConstants.java | 220 +-----
 .../taobao/weex/ui/component/TextareaTest.java  | 222 +-----
 .../weex/ui/component/WXComponentTest.java      | 222 +-----
 .../com/taobao/weex/ui/component/WXDivTest.java | 222 +-----
 .../taobao/weex/ui/component/WXEmbedTest.java   | 222 +-----
 .../taobao/weex/ui/component/WXHeaderTest.java  | 222 +-----
 .../taobao/weex/ui/component/WXImageTest.java   | 128 +---
 .../taobao/weex/ui/component/WXLoadingTest.java | 222 +-----
 .../taobao/weex/ui/component/WXRefreshTest.java | 222 +-----
 .../weex/ui/component/WXScrollerTest.java       | 222 +-----
 .../weex/ui/component/WXSliderNeighborTest.java | 222 +-----
 .../taobao/weex/ui/component/WXSliderTest.java  | 222 +-----
 .../taobao/weex/ui/component/WXSwitchTest.java  | 222 +-----
 .../taobao/weex/ui/component/WXTextTest.java    | 222 +-----
 .../taobao/weex/ui/component/WXVideoTest.java   | 222 +-----
 .../com/taobao/weex/ui/component/WXWebTest.java | 222 +-----
 .../component/helper/WXTimeInputHelperTest.java | 220 +-----
 .../ui/component/list/WXListComponentTest.java  | 222 +-----
 .../taobao/weex/ui/module/WXMetaModuleTest.java | 222 +-----
 .../weex/ui/module/WXModalUIModuleTest.java     | 222 +-----
 .../weex/ui/module/WXTimerModuleTest.java       | 222 +-----
 .../weex/ui/module/WXWebViewModuleTest.java     | 222 +-----
 .../weex/ui/view/WXCirclePageAdapterTest.java   | 222 +-----
 .../taobao/weex/ui/view/WXScrollViewTest.java   | 222 +-----
 .../com/taobao/weex/ui/view/WXWebViewTest.java  | 222 +-----
 .../weex/ui/view/border/BorderCornerTest.java   | 220 +-----
 .../weex/ui/view/border/BorderDrawableTest.java | 220 +-----
 .../weex/ui/view/gesture/WXGestureTest.java     | 222 +-----
 .../taobao/weex/utils/FunctionParserTest.java   | 222 +-----
 .../com/taobao/weex/utils/TypefaceUtilTest.java | 222 +-----
 .../com/taobao/weex/utils/WXFileUtilsTest.java  | 222 +-----
 .../com/taobao/weex/utils/WXJsonUtilsTest.java  | 222 +-----
 .../com/taobao/weex/utils/WXLogUtilsTest.java   | 222 +-----
 .../weex/utils/WXReflectionUtilsTest.java       | 222 +-----
 .../taobao/weex/utils/WXResourceUtilsTest.java  | 220 +-----
 .../java/com/taobao/weex/utils/WXUtilsTest.java | 222 +-----
 .../configuration/MockitoConfiguration.java     | 220 +-----
 .../java/com/taobao/weex/ApplicationTest.java   |  20 +-
 .../main/java/com/taobao/weex/WXDebugTool.java  |  18 +
 .../java/com/taobao/weex/WXPFComponent.java     |  18 +
 .../main/java/com/taobao/weex/WXPrettyFish.java |  18 +
 .../taobao/weex/adapter/DefautDebugAdapter.java |  18 +
 .../taobao/weex/bridge/WXWebsocketBridge.java   | 220 +-----
 .../taobao/weex/scalpel/ScalpelFrameLayout.java |  18 +
 .../weex/websocket/WXWebSocketManager.java      | 126 +---
 .../java/com/taobao/weex/ExampleUnitTest.java   |  20 +-
 dangerfile.js                                   |  21 +-
 examples/component/list/list-basic.we           |  72 +-
 examples/component/scroller-demo.we             |  64 +-
 examples/vue/components/sliderinfinite.vue      |  46 ++
 html5/frameworks/index.js                       |  18 +
 html5/frameworks/legacy/api/methods.js          |  18 +
 html5/frameworks/legacy/api/modules.js          |  18 +
 html5/frameworks/legacy/app/bundle/bootstrap.js |  18 +
 html5/frameworks/legacy/app/bundle/define.js    |  18 +
 html5/frameworks/legacy/app/bundle/index.js     |  18 +
 html5/frameworks/legacy/app/ctrl/index.js       |  18 +
 html5/frameworks/legacy/app/ctrl/init.js        |  18 +
 html5/frameworks/legacy/app/ctrl/misc.js        |  18 +
 html5/frameworks/legacy/app/differ.js           |  18 +
 html5/frameworks/legacy/app/downgrade.js        |  18 +
 html5/frameworks/legacy/app/index.js            |  18 +
 html5/frameworks/legacy/app/instance.js         |  18 +
 html5/frameworks/legacy/app/register.js         |  18 +
 html5/frameworks/legacy/app/viewport.js         |  18 +
 html5/frameworks/legacy/config.js               |  19 +
 html5/frameworks/legacy/core/array.js           |  19 +
 html5/frameworks/legacy/core/dep.js             |  19 +
 html5/frameworks/legacy/core/object.js          |  19 +
 html5/frameworks/legacy/core/observer.js        |  19 +
 html5/frameworks/legacy/core/state.js           |  19 +
 html5/frameworks/legacy/core/watcher.js         |  19 +
 html5/frameworks/legacy/index.js                |  18 +
 html5/frameworks/legacy/static/bridge.js        |  18 +
 html5/frameworks/legacy/static/create.js        |  18 +
 html5/frameworks/legacy/static/life.js          |  18 +
 html5/frameworks/legacy/static/map.js           |  18 +
 html5/frameworks/legacy/static/misc.js          |  18 +
 html5/frameworks/legacy/static/register.js      |  18 +
 html5/frameworks/legacy/util/index.js           |  18 +
 html5/frameworks/legacy/util/shared.js          |  18 +
 html5/frameworks/legacy/vm/compiler.js          |  18 +
 html5/frameworks/legacy/vm/directive.js         |  18 +
 html5/frameworks/legacy/vm/dom-helper.js        |  18 +
 html5/frameworks/legacy/vm/events.js            |  18 +
 html5/frameworks/legacy/vm/index.js             |  18 +
 html5/frameworks/vanilla/index.js               |  18 +
 html5/render/browser/base/atomic.js             |  18 +
 html5/render/browser/base/component/flexbox.js  |  18 +
 html5/render/browser/base/component/index.js    |  18 +
 html5/render/browser/base/component/lazyload.js |  19 +
 html5/render/browser/base/component/operate.js  |  18 +
 html5/render/browser/base/component/position.js |  18 +
 html5/render/browser/base/component/sticky.js   |  18 +
 .../browser/base/component/valueFilter.js       |  18 +
 html5/render/browser/base/div.js                |  18 +
 html5/render/browser/base/droot.js              |  18 +
 html5/render/browser/base/moduleEvent.js        |  18 +
 html5/render/browser/base/root.js               |  18 +
 html5/render/browser/bridge/index.js            |  18 +
 html5/render/browser/bridge/protocol.js         |  18 +
 html5/render/browser/bridge/receiver.js         |  18 +
 html5/render/browser/bridge/sender.js           |  18 +
 html5/render/browser/dom/appearWatcher.js       |  18 +
 html5/render/browser/dom/componentManager.js    |  18 +
 html5/render/browser/dom/index.js               |  18 +
 .../browser/extend/api/animation/index.js       |  18 +
 .../render/browser/extend/api/animation/lib.js  |  18 +
 html5/render/browser/extend/api/clipboard.js    |  18 +
 html5/render/browser/extend/api/dom.js          |  18 +
 html5/render/browser/extend/api/event.js        |  18 +
 html5/render/browser/extend/api/geolocation.js  |  18 +
 html5/render/browser/extend/api/globalEvent.js  |  18 +
 html5/render/browser/extend/api/meta.js         |  18 +
 html5/render/browser/extend/api/modal.js        |  18 +
 html5/render/browser/extend/api/navigator.js    |  18 +
 html5/render/browser/extend/api/pageInfo.js     |  18 +
 html5/render/browser/extend/api/storage.js      |  19 +
 html5/render/browser/extend/api/stream.js       |  18 +
 html5/render/browser/extend/api/timer.js        |  19 +-
 html5/render/browser/extend/api/webSocket.js    |  20 +
 html5/render/browser/extend/api/webview.js      |  18 +
 html5/render/browser/extend/components/a.js     |  18 +
 .../browser/extend/components/countdown.js      |  18 +
 .../browser/extend/components/datepicker.js     |  18 +
 html5/render/browser/extend/components/embed.js |  18 +
 .../browser/extend/components/image/index.js    |  19 +
 .../extend/components/indicator/index.js        |  18 +
 html5/render/browser/extend/components/input.js |  18 +
 .../render/browser/extend/components/marquee.js |  18 +
 .../browser/extend/components/neighbor/index.js |  18 +
 .../browser/extend/components/richtext.js       |  18 +
 .../extend/components/scrollable/index.js       |  18 +
 .../extend/components/scrollable/list/hlist.js  |  18 +
 .../extend/components/scrollable/list/index.js  |  18 +
 .../extend/components/scrollable/list/list.js   |  18 +
 .../extend/components/scrollable/list/vlist.js  |  18 +
 .../components/scrollable/loading/index.js      |  18 +
 .../extend/components/scrollable/motion.js      |  19 +
 .../components/scrollable/refresh/index.js      |  18 +
 .../extend/components/scrollable/scroll.js      |  19 +
 .../extend/components/scrollable/scrollable.js  |  19 +
 .../components/scrollable/scroller/index.js     |  18 +
 .../render/browser/extend/components/select.js  |  18 +
 .../extend/components/slider/carrousel.js       |  19 +
 .../browser/extend/components/slider/index.js   |  18 +
 .../browser/extend/components/slider/timer.js   |  19 +
 .../browser/extend/components/spinner/index.js  |  18 +
 .../browser/extend/components/switch/index.js   |  18 +
 .../extend/components/tabheader/index.js        |  18 +
 html5/render/browser/extend/components/text.js  |  18 +
 .../browser/extend/components/textarea.js       |  18 +
 .../browser/extend/components/timepicker.js     |  18 +
 .../browser/extend/components/video/index.js    |  18 +
 html5/render/browser/extend/components/web.js   |  18 +
 html5/render/browser/extend/index.js            |  18 +
 html5/render/browser/index.js                   |  18 +
 html5/render/browser/render/config.js           |  18 +
 html5/render/browser/render/gesture.js          |  18 +
 html5/render/browser/render/index.js            |  19 +
 html5/render/browser/render/loader.js           |  19 +
 html5/render/browser/render/register.js         |  18 +
 html5/render/browser/utils/array.js             |  18 +
 html5/render/browser/utils/index.js             |  20 +
 html5/render/browser/utils/logger.js            |  20 +-
 html5/render/native/index.js                    |  18 +
 html5/render/vue/components/a.js                |  19 +-
 html5/render/vue/components/div.js              |  19 +-
 html5/render/vue/components/image.js            |  19 +
 html5/render/vue/components/index.js            |  18 +
 html5/render/vue/components/input.js            |  19 +
 .../render/vue/components/scrollable/header.js  |  19 +-
 .../vue/components/scrollable/list/cell.js      |  19 +-
 .../vue/components/scrollable/list/index.js     |  18 +
 .../vue/components/scrollable/list/listMixin.js |  18 +
 .../components/scrollable/loading-indicator.js  |  18 +
 .../render/vue/components/scrollable/loading.js |  18 +
 .../render/vue/components/scrollable/refresh.js |  18 +
 .../vue/components/scrollable/scroller.js       |  18 +
 html5/render/vue/components/slider/index.js     |  25 +-
 html5/render/vue/components/slider/indicator.js |  18 +
 .../render/vue/components/slider/slideMixin.js  |  42 +-
 html5/render/vue/components/switch.js           |  19 +-
 html5/render/vue/components/text.js             |  19 +
 html5/render/vue/components/textarea.js         |  18 +
 html5/render/vue/components/video.js            |  19 +-
 html5/render/vue/components/warning.js          |  18 +
 html5/render/vue/components/web.js              |  18 +
 html5/render/vue/env/index.js                   |  18 +
 html5/render/vue/env/viewport.js                |  20 +
 html5/render/vue/env/weex.js                    |  19 +
 html5/render/vue/env/wx-env.js                  |  18 +
 html5/render/vue/index.js                       |  19 +-
 html5/render/vue/mixins/base.js                 |  18 +
 html5/render/vue/mixins/index.js                |  18 +
 html5/render/vue/mixins/input-common.js         |  19 +
 html5/render/vue/mixins/scrollable.js           |  18 +
 html5/render/vue/mixins/style.js                |  18 +
 html5/render/vue/modules/animation.js           |  18 +
 html5/render/vue/modules/dom.js                 |  22 +
 html5/render/vue/modules/index.js               |  20 +
 html5/render/vue/modules/modal/alert.js         |  18 +
 html5/render/vue/modules/modal/confirm.js       |  18 +
 html5/render/vue/modules/modal/index.js         |  18 +
 html5/render/vue/modules/modal/modal.js         |  18 +
 html5/render/vue/modules/modal/prompt.js        |  18 +
 html5/render/vue/modules/modal/toast.js         |  18 +
 html5/render/vue/modules/navigator.js           |  19 +
 html5/render/vue/modules/webview.js             |  19 +
 html5/render/vue/utils/component.js             |  18 +
 html5/render/vue/utils/event.js                 |  19 +-
 html5/render/vue/utils/func.js                  |  19 +
 html5/render/vue/utils/index.js                 |  18 +
 html5/render/vue/utils/lazyload.js              |  19 +
 html5/render/vue/utils/perf.js                  |  19 +
 html5/render/vue/utils/style.js                 |  19 +
 html5/render/vue/utils/type.js                  |  19 +
 html5/render/vue/validator/check.js             |  18 +
 html5/render/vue/validator/index.js             |  18 +
 html5/render/vue/validator/prop.js              |  18 +
 html5/render/vue/validator/style.js             |  18 +
 html5/runtime/callback-manager.js               |  19 +
 html5/runtime/config.js                         |  18 +
 html5/runtime/handler.js                        |  19 +
 html5/runtime/index.js                          |  19 +
 html5/runtime/init.js                           |  18 +
 html5/runtime/listener.js                       |  19 +
 html5/runtime/service.js                        |  19 +
 html5/runtime/task-center.js                    |  18 +
 html5/runtime/vdom/comment.js                   |  19 +
 html5/runtime/vdom/document.js                  |  19 +
 html5/runtime/vdom/element-types.js             |  18 +
 html5/runtime/vdom/element.js                   |  19 +
 html5/runtime/vdom/index.js                     |  18 +
 html5/runtime/vdom/node.js                      |  19 +
 html5/runtime/vdom/operation.js                 |  18 +
 html5/services/amd/index.js                     |  19 +
 html5/services/broadcast-channel/index.js       |  19 +
 .../services/broadcast-channel/message-event.js |  19 +
 html5/services/index.js                         |  18 +
 html5/shared/arrayFrom.js                       |  19 +
 html5/shared/console.js                         |  19 +
 html5/shared/freeze.js                          |  18 +
 html5/shared/index.js                           |  18 +
 html5/shared/objectAssign.js                    |  18 +
 html5/shared/objectSetPrototypeOf.js            |  19 +
 html5/shared/promise.js                         |  20 +
 html5/shared/setTimeout.js                      |  19 +
 ios/playground/WeexDemo/AppDelegate.h           |  23 +-
 ios/playground/WeexDemo/AppDelegate.m           |  23 +-
 .../WeexDemo/DemoBaseViewController.h           |  23 +-
 .../WeexDemo/DemoBaseViewController.m           |  23 +-
 ios/playground/WeexDemo/DemoDefine.h            |  23 +-
 ios/playground/WeexDemo/Scanner/WXScannerVC.h   |  25 +-
 ios/playground/WeexDemo/Scanner/WXScannerVC.m   |  23 +-
 ios/playground/WeexDemo/UIView+UIThreadCheck.h  |  23 +-
 ios/playground/WeexDemo/UIView+UIThreadCheck.m  |  23 +-
 .../WeexDemo/UIViewController+WXDemoNaviBar.h   |  23 +-
 .../WeexDemo/UIViewController+WXDemoNaviBar.m   |  23 +-
 ios/playground/WeexDemo/WXDemoViewController.h  |  23 +-
 ios/playground/WeexDemo/WXDemoViewController.m  |  23 +-
 ios/playground/WeexDemo/WXSyncTestModule.h      |  23 +-
 ios/playground/WeexDemo/WXSyncTestModule.m      |  23 +-
 .../WeexDemo/debug/WXATLoggerPlugin.h           |  23 +-
 .../WeexDemo/debug/WXATLoggerPlugin.m           |  23 +-
 .../WeexDemo/debug/WXATViewHierarchyPlugin.h    |  23 +-
 .../WeexDemo/debug/WXATViewHierarchyPlugin.m    |  23 +-
 .../extend/component/WXSelectComponent.h        |  23 +-
 .../extend/component/WXSelectComponent.m        |  23 +-
 .../extend/handler/WXImgLoaderDefaultImpl.h     |  23 +-
 .../extend/handler/WXImgLoaderDefaultImpl.m     |  23 +-
 .../WeexDemo/extend/module/WXEventModule.h      |  23 +-
 .../WeexDemo/extend/module/WXEventModule.m      |  23 +-
 ios/playground/WeexDemo/main.m                  |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/JSValue+Weex.h   |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/JSValue+Weex.m   |  23 +-
 .../WeexSDK/Sources/Bridge/WXBridgeContext.h    |  23 +-
 .../WeexSDK/Sources/Bridge/WXBridgeContext.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXBridgeMethod.h |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXBridgeMethod.m |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXCallJSMethod.h |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXCallJSMethod.m |  23 +-
 .../WeexSDK/Sources/Bridge/WXComponentMethod.h  |  23 +-
 .../WeexSDK/Sources/Bridge/WXComponentMethod.m  |  23 +-
 .../Sources/Bridge/WXDebugLoggerBridge.h        |  23 +-
 .../Sources/Bridge/WXDebugLoggerBridge.m        |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.h |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXModuleMethod.h |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXModuleMethod.m |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXPolyfillSet.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Bridge/WXPolyfillSet.m  |  23 +-
 .../Component/Recycler/WXMultiColumnLayout.h    |  23 +-
 .../Component/Recycler/WXMultiColumnLayout.m    |  23 +-
 .../Component/Recycler/WXRecyclerComponent.h    |  23 +-
 .../Component/Recycler/WXRecyclerComponent.m    |  23 +-
 .../Recycler/WXRecyclerDataController.h         |  23 +-
 .../Recycler/WXRecyclerDataController.m         |  23 +-
 .../Recycler/WXRecyclerUpdateController.h       |  23 +-
 .../Recycler/WXRecyclerUpdateController.m       |  23 +-
 .../Recycler/WXSectionDataController.h          |  23 +-
 .../Recycler/WXSectionDataController.m          |  23 +-
 .../WeexSDK/Sources/Component/WXAComponent.h    |  23 +-
 .../WeexSDK/Sources/Component/WXAComponent.m    |  23 +-
 .../Sources/Component/WXCanvasComponent.h       |  23 +-
 .../Sources/Component/WXCanvasComponent.m       |  23 +-
 .../WeexSDK/Sources/Component/WXCellComponent.h |  23 +-
 .../WeexSDK/Sources/Component/WXCellComponent.m |  23 +-
 .../Sources/Component/WXComponent_internal.h    |  23 +-
 .../WeexSDK/Sources/Component/WXDivComponent.h  |  23 +-
 .../WeexSDK/Sources/Component/WXDivComponent.m  |  23 +-
 .../WeexSDK/Sources/Component/WXEditComponent.h |  23 +-
 .../WeexSDK/Sources/Component/WXEditComponent.m |  23 +-
 .../Sources/Component/WXEmbedComponent.h        |  23 +-
 .../Sources/Component/WXEmbedComponent.m        |  23 +-
 .../Sources/Component/WXFooterComponent.h       |  23 +-
 .../Sources/Component/WXFooterComponent.m       |  23 +-
 .../Sources/Component/WXHeaderComponent.h       |  23 +-
 .../Sources/Component/WXHeaderComponent.m       |  23 +-
 .../Sources/Component/WXImageComponent.h        |  25 +-
 .../Sources/Component/WXImageComponent.m        |  23 +-
 .../Sources/Component/WXIndicatorComponent.h    |  23 +-
 .../Sources/Component/WXIndicatorComponent.m    |  23 +-
 .../WeexSDK/Sources/Component/WXListComponent.h |  23 +-
 .../WeexSDK/Sources/Component/WXListComponent.m |  23 +-
 .../Sources/Component/WXLoadingComponent.h      |  25 +-
 .../Sources/Component/WXLoadingComponent.m      |  18 +
 .../Sources/Component/WXLoadingIndicator.h      |  23 +-
 .../Sources/Component/WXLoadingIndicator.m      |  23 +-
 .../Sources/Component/WXRefreshComponent.h      |  23 +-
 .../Sources/Component/WXRefreshComponent.m      |  23 +-
 .../Sources/Component/WXScrollerComponent.h     |  23 +-
 .../Sources/Component/WXScrollerComponent.m     |  23 +-
 .../Sources/Component/WXSliderComponent.h       |  23 +-
 .../Sources/Component/WXSliderComponent.m       |  23 +-
 .../Component/WXSliderNeighborComponent.h       |  23 +-
 .../Component/WXSliderNeighborComponent.m       |  23 +-
 .../Sources/Component/WXSwitchComponent.h       |  23 +-
 .../Sources/Component/WXSwitchComponent.m       |  23 +-
 .../Sources/Component/WXTextAreaComponent.h     |  23 +-
 .../Sources/Component/WXTextAreaComponent.m     |  23 +-
 .../WeexSDK/Sources/Component/WXTextComponent.h |  23 +-
 .../WeexSDK/Sources/Component/WXTextComponent.m |  23 +-
 .../Sources/Component/WXTextInputComponent.h    |  23 +-
 .../Sources/Component/WXTextInputComponent.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Component/WXTransform.h |  23 +-
 ios/sdk/WeexSDK/Sources/Component/WXTransform.m |  23 +-
 .../Sources/Component/WXVideoComponent.h        |  23 +-
 .../Sources/Component/WXVideoComponent.m        |  23 +-
 .../WeexSDK/Sources/Component/WXWebComponent.h  |  23 +-
 .../WeexSDK/Sources/Component/WXWebComponent.m  |  23 +-
 .../Sources/Controller/WXBaseViewController.h   |  23 +-
 .../Sources/Controller/WXBaseViewController.m   |  23 +-
 .../Sources/Controller/WXRootViewController.h   |  23 +-
 .../Sources/Controller/WXRootViewController.m   |  23 +-
 ios/sdk/WeexSDK/Sources/Debug/WXDebugTool.h     |  23 +-
 ios/sdk/WeexSDK/Sources/Debug/WXDebugTool.m     |  23 +-
 .../WeexSDK/Sources/Display/UIBezierPath+Weex.h |  23 +-
 .../WeexSDK/Sources/Display/UIBezierPath+Weex.m |  23 +-
 .../Sources/Display/WXComponent+BoxShadow.h     |  23 +-
 .../Sources/Display/WXComponent+BoxShadow.m     |  23 +-
 .../Sources/Display/WXComponent+Display.h       |  23 +-
 .../Sources/Display/WXComponent+Display.m       |  23 +-
 .../WeexSDK/Sources/Display/WXDisplayQueue.h    |  23 +-
 .../WeexSDK/Sources/Display/WXDisplayQueue.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.m  |  23 +-
 ios/sdk/WeexSDK/Sources/Display/WXLayer.h       |  23 +-
 ios/sdk/WeexSDK/Sources/Display/WXLayer.m       |  23 +-
 ios/sdk/WeexSDK/Sources/Display/WXRoundedRect.h |  23 +-
 .../WeexSDK/Sources/Display/WXRoundedRect.mm    |  23 +-
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.h    |  23 +-
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Engine/WXSDKError.h     |  23 +-
 .../WeexSDK/Sources/Events/WXComponent+Events.h |  23 +-
 .../WeexSDK/Sources/Events/WXComponent+Events.m |  23 +-
 .../Sources/Handler/WXNavigationDefaultImpl.h   |  23 +-
 .../Sources/Handler/WXNavigationDefaultImpl.m   |  23 +-
 .../Sources/Handler/WXURLRewriteDefaultImpl.h   |  23 +-
 .../Sources/Handler/WXURLRewriteDefaultImpl.m   |  23 +-
 .../WeexSDK/Sources/Loader/WXResourceLoader.h   |  23 +-
 .../WeexSDK/Sources/Loader/WXResourceLoader.m   |  23 +-
 .../WeexSDK/Sources/Loader/WXWebSocketLoader.h  |  23 +-
 .../WeexSDK/Sources/Loader/WXWebSocketLoader.m  |  23 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.h   |  23 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.m   |  23 +-
 .../Sources/Manager/WXComponentFactory.h        |  23 +-
 .../Sources/Manager/WXComponentFactory.m        |  23 +-
 .../Sources/Manager/WXComponentManager.h        |  23 +-
 .../Sources/Manager/WXComponentManager.m        |  23 +-
 .../Sources/Manager/WXDatePickerManager.h       |  23 +-
 .../Sources/Manager/WXDatePickerManager.m       |  23 +-
 .../WeexSDK/Sources/Manager/WXHandlerFactory.h  |  23 +-
 .../WeexSDK/Sources/Manager/WXHandlerFactory.m  |  23 +-
 .../Sources/Manager/WXInvocationConfig.h        |  23 +-
 .../Sources/Manager/WXInvocationConfig.m        |  23 +-
 .../WeexSDK/Sources/Manager/WXModuleFactory.h   |  23 +-
 .../WeexSDK/Sources/Manager/WXModuleFactory.m   |  23 +-
 ios/sdk/WeexSDK/Sources/Manager/WXRuleManager.h |  23 +-
 ios/sdk/WeexSDK/Sources/Manager/WXRuleManager.m |  23 +-
 ios/sdk/WeexSDK/Sources/Manager/WXSDKManager.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Manager/WXSDKManager.m  |  23 +-
 .../WeexSDK/Sources/Manager/WXServiceFactory.h  |  23 +-
 .../WeexSDK/Sources/Manager/WXServiceFactory.m  |  23 +-
 .../Sources/Model/WXComponent+Navigation.h      |  23 +-
 .../Sources/Model/WXComponent+Navigation.m      |  23 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.h     |  23 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m     |  23 +-
 .../WeexSDK/Sources/Model/WXJSExceptionInfo.h   |  23 +-
 .../WeexSDK/Sources/Model/WXJSExceptionInfo.m   |  25 +-
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.h   |  23 +-
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m   |  23 +-
 .../Sources/Model/WXSDKInstance_private.h       |  23 +-
 .../WeexSDK/Sources/Module/WXAnimationModule.h  |  23 +-
 .../WeexSDK/Sources/Module/WXAnimationModule.m  |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXCanvasModule.h |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXCanvasModule.m |  23 +-
 .../WeexSDK/Sources/Module/WXClipboardModule.h  |  23 +-
 .../WeexSDK/Sources/Module/WXClipboardModule.m  |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXDomModule.h    |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXDomModule.m    |  23 +-
 .../Sources/Module/WXGlobalEventModule.h        |  23 +-
 .../Sources/Module/WXGlobalEventModule.m        |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXInstanceWrap.h |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXInstanceWrap.m |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXMetaModule.h   |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXMetaModule.m   |  23 +-
 .../WeexSDK/Sources/Module/WXModalUIModule.h    |  23 +-
 .../WeexSDK/Sources/Module/WXModalUIModule.m    |  23 +-
 .../WeexSDK/Sources/Module/WXNavigatorModule.h  |  23 +-
 .../WeexSDK/Sources/Module/WXNavigatorModule.m  |  18 +
 ios/sdk/WeexSDK/Sources/Module/WXPickerModule.h |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXPickerModule.m |  23 +-
 .../WeexSDK/Sources/Module/WXStorageModule.h    |  23 +-
 .../WeexSDK/Sources/Module/WXStorageModule.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXStreamModule.h |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXStreamModule.m |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXTimerModule.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Module/WXTimerModule.m  |  23 +-
 .../WeexSDK/Sources/Module/WXWebSocketModule.h  |  23 +-
 .../WeexSDK/Sources/Module/WXWebSocketModule.m  |  23 +-
 .../WeexSDK/Sources/Module/WXWebViewModule.h    |  23 +-
 .../WeexSDK/Sources/Module/WXWebViewModule.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Monitor/WXMonitor.h     |  23 +-
 ios/sdk/WeexSDK/Sources/Monitor/WXMonitor.m     |  23 +-
 .../WeexSDK/Sources/Network/WXResourceRequest.h |  23 +-
 .../WeexSDK/Sources/Network/WXResourceRequest.m |  23 +-
 .../Sources/Network/WXResourceRequestHandler.h  |  23 +-
 .../WXResourceRequestHandlerDefaultImpl.h       |  23 +-
 .../WXResourceRequestHandlerDefaultImpl.m       |  23 +-
 .../Sources/Network/WXResourceResponse.h        |  23 +-
 .../Sources/Network/WXResourceResponse.m        |  23 +-
 .../Sources/Protocol/WXAppMonitorProtocol.h     |  23 +-
 .../WeexSDK/Sources/Protocol/WXBridgeProtocol.h |  23 +-
 .../Sources/Protocol/WXDestroyProtocol.h        |  23 +-
 .../Sources/Protocol/WXEventModuleProtocol.h    |  23 +-
 .../Sources/Protocol/WXImgLoaderProtocol.h      |  23 +-
 .../Sources/Protocol/WXJSExceptionProtocol.h    |  23 +-
 .../WeexSDK/Sources/Protocol/WXModuleProtocol.h |  23 +-
 .../Sources/Protocol/WXNavigationProtocol.h     |  23 +-
 .../Sources/Protocol/WXNetworkProtocol.h        |  23 +-
 .../Sources/Protocol/WXScrollerProtocol.h       |  23 +-
 .../Sources/Protocol/WXTextComponentProtocol.h  |  23 +-
 .../Sources/Protocol/WXURLRewriteProtocol.h     |  23 +-
 .../Sources/Protocol/WXValidateProtocol.h       |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/NSArray+Weex.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/NSArray+Weex.m  |  23 +-
 .../Sources/Utility/NSObject+WXSwizzle.h        |  23 +-
 .../Sources/Utility/NSObject+WXSwizzle.m        |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/NSTimer+Weex.h  |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/NSTimer+Weex.m  |  23 +-
 .../Sources/Utility/WXAppConfiguration.h        |  23 +-
 .../Sources/Utility/WXAppConfiguration.m        |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXAssert.h      |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXAssert.m      |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.h   |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.m   |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXConvert.h     |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXConvert.m     |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDefine.h      |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.h    |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.m    |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXLength.h      |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXLength.m      |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXLog.h         |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXLog.m         |  23 +-
 .../Utility/WXSimulatorShortcutManager.h        |  23 +-
 .../Utility/WXSimulatorShortcutManager.m        |  23 +-
 .../Sources/Utility/WXThreadSafeCounter.h       |  23 +-
 .../Sources/Utility/WXThreadSafeCounter.m       |  23 +-
 .../Sources/Utility/WXThreadSafeMutableArray.h  |  23 +-
 .../Sources/Utility/WXThreadSafeMutableArray.m  |  23 +-
 .../Utility/WXThreadSafeMutableDictionary.h     |  23 +-
 .../Utility/WXThreadSafeMutableDictionary.m     |  25 +-
 ios/sdk/WeexSDK/Sources/Utility/WXType.h        |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.h     |  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.m     |  23 +-
 .../Sources/Utility/WXWeakObjectWrapper.h       |  23 +-
 .../Sources/Utility/WXWeakObjectWrapper.m       |  23 +-
 .../View/WXComponent+PseudoClassManagement.h    |  23 +-
 .../View/WXComponent+PseudoClassManagement.m    |  23 +-
 .../Sources/View/WXComponent+ViewManagement.h   |  23 +-
 .../Sources/View/WXComponent+ViewManagement.m   |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXErrorView.h      |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXErrorView.m      |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXRootView.h       |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXRootView.m       |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXView.h           |  23 +-
 ios/sdk/WeexSDK/Sources/View/WXView.m           |  23 +-
 .../Sources/WebSocket/SRWebSocket+Weex.h        |  23 +-
 .../Sources/WebSocket/SRWebSocket+Weex.m        |  23 +-
 .../Sources/WebSocket/WXWebSocketDefaultImpl.h  |  23 +-
 .../Sources/WebSocket/WXWebSocketDefaultImpl.m  |  23 +-
 .../Sources/WebSocket/WXWebSocketHandler.h      |  23 +-
 ios/sdk/WeexSDK/Sources/WeexSDK.h               |  21 +-
 ios/sdk/WeexSDK_MTL/WeexSDK_MTL.h               |  23 +-
 ios/sdk/WeexSDK_MTL/WeexSDK_MTL.m               |  23 +-
 scripts/apache-rat-0.12.jar                     | Bin 0 -> 1592593 bytes
 scripts/rat-ant-build.xml                       |   8 +
 scripts/rat-scan.sh                             |   3 +
 scripts/replace-header.sh                       |   4 +
 scripts/rh/LICENSE                              | 674 +++++++++++++++++++
 scripts/rh/README                               |  46 ++
 scripts/rh/header.template                      |  18 +
 scripts/rh/remove_header.awk                    |  48 ++
 scripts/rh/replace_header.sh                    |  11 +
 vue.html                                        |  10 +-
 903 files changed, 16643 insertions(+), 82855 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1b24005f/ios/playground/WeexDemo/AppDelegate.m
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1b24005f/ios/playground/WeexDemo/DemoDefine.h
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1b24005f/ios/playground/WeexDemo/Scanner/WXScannerVC.m
----------------------------------------------------------------------

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/1b24005f/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.m
----------------------------------------------------------------------


[03/18] incubator-weex git commit: * [ios] support record scan history for weex playground

Posted by cx...@apache.org.
* [ios] support record scan history for weex playground


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

Branch: refs/heads/0.12-dev
Commit: 58afecaec57ae2a641679d1202e6f7a758a27bd7
Parents: ba27a81
Author: acton393 <zh...@gmail.com>
Authored: Thu Mar 30 21:25:02 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Thu Mar 30 21:25:02 2017 +0800

----------------------------------------------------------------------
 ios/playground/WeexDemo/DemoDefine.h            |   1 +
 .../WeexDemo/Scanner/WXScannerHistoryVC.h       |  13 ++
 .../WeexDemo/Scanner/WXScannerHistoryVC.m       | 196 +++++++++++++++++++
 ios/playground/WeexDemo/Scanner/WXScannerVC.m   |  18 +-
 .../WeexDemo/UIViewController+WXDemoNaviBar.m   |  50 +++--
 5 files changed, 263 insertions(+), 15 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/58afecae/ios/playground/WeexDemo/DemoDefine.h
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/DemoDefine.h b/ios/playground/WeexDemo/DemoDefine.h
index fe07a7b..2c0be7c 100644
--- a/ios/playground/WeexDemo/DemoDefine.h
+++ b/ios/playground/WeexDemo/DemoDefine.h
@@ -26,3 +26,4 @@
 
 #define QRSCAN  @"com.taobao.WeexDemo.scan"
 #define WEEX_COLOR [UIColor colorWithRed:0.27 green:0.71 blue:0.94 alpha:1]
+#define WX_SCANNER_HISTORY @"wx_scanner_history"

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/58afecae/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.h
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.h b/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.h
new file mode 100644
index 0000000..0fef156
--- /dev/null
+++ b/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.h
@@ -0,0 +1,13 @@
+/**
+ * Created by Weex.
+ * Copyright (c) 2016, Alibaba, Inc. All rights reserved.
+ *
+ * This source code is licensed under the Apache Licence 2.0.
+ * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree.
+ */
+
+#import <UIKit/UIKit.h>
+
+@interface WXScannerHistoryVC : UITableViewController<UIGestureRecognizerDelegate>
+
+@end

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/58afecae/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m b/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m
new file mode 100644
index 0000000..4ca306a
--- /dev/null
+++ b/ios/playground/WeexDemo/Scanner/WXScannerHistoryVC.m
@@ -0,0 +1,196 @@
+/**
+ * Created by Weex.
+ * Copyright (c) 2016, Alibaba, Inc. All rights reserved.
+ *
+ * This source code is licensed under the Apache Licence 2.0.
+ * For the full copyright and license information,please view the LICENSE file in the root directory of this source tree.
+ */
+
+#import "WXScannerHistoryVC.h"
+#import "DemoDefine.h"
+#import "WXDemoViewController.h"
+#import "UIViewController+WXDemoNaviBar.h"
+#import <CoreText/CoreText.h>
+
+@interface WXScannerHistoryVC ()
+@property(nonatomic)NSMutableArray * scanner_history;
+@property(nonatomic)UIImageView * qrCodeImageView;
+@end
+
+@implementation WXScannerHistoryVC
+
+- (instancetype)init {
+    if (self = [super init]) {
+        _scanner_history = [[[NSUserDefaults standardUserDefaults] objectForKey:WX_SCANNER_HISTORY] mutableCopy];
+    }
+    return self;
+}
+
+- (void)viewDidLoad {
+    [super viewDidLoad];
+    [self setupNaviBar];
+    UITapGestureRecognizer * tapGestureRecognizer = [[UITapGestureRecognizer alloc] initWithTarget:self action:@selector(handleClick:)];
+    [self.tableView addGestureRecognizer:tapGestureRecognizer];
+    [[NSNotificationCenter defaultCenter] addObserver:self selector:@selector(reloadHistory) name:NSUserDefaultsDidChangeNotification object:nil];
+}
+
+- (void)dealloc {
+    [[NSNotificationCenter defaultCenter] removeObserver:self];
+}
+
+#pragma mark - Table view data source
+
+- (NSInteger)numberOfSectionsInTableView:(UITableView *)tableView {
+    return 1;
+}
+
+- (CGFloat)tableView:(UITableView *)tableView heightForRowAtIndexPath:(NSIndexPath *)indexPath {
+    return 88.0f;
+}
+
+- (NSInteger)tableView:(UITableView *)tableView numberOfRowsInSection:(NSInteger)section {
+    return [_scanner_history count];
+}
+
+- (UITableViewCell *)tableView:(UITableView *)tableView cellForRowAtIndexPath:(NSIndexPath *)indexPath {
+    [tableView registerClass:[UITableViewCell class] forCellReuseIdentifier:@"WX_SCANNER_HISTORY_CELL"];
+    UITableViewCell *cell = [tableView dequeueReusableCellWithIdentifier:@"WX_SCANNER_HISTORY_CELL" forIndexPath:indexPath];
+    if (!cell) {
+        cell = [UITableViewCell new];
+    }
+    UILongPressGestureRecognizer * longPressGesture = [[UILongPressGestureRecognizer alloc] initWithTarget:self action:@selector(handleLongPress:)];
+    longPressGesture.minimumPressDuration = 1.0;
+    [cell addGestureRecognizer:longPressGesture];
+    NSMutableAttributedString * attributeString = [[NSMutableAttributedString alloc] initWithString:[NSString stringWithFormat:@"%d %@",indexPath.row+1,[_scanner_history objectAtIndex:indexPath.row]]];
+    [attributeString addAttribute:(NSString*)NSForegroundColorAttributeName value:(id)[UIColor redColor].CGColor range:NSMakeRange(0, 1)];
+    NSDictionary<NSString*, id> *attributes = @{
+                                               NSForegroundColorAttributeName:[UIColor redColor],
+                                               NSFontAttributeName: [UIFont boldSystemFontOfSize:25.0],
+                                               };
+    [attributeString addAttributes:attributes range:NSMakeRange(0, 2)];
+    cell.textLabel.attributedText = attributeString;
+    cell.textLabel.numberOfLines = 0;
+    
+    return cell;
+}
+
+- (void)tableView:(UITableView *)tableView didSelectRowAtIndexPath:(NSIndexPath *)indexPath
+{
+    NSString *urlStr = _scanner_history[indexPath.row];
+    if (urlStr) {
+        WXDemoViewController * demoVC = [WXDemoViewController new];
+        demoVC.url = [NSURL URLWithString:urlStr];
+        [self.navigationController pushViewController:demoVC animated:YES];
+    }
+}
+
+- (void)reloadHistory {
+    if ([_scanner_history count]) {
+        [_qrCodeImageView removeFromSuperview];
+        [_scanner_history removeAllObjects];
+        [self.tableView reloadData];
+    }
+}
+
+- (void)handleClick:(UITapGestureRecognizer*)gestureRecognizer {
+    CGPoint clickPoint = [gestureRecognizer locationInView:self.tableView];
+    if (!CGRectContainsPoint(_qrCodeImageView.frame, clickPoint)) {
+        [_qrCodeImageView removeFromSuperview];
+    }
+    
+}
+
+- (void)handleLongPress:(UILongPressGestureRecognizer *)gestureRecognizer {
+    if (gestureRecognizer.state != UIGestureRecognizerStateBegan) {
+        return ;
+    }
+    CGPoint pressPoint = [gestureRecognizer locationInView:self.tableView];
+    NSIndexPath *indexPath = [self.tableView indexPathForRowAtPoint:pressPoint];
+    if (indexPath == nil) {
+        return;
+    }
+    
+    NSString * url = _scanner_history[indexPath.row];
+    UIImage * qrCodeImage = [self getQRCodeWithData:url size:CGSizeMake(300, 300)];
+    _qrCodeImageView.contentMode = UIViewContentModeScaleAspectFill;
+    if (![_qrCodeImageView superview]) {
+        _qrCodeImageView = [[UIImageView alloc] initWithImage:qrCodeImage];
+        [_qrCodeImageView setCenter:self.view.center];
+        [self.view addSubview:_qrCodeImageView];
+    }else {
+        _qrCodeImageView.image = qrCodeImage;
+    }
+}
+
+- (UIImage*)getQRCodeWithData:(NSString*)url size:(CGSize)size {
+    CIFilter *filter = [CIFilter filterWithName:@"CIQRCodeGenerator"];
+    [filter setDefaults];
+    NSString *info = url;
+    NSData *infoData = [info dataUsingEncoding:NSUTF8StringEncoding];
+    [filter setValue:infoData forKeyPath:@"inputMessage"];
+    
+    CIImage *outputImage = [filter outputImage];
+    CGRect extent = CGRectIntegral(outputImage.extent);
+    CGFloat scale = MIN(size.width/CGRectGetWidth(extent), size.width/CGRectGetHeight(extent));
+    
+    size_t width = CGRectGetWidth(extent) * scale;
+    size_t height = CGRectGetHeight(extent) * scale;
+    CGColorSpaceRef cs = CGColorSpaceCreateDeviceGray();
+    CGContextRef bitmapRef = CGBitmapContextCreate(nil, width, height, 8, 0, cs, (CGBitmapInfo)kCGImageAlphaNone);
+    CIContext *context = [CIContext contextWithOptions:nil];
+    CGImageRef bitmapImage = [context createCGImage:outputImage fromRect:extent];
+    CGContextSetInterpolationQuality(bitmapRef, kCGInterpolationNone);
+    CGContextScaleCTM(bitmapRef, scale, scale);
+    CGContextDrawImage(bitmapRef, extent, bitmapImage);
+    
+    CGImageRef scaledImage = CGBitmapContextCreateImage(bitmapRef);
+    CGContextRelease(bitmapRef);
+    CGImageRelease(bitmapImage);
+    return [UIImage imageWithCGImage:scaledImage];
+}
+
+/*
+// Override to support conditional editing of the table view.
+- (BOOL)tableView:(UITableView *)tableView canEditRowAtIndexPath:(NSIndexPath *)indexPath {
+    // Return NO if you do not want the specified item to be editable.
+    return YES;
+}
+*/
+
+/*
+// Override to support editing the table view.
+- (void)tableView:(UITableView *)tableView commitEditingStyle:(UITableViewCellEditingStyle)editingStyle forRowAtIndexPath:(NSIndexPath *)indexPath {
+    if (editingStyle == UITableViewCellEditingStyleDelete) {
+        // Delete the row from the data source
+        [tableView deleteRowsAtIndexPaths:@[indexPath] withRowAnimation:UITableViewRowAnimationFade];
+    } else if (editingStyle == UITableViewCellEditingStyleInsert) {
+        // Create a new instance of the appropriate class, insert it into the array, and add a new row to the table view
+    }   
+}
+*/
+
+/*
+// Override to support rearranging the table view.
+- (void)tableView:(UITableView *)tableView moveRowAtIndexPath:(NSIndexPath *)fromIndexPath toIndexPath:(NSIndexPath *)toIndexPath {
+}
+*/
+
+/*
+// Override to support conditional rearranging of the table view.
+- (BOOL)tableView:(UITableView *)tableView canMoveRowAtIndexPath:(NSIndexPath *)indexPath {
+    // Return NO if you do not want the item to be re-orderable.
+    return YES;
+}
+*/
+
+/*
+#pragma mark - Navigation
+
+// In a storyboard-based application, you will often want to do a little preparation before navigation
+- (void)prepareForSegue:(UIStoryboardSegue *)segue sender:(id)sender {
+    // Get the new view controller using [segue destinationViewController].
+    // Pass the selected object to the new view controller.
+}
+*/
+
+@end

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/58afecae/ios/playground/WeexDemo/Scanner/WXScannerVC.m
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/Scanner/WXScannerVC.m b/ios/playground/WeexDemo/Scanner/WXScannerVC.m
index 52f415a..eeb39c1 100644
--- a/ios/playground/WeexDemo/Scanner/WXScannerVC.m
+++ b/ios/playground/WeexDemo/Scanner/WXScannerVC.m
@@ -76,7 +76,8 @@
     [_session stopRunning];
     AudioServicesPlaySystemSound(kSystemSoundID_Vibrate);
     if (metadataObjects.count > 0) {
-        AVMetadataMachineReadableCodeObject * metadataObject = [metadataObjects objectAtIndex : 0 ];
+        AVMetadataMachineReadableCodeObject * metadataObject = [metadataObjects objectAtIndex: 0];
+        [self recordScannerHistory:metadataObject.stringValue];
         [self openURL:metadataObject.stringValue];
     }
 }
@@ -211,5 +212,20 @@
 }
 #pragma clang diagnostic pop
 
+- (void)recordScannerHistory:(NSString*)urlStr {
+    
+    NSMutableArray * scanner_history = [[[NSUserDefaults standardUserDefaults] objectForKey:WX_SCANNER_HISTORY] mutableCopy];
+    if (!scanner_history) {
+        scanner_history = [NSMutableArray new];
+    }
+    if ([scanner_history containsObject:urlStr]) {
+        [scanner_history removeObject:urlStr];
+    }
+    if ([scanner_history count] >= 7) {
+        [scanner_history removeLastObject];
+    }
+    [scanner_history insertObject:urlStr atIndex:0];
+    [[NSUserDefaults standardUserDefaults] setObject:scanner_history forKey:WX_SCANNER_HISTORY];
+}
 
 @end

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/58afecae/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.m
----------------------------------------------------------------------
diff --git a/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.m b/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.m
index dec8505..2ebb338 100644
--- a/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.m
+++ b/ios/playground/WeexDemo/UIViewController+WXDemoNaviBar.m
@@ -8,6 +8,7 @@
 
 #import "UIViewController+WXDemoNaviBar.h"
 #import "WXScannerVC.h"
+#import "WXScannerHistoryVC.h"
 #import "WXDefine.h"
 #import <objc/runtime.h>
 
@@ -34,17 +35,29 @@
     [self.navigationController.navigationBar setTitleTextAttributes: [NSDictionary dictionaryWithObjectsAndKeys:
                                                                       [UIColor whiteColor], NSForegroundColorAttributeName, nil]];
     self.navigationItem.title = @"Weex Playground";
-    
-    if (self.navigationItem.leftBarButtonItem) return;
-    
-    UIBarButtonItem *leftItem;
-    if(![[self.navigationController.viewControllers objectAtIndex:0] isEqual:self]) {
-        leftItem = [self backButtonItem];
-    } else {
-        leftItem = [self leftBarButtonItem];
+    if (!self.navigationItem.leftBarButtonItem) {
+        UIBarButtonItem *leftItem;
+        if(![[self.navigationController.viewControllers objectAtIndex:0] isEqual:self]) {
+            leftItem = [self backButtonItem];
+        } else {
+            leftItem = [self leftBarButtonItem];
+        }
+        self.navigationItem.leftBarButtonItems = @[leftItem];
+    }
+    if ([self isKindOfClass:[WXScannerVC class]]) {
+        UIBarButtonItem *historyItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"scan_history"]
+                                                          style:UIBarButtonItemStyleBordered
+                                                         target:self
+                                                         action:@selector(historyButtonClicked:)];
+        self.navigationItem.rightBarButtonItems = @[historyItem];
+    }
+    if([self isKindOfClass:[WXScannerHistoryVC class]]) {
+        UIBarButtonItem *historyItem = [[UIBarButtonItem alloc] initWithImage:[UIImage imageNamed:@"delete"]
+                                                                        style:UIBarButtonItemStyleBordered
+                                                                       target:self
+                                                                       action:@selector(clearScannerHistory:)];
+        self.navigationItem.rightBarButtonItems = @[historyItem];
     }
-    
-    self.navigationItem.leftBarButtonItems = @[leftItem];
 }
 
 - (void)edgePanGesture:(UIScreenEdgePanGestureRecognizer*)edgePanGestureRecognizer
@@ -97,15 +110,24 @@
 #pragma mark -
 #pragma mark - UIBarButtonItem actions
 
-- (void)scanQR:(id)sender
-{
+- (void)scanQR:(id)sender {
+    
     WXScannerVC * scanViewController = [[WXScannerVC alloc] init];
     [self.navigationController pushViewController:scanViewController animated:YES];
 }
 
-- (void)backButtonClicked:(id)sender
-{
+- (void)backButtonClicked:(id)sender {
+    
     [self.navigationController popViewControllerAnimated:YES];
 }
 
+- (void)historyButtonClicked:(id)sender {
+    
+    [self.navigationController pushViewController:[WXScannerHistoryVC new] animated:YES];
+}
+
+- (void)clearScannerHistory:(id)sender {
+    [[NSUserDefaults standardUserDefaults] removeObjectForKey:WX_SCANNER_HISTORY];
+}
+
 @end


[14/18] incubator-weex git commit: * [ios] use test-id for macaca test case

Posted by cx...@apache.org.
* [ios] use test-id for macaca test case


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

Branch: refs/heads/0.12-dev
Commit: c1442510634fb723efbce429e08010456a2196d9
Parents: 93987a9
Author: acton393 <zh...@gmail.com>
Authored: Mon Apr 10 14:10:54 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Mon Apr 10 14:14:51 2017 +0800

----------------------------------------------------------------------
 test/pages/image-onload.vue                  | 2 +-
 test/scripts/components/image-onload.test.js | 4 ++--
 2 files changed, 3 insertions(+), 3 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c1442510/test/pages/image-onload.vue
----------------------------------------------------------------------
diff --git a/test/pages/image-onload.vue b/test/pages/image-onload.vue
index 77d6020..cec8a8e 100644
--- a/test/pages/image-onload.vue
+++ b/test/pages/image-onload.vue
@@ -1,7 +1,7 @@
 <template>
   <div>
     <image style="width: 500;height: 500;" src="https://gw.alicdn.com/tps/TB1bEMYKXXXXXaLaXXXXXXXXXXX-360-388.png" @load="onload"></image>
-    <text style="font-size:30">{{size}}</text>
+    <text test-id='imgSize' style="font-size:30">{{size}}</text>
   </div>
 </template>
 <script>

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c1442510/test/scripts/components/image-onload.test.js
----------------------------------------------------------------------
diff --git a/test/scripts/components/image-onload.test.js b/test/scripts/components/image-onload.test.js
index f2b3410..4233c3f 100644
--- a/test/scripts/components/image-onload.test.js
+++ b/test/scripts/components/image-onload.test.js
@@ -14,7 +14,7 @@ describe('image onload', function () {
   before(function () {
     return util.init(driver)
       .get(util.getPage('/image-onload.js'))
-      .waitForElementByXPath('//div/text[1]',util.getGETActionWaitTimeMills(),1000)
+      .waitForElementById('imgSize',util.getGETActionWaitTimeMills(),1000)
   });
 
   after(function () {
@@ -25,7 +25,7 @@ describe('image onload', function () {
   it('#1 download image', () => {
     return driver
     .sleep(5000)
-    .elementByXPath('//div/text')
+    .elementById('imgSize')
     .text()
     .then((text)=>{
         if(text == '-1,-1') {


[10/18] incubator-weex git commit: Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev

Posted by cx...@apache.org.
Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev


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

Branch: refs/heads/0.12-dev
Commit: 5bf791a0e2a4bfff7e1882f5e37b0629806a3658
Parents: 9dd78d4 d240048
Author: acton393 <zh...@gmail.com>
Authored: Wed Apr 5 14:55:23 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Wed Apr 5 14:55:23 2017 +0800

----------------------------------------------------------------------
 .eslintrc                                       |   3 +-
 .../java/com/taobao/weex/WXSDKInstance.java     |  12 +-
 .../taobao/weex/ui/component/WXComponent.java   |   7 +-
 .../com/taobao/weex/ui/component/WXImage.java   |   6 +
 build/karma.vue.conf.js                         |  64 ++++++--
 dangerfile.js                                   |   6 +-
 html5/render/vue/components/a.js                |   3 +-
 html5/render/vue/components/div.js              |  10 +-
 html5/render/vue/components/image.js            |   2 +-
 html5/render/vue/mixins/base.js                 |   7 +
 html5/test/render/index.js                      |   3 -
 html5/test/render/vue/components/a.js           |  38 +++++
 html5/test/render/vue/components/div.js         |  29 ++++
 html5/test/render/vue/components/image.js       |  44 +++---
 html5/test/render/vue/components/list.js        |  21 ++-
 html5/test/render/vue/components/switch.js      |  35 +++--
 html5/test/render/vue/components/text.js        |  42 ++---
 html5/test/render/vue/components/web.js         |  14 +-
 html5/test/render/vue/examples/list-cell.js     |  16 +-
 html5/test/render/vue/helper.js                 | 157 ++++++++++++++++---
 html5/test/render/vue/utils.js                  |   1 -
 html5/test/render/vue/validator/check.js        |   1 -
 html5/test/render/vue/validator/index.js        |   1 -
 html5/test/render/vue/validator/prop.js         |   1 -
 html5/test/render/vue/validator/style.js        |   1 -
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj       |   8 -
 .../Component/WXComponent+GradientColor.h       |  18 ---
 .../Component/WXComponent+GradientColor.m       | 124 ---------------
 .../Sources/Component/WXComponent_internal.h    |   3 +
 .../Sources/Display/WXComponent+BoxShadow.h     |   2 +-
 .../Sources/Display/WXComponent+BoxShadow.m     |  10 +-
 ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.h  |   2 +-
 ios/sdk/WeexSDK/Sources/Display/WXInnerLayer.m  |   4 +-
 .../WeexSDK/Sources/Layout/WXComponent+Layout.m |   3 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m     |  29 +++-
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.h   |   2 +-
 ios/sdk/WeexSDK/Sources/Utility/WXBoxShadow.m   |  25 +--
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.h     |  27 ++++
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.m     | 101 ++++++++++++
 .../Sources/View/WXComponent+ViewManagement.m   |   1 -
 package.json                                    |   4 +-
 test/ci-funcs.sh                                |   3 +-
 42 files changed, 545 insertions(+), 345 deletions(-)
----------------------------------------------------------------------



[12/18] incubator-weex git commit: Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev

Posted by cx...@apache.org.
Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev


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

Branch: refs/heads/0.12-dev
Commit: c18fc984c8f8e748ad40bd4ff49fcbc13d6b9580
Parents: e2252c5 c597a05
Author: acton393 <zh...@gmail.com>
Authored: Thu Apr 6 19:17:33 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Thu Apr 6 19:17:33 2017 +0800

----------------------------------------------------------------------
 .../java/com/taobao/weex/WXSDKInstance.java     | 10 +++--
 html5/frameworks/legacy/app/ctrl/init.js        | 42 +++++++++++++++++---
 package.json                                    |  2 +-
 3 files changed, 44 insertions(+), 10 deletions(-)
----------------------------------------------------------------------



[07/18] incubator-weex git commit: Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev

Posted by cx...@apache.org.
Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev


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

Branch: refs/heads/0.12-dev
Commit: c7b39542f5018c8d9747c0c041c2de37bd0dc497
Parents: cf9fcf4 247e732
Author: acton393 <zh...@gmail.com>
Authored: Fri Mar 31 11:56:39 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Fri Mar 31 11:56:39 2017 +0800

----------------------------------------------------------------------
 README.md                                       | 50 ++++++++++----------
 .../main/java/com/taobao/weex/WXSDKManager.java | 13 ++++-
 .../Sources/Manager/WXComponentManager.m        |  4 +-
 3 files changed, 39 insertions(+), 28 deletions(-)
----------------------------------------------------------------------



[17/18] incubator-weex git commit: * [ios] use xcode 8.3

Posted by cx...@apache.org.
* [ios] use xcode 8.3


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

Branch: refs/heads/0.12-dev
Commit: b2e7a7ab4175be727db731dc6b054008fba3a9f4
Parents: 9f17ff2
Author: acton393 <zh...@gmail.com>
Authored: Mon Apr 10 14:35:21 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Mon Apr 10 14:35:21 2017 +0800

----------------------------------------------------------------------
 .travis.yml | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b2e7a7ab/.travis.yml
----------------------------------------------------------------------
diff --git a/.travis.yml b/.travis.yml
index 91a1010..51f93ee 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -26,7 +26,7 @@ matrix:
     include:
       - os: osx
         env: TEST_SUITE=ios
-        osx_image: xcode8.2
+        osx_image: xcode8.3
         language: objective-c
       - os: linux
         env: TEST_SUITE=android


[15/18] incubator-weex git commit: Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev

Posted by cx...@apache.org.
Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev


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

Branch: refs/heads/0.12-dev
Commit: c00e12e484c854f0cbaa979f1b2d54c907a9ff8a
Parents: c144251 d882c8b
Author: acton393 <zh...@gmail.com>
Authored: Mon Apr 10 14:30:59 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Mon Apr 10 14:30:59 2017 +0800

----------------------------------------------------------------------
 .../weex/appfram/pickers/WXPickersModule.java   | 172 +++++++++++++--
 examples/vue/index.vue                          |  10 +-
 examples/vue/showcase/compositing.vue           |  89 ++++++++
 .../WeexSDK/Sources/Component/WXCellComponent.m |  10 +-
 .../Sources/Component/WXComponent_internal.h    |   8 +-
 .../Sources/Component/WXImageComponent.m        |  90 +++++---
 .../WeexSDK/Sources/Component/WXTextComponent.m | 134 ++++--------
 .../Sources/Display/WXComponent+Display.m       | 218 +++++++++++++------
 ios/sdk/WeexSDK/Sources/Display/WXRoundedRect.h |   4 +
 .../WeexSDK/Sources/Display/WXRoundedRect.mm    |  10 +
 ios/sdk/WeexSDK/Sources/Model/WXComponent.h     |  68 +++++-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m     |   7 +-
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m   |   4 +-
 .../WeexSDK/Sources/Protocol/WXBridgeProtocol.h |   3 +-
 test/scripts/components/recycler.test.js        |   2 -
 15 files changed, 593 insertions(+), 236 deletions(-)
----------------------------------------------------------------------



[13/18] incubator-weex git commit: Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev

Posted by cx...@apache.org.
Merge remote-tracking branch 'upstream/0.12-dev' into 0.12-dev


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

Branch: refs/heads/0.12-dev
Commit: 93987a9abe7f19a00c6dfaeff80e4ad8f37d347a
Parents: c18fc98 51ba988
Author: acton393 <zh...@gmail.com>
Authored: Mon Apr 10 12:17:56 2017 +0800
Committer: acton393 <zh...@gmail.com>
Committed: Mon Apr 10 12:17:56 2017 +0800

----------------------------------------------------------------------
 .../taobao/weex/ui/component/WXComponent.java   |  23 +-
 .../com/taobao/weex/ui/component/WXSlider.java  |  81 ++-
 .../taobao/weex/ui/view/WXCircleViewPager.java  |  21 +-
 .../taobao/weex/ui/view/gesture/WXGesture.java  |  14 +
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj       |   8 +
 .../WeexSDK/Sources/Bridge/WXBridgeContext.m    |   4 +
 ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m |  77 +++
 .../Component/Recycler/WXRecyclerComponent.m    |   1 +
 .../Sources/Component/WXCycleSliderComponent.h  |  18 +
 .../Sources/Component/WXCycleSliderComponent.m  | 594 +++++++++++++++++++
 .../Sources/Component/WXIndicatorComponent.h    |   8 +
 .../Sources/Component/WXIndicatorComponent.m    |  16 +-
 .../WeexSDK/Sources/Component/WXListComponent.m |   2 +
 .../Sources/Component/WXSliderComponent.m       |   5 +-
 .../Component/WXSliderNeighborComponent.h       |   3 +
 .../Component/WXSliderNeighborComponent.m       |   5 +-
 .../Sources/Display/WXComponent+Display.m       |   1 +
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m    |   1 +
 .../Sources/Manager/WXComponentManager.h        |   4 +
 .../Sources/Manager/WXComponentManager.m        |   5 +
 ios/sdk/WeexSDK/Sources/Model/WXComponent.h     |   6 +
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m     |   5 +
 ios/sdk/WeexSDK/Sources/Model/WXSDKInstance.m   |   1 +
 .../WeexSDK/Sources/Protocol/WXBridgeProtocol.h |   5 +
 ios/sdk/WeexSDK/Sources/Utility/WXDefine.h      |  11 +
 ios/sdk/WeexSDK/Sources/Utility/WXType.h        |   5 +
 .../Sources/View/WXComponent+ViewManagement.m   |   3 +
 test/pages/components/recycler.vue              |  29 +-
 test/pages/slider-infinite.vue                  |  49 ++
 test/scripts/components/recycler.test.js        | 164 ++---
 test/scripts/components/slider-infinite.test.js |  38 ++
 31 files changed, 1088 insertions(+), 119 deletions(-)
----------------------------------------------------------------------