[GitHub] incubator-weex pull request #734: * [test] update danger version and danger ...

2017-09-21 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/incubator-weex/pull/734


---


incubator-weex git commit: * [test] update danger version and danger file import

2017-09-21 Thread gurisxie
Repository: incubator-weex
Updated Branches:
  refs/heads/0.16-dev 9172cdde0 -> 3f0ddca09


* [test] update danger version and danger file import


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

Branch: refs/heads/0.16-dev
Commit: 3f0ddca09b410f0547bc534f7e2ac12be8609cb1
Parents: 9172cdd
Author: gurisxie <279483...@qq.com>
Authored: Fri Sep 22 13:45:20 2017 +0800
Committer: gurisxie <279483...@qq.com>
Committed: Fri Sep 22 13:45:20 2017 +0800

--
 .travis.yml   | 9 -
 dangerfile-android.js | 2 +-
 dangerfile-ios.js | 2 +-
 dangerfile-jsfm.js| 2 +-
 dangerfile.js | 2 +-
 package.json  | 2 +-
 6 files changed, 13 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3f0ddca0/.travis.yml
--
diff --git a/.travis.yml b/.travis.yml
index 8a49ae6..a7bca6f 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -49,11 +49,18 @@ before_script:
   nvm install 7.0
   npm install
 fi
+  - |
+if [[ $TEST_SUITE = "jsfm" ]]; then
+  npm install
+fi
+  - |
+if [[ $TEST_SUITE = "danger" ]]; then
+  npm install
+fi
 script:
   - |
 if [[ $TEST_SUITE = "android" ]]; then
   npm run danger -- run --dangerfile ./dangerfile-android.js
-  cd $TRAVIS_BUILD_DIR
 fi
   - |
 if [[ $TEST_SUITE = "jsfm" ]]; then

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3f0ddca0/dangerfile-android.js
--
diff --git a/dangerfile-android.js b/dangerfile-android.js
index 2e81f0a..f10dd94 100644
--- a/dangerfile-android.js
+++ b/dangerfile-android.js
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-// Removed import
+import { schedule, danger, fail, warn, message, markdown } from "danger";
 import fs from "fs";
 import path from 'path';
 import GitHubApi from 'github';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3f0ddca0/dangerfile-ios.js
--
diff --git a/dangerfile-ios.js b/dangerfile-ios.js
index 079e516..007d830 100644
--- a/dangerfile-ios.js
+++ b/dangerfile-ios.js
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-// Removed import
+import { schedule, danger, fail, warn, message, markdown } from "danger";
 import fs from "fs";
 import path from 'path';
 import GitHubApi from 'github';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3f0ddca0/dangerfile-jsfm.js
--
diff --git a/dangerfile-jsfm.js b/dangerfile-jsfm.js
index 64b72f4..71d6402 100644
--- a/dangerfile-jsfm.js
+++ b/dangerfile-jsfm.js
@@ -16,7 +16,7 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-// Removed import
+import { schedule, danger, fail, warn, message, markdown } from "danger";
 import fs from "fs";
 import path from 'path';
 import GitHubApi from 'github';

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3f0ddca0/dangerfile.js
--
diff --git a/dangerfile.js b/dangerfile.js
index 05db91d..2a7829f 100644
--- a/dangerfile.js
+++ b/dangerfile.js
@@ -305,7 +305,7 @@ function findReviewer(resolve, reject) {
 owner: danger.github.pr.base.user.login,
 repo: repoName,
 number: danger.github.pr.number,
-headers: {Accept: 'application/vnd.github.diff'}
+headers: {Accept: 'application/vnd.github.diff',"user-agent": "node.js"}
   }, function (err, result) {
 console.log('parseDeleteAndNormalLines')
 if ("undefined" === typeof result || "undefined" === typeof result.data || 
err) {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3f0ddca0/package.json
--
diff --git a/package.json b/package.json
index 87f5429..828d9af 100644
--- a/package.json
+++ b/package.json
@@ -122,7 +122,7 @@
 "chromedriver": "^2.21.2",
 "cross-spawn": "^4.0.0",
 "css-loader": "^0.26.1",
-"danger": "^1.2.0",
+"danger": "^0.18.0",
 "dateformat": "^2.0.0",
 "eslint": "^2.11.1",
 "eslint-plugin-flowtype": "^2.30.4",



[GitHub] incubator-weex issue #734: * [test] update danger version and danger file im...

2017-09-21 Thread weex-bot
Github user weex-bot commented on the issue:

https://github.com/apache/incubator-weex/pull/734
  






  

  
  Messages

  
  
  :book:
  has no jsfm file changed,skip test!

  




  Generated by :no_entry_sign: http://github.com/danger/danger-js/;>dangerJS




---


[GitHub] incubator-weex pull request #734: * [test] update danger version and danger ...

2017-09-21 Thread gurisxie
GitHub user gurisxie opened a pull request:

https://github.com/apache/incubator-weex/pull/734

* [test] update danger version and danger file import

update danger version and danger file import:
1. danger version > 1.0.0 has bug,revert version to 0.18.0
2. danger file import danger 

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gurisxie/incubator-weex 
test-bugfix-travis-danger

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/incubator-weex/pull/734.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #734


commit 3f0ddca09b410f0547bc534f7e2ac12be8609cb1
Author: gurisxie <279483...@qq.com>
Date:   2017-09-22T05:45:20Z

* [test] update danger version and danger file import




---


[GitHub] incubator-weex pull request #733: * [test] danger request need nodejs head t...

2017-09-21 Thread gurisxie
GitHub user gurisxie reopened a pull request:

https://github.com/apache/incubator-weex/pull/733

* [test] danger request need nodejs head type

Request failed [404] when send git request by using nodejs。


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gurisxie/incubator-weex 
test-bugfix-nodejs-headertype

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/incubator-weex/pull/733.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #733


commit 2676a4127bbd1de53d8e266a57d7864886902de7
Author: gurisxie <279483...@qq.com>
Date:   2017-09-22T04:26:40Z

* [test] danger request need nodejs head type

commit 74a6c44d23d723765a57447dc760a9d68d113e64
Author: gurisxie <279483...@qq.com>
Date:   2017-09-22T04:34:42Z

* [test] reset travis yml

commit 13974c507cdf2870d62abb6488a06470b32ab0d8
Author: gurisxie <279483...@qq.com>
Date:   2017-09-22T04:45:56Z

* [test] travis update




---


[GitHub] incubator-weex pull request #733: * [test] danger request need nodejs head t...

2017-09-21 Thread gurisxie
GitHub user gurisxie opened a pull request:

https://github.com/apache/incubator-weex/pull/733

* [test] danger request need nodejs head type

Request failed [404] when send git request by using nodejs。


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gurisxie/incubator-weex 
test-bugfix-nodejs-headertype

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/incubator-weex/pull/733.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #733


commit 2676a4127bbd1de53d8e266a57d7864886902de7
Author: gurisxie <279483...@qq.com>
Date:   2017-09-22T04:26:40Z

* [test] danger request need nodejs head type




---


[GitHub] incubator-weex issue #732: [jsfm] Sync the source code of weex-js-framework@...

2017-09-21 Thread weex-bot
Github user weex-bot commented on the issue:

https://github.com/apache/incubator-weex/pull/732
  




  

  
  Fails

  
  
  :no_entry_sign:
  

  android platform run unit test failed!
  

  






  Generated by :no_entry_sign: http://github.com/danger/danger-js/;>dangerJS




---


[GitHub] incubator-weex pull request #731: fix image view bug, clear image when resus...

2017-09-21 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/incubator-weex/pull/731


---


[3/3] incubator-weex git commit: Merge remote-tracking branch 'origin/0.16-dev' into 0.16-dev-template-list

2017-09-21 Thread acton393
Merge remote-tracking branch 'origin/0.16-dev' into 0.16-dev-template-list


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

Branch: refs/heads/0.16-dev
Commit: 9172cdde0bbd250cc4c10418454499fe893c6e8d
Parents: ff0af4e 5a08279
Author: jianbai.gbj 
Authored: Thu Sep 21 22:09:52 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 21 22:09:52 2017 +0800

--
 .travis.yml |   4 -
 doc/source/cn/guide/index.md|   9 +-
 doc/source/cn/guide/set-up-env.md   |   4 +-
 doc/source/cn/guide/tools/toolkit.md|   2 +-
 .../cn/references/advanced/extend-to-android.md |  21 +-
 doc/source/cn/references/common-style.md|   1 +
 doc/source/cn/references/components/text.md |   6 +-
 doc/source/cn/references/modules/animation.md   |   2 +
 doc/source/cn/references/modules/dom.md |   2 +-
 doc/source/guide/index.md   |   4 +-
 doc/source/guide/set-up-env.md  |   6 +-
 doc/source/guide/tools/toolkit.md   |   5 +-
 doc/source/references/common-style.md   |   1 +
 doc/source/references/components/text.md|   8 +-
 doc/source/references/modules/animation.md  |   3 +-
 doc/source/references/modules/dom.md|   2 +-
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj   | 109 ++-
 .../Component/RecycleList/WXCellSlotComponent.h |  32 +
 .../Component/RecycleList/WXCellSlotComponent.m |  93 ++
 .../RecycleList/WXComponent+DataBinding.h   |  31 +
 .../RecycleList/WXComponent+DataBinding.mm  | 451 +
 .../Component/RecycleList/WXJSASTParser.h   | 100 ++
 .../Component/RecycleList/WXJSASTParser.mm  | 919 +++
 .../RecycleList/WXRecycleListComponent.h|  25 +
 .../RecycleList/WXRecycleListComponent.m| 459 +
 .../RecycleList/WXRecycleListDataManager.h  |  34 +
 .../RecycleList/WXRecycleListDataManager.m  |  71 ++
 .../Component/RecycleList/WXRecycleListLayout.h |  32 +
 .../Component/RecycleList/WXRecycleListLayout.m | 113 +++
 .../RecycleList/WXRecycleListTemplateManager.h  |  33 +
 .../RecycleList/WXRecycleListTemplateManager.m  |  94 ++
 .../RecycleList/WXRecycleListUpdateManager.h|  50 +
 .../RecycleList/WXRecycleListUpdateManager.m| 262 ++
 .../Recycler/WXSectionDataController.m  |   2 +-
 .../WeexSDK/Sources/Component/WXCellComponent.m |   4 +-
 .../Sources/Component/WXComponent_internal.h|  28 +
 .../Sources/Component/WXImageComponent.m|   7 +-
 .../Sources/Component/WXScrollerComponent.h |   2 +
 .../Sources/Component/WXScrollerComponent.m |  13 +-
 .../WeexSDK/Sources/Component/WXWebComponent.m  |   1 +
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m|   4 +
 .../WeexSDK/Sources/Events/WXComponent+Events.m |   5 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.h   |  13 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.m   |  10 +
 .../Sources/Manager/WXComponentFactory.h|  12 +
 .../Sources/Manager/WXComponentFactory.m|  30 +-
 .../Sources/Manager/WXComponentManager.h|  13 +-
 .../Sources/Manager/WXComponentManager.m| 147 ++-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.h |  19 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m |  83 ++
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.h|  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.m|  86 +-
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.h |  20 +-
 .../Sources/View/WXComponent+ViewManagement.m   |   4 +
 ios/sdk/WeexSDK/Sources/WeexSDK.h   |   1 +
 55 files changed, 3438 insertions(+), 77 deletions(-)
--




[2/3] incubator-weex git commit: fix image view

2017-09-21 Thread acton393
fix image view


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

Branch: refs/heads/0.16-dev
Commit: ff0af4e9148809b2cffb4363ede7f35ee24af699
Parents: ee3c6e3
Author: jianbai.gbj 
Authored: Thu Sep 21 22:07:56 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 21 22:07:56 2017 +0800

--
 .../sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java  | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ff0af4e9/android/sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java
index 46abdbc..1cf5d02 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java
@@ -205,8 +205,10 @@ public class WXImage extends WXComponent {
   return;
 }
 
-if(image.getDrawable() != null){
+if(image != null){
+  if(image.getDrawable() != null){
  image.setImageDrawable(null);
+  }
 }
 
 



[1/3] incubator-weex git commit: clear pre image

2017-09-21 Thread acton393
Repository: incubator-weex
Updated Branches:
  refs/heads/0.16-dev 5a0827998 -> 9172cdde0


clear pre image


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

Branch: refs/heads/0.16-dev
Commit: ee3c6e340fb671a4ac672195cb07852ea26f20f1
Parents: 9f4eb8c
Author: jianbai.gbj 
Authored: Thu Sep 21 22:02:53 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 21 22:02:53 2017 +0800

--
 .../sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java | 5 +
 1 file changed, 5 insertions(+)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/ee3c6e34/android/sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java
index db58d99..46abdbc 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXImage.java
@@ -205,6 +205,11 @@ public class WXImage extends WXComponent {
   return;
 }
 
+if(image.getDrawable() != null){
+ image.setImageDrawable(null);
+}
+
+
 this.mSrc = src;
 WXSDKInstance instance = getInstance();
 Uri rewrited = instance.rewriteUri(Uri.parse(src), URIAdapter.IMAGE);



[GitHub] incubator-weex pull request #731: fix image view bug, clear image when resus...

2017-09-21 Thread gubaojian
GitHub user gubaojian opened a pull request:

https://github.com/apache/incubator-weex/pull/731

fix image view bug, clear image when resuse

fix image view bug, clear image when resuse

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gubaojian/incubator-weex 
0.16-dev-template-list

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/incubator-weex/pull/731.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #731


commit ee3c6e340fb671a4ac672195cb07852ea26f20f1
Author: jianbai.gbj 
Date:   2017-09-21T14:02:53Z

clear pre image

commit ff0af4e9148809b2cffb4363ede7f35ee24af699
Author: jianbai.gbj 
Date:   2017-09-21T14:07:56Z

fix image view

commit 9172cdde0bbd250cc4c10418454499fe893c6e8d
Author: jianbai.gbj 
Date:   2017-09-21T14:09:52Z

Merge remote-tracking branch 'origin/0.16-dev' into 0.16-dev-template-list




---


incubator-weex git commit: * [ios] call image cliptoBounds in main thread

2017-09-21 Thread acton393
Repository: incubator-weex
Updated Branches:
  refs/heads/0.16-dev 73dbdf07b -> 5a0827998


* [ios] call image cliptoBounds in main thread


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

Branch: refs/heads/0.16-dev
Commit: 5a0827998bc62cef3289d91a3bec6b099bcd7e85
Parents: 73dbdf0
Author: acton393 
Authored: Thu Sep 21 22:00:23 2017 +0800
Committer: acton393 
Committed: Thu Sep 21 22:00:23 2017 +0800

--
 ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m | 7 ++-
 1 file changed, 6 insertions(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5a082799/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
--
diff --git a/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m 
b/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
index bd31e97..b68f45a 100644
--- a/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Component/WXImageComponent.m
@@ -29,6 +29,7 @@
 #import "UIBezierPath+Weex.h"
 #import "WXSDKEngine.h"
 #import "WXUtility.h"
+#import "WXAssert.h"
 #import 
 
 @interface WXImageView : UIImageView
@@ -317,7 +318,10 @@ WX_EXPORT_METHOD(@selector(save:))
 [super _frameDidCalculated:isChanged];
 
 if ([self isViewLoaded] && isChanged) {
-[self _clipsToBounds];
+__weak typeof(self) weakSelf = self;
+WXPerformBlockOnMainThread(^{
+[weakSelf _clipsToBounds];
+});
 }
 }
 
@@ -490,6 +494,7 @@ WX_EXPORT_METHOD(@selector(save:))
 
 - (void)_clipsToBounds
 {
+WXAssertMainThread();
 WXRoundedRect *borderRect = [[WXRoundedRect alloc] 
initWithRect:self.view.bounds topLeft:_borderTopLeftRadius 
topRight:_borderTopRightRadius bottomLeft:_borderBottomLeftRadius 
bottomRight:_borderBottomRightRadius];
 // here is computed radii, do not use original style
 WXRadii *radii = borderRect.radii;



[1/2] incubator-weex git commit: * [jsfm] add miss jsfm version

2017-09-21 Thread acton393
Repository: incubator-weex
Updated Branches:
  refs/heads/0.16-dev 5b99cc6b0 -> 73dbdf07b


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/73dbdf07/pre-build/native-bundle-main.js
--
diff --git a/pre-build/native-bundle-main.js b/pre-build/native-bundle-main.js
index c737167..70f4b57 100644
--- a/pre-build/native-bundle-main.js
+++ b/pre-build/native-bundle-main.js
@@ -1,8 +1,8 @@
-(this.nativeLog||function(e){console.log(e)})("START JS FRAMEWORK 0.22.2, 
Build 2017-09-21 15:46."),this.getJSFMVersion=function(){return"0.22.2"};var 
global=this,process={env:{}},setTimeout=global.setTimeout;!function(e,t){"object"==typeof
 exports&&"undefined"!=typeof module?t():"function"==typeof 
define&?define(t):t()}(0,function(){"use strict";function 
e(e){Hn.Document=e.Document,Hn.Element=e.Element,Hn.Comment=e.Comment,Hn.sendTasks=e.sendTasks}function
 t(e,t,n,r,o){void 0===n&&(n={}),void 0===r&&(r={}),void 0===o&&(o={});var 
i=new 
Hn.Document(e,n.bundleUrl),a={},s={id:e,data:r,document:i,callbacks:a},u=0;i.addCallback=function(e){return
 u++,a[u]=e,u},i.handleCallback=function(e,t,n){var r=a[e];return n& 
a[e],r(t)},Gn[e]=s;var 
c=Object.assign({Document:Hn.Document,Element:Hn.Element,Comment:Hn.Comment,sendTasks:function(t){return
 Hn.sendTasks(e,t,-1)},options:n,document:i},o),l=[],f=[];for(var p in 
c)l.push(p),f.push(c[p]);return l.push(t),(new(Function.prototy
 pe.bind.apply(Function,[null].concat(l.apply(void 
0,f),Hn.sendTasks(e,[{module:"dom",method:"createFinish",args:[]}],-1),s}function
 n(e){delete Gn[e]}function r(e){return Gn[e].document.body.toJSON()}function 
o(e,t){var n={fireEvent:function(e,t,n,r,o){var 
i=Gn[e],a=i.document,s=a.getRef(t);return 
a.fireEvent(s,n,r,o)},callback:function(e,t,n,r){return 
Gn[e].document.handleCallback(t,n,r)}};if((Gn[e]||{}).document&(t)){var
 r=[];return t.forEach(function(t){var 
o=n[t.method],i=[].concat(t.args);"function"==typeof 
o&&(i.unshift(e),r.push(o.apply(void 0,i)))}),r}}function i(e){return 
e&__esModule?e.default:e}function a(e,t){return 
t={exports:{}},e(t,t.exports),t.exports}function s(e){console.warn("[JS 
Framework] Vm#$ is deprecated, please use Vm#$vm instead");var 
t=this._ids[e];if(t)return t.vm}function u(e){var t=this._ids[e];if(t)return 
t.el}function c(e){var t=this._ids[e];if(t)return t.vm}function l(e){return 
this._app.differ.then(function(){e()})}function f(e,
 t){console.warn("[JS Framework] Vm#$scrollTo is deprecated, please use 
\"require('@weex-module/dom').scrollTo(el, options)\" instead");var 
n=this.$el(e);if(n){this._app.requireModule("dom").scrollToElement(n.ref,{offset:t})}}function
 p(e,t,n){var 
r=this,o=this.$el(e);if(o&&){this._app.requireModule("animation").transition(o.ref,t,function(){for(var
 
e=[],i=arguments.length;i--;)e[i]=arguments[i];r._setStyle(o,t.styles),n&(void
 0,e)})}}function d(e){var t=this._app.options;return"function"==typeof 
e&&(console.warn("[JS Framework] the callback of Vm#$getConfig(callback) is 
deprecated, this api now can directly RETURN config info."),e(t)),t}function 
h(e,t){console.warn("[JS Framework] Vm#$sendHttp is deprecated, please use 
\"require('@weex-module/stream').sendHttp(params, callback)\" 
instead"),this._app.requireModule("stream").sendHttp(e,t)}function 
v(e){console.warn("[JS Framework] Vm#$openURL is deprecated, please use 
\"require('@weex-module/event').openURL(url)\" i
 nstead"),this._app.requireModule("event").openURL(e)}function 
y(e){console.warn("[JS Framework] Vm#$setTitle is deprecated, please use 
\"require('@weex-module/pageInfo').setTitle(title)\" 
instead"),this._app.requireModule("pageInfo").setTitle(e)}function 
m(e,t){for(var n=[],r=arguments.length-2;r-- 
>0;)n[r]=arguments[r+2];console.warn("[JS Framework] Vm#$call is deprecated, 
please use \"require('@weex-module/moduleName')\" instead");var 
o=this._app.requireModule(e);o&[t]&[t].apply(o,n)}function _(e){for(var 
t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];if("function"==typeof 
Object.assign)Object.assign.apply(Object,[e].concat(t));else{var 
r=t.shift();for(var o in r)e[o]=r[o];t.length&&_.apply(void 
0,[e].concat(t))}return e}function 
g(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}function
 b(e,t){if(e.length){var n=e.indexOf(t);if(n>-1)return e.splice(n,1)}}function 
w(e,t){return hr.call(e,t)}function x(e,t){return function(n){var 
 r=arguments.length;return 
r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}}function E(e){return 
null!==e&&"object"==typeof e}function O(e){return vr.call(e)===yr}function 
S(e){var t=(e+"").charCodeAt(0);return 36===t||95===t}function 
C(){return"object"==typeof nativeSet?nativeSet.create():new Jn}function 
k(e){var t=Object.prototype.toString.call(e);return 
t.substring(8,t.length-1).toLowerCase()}function j(e){return 
e.replace(_r,"").replace(gr,"")}function A(e){return e.replace(wr,"")}function 

[2/2] incubator-weex git commit: * [jsfm] add miss jsfm version

2017-09-21 Thread acton393
* [jsfm] add miss jsfm version


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

Branch: refs/heads/0.16-dev
Commit: 73dbdf07bad4ac8720bf6621b63b737599a4afcf
Parents: 5b99cc6
Author: acton393 
Authored: Thu Sep 21 21:54:36 2017 +0800
Committer: acton393 
Committed: Thu Sep 21 21:54:36 2017 +0800

--
 pre-build/native-bundle-main.js | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)
--




[08/17] incubator-weex git commit: * [ios] update apache license header

2017-09-21 Thread acton393
* [ios] update apache license header


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

Branch: refs/heads/0.16-dev
Commit: 81c7816ee38f55d032ceaa1135299c3e5805eaf8
Parents: 6132c18
Author: yinfeng 
Authored: Thu Sep 21 17:30:03 2017 +0800
Committer: yinfeng 
Committed: Thu Sep 21 17:30:03 2017 +0800

--
 .../Component/RecycleList/WXRecycleListLayout.h | 25 ++--
 .../Component/RecycleList/WXRecycleListLayout.m | 25 ++--
 2 files changed, 36 insertions(+), 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/81c7816e/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListLayout.h
--
diff --git 
a/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListLayout.h 
b/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListLayout.h
index 04e65ea..6e08b94 100644
--- a/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListLayout.h
+++ b/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListLayout.h
@@ -1,10 +1,21 @@
-//
-//  WXRecycleListLinearLayout.h
-//  WeexSDK
-//
-//  Created by yinfeng on 2017/9/19.
-//  Copyright © 2017年 taobao. All rights reserved.
-//
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 
 #import 
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/81c7816e/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListLayout.m
--
diff --git 
a/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListLayout.m 
b/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListLayout.m
index e5bc8c3..73851de 100644
--- a/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListLayout.m
+++ b/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListLayout.m
@@ -1,10 +1,21 @@
-//
-//  WXRecycleListLinearLayout.m
-//  WeexSDK
-//
-//  Created by yinfeng on 2017/9/19.
-//  Copyright © 2017年 taobao. All rights reserved.
-//
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 
 #import "WXRecycleListLayout.h"
 



[15/17] incubator-weex git commit: * [ios] merge pull request

2017-09-21 Thread acton393
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5b99cc6b/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
--
diff --git a/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m 
b/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
index c53d5f1..db26c93 100644
--- a/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
+++ b/ios/sdk/WeexSDK/Sources/Manager/WXComponentManager.m
@@ -20,6 +20,7 @@
 #import "WXComponentManager.h"
 #import "WXComponent.h"
 #import "WXComponent_internal.h"
+#import "WXComponent+DataBinding.h"
 #import "WXComponentFactory.h"
 #import "WXDefine.h"
 #import "NSArray+Weex.h"
@@ -135,6 +136,18 @@ static NSThread *WXComponentThread;
 }
 }
 
++ (void)_performBlockSyncOnComponentThread:(void (^)())block
+{
+if([NSThread currentThread] == [self componentThread]){
+block();
+} else {
+[self performSelector:@selector(_performBlockOnComponentThread:)
+ onThread:WXComponentThread
+   withObject:[block copy]
+waitUntilDone:YES];
+}
+}
+
 - (void)startComponentTasks
 {
 [self _awakeDisplayLink];
@@ -204,6 +217,15 @@ static NSThread *WXComponentThread;
 _rootComponent = [self _buildComponentForData:data supercomponent:nil];
 
 [self _initRootCSSNode];
+
+NSArray *subcomponentsData = [data valueForKey:@"children"];
+if (subcomponentsData) {
+BOOL appendTree = [_rootComponent.attributes[@"append"] 
isEqualToString:@"tree"];
+for(NSDictionary *subcomponentData in subcomponentsData){
+[self _recursivelyAddComponent:subcomponentData 
toSupercomponent:_rootComponent atIndex:-1 appendingInTree:appendTree];
+}
+}
+
 __weak typeof(self) weakSelf = self;
 WX_MONITOR_INSTANCE_PERF_END(WXFirstScreenJSFExecuteTime, 
self.weexInstance);
 [self _addUITask:^{
@@ -213,6 +235,8 @@ static NSThread *WXComponentThread;
 [strongSelf.weexInstance.rootView 
addSubview:strongSelf->_rootComponent.view];
 [WXTracingManager 
startTracingWithInstanceId:weakSelf.weexInstance.instanceId ref:data[@"ref"] 
className:nil name:data[@"type"] phase:WXTracingEnd functionName:@"createBody" 
options:@{@"threadName":WXTUIThread}];
 }];
+
+
 }
 
 static bool rootNodeIsDirty(void *context)
@@ -259,14 +283,16 @@ static css_node_t * rootNodeGetChild(void *context, int i)
 if(supercomponent && component && supercomponent->_lazyCreateView) {
 component->_lazyCreateView = YES;
 }
-
-__weak typeof(self) weakSelf = self;
-[self _addUITask:^{
-[WXTracingManager 
startTracingWithInstanceId:weakSelf.weexInstance.instanceId 
ref:componentData[@"ref"] className:nil name:componentData[@"type"] 
phase:WXTracingBegin functionName:@"addElement" 
options:@{@"threadName":WXTUIThread}];
-[supercomponent insertSubview:component atIndex:index];
-[WXTracingManager 
startTracingWithInstanceId:weakSelf.weexInstance.instanceId 
ref:componentData[@"ref"] className:nil name:componentData[@"type"] 
phase:WXTracingEnd functionName:@"addElement" 
options:@{@"threadName":WXTUIThread}];
-}];
-
+
+if (!component->_isTemplate) {
+__weak typeof(self) weakSelf = self;
+[self _addUITask:^{
+[WXTracingManager 
startTracingWithInstanceId:weakSelf.weexInstance.instanceId 
ref:componentData[@"ref"] className:nil name:componentData[@"type"] 
phase:WXTracingBegin functionName:@"addElement" 
options:@{@"threadName":WXTUIThread}];
+[supercomponent insertSubview:component atIndex:index];
+[WXTracingManager 
startTracingWithInstanceId:weakSelf.weexInstance.instanceId 
ref:componentData[@"ref"] className:nil name:componentData[@"type"] 
phase:WXTracingEnd functionName:@"addElement" 
options:@{@"threadName":WXTUIThread}];
+}];
+}
+
 NSArray *subcomponentsData = [componentData valueForKey:@"children"];
 
 BOOL appendTree = !appendingInTree && [component.attributes[@"append"] 
isEqualToString:@"tree"];
@@ -274,6 +300,9 @@ static css_node_t * rootNodeGetChild(void *context, int i)
 for(NSDictionary *subcomponentData in subcomponentsData){
 [self _recursivelyAddComponent:subcomponentData 
toSupercomponent:component atIndex:-1 appendingInTree:appendTree || 
appendingInTree];
 }
+
+[component _didInserted];
+
 if (appendTree) {
 // If appending tree,force layout in case of too much tasks piling 
up in syncQueue
 [self _layoutAndSyncUI];
@@ -384,9 +413,28 @@ static css_node_t * rootNodeGetChild(void *context, int i)
 }
 }
 }
-
-Class clazz = [WXComponentFactory classWithComponentName:type];
+
+WXComponentConfig *config = [WXComponentFactory 
configWithComponentName:type];
+BOOL isTemplate = [config.properties[@"isTemplate"] boolValue] || 
(supercomponent && supercomponent->_isTemplate);
+

[17/17] incubator-weex git commit: * [ios] merge pull request

2017-09-21 Thread acton393
* [ios] merge pull request


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

Branch: refs/heads/0.16-dev
Commit: 5b99cc6b0c721eeceb14491efb3dd6fd1a41bce0
Parents: 8725289
Author: acton393 
Authored: Thu Sep 21 21:43:53 2017 +0800
Committer: acton393 
Committed: Thu Sep 21 21:43:53 2017 +0800

--
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj   | 105 +++
 .../Component/RecycleList/WXCellSlotComponent.h |  32 +
 .../Component/RecycleList/WXCellSlotComponent.m |  93 ++
 .../RecycleList/WXComponent+DataBinding.h   |  31 +
 .../RecycleList/WXComponent+DataBinding.mm  | 451 +
 .../Component/RecycleList/WXJSASTParser.h   | 100 ++
 .../Component/RecycleList/WXJSASTParser.mm  | 919 +++
 .../RecycleList/WXRecycleListComponent.h|  25 +
 .../RecycleList/WXRecycleListComponent.m| 459 +
 .../RecycleList/WXRecycleListDataManager.h  |  34 +
 .../RecycleList/WXRecycleListDataManager.m  |  71 ++
 .../Component/RecycleList/WXRecycleListLayout.h |  32 +
 .../Component/RecycleList/WXRecycleListLayout.m | 113 +++
 .../RecycleList/WXRecycleListTemplateManager.h  |  33 +
 .../RecycleList/WXRecycleListTemplateManager.m  |  94 ++
 .../RecycleList/WXRecycleListUpdateManager.h|  50 +
 .../RecycleList/WXRecycleListUpdateManager.m| 262 ++
 .../Recycler/WXSectionDataController.m  |   2 +-
 .../WeexSDK/Sources/Component/WXCellComponent.m |   4 +-
 .../Sources/Component/WXComponent_internal.h|  28 +
 .../Sources/Component/WXScrollerComponent.h |   2 +
 .../Sources/Component/WXScrollerComponent.m |  13 +-
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m|   4 +
 .../WeexSDK/Sources/Events/WXComponent+Events.m |   5 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.h   |  13 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.m   |  10 +
 .../Sources/Manager/WXComponentFactory.h|  12 +
 .../Sources/Manager/WXComponentFactory.m|  30 +-
 .../Sources/Manager/WXComponentManager.h|  13 +-
 .../Sources/Manager/WXComponentManager.m| 147 ++-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.h |  19 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m |  83 ++
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.h|  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.m|  86 +-
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.h |  20 +-
 .../Sources/View/WXComponent+ViewManagement.m   |   4 +
 pre-build/native-bundle-main.js |  12 +-
 37 files changed, 3383 insertions(+), 51 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5b99cc6b/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
--
diff --git a/ios/sdk/WeexSDK.xcodeproj/project.pbxproj 
b/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
index 765a26a..8addaca 100644
--- a/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
+++ b/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
@@ -102,6 +102,8 @@
7423899B1C3174EB00D748CA /* WXWeakObjectWrapper.h in Headers */ 
= {isa = PBXBuildFile; fileRef = 742389991C3174EB00D748CA /* 
WXWeakObjectWrapper.h */; };
7423899C1C3174EB00D748CA /* WXWeakObjectWrapper.m in Sources */ 
= {isa = PBXBuildFile; fileRef = 7423899A1C3174EB00D748CA /* 
WXWeakObjectWrapper.m */; };
7423899F1C32733800D748CA /* WXType.h in Headers */ = {isa = 
PBXBuildFile; fileRef = 7423899D1C32733800D748CA /* WXType.h */; settings = 
{ATTRIBUTES = (Public, ); }; };
+   7423EB511F4ADE30001662D1 /* WXComponent+DataBinding.h in 
Headers */ = {isa = PBXBuildFile; fileRef = 7423EB4F1F4ADE30001662D1 /* 
WXComponent+DataBinding.h */; };
+   7423EB521F4ADE30001662D1 /* WXComponent+DataBinding.mm in 
Sources */ = {isa = PBXBuildFile; fileRef = 7423EB501F4ADE30001662D1 /* 
WXComponent+DataBinding.mm */; };
742AD72E1DF98C45007DC46C /* WXResourceRequest.h in Headers */ = 
{isa = PBXBuildFile; fileRef = 742AD7251DF98C45007DC46C /* WXResourceRequest.h 
*/; settings = {ATTRIBUTES = (Public, ); }; };
742AD72F1DF98C45007DC46C /* WXResourceRequest.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 742AD7261DF98C45007DC46C /* WXResourceRequest.m 
*/; };
742AD7301DF98C45007DC46C /* WXResourceRequestHandler.h in 
Headers */ = {isa = PBXBuildFile; fileRef = 742AD7271DF98C45007DC46C /* 
WXResourceRequestHandler.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -147,6 +149,8 @@
7463192A1C71B92600EFEBD4 /* WXModalUIModule.m in Sources */ = 
{isa = 

[01/17] incubator-weex git commit: * [ios] finish 70% of new recycle-list

2017-09-21 Thread acton393
Repository: incubator-weex
Updated Branches:
  refs/heads/0.16-dev af2923026 -> 5b99cc6b0


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/877487a6/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListDataManager.m
--
diff --git 
a/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListDataManager.m 
b/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListDataManager.m
new file mode 100644
index 000..49ed216
--- /dev/null
+++ b/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListDataManager.m
@@ -0,0 +1,64 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#import "WXRecycleListDataManager.h"
+#import "NSArray+Weex.h"
+#import "WXLog.h"
+#import "WXAssert.h"
+
+@implementation WXRecycleListDataManager
+{
+NSArray *_data;
+}
+
+- (instancetype)initWithData:(NSArray *)data
+{
+if (self = [super init]) {
+if (![data isKindOfClass:[NSArray class]]) {
+WXLogError(@"list data must be an array!");
+} else {
+_data = data;
+}
+}
+
+return self;
+}
+
+- (void)updateData:(NSArray *)data
+{
+WXAssertMainThread();
+
+_data = data;
+}
+
+- (NSDictionary *)dataAtIndex:(NSInteger)index
+{
+WXAssertMainThread();
+
+return [_data wx_safeObjectAtIndex:index];
+}
+
+- (NSInteger)numberOfItems
+{
+WXAssertMainThread();
+
+return [_data count];
+}
+
+@end

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/877487a6/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListTemplateManager.h
--
diff --git 
a/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListTemplateManager.h 
b/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListTemplateManager.h
new file mode 100644
index 000..389dbb8
--- /dev/null
+++ 
b/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListTemplateManager.h
@@ -0,0 +1,33 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#import 
+#import "WXCellSlotComponent.h"
+
+@interface WXRecycleListTemplateManager : NSObject
+
+@property (nonatomic, weak) UICollectionView *collectionView;
+
+- (void)addTemplate:(WXCellSlotComponent *)component;
+
+- (WXCellSlotComponent *)dequeueCellSlotWithType:(NSString *)type 
forIndexPath:(NSIndexPath *)indexPath;
+
+- (WXCellSlotComponent *)templateWithType:(NSString *)type;
+
+@end

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/877487a6/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListTemplateManager.m
--
diff --git 
a/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListTemplateManager.m 
b/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListTemplateManager.m
new file mode 100644
index 000..0ac528e
--- /dev/null
+++ 
b/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXRecycleListTemplateManager.m
@@ -0,0 +1,94 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License 

[09/17] incubator-weex git commit: * [ios] Add new files to dynamic target

2017-09-21 Thread acton393
* [ios] Add new files to dynamic target


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

Branch: refs/heads/0.16-dev
Commit: 523843adb06a0562bdbc15fa40b2d87081462897
Parents: 81c7816
Author: yinfeng 
Authored: Thu Sep 21 17:57:48 2017 +0800
Committer: yinfeng 
Committed: Thu Sep 21 17:57:48 2017 +0800

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


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/523843ad/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
--
diff --git a/ios/sdk/WeexSDK.xcodeproj/project.pbxproj 
b/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
index a7329a7..37aa33c 100644
--- a/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
+++ b/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
@@ -182,6 +182,22 @@
74AD99841D5B0E59008F0336 /* WXPolyfillSet.h in Headers */ = 
{isa = PBXBuildFile; fileRef = 74AD99821D5B0E59008F0336 /* WXPolyfillSet.h */; 
};
74AD99851D5B0E59008F0336 /* WXPolyfillSet.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 74AD99831D5B0E59008F0336 /* WXPolyfillSet.m */; 
};
74B232D21D2A2BA4006322EA /* WXLayoutDefine.h in Headers */ = 
{isa = PBXBuildFile; fileRef = 74B232D11D2A2BA4006322EA /* WXLayoutDefine.h */; 
settings = {ATTRIBUTES = (Public, ); }; };
+   74B81AE31F73C3E300D3A61D /* WXRecycleListComponent.h in Headers 
*/ = {isa = PBXBuildFile; fileRef = 74CFDD371F45939C007A1A66 /* 
WXRecycleListComponent.h */; };
+   74B81AE41F73C3E500D3A61D /* WXRecycleListComponent.m in Sources 
*/ = {isa = PBXBuildFile; fileRef = 74CFDD381F45939C007A1A66 /* 
WXRecycleListComponent.m */; };
+   74B81AE51F73C3E900D3A61D /* WXRecycleListDataManager.h in 
Headers */ = {isa = PBXBuildFile; fileRef = 74CFDD3B1F45947A1A66 /* 
WXRecycleListDataManager.h */; };
+   74B81AE61F73C3E900D3A61D /* WXRecycleListDataManager.m in 
Sources */ = {isa = PBXBuildFile; fileRef = 74CFDD3C1F45947A1A66 /* 
WXRecycleListDataManager.m */; };
+   74B81AE71F73C3E900D3A61D /* WXRecycleListTemplateManager.h in 
Headers */ = {isa = PBXBuildFile; fileRef = 74CFDD3F1F45941E007A1A66 /* 
WXRecycleListTemplateManager.h */; };
+   74B81AE81F73C3E900D3A61D /* WXRecycleListTemplateManager.m in 
Sources */ = {isa = PBXBuildFile; fileRef = 74CFDD401F45941E007A1A66 /* 
WXRecycleListTemplateManager.m */; };
+   74B81AE91F73C3E900D3A61D /* WXRecycleListUpdateManager.h in 
Headers */ = {isa = PBXBuildFile; fileRef = 74CFDD431F459443007A1A66 /* 
WXRecycleListUpdateManager.h */; };
+   74B81AEA1F73C3E900D3A61D /* WXRecycleListUpdateManager.m in 
Sources */ = {isa = PBXBuildFile; fileRef = 74CFDD441F459443007A1A66 /* 
WXRecycleListUpdateManager.m */; };
+   74B81AEB1F73C3E900D3A61D /* WXRecycleListLayout.h in Headers */ 
= {isa = PBXBuildFile; fileRef = 74BA4AB11F70F4B600AC29BF /* 
WXRecycleListLayout.h */; };
+   74B81AEC1F73C3E900D3A61D /* WXRecycleListLayout.m in Sources */ 
= {isa = PBXBuildFile; fileRef = 74BA4AB21F70F4B600AC29BF /* 
WXRecycleListLayout.m */; };
+   74B81AED1F73C3E900D3A61D /* WXCellSlotComponent.h in Headers */ 
= {isa = PBXBuildFile; fileRef = 746B92391F46BE36009AE86B /* 
WXCellSlotComponent.h */; };
+   74B81AEE1F73C3E900D3A61D /* WXCellSlotComponent.m in Sources */ 
= {isa = PBXBuildFile; fileRef = 746B923A1F46BE36009AE86B /* 
WXCellSlotComponent.m */; };
+   74B81AEF1F73C3E900D3A61D /* WXComponent+DataBinding.h in 
Headers */ = {isa = PBXBuildFile; fileRef = 7423EB4F1F4ADE30001662D1 /* 
WXComponent+DataBinding.h */; };
+   74B81AF01F73C3E900D3A61D /* WXComponent+DataBinding.mm in 
Sources */ = {isa = PBXBuildFile; fileRef = 7423EB501F4ADE30001662D1 /* 
WXComponent+DataBinding.mm */; };
+   74B81AF11F73C3E900D3A61D /* WXJSASTParser.h in Headers */ = 
{isa = PBXBuildFile; fileRef = 74BF19F61F5139BB00AEE3D7 /* WXJSASTParser.h */; 
};
+   74B81AF21F73C3E900D3A61D /* WXJSASTParser.mm in Sources */ = 
{isa = PBXBuildFile; fileRef = 74BF19F71F5139BB00AEE3D7 /* WXJSASTParser.mm */; 
};
74B8BEFE1DC47B72004A6027 /* WXRootView.h in Headers */ = {isa = 
PBXBuildFile; fileRef = 74B8BEFC1DC47B72004A6027 /* WXRootView.h */; };
74B8BEFF1DC47B72004A6027 /* WXRootView.m in Sources */ = {isa = 
PBXBuildFile; fileRef = 74B8BEFD1DC47B72004A6027 /* WXRootView.m */; };
74B8BF011DC49AFE004A6027 /* 

[03/17] incubator-weex git commit: * [ios] Supporting events and data updating for recycle-list component.

2017-09-21 Thread acton393
* [ios] Supporting events and data updating for recycle-list component.


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

Branch: refs/heads/0.16-dev
Commit: 74cc3b331d00b5f333e215dba8f6200ccf1bf668
Parents: 877487a
Author: yinfeng 
Authored: Thu Sep 21 17:11:10 2017 +0800
Committer: yinfeng 
Committed: Thu Sep 21 17:11:10 2017 +0800

--
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj   |   8 +
 .../Component/RecycleList/WXCellSlotComponent.m |   4 +-
 .../RecycleList/WXComponent+DataBinding.h   |   2 +-
 .../RecycleList/WXComponent+DataBinding.mm  | 139 +++---
 .../Component/RecycleList/WXJSASTParser.h   |   5 +
 .../Component/RecycleList/WXJSASTParser.mm  |  46 
 .../RecycleList/WXRecycleListComponent.h|   4 +-
 .../RecycleList/WXRecycleListComponent.m| 272 +--
 .../RecycleList/WXRecycleListDataManager.h  |   2 +
 .../RecycleList/WXRecycleListDataManager.m  |   7 +
 .../Component/RecycleList/WXRecycleListLayout.h |  21 ++
 .../Component/RecycleList/WXRecycleListLayout.m | 102 +++
 .../RecycleList/WXRecycleListTemplateManager.m  |   2 +-
 .../RecycleList/WXRecycleListUpdateManager.h|  22 ++
 .../RecycleList/WXRecycleListUpdateManager.m| 233 
 .../Recycler/WXSectionDataController.m  |   2 +-
 .../WeexSDK/Sources/Component/WXCellComponent.m |   2 +-
 .../Sources/Component/WXComponent_internal.h|  14 +-
 .../Sources/Component/WXScrollerComponent.h |   2 +
 .../Sources/Component/WXScrollerComponent.m |  13 +-
 .../WeexSDK/Sources/Events/WXComponent+Events.m |   5 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.h   |  13 +-
 .../WeexSDK/Sources/Manager/WXBridgeManager.m   |  10 +
 .../Sources/Manager/WXComponentManager.h|   1 +
 .../Sources/Manager/WXComponentManager.m|  36 ++-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m |  20 ++
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.h|  23 +-
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.m|  84 +-
 28 files changed, 1024 insertions(+), 70 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/74cc3b33/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
--
diff --git a/ios/sdk/WeexSDK.xcodeproj/project.pbxproj 
b/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
index d597bf0..5911fec 100644
--- a/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
+++ b/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
@@ -188,6 +188,8 @@
74B8BEFE1DC47B72004A6027 /* WXRootView.h in Headers */ = {isa = 
PBXBuildFile; fileRef = 74B8BEFC1DC47B72004A6027 /* WXRootView.h */; };
74B8BEFF1DC47B72004A6027 /* WXRootView.m in Sources */ = {isa = 
PBXBuildFile; fileRef = 74B8BEFD1DC47B72004A6027 /* WXRootView.m */; };
74B8BF011DC49AFE004A6027 /* WXRootViewTests.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 74B8BF001DC49AFE004A6027 /* WXRootViewTests.m 
*/; };
+   74BA4AB31F70F4B600AC29BF /* WXRecycleListLayout.h in Headers */ 
= {isa = PBXBuildFile; fileRef = 74BA4AB11F70F4B600AC29BF /* 
WXRecycleListLayout.h */; };
+   74BA4AB41F70F4B600AC29BF /* WXRecycleListLayout.m in Sources */ 
= {isa = PBXBuildFile; fileRef = 74BA4AB21F70F4B600AC29BF /* 
WXRecycleListLayout.m */; };
74BB5FB91DFEE81A004FC3DF /* WXMetaModule.h in Headers */ = {isa 
= PBXBuildFile; fileRef = 74BB5FB71DFEE81A004FC3DF /* WXMetaModule.h */; };
74BB5FBA1DFEE81A004FC3DF /* WXMetaModule.m in Sources */ = {isa 
= PBXBuildFile; fileRef = 74BB5FB81DFEE81A004FC3DF /* WXMetaModule.m */; };
74BF19F81F5139BB00AEE3D7 /* WXJSASTParser.h in Headers */ = 
{isa = PBXBuildFile; fileRef = 74BF19F61F5139BB00AEE3D7 /* WXJSASTParser.h */; 
};
@@ -778,6 +780,8 @@
74B8BEFC1DC47B72004A6027 /* WXRootView.h */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = 
WXRootView.h; sourceTree = ""; };
74B8BEFD1DC47B72004A6027 /* WXRootView.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= WXRootView.m; sourceTree = ""; };
74B8BF001DC49AFE004A6027 /* WXRootViewTests.m */ = {isa = 
PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path 
= WXRootViewTests.m; sourceTree = ""; };
+   74BA4AB11F70F4B600AC29BF /* WXRecycleListLayout.h */ = {isa = 
PBXFileReference; lastKnownFileType = sourcecode.c.h; path = 
WXRecycleListLayout.h; sourceTree = ""; };
+   

[GitHub] incubator-weex pull request #728: * [jsfm] upgrade weex-js-framework to 0.22...

2017-09-21 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/incubator-weex/pull/728


---


[16/17] incubator-weex git commit: * [ios] merge pull request

2017-09-21 Thread acton393
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5b99cc6b/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXJSASTParser.mm
--
diff --git a/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXJSASTParser.mm 
b/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXJSASTParser.mm
new file mode 100644
index 000..7e7a565
--- /dev/null
+++ b/ios/sdk/WeexSDK/Sources/Component/RecycleList/WXJSASTParser.mm
@@ -0,0 +1,919 @@
+/*
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+
+#import "WXJSASTParser.h"
+#import "WXLog.h"
+#include 
+#include 
+
+
+typedef enum : NSUInteger {
+WXJSTokenTypeBooleanLiteral = 1,
+WXJSTokenTypeEOF,
+WXJSTokenTypeIdentifier,
+WXJSTokenTypeKeyword,
+WXJSTokenTypeNullLiteral,
+WXJSTokenTypeNumericLiteral,
+WXJSTokenTypePunctuator,
+WXJSTokenTypeStringLiteral,
+WXJSTokenTypeRegularExpression,
+WXJSTokenTypeTemplate
+} WXJSTokenType;
+
+struct WXJSToken {
+WXJSTokenType type;
+std::string value;
+double doubleValue;
+bool octal;
+int start;
+int end;
+};
+
+struct WXJSMarker {
+int index;
+};
+
+static bool isWhiteSpace(int ch) {
+return (ch == 32) ||  // space
+(ch == 9) ||  // tab
+(ch == 0xB) ||
+(ch == 0xC) ||
+(ch == 0xA0);
+}
+
+static bool isIdentifierStart(int ch)
+{
+return (ch == 36) || (ch == 95) ||  // $ or _
+(ch >= 65 && ch <= 90) || // A..Z
+(ch >= 97 && ch <= 122) ||// a..z
+(ch == 92);  // \ (backslash)
+}
+
+static bool isIdentifierPart(int ch) {
+return (ch == 36) || (ch == 95) ||  // $ or _
+(ch >= 65 && ch <= 90) || // A..Z
+(ch >= 97 && ch <= 122) ||// a..z
+(ch >= 48 && ch <= 57) || // 0..9
+(ch == 92);  // \ (backslash)
+}
+
+static bool isDecimalDigit(int ch) {
+return (ch >= 48 && ch <= 57);   // 0..9
+}
+
+static bool isHexDigit(int ch) {
+return std::string("0123456789abcdefABCDEF").find(ch) != std::string::npos;
+}
+
+static bool isOctalDigit(int ch) {
+return std::string("01234567").find(ch) != std::string::npos;
+}
+
+static int binaryPrecedence(WXJSToken *token)
+{
+int prec = 0;
+
+if (token->type != WXJSTokenTypePunctuator) {
+return prec;
+}
+
+const std::string  = token->value;
+
+if (value == "||") {
+prec = 1;
+}
+
+else if (value == "&&") {
+prec = 2;
+}
+
+else if (value == "|") {
+prec = 3;
+}
+
+else if (value == "^") {
+prec = 4;
+}
+
+else if (value == "&") {
+prec = 5;
+}
+
+else if (value == "==" || value == "!=" || value == "===" || value == 
"!==") {
+prec = 6;
+}
+
+else if (value == "<" || value == ">" || value == "<=" || value == ">=") {
+prec = 7;
+}
+
+else if (value == "<<" || value == ">>" || value == ">>>") {
+prec = 8;
+}
+
+else if (value == "+" || value == "-") {
+prec = 9;
+}
+
+else if (value == "*" || value == "/" || value == "%") {
+prec = 11;
+}
+
+return prec;
+}
+
+@implementation WXJSASTParser
+{
+std::string _source;
+
+int _length;
+int _index;
+
+WXJSToken *_lookahead;
+
+std::vector _tokens;
+}
+
++ (instancetype)parserWithScript:(NSString *)script
+{
+if (!script) {
+WXLogError(@"can not init parser with nil script");
+return nil;
+}
+return [[self alloc] initWithScript:script];
+}
+
+- (instancetype)initWithScript:(NSString *)script
+{
+if (self = [super init]) {
+_source = std::string([script UTF8String]);;
+_length = (int)(_source.length());
+_index = 0;
+
+_lookahead = NULL;
+
+[self nextToken];
+}
+
+return self;
+}
+
+- (WXJSToken *)nextToken
+{
+WXJSToken *token = _lookahead;
+
+WXJSToken *next = [self lex];
+
+_lookahead = next;
+
+if (next->type != WXJSTokenTypeEOF) {
+_tokens.push_back(token);
+}
+
+return token;
+}
+
+- (WXJSToken *)lex
+{
+ 

[14/17] incubator-weex git commit: * [ios] merge pull request

2017-09-21 Thread acton393
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5b99cc6b/pre-build/native-bundle-main.js
--
diff --git a/pre-build/native-bundle-main.js b/pre-build/native-bundle-main.js
index 70f4b57..c737167 100644
--- a/pre-build/native-bundle-main.js
+++ b/pre-build/native-bundle-main.js
@@ -1,8 +1,8 @@
-(this.nativeLog||function(e){console.log(e)})("START JS FRAMEWORK 0.22.3, 
Build 2017-09-21 19:05."),this.getJSFMVersion=function(){return"0.22.3"};var 
global=this,process={env:{}},setTimeout=global.setTimeout;!function(e,t){"object"==typeof
 exports&&"undefined"!=typeof module?t():"function"==typeof 
define&?define(t):t()}(0,function(){"use strict";function 
e(e){Hn.Document=e.Document,Hn.Element=e.Element,Hn.Comment=e.Comment,Hn.sendTasks=e.sendTasks}function
 t(e,t,n,r,o){void 0===n&&(n={}),void 0===r&&(r={}),void 0===o&&(o={});var 
i=new 
Hn.Document(e,n.bundleUrl),a={},s={id:e,data:r,document:i,callbacks:a},u=0;i.addCallback=function(e){return
 u++,a[u]=e,u},i.handleCallback=function(e,t,n){var r=a[e];return n& 
a[e],r(t)},Gn[e]=s;var 
c=Object.assign({Document:Hn.Document,Element:Hn.Element,Comment:Hn.Comment,sendTasks:function(t){return
 Hn.sendTasks(e,t,-1)},options:n,document:i},o),l=[],f=[];for(var p in 
c)l.push(p),f.push(c[p]);return l.push(t),(new(Function.prototy
 pe.bind.apply(Function,[null].concat(l.apply(void 
0,f),Hn.sendTasks(e,[{module:"dom",method:"createFinish",args:[]}],-1),s}function
 n(e){delete Gn[e]}function r(e){return Gn[e].document.body.toJSON()}function 
o(e,t){var n={fireEvent:function(e,t,n,r,o){var 
i=Gn[e],a=i.document,s=a.getRef(t);return 
a.fireEvent(s,n,r,o)},callback:function(e,t,n,r){return 
Gn[e].document.handleCallback(t,n,r)}};if((Gn[e]||{}).document&(t)){var
 r=[];return t.forEach(function(t){var 
o=n[t.method],i=[].concat(t.args);"function"==typeof 
o&&(i.unshift(e),r.push(o.apply(void 0,i)))}),r}}function i(e){return 
e&__esModule?e.default:e}function a(e,t){return 
t={exports:{}},e(t,t.exports),t.exports}function s(e){console.warn("[JS 
Framework] Vm#$ is deprecated, please use Vm#$vm instead");var 
t=this._ids[e];if(t)return t.vm}function u(e){var t=this._ids[e];if(t)return 
t.el}function c(e){var t=this._ids[e];if(t)return t.vm}function l(e){return 
this._app.differ.then(function(){e()})}function f(e,
 t){console.warn("[JS Framework] Vm#$scrollTo is deprecated, please use 
\"require('@weex-module/dom').scrollTo(el, options)\" instead");var 
n=this.$el(e);if(n){this._app.requireModule("dom").scrollToElement(n.ref,{offset:t})}}function
 p(e,t,n){var 
r=this,o=this.$el(e);if(o&&){this._app.requireModule("animation").transition(o.ref,t,function(){for(var
 
e=[],i=arguments.length;i--;)e[i]=arguments[i];r._setStyle(o,t.styles),n&(void
 0,e)})}}function d(e){var t=this._app.options;return"function"==typeof 
e&&(console.warn("[JS Framework] the callback of Vm#$getConfig(callback) is 
deprecated, this api now can directly RETURN config info."),e(t)),t}function 
h(e,t){console.warn("[JS Framework] Vm#$sendHttp is deprecated, please use 
\"require('@weex-module/stream').sendHttp(params, callback)\" 
instead"),this._app.requireModule("stream").sendHttp(e,t)}function 
v(e){console.warn("[JS Framework] Vm#$openURL is deprecated, please use 
\"require('@weex-module/event').openURL(url)\" i
 nstead"),this._app.requireModule("event").openURL(e)}function 
y(e){console.warn("[JS Framework] Vm#$setTitle is deprecated, please use 
\"require('@weex-module/pageInfo').setTitle(title)\" 
instead"),this._app.requireModule("pageInfo").setTitle(e)}function 
m(e,t){for(var n=[],r=arguments.length-2;r-- 
>0;)n[r]=arguments[r+2];console.warn("[JS Framework] Vm#$call is deprecated, 
please use \"require('@weex-module/moduleName')\" instead");var 
o=this._app.requireModule(e);o&[t]&[t].apply(o,n)}function _(e){for(var 
t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];if("function"==typeof 
Object.assign)Object.assign.apply(Object,[e].concat(t));else{var 
r=t.shift();for(var o in r)e[o]=r[o];t.length&&_.apply(void 
0,[e].concat(t))}return e}function 
g(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}function
 b(e,t){if(e.length){var n=e.indexOf(t);if(n>-1)return e.splice(n,1)}}function 
w(e,t){return hr.call(e,t)}function x(e,t){return function(n){var 
 r=arguments.length;return 
r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}}function E(e){return 
null!==e&&"object"==typeof e}function O(e){return vr.call(e)===yr}function 
S(e){var t=(e+"").charCodeAt(0);return 36===t||95===t}function 
C(){return"object"==typeof nativeSet?nativeSet.create():new Jn}function 
k(e){var t=Object.prototype.toString.call(e);return 
t.substring(8,t.length-1).toLowerCase()}function j(e){return 
e.replace(_r,"").replace(gr,"")}function A(e){return e.replace(wr,"")}function 
I(){this.id=Cr++,this.subs=[]}function 
T(e){I.target&(I.target),I.target=e}function 
N(){I.target=kr.pop()}function 

[07/17] incubator-weex git commit: * [ios] add missing "}“

2017-09-21 Thread acton393
* [ios] add missing "}“


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

Branch: refs/heads/0.16-dev
Commit: 6132c1814316b7adffde24ec33f0b0639f7f4450
Parents: 6a272ab
Author: yinfeng 
Authored: Thu Sep 21 17:27:35 2017 +0800
Committer: yinfeng 
Committed: Thu Sep 21 17:27:35 2017 +0800

--
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m | 1 +
 1 file changed, 1 insertion(+)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6132c181/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
--
diff --git a/ios/sdk/WeexSDK/Sources/Model/WXComponent.m 
b/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
index 5bdc7f3..2bad1c2 100644
--- a/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
+++ b/ios/sdk/WeexSDK/Sources/Model/WXComponent.m
@@ -174,6 +174,7 @@
 });
 
 return component;
+}
 
 - 
(UIAccessibilityTraits)_parseAccessibilityTraitsWithTraits:(UIAccessibilityTraits)trait
 roles:(NSString*)roleStr
 {



[05/17] incubator-weex git commit: * [ios] update JSFM to 0.22.2

2017-09-21 Thread acton393
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/6a272abc/pre-build/native-bundle-main.js
--
diff --git a/pre-build/native-bundle-main.js b/pre-build/native-bundle-main.js
index 462e4fc..c737167 100644
--- a/pre-build/native-bundle-main.js
+++ b/pre-build/native-bundle-main.js
@@ -1,8 +1,8 @@
-(this.nativeLog||function(e){console.log(e)})("START JS FRAMEWORK 0.21.11, 
Build 2017-08-23 15:52."),this.getJSFMVersion=function(){return"0.21.11"};var 
global=this,process={env:{}},setTimeout=global.setTimeout;!function(e,t){"object"==typeof
 exports&&"undefined"!=typeof module?t():"function"==typeof 
define&?define(t):t()}(0,function(){"use strict";function 
e(e){Qn.Document=e.Document,Qn.Element=e.Element,Qn.Comment=e.Comment,Qn.sendTasks=e.sendTasks}function
 t(e){}function n(e){}function r(e){}function o(e,t,n){}function 
i(e,t,n,r,o){var i=new 
Qn.Document(e,n.bundleUrl),a={},s=0;i.addCallback=function(e){return 
s++,a[s]=e,s},i.handleCallback=function(e,t,n){var r=a[e];return n& 
a[e],r(t)},Yn[e]=i;var 
u=Object.assign({Document:Qn.Document,Element:Qn.Element,Comment:Qn.Comment,sendTasks:Qn.sendTasks,id:e,options:n,data:r,document:i},o),c=[],l=[];for(var
 f in u)c.push(f),l.push(u[f]);return 
c.push(t),(new(Function.prototype.bind.apply(Function,[null].concat(c.app
 ly(void 0,l),{document:i}}function a(e,t){}function s(e){delete Yn[e]}function 
u(e){return Yn[e].body.toJSON()}function c(e,t){var 
n={fireEvent:function(e,t,n,r,o){var i=Yn[e],a=i.getRef(t);return 
i.fireEvent(a,n,r,o)},callback:function(e,t,n,r){return 
Yn[e].handleCallback(t,n,r)}};if(Yn[e]&(t)){var r=[];return 
t.forEach(function(t){var o=n[t.method],i=[].concat(t.args);"function"==typeof 
o&&(i.unshift(e),r.push(o.apply(void 0,i)))}),r}}function l(e){return 
e&__esModule?e.default:e}function f(e,t){return 
t={exports:{}},e(t,t.exports),t.exports}function d(e){console.warn("[JS 
Framework] Vm#$ is deprecated, please use Vm#$vm instead");var 
t=this._ids[e];if(t)return t.vm}function p(e){var t=this._ids[e];if(t)return 
t.el}function h(e){var t=this._ids[e];if(t)return t.vm}function v(e){return 
this._app.differ.then(function(){e()})}function y(e,t){console.warn("[JS 
Framework] Vm#$scrollTo is deprecated, please use 
\"require('@weex-module/dom').scrollTo(el, options)\" inste
 ad");var 
n=this.$el(e);if(n){this._app.requireModule("dom").scrollToElement(n.ref,{offset:t})}}function
 m(e,t,n){var 
r=this,o=this.$el(e);if(o&&){this._app.requireModule("animation").transition(o.ref,t,function(){for(var
 
e=[],i=arguments.length;i--;)e[i]=arguments[i];r._setStyle(o,t.styles),n&(void
 0,e)})}}function _(e){var t=this._app.options;return"function"==typeof 
e&&(console.warn("[JS Framework] the callback of Vm#$getConfig(callback) is 
deprecated, this api now can directly RETURN config info."),e(t)),t}function 
g(e,t){console.warn("[JS Framework] Vm#$sendHttp is deprecated, please use 
\"require('@weex-module/stream').sendHttp(params, callback)\" 
instead"),this._app.requireModule("stream").sendHttp(e,t)}function 
b(e){console.warn("[JS Framework] Vm#$openURL is deprecated, please use 
\"require('@weex-module/event').openURL(url)\" 
instead"),this._app.requireModule("event").openURL(e)}function 
w(e){console.warn("[JS Framework] Vm#$setTitle is deprecated, please
  use \"require('@weex-module/pageInfo').setTitle(title)\" 
instead"),this._app.requireModule("pageInfo").setTitle(e)}function 
O(e,t){for(var n=[],r=arguments.length-2;r-- 
>0;)n[r]=arguments[r+2];console.warn("[JS Framework] Vm#$call is deprecated, 
please use \"require('@weex-module/moduleName')\" instead");var 
o=this._app.requireModule(e);o&[t]&[t].apply(o,n)}function E(e){for(var 
t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];if("function"==typeof 
Object.assign)Object.assign.apply(Object,[e].concat(t));else{var 
r=t.shift();for(var o in r)e[o]=r[o];t.length&(void 
0,[e].concat(t))}return e}function 
x(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}function
 S(e,t){if(e.length){var n=e.indexOf(t);if(n>-1)return e.splice(n,1)}}function 
C(e,t){return gr.call(e,t)}function k(e,t){return function(n){var 
r=arguments.length;return 
r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}}function j(e){return 
null!==e&&"object"==typeof e}func
 tion A(e){return br.call(e)===wr}function I(e){var 
t=(e+"").charCodeAt(0);return 36===t||95===t}function 
T(){return"object"==typeof nativeSet?nativeSet.create():new Zn}function 
N(e){var t=Object.prototype.toString.call(e);return 
t.substring(8,t.length-1).toLowerCase()}function P(e){return 
e.replace(Er,"").replace(xr,"")}function M(e){return e.replace(Cr,"")}function 
$(){this.id=Tr++,this.subs=[]}function 
R(e){$.target&($.target),$.target=e}function 
D(){$.target=Nr.pop()}function F(){$.target=null,Nr=[]}function 
L(e,t,n,r){r&(this,r);var o="function"==typeof 

[GitHub] incubator-weex pull request #725: * [ios] add recyle list component

2017-09-21 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/incubator-weex/pull/725


---


[02/17] incubator-weex git commit: * [ios] finish 70% of new recycle-list

2017-09-21 Thread acton393
* [ios] finish 70% of new recycle-list


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

Branch: refs/heads/0.16-dev
Commit: 877487a6e31e48ae4684626deb71993579d5e575
Parents: 5f5d674
Author: yinfeng 
Authored: Fri Sep 8 12:24:09 2017 +0800
Committer: yinfeng 
Committed: Fri Sep 8 12:24:09 2017 +0800

--
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj   |  64 ++
 .../Component/RecycleList/WXCellSlotComponent.h |  32 +
 .../Component/RecycleList/WXCellSlotComponent.m |  93 ++
 .../RecycleList/WXComponent+DataBinding.h   |  31 +
 .../RecycleList/WXComponent+DataBinding.mm  | 374 
 .../Component/RecycleList/WXJSASTParser.h   |  95 ++
 .../Component/RecycleList/WXJSASTParser.mm  | 873 +++
 .../RecycleList/WXRecycleListComponent.h|  25 +
 .../RecycleList/WXRecycleListComponent.m| 225 +
 .../RecycleList/WXRecycleListDataManager.h  |  32 +
 .../RecycleList/WXRecycleListDataManager.m  |  64 ++
 .../RecycleList/WXRecycleListTemplateManager.h  |  33 +
 .../RecycleList/WXRecycleListTemplateManager.m  |  94 ++
 .../RecycleList/WXRecycleListUpdateManager.h|  28 +
 .../RecycleList/WXRecycleListUpdateManager.m|  29 +
 .../WeexSDK/Sources/Component/WXCellComponent.m |   2 +-
 .../Sources/Component/WXComponent_internal.h|  20 +
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m|   4 +
 .../Sources/Manager/WXComponentFactory.h|  12 +
 .../Sources/Manager/WXComponentFactory.m|  30 +-
 .../Sources/Manager/WXComponentManager.h|  12 +-
 .../Sources/Manager/WXComponentManager.m| 115 ++-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.h |  19 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m |  63 ++
 ios/sdk/WeexSDK/Sources/Utility/WXDiffUtil.m|   2 +
 ios/sdk/WeexSDK/Sources/Utility/WXUtility.h |  20 +-
 .../Sources/View/WXComponent+ViewManagement.m   |   4 +
 27 files changed, 2359 insertions(+), 36 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/877487a6/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
--
diff --git a/ios/sdk/WeexSDK.xcodeproj/project.pbxproj 
b/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
index d43ec0e..d597bf0 100644
--- a/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
+++ b/ios/sdk/WeexSDK.xcodeproj/project.pbxproj
@@ -105,6 +105,8 @@
7423899B1C3174EB00D748CA /* WXWeakObjectWrapper.h in Headers */ 
= {isa = PBXBuildFile; fileRef = 742389991C3174EB00D748CA /* 
WXWeakObjectWrapper.h */; };
7423899C1C3174EB00D748CA /* WXWeakObjectWrapper.m in Sources */ 
= {isa = PBXBuildFile; fileRef = 7423899A1C3174EB00D748CA /* 
WXWeakObjectWrapper.m */; };
7423899F1C32733800D748CA /* WXType.h in Headers */ = {isa = 
PBXBuildFile; fileRef = 7423899D1C32733800D748CA /* WXType.h */; settings = 
{ATTRIBUTES = (Public, ); }; };
+   7423EB511F4ADE30001662D1 /* WXComponent+DataBinding.h in 
Headers */ = {isa = PBXBuildFile; fileRef = 7423EB4F1F4ADE30001662D1 /* 
WXComponent+DataBinding.h */; };
+   7423EB521F4ADE30001662D1 /* WXComponent+DataBinding.mm in 
Sources */ = {isa = PBXBuildFile; fileRef = 7423EB501F4ADE30001662D1 /* 
WXComponent+DataBinding.mm */; };
742AD72E1DF98C45007DC46C /* WXResourceRequest.h in Headers */ = 
{isa = PBXBuildFile; fileRef = 742AD7251DF98C45007DC46C /* WXResourceRequest.h 
*/; settings = {ATTRIBUTES = (Public, ); }; };
742AD72F1DF98C45007DC46C /* WXResourceRequest.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 742AD7261DF98C45007DC46C /* WXResourceRequest.m 
*/; };
742AD7301DF98C45007DC46C /* WXResourceRequestHandler.h in 
Headers */ = {isa = PBXBuildFile; fileRef = 742AD7271DF98C45007DC46C /* 
WXResourceRequestHandler.h */; settings = {ATTRIBUTES = (Public, ); }; };
@@ -150,6 +152,8 @@
7463192A1C71B92600EFEBD4 /* WXModalUIModule.m in Sources */ = 
{isa = PBXBuildFile; fileRef = 746319281C71B92600EFEBD4 /* WXModalUIModule.m 
*/; };
7469869F1C4E2C54A57E /* NSArray+Weex.h in Headers */ = {isa 
= PBXBuildFile; fileRef = 7469869D1C4E2C54A57E /* NSArray+Weex.h */; };
746986A01C4E2C010054A57E /* NSArray+Weex.m in Sources */ = {isa 
= PBXBuildFile; fileRef = 7469869E1C4E2C54A57E /* NSArray+Weex.m */; };
+   746B923B1F46BE36009AE86B /* WXCellSlotComponent.h in Headers */ 
= {isa = PBXBuildFile; fileRef = 746B92391F46BE36009AE86B /* 
WXCellSlotComponent.h */; };
+   746B923C1F46BE36009AE86B /* 

[11/17] incubator-weex git commit: * [jsfm] upgrade weex-js-framework to 0.22.3

2017-09-21 Thread acton393
* [jsfm] upgrade weex-js-framework to 0.22.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/b7ff22e1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/b7ff22e1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/b7ff22e1

Branch: refs/heads/0.16-dev
Commit: b7ff22e12605209c5ffb376dfa0d16a45ba45843
Parents: 8325077
Author: Hanks 
Authored: Thu Sep 21 19:17:23 2017 +0800
Committer: Hanks 
Committed: Thu Sep 21 19:17:23 2017 +0800

--
 pre-build/native-bundle-main.js | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)
--




[10/17] incubator-weex git commit: * [jsfm] upgrade weex-js-framework to 0.22.3

2017-09-21 Thread acton393
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b7ff22e1/pre-build/native-bundle-main.js
--
diff --git a/pre-build/native-bundle-main.js b/pre-build/native-bundle-main.js
index 462e4fc..70f4b57 100644
--- a/pre-build/native-bundle-main.js
+++ b/pre-build/native-bundle-main.js
@@ -1,8 +1,8 @@
-(this.nativeLog||function(e){console.log(e)})("START JS FRAMEWORK 0.21.11, 
Build 2017-08-23 15:52."),this.getJSFMVersion=function(){return"0.21.11"};var 
global=this,process={env:{}},setTimeout=global.setTimeout;!function(e,t){"object"==typeof
 exports&&"undefined"!=typeof module?t():"function"==typeof 
define&?define(t):t()}(0,function(){"use strict";function 
e(e){Qn.Document=e.Document,Qn.Element=e.Element,Qn.Comment=e.Comment,Qn.sendTasks=e.sendTasks}function
 t(e){}function n(e){}function r(e){}function o(e,t,n){}function 
i(e,t,n,r,o){var i=new 
Qn.Document(e,n.bundleUrl),a={},s=0;i.addCallback=function(e){return 
s++,a[s]=e,s},i.handleCallback=function(e,t,n){var r=a[e];return n& 
a[e],r(t)},Yn[e]=i;var 
u=Object.assign({Document:Qn.Document,Element:Qn.Element,Comment:Qn.Comment,sendTasks:Qn.sendTasks,id:e,options:n,data:r,document:i},o),c=[],l=[];for(var
 f in u)c.push(f),l.push(u[f]);return 
c.push(t),(new(Function.prototype.bind.apply(Function,[null].concat(c.app
 ly(void 0,l),{document:i}}function a(e,t){}function s(e){delete Yn[e]}function 
u(e){return Yn[e].body.toJSON()}function c(e,t){var 
n={fireEvent:function(e,t,n,r,o){var i=Yn[e],a=i.getRef(t);return 
i.fireEvent(a,n,r,o)},callback:function(e,t,n,r){return 
Yn[e].handleCallback(t,n,r)}};if(Yn[e]&(t)){var r=[];return 
t.forEach(function(t){var o=n[t.method],i=[].concat(t.args);"function"==typeof 
o&&(i.unshift(e),r.push(o.apply(void 0,i)))}),r}}function l(e){return 
e&__esModule?e.default:e}function f(e,t){return 
t={exports:{}},e(t,t.exports),t.exports}function d(e){console.warn("[JS 
Framework] Vm#$ is deprecated, please use Vm#$vm instead");var 
t=this._ids[e];if(t)return t.vm}function p(e){var t=this._ids[e];if(t)return 
t.el}function h(e){var t=this._ids[e];if(t)return t.vm}function v(e){return 
this._app.differ.then(function(){e()})}function y(e,t){console.warn("[JS 
Framework] Vm#$scrollTo is deprecated, please use 
\"require('@weex-module/dom').scrollTo(el, options)\" inste
 ad");var 
n=this.$el(e);if(n){this._app.requireModule("dom").scrollToElement(n.ref,{offset:t})}}function
 m(e,t,n){var 
r=this,o=this.$el(e);if(o&&){this._app.requireModule("animation").transition(o.ref,t,function(){for(var
 
e=[],i=arguments.length;i--;)e[i]=arguments[i];r._setStyle(o,t.styles),n&(void
 0,e)})}}function _(e){var t=this._app.options;return"function"==typeof 
e&&(console.warn("[JS Framework] the callback of Vm#$getConfig(callback) is 
deprecated, this api now can directly RETURN config info."),e(t)),t}function 
g(e,t){console.warn("[JS Framework] Vm#$sendHttp is deprecated, please use 
\"require('@weex-module/stream').sendHttp(params, callback)\" 
instead"),this._app.requireModule("stream").sendHttp(e,t)}function 
b(e){console.warn("[JS Framework] Vm#$openURL is deprecated, please use 
\"require('@weex-module/event').openURL(url)\" 
instead"),this._app.requireModule("event").openURL(e)}function 
w(e){console.warn("[JS Framework] Vm#$setTitle is deprecated, please
  use \"require('@weex-module/pageInfo').setTitle(title)\" 
instead"),this._app.requireModule("pageInfo").setTitle(e)}function 
O(e,t){for(var n=[],r=arguments.length-2;r-- 
>0;)n[r]=arguments[r+2];console.warn("[JS Framework] Vm#$call is deprecated, 
please use \"require('@weex-module/moduleName')\" instead");var 
o=this._app.requireModule(e);o&[t]&[t].apply(o,n)}function E(e){for(var 
t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];if("function"==typeof 
Object.assign)Object.assign.apply(Object,[e].concat(t));else{var 
r=t.shift();for(var o in r)e[o]=r[o];t.length&(void 
0,[e].concat(t))}return e}function 
x(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}function
 S(e,t){if(e.length){var n=e.indexOf(t);if(n>-1)return e.splice(n,1)}}function 
C(e,t){return gr.call(e,t)}function k(e,t){return function(n){var 
r=arguments.length;return 
r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}}function j(e){return 
null!==e&&"object"==typeof e}func
 tion A(e){return br.call(e)===wr}function I(e){var 
t=(e+"").charCodeAt(0);return 36===t||95===t}function 
T(){return"object"==typeof nativeSet?nativeSet.create():new Zn}function 
N(e){var t=Object.prototype.toString.call(e);return 
t.substring(8,t.length-1).toLowerCase()}function P(e){return 
e.replace(Er,"").replace(xr,"")}function M(e){return e.replace(Cr,"")}function 
$(){this.id=Tr++,this.subs=[]}function 
R(e){$.target&($.target),$.target=e}function 
D(){$.target=Nr.pop()}function F(){$.target=null,Nr=[]}function 
L(e,t,n,r){r&(this,r);var o="function"==typeof 

[06/17] incubator-weex git commit: * [ios] update JSFM to 0.22.2

2017-09-21 Thread acton393
* [ios] update JSFM to 0.22.2


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

Branch: refs/heads/0.16-dev
Commit: 6a272abc81b4c3952420e06c0114d29e662cd1ea
Parents: dc112fc
Author: yinfeng 
Authored: Thu Sep 21 17:24:22 2017 +0800
Committer: yinfeng 
Committed: Thu Sep 21 17:24:22 2017 +0800

--
 pre-build/native-bundle-main.js | 16 
 1 file changed, 8 insertions(+), 8 deletions(-)
--




[12/17] incubator-weex git commit: Merge branch '0.17-dev-feature-recycle-list' of https://github.com/cxfeng1/incubator-weex into wip-us-0.16-dev

2017-09-21 Thread acton393
Merge branch '0.17-dev-feature-recycle-list' of 
https://github.com/cxfeng1/incubator-weex into wip-us-0.16-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/d06657dd
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/d06657dd
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/d06657dd

Branch: refs/heads/0.16-dev
Commit: d06657dd87527a73046404c066d7ecb3b4b33564
Parents: af29230 523843a
Author: acton393 
Authored: Thu Sep 21 21:42:03 2017 +0800
Committer: acton393 
Committed: Thu Sep 21 21:42:03 2017 +0800

--

--




[48/50] [abbrv] incubator-weex git commit: update main.js

2017-09-21 Thread acton393
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9f4eb8cc/pre-build/native-bundle-main.js
--
diff --git a/pre-build/native-bundle-main.js b/pre-build/native-bundle-main.js
index c737167..70f4b57 100644
--- a/pre-build/native-bundle-main.js
+++ b/pre-build/native-bundle-main.js
@@ -1,8 +1,8 @@
-(this.nativeLog||function(e){console.log(e)})("START JS FRAMEWORK 0.22.2, 
Build 2017-09-21 15:46."),this.getJSFMVersion=function(){return"0.22.2"};var 
global=this,process={env:{}},setTimeout=global.setTimeout;!function(e,t){"object"==typeof
 exports&&"undefined"!=typeof module?t():"function"==typeof 
define&?define(t):t()}(0,function(){"use strict";function 
e(e){Hn.Document=e.Document,Hn.Element=e.Element,Hn.Comment=e.Comment,Hn.sendTasks=e.sendTasks}function
 t(e,t,n,r,o){void 0===n&&(n={}),void 0===r&&(r={}),void 0===o&&(o={});var 
i=new 
Hn.Document(e,n.bundleUrl),a={},s={id:e,data:r,document:i,callbacks:a},u=0;i.addCallback=function(e){return
 u++,a[u]=e,u},i.handleCallback=function(e,t,n){var r=a[e];return n& 
a[e],r(t)},Gn[e]=s;var 
c=Object.assign({Document:Hn.Document,Element:Hn.Element,Comment:Hn.Comment,sendTasks:function(t){return
 Hn.sendTasks(e,t,-1)},options:n,document:i},o),l=[],f=[];for(var p in 
c)l.push(p),f.push(c[p]);return l.push(t),(new(Function.prototy
 pe.bind.apply(Function,[null].concat(l.apply(void 
0,f),Hn.sendTasks(e,[{module:"dom",method:"createFinish",args:[]}],-1),s}function
 n(e){delete Gn[e]}function r(e){return Gn[e].document.body.toJSON()}function 
o(e,t){var n={fireEvent:function(e,t,n,r,o){var 
i=Gn[e],a=i.document,s=a.getRef(t);return 
a.fireEvent(s,n,r,o)},callback:function(e,t,n,r){return 
Gn[e].document.handleCallback(t,n,r)}};if((Gn[e]||{}).document&(t)){var
 r=[];return t.forEach(function(t){var 
o=n[t.method],i=[].concat(t.args);"function"==typeof 
o&&(i.unshift(e),r.push(o.apply(void 0,i)))}),r}}function i(e){return 
e&__esModule?e.default:e}function a(e,t){return 
t={exports:{}},e(t,t.exports),t.exports}function s(e){console.warn("[JS 
Framework] Vm#$ is deprecated, please use Vm#$vm instead");var 
t=this._ids[e];if(t)return t.vm}function u(e){var t=this._ids[e];if(t)return 
t.el}function c(e){var t=this._ids[e];if(t)return t.vm}function l(e){return 
this._app.differ.then(function(){e()})}function f(e,
 t){console.warn("[JS Framework] Vm#$scrollTo is deprecated, please use 
\"require('@weex-module/dom').scrollTo(el, options)\" instead");var 
n=this.$el(e);if(n){this._app.requireModule("dom").scrollToElement(n.ref,{offset:t})}}function
 p(e,t,n){var 
r=this,o=this.$el(e);if(o&&){this._app.requireModule("animation").transition(o.ref,t,function(){for(var
 
e=[],i=arguments.length;i--;)e[i]=arguments[i];r._setStyle(o,t.styles),n&(void
 0,e)})}}function d(e){var t=this._app.options;return"function"==typeof 
e&&(console.warn("[JS Framework] the callback of Vm#$getConfig(callback) is 
deprecated, this api now can directly RETURN config info."),e(t)),t}function 
h(e,t){console.warn("[JS Framework] Vm#$sendHttp is deprecated, please use 
\"require('@weex-module/stream').sendHttp(params, callback)\" 
instead"),this._app.requireModule("stream").sendHttp(e,t)}function 
v(e){console.warn("[JS Framework] Vm#$openURL is deprecated, please use 
\"require('@weex-module/event').openURL(url)\" i
 nstead"),this._app.requireModule("event").openURL(e)}function 
y(e){console.warn("[JS Framework] Vm#$setTitle is deprecated, please use 
\"require('@weex-module/pageInfo').setTitle(title)\" 
instead"),this._app.requireModule("pageInfo").setTitle(e)}function 
m(e,t){for(var n=[],r=arguments.length-2;r-- 
>0;)n[r]=arguments[r+2];console.warn("[JS Framework] Vm#$call is deprecated, 
please use \"require('@weex-module/moduleName')\" instead");var 
o=this._app.requireModule(e);o&[t]&[t].apply(o,n)}function _(e){for(var 
t=[],n=arguments.length-1;n-- >0;)t[n]=arguments[n+1];if("function"==typeof 
Object.assign)Object.assign.apply(Object,[e].concat(t));else{var 
r=t.shift();for(var o in r)e[o]=r[o];t.length&&_.apply(void 
0,[e].concat(t))}return e}function 
g(e,t,n,r){Object.defineProperty(e,t,{value:n,enumerable:!!r,writable:!0,configurable:!0})}function
 b(e,t){if(e.length){var n=e.indexOf(t);if(n>-1)return e.splice(n,1)}}function 
w(e,t){return hr.call(e,t)}function x(e,t){return function(n){var 
 r=arguments.length;return 
r?r>1?e.apply(t,arguments):e.call(t,n):e.call(t)}}function E(e){return 
null!==e&&"object"==typeof e}function O(e){return vr.call(e)===yr}function 
S(e){var t=(e+"").charCodeAt(0);return 36===t||95===t}function 
C(){return"object"==typeof nativeSet?nativeSet.create():new Jn}function 
k(e){var t=Object.prototype.toString.call(e);return 
t.substring(8,t.length-1).toLowerCase()}function j(e){return 
e.replace(_r,"").replace(gr,"")}function A(e){return e.replace(wr,"")}function 
I(){this.id=Cr++,this.subs=[]}function 
T(e){I.target&(I.target),I.target=e}function 
N(){I.target=kr.pop()}function 

[31/50] [abbrv] incubator-weex git commit: update main bundle

2017-09-21 Thread acton393
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e10881f6/pre-build/native-bundle-main.js
--
diff --git a/pre-build/native-bundle-main.js b/pre-build/native-bundle-main.js
index 9e1608c..010c772 100644
--- a/pre-build/native-bundle-main.js
+++ b/pre-build/native-bundle-main.js
@@ -1,5 +1,5 @@
-(this.nativeLog || function(s) {console.log(s)})('START JS FRAMEWORK 0.22.0, 
Build 2017-09-20 19:51.');
-(this.getJSFMVersion = function(){return "0.22.0"});var global = this, process 
= { env: {} };var setTimeout = global.setTimeout;
+(this.nativeLog || function(s) {console.log(s)})('START JS FRAMEWORK 
0.22.0-beta.2, Build 2017-09-19 14:51.');
+(this.getJSFMVersion = function(){return "0.22.0-beta.2"});var global = this, 
process = { env: {} };var setTimeout = global.setTimeout;
 
 (function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? 
factory() :
@@ -310,9 +310,12 @@ var capitalize = cached(function (str) {
 /**
  * Hyphenate a camelCase string.
  */
-var hyphenateRE = /\B([A-Z])/g;
+var hyphenateRE = /([^-])([A-Z])/g;
 var hyphenate = cached(function (str) {
-  return str.replace(hyphenateRE, '-$1').toLowerCase()
+  return str
+.replace(hyphenateRE, '$1-$2')
+.replace(hyphenateRE, '$1-$2')
+.toLowerCase()
 });
 
 /**
@@ -727,7 +730,7 @@ var isAndroid = UA && UA.indexOf('android') > 0;
 var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);
 var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
 
-// Firefox has a "watch" function on Object.prototype...
+// Firefix has a "watch" function on Object.prototype...
 var nativeWatch = ({}).watch;
 
 var supportsPassive = false;
@@ -1296,7 +1299,7 @@ function mergeDataOrFn (
 : childVal;
   var defaultData = typeof parentVal === 'function'
 ? parentVal.call(vm)
-: parentVal;
+: undefined;
   if (instanceData) {
 return mergeData(instanceData, defaultData)
   } else {
@@ -1699,12 +1702,7 @@ function assertType (value, type) {
   var valid;
   var expectedType = getType(type);
   if (simpleCheckRE.test(expectedType)) {
-var t = typeof value;
-valid = t === expectedType.toLowerCase();
-// for primitive wrapper objects
-if (!valid && t === 'object') {
-  valid = value instanceof type;
-}
+valid = typeof value === expectedType.toLowerCase();
   } else if (expectedType === 'Object') {
 valid = isPlainObject(value);
   } else if (expectedType === 'Array') {
@@ -1902,7 +1900,7 @@ function createTextVNode (val) {
 // used for static nodes and slot nodes because they may be reused across
 // multiple renders, cloning them avoids errors when DOM manipulations rely
 // on their elm reference.
-function cloneVNode (vnode, deep) {
+function cloneVNode (vnode) {
   var cloned = new VNode(
 vnode.tag,
 vnode.data,
@@ -1918,17 +1916,14 @@ function cloneVNode (vnode, deep) {
   cloned.key = vnode.key;
   cloned.isComment = vnode.isComment;
   cloned.isCloned = true;
-  if (deep && vnode.children) {
-cloned.children = cloneVNodes(vnode.children);
-  }
   return cloned
 }
 
-function cloneVNodes (vnodes, deep) {
+function cloneVNodes (vnodes) {
   var len = vnodes.length;
   var res = new Array(len);
   for (var i = 0; i < len; i++) {
-res[i] = cloneVNode(vnodes[i], deep);
+res[i] = cloneVNode(vnodes[i]);
   }
   return res
 }
@@ -1976,15 +1971,11 @@ function updateListeners (
   remove$$1,
   vm
 ) {
-  var name, def$$1, cur, old, event;
+  var name, cur, old, event;
   for (name in on) {
-def$$1 = cur = on[name];
+cur = on[name];
 old = oldOn[name];
 event = normalizeEvent(name);
-if (isPlainObject(def$$1)) {
-  cur = def$$1.handler;
-  event.params = def$$1.params;
-}
 if (isUndef(cur)) {
   "development" !== 'production' && warn(
 "Invalid handler for event \"" + (event.name) + "\": got " + 
String(cur),
@@ -1994,7 +1985,7 @@ function updateListeners (
   if (isUndef(cur.fns)) {
 cur = on[name] = createFnInvoker(cur);
   }
-  add(event.name, cur, event.once, event.capture, event.passive, 
event.params);
+  add(event.name, cur, event.once, event.capture, event.passive);
 } else if (cur !== old) {
   old.fns = cur;
   on[name] = old;
@@ -2312,17 +2303,11 @@ function resolveAsyncComponent (
 
 /*  */
 
-function isAsyncPlaceholder (node) {
-  return node.isComment && node.asyncFactory
-}
-
-/*  */
-
 function getFirstComponentChild (children) {
   if (Array.isArray(children)) {
 for (var i = 0; i < children.length; i++) {
   var c = children[i];
-  if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
+  if (isDef(c) && isDef(c.componentOptions)) {
 return c
   }
 }
@@ -2741,8 +2726,8 @@ function updateChildComponent (
   // update $attrs and $listensers hash
   // these are also reactive so they may trigger child update 

[22/50] [abbrv] incubator-weex git commit: lifecycle manager

2017-09-21 Thread acton393
lifecycle manager


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

Branch: refs/heads/0.16-dev
Commit: 148135c4b3c51dfc06cd9e9315b045815e1c31a4
Parents: c4662c6
Author: jianbai.gbj 
Authored: Tue Sep 19 17:29:55 2017 +0800
Committer: jianbai.gbj 
Committed: Tue Sep 19 17:29:55 2017 +0800

--
 .../java/com/taobao/weex/common/Constants.java  |  12 +-
 .../list/template/CellLifecycleManager.java | 177 +
 .../list/template/LifecycleManager.java | 188 ---
 .../list/template/TemplateStickyHelper.java |  10 +-
 .../list/template/TemplateViewHolder.java   |   8 +-
 .../list/template/WXRecyclerTemplateList.java   |  75 
 6 files changed, 231 insertions(+), 239 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/148135c4/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java 
b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
index d5611d9..04d4387 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
@@ -191,7 +191,7 @@ public class Constants {
   String LIST_DATA_ITEM_ID = "itemId";
   String CELL_INDEX = "cellIndex";
   String TYPE_INDEX = "typeIndex";
-  String APPEND = "append";
+  String APPEND_LIST_DATA = "appendListData";
   String UPDATE_CELL = "updateCell";
 }
 
@@ -282,11 +282,11 @@ public class Constants {
 String UNSTICKY = "unsticky";
 String STICKY = "sticky";
 
-interface Recycler{
-  String CREATE = "recycler-create";
-  String ATTACH = "recycler-attach";
-  String DETACH = "recycler-detach";
-  String DESTORY = "recycler-destroy";
+interface SLOT_LIFECYCLE{
+  String CREATE = "create";
+  String ATTACH = "attach";
+  String DETACH = "detach";
+  String DESTORY = "destroy";
 }
 
   }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/148135c4/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
new file mode 100644
index 000..2f54f9e
--- /dev/null
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
@@ -0,0 +1,177 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
+package com.taobao.weex.ui.component.list.template;
+
+import android.util.Log;
+
+import com.taobao.weex.common.Constants;
+import com.taobao.weex.dom.WXEvent;
+import com.taobao.weex.ui.component.WXComponent;
+import com.taobao.weex.ui.component.WXVContainer;
+import com.taobao.weex.ui.component.list.WXCell;
+
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * cell-slot lifecycle manager, onCreate onAttach onDetach destroy
+ * Created by furture on 2017/9/19.
+ */
+public class CellLifecycleManager {
+
+private static final String[] lifecycleEventNames = {
+Constants.Event.SLOT_LIFECYCLE.CREATE,
+Constants.Event.SLOT_LIFECYCLE.ATTACH,
+Constants.Event.SLOT_LIFECYCLE.DETACH,
+Constants.Event.SLOT_LIFECYCLE.DESTORY
+};
+
+private WXRecyclerTemplateList recyclerTemplateList;
+private Map> eventSlotWatchRefs;
+private List createEvent; // only call once
+
+
+public 

[27/50] [abbrv] incubator-weex git commit: bundle.js更新

2017-09-21 Thread acton393
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/08abc8c2/pre-build/native-bundle-main.js
--
diff --git a/pre-build/native-bundle-main.js b/pre-build/native-bundle-main.js
index 0dbf526..9e1608c 100644
--- a/pre-build/native-bundle-main.js
+++ b/pre-build/native-bundle-main.js
@@ -1,6 +1,5 @@
-(this.nativeLog || function(s) {console.log(s)})('START JS FRAMEWORK 0.21.11, 
Build 2017-09-19 15:53.');
-;(this.getJSFMVersion = function(){return "0.21.11"});
-var global = this, process = { env: {} };var setTimeout = global.setTimeout;
+(this.nativeLog || function(s) {console.log(s)})('START JS FRAMEWORK 0.22.0, 
Build 2017-09-20 19:51.');
+(this.getJSFMVersion = function(){return "0.22.0"});var global = this, process 
= { env: {} };var setTimeout = global.setTimeout;
 
 (function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? 
factory() :
@@ -8,8 +7,6 @@ var global = this, process = { env: {} };var setTimeout = 
global.setTimeout;
(factory());
 }(this, (function () { 'use strict';
 
-var subversion = 
{"browser":"0.5.0","framework":"0.21.11","vue-render":"0.12.3","transformer":">=0.1.5
 <0.5"};
-
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -28,94 +25,115 @@ var subversion = 
{"browser":"0.5.0","framework":"0.21.11","vue-render":"0.12.3",
  * specific language governing permissions and limitations
  * under the License.
  */
+var config = {};
 
-/* eslint-disable */
+var instanceMap = {};
 
-// Production steps of ECMA-262, Edition 6, 22.1.2.1
-// Reference: 
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from
+function init$1 (cfg) {
+  config.Document = cfg.Document;
+  config.Element = cfg.Element;
+  config.Comment = cfg.Comment;
+  config.sendTasks = cfg.sendTasks;
+}
 
-/* istanbul ignore if */
-if (!Array.from) {
-  Array.from = (function() {
-var toStr = Object.prototype.toString;
-var isCallable = function(fn) {
-  return typeof fn === 'function' || toStr.call(fn) === '[object 
Function]';
-};
-var toInteger = function(value) {
-  var number = Number(value);
-  if (isNaN(number)) {
-return 0;
-  }
-  if (number === 0 || !isFinite(number)) {
-return number;
-  }
-  return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
-};
-var maxSafeInteger = Math.pow(2, 53) - 1;
-var toLength = function(value) {
-  var len = toInteger(value);
-  return Math.min(Math.max(len, 0), maxSafeInteger);
-};
+function createInstance (id, code, options, data, serviceObjects) {
+  if ( options === void 0 ) options = {};
+  if ( data === void 0 ) data = {};
+  if ( serviceObjects === void 0 ) serviceObjects = {};
 
-// The length property of the from method is 1.
-return function from(arrayLike/*, mapFn, thisArg */) {
-  // 1. Let C be the this value.
-  var C = this;
+  var document = new config.Document(id, options.bundleUrl);
+  var callbacks = {};
+  var instance = { id: id, data: data, document: document, callbacks: 
callbacks };
 
-  // 2. Let items be ToObject(arrayLike).
-  var items = Object(arrayLike);
+  var lastCallbackId = 0;
+  document.addCallback = function (func) {
+lastCallbackId++;
+callbacks[lastCallbackId] = func;
+return lastCallbackId
+  };
+  document.handleCallback = function (funcId, data, ifLast) {
+var callback = callbacks[funcId];
+if (ifLast) {
+  delete callbacks[funcId];
+}
+return callback(data)
+  };
+  instanceMap[id] = instance;
 
-  // 3. ReturnIfAbrupt(items).
-  if (arrayLike == null) {
-throw new TypeError('Array.from requires an array-like object - not 
null or undefined');
-  }
+  var globalObjects = Object.assign({
+Document: config.Document,
+Element: config.Element,
+Comment: config.Comment,
+sendTasks: function (tasks) { return config.sendTasks(id, tasks, -1); },
+options: options,
+document: document
+  }, serviceObjects);
 
-  // 4. If mapfn is undefined, then let mapping be false.
-  var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
-  var T;
-  if (typeof mapFn !== 'undefined') {
-// 5. else
-// 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
-if (!isCallable(mapFn)) {
-  throw new TypeError('Array.from: when provided, the second argument 
must be a function');
-}
+  var globalKeys = [];
+  var globalValues = [];
+  for (var key in globalObjects) {
+globalKeys.push(key);
+globalValues.push(globalObjects[key]);
+  }
+  globalKeys.push(code);
 
-// 5. b. If thisArg was supplied, let T be thisArg; else let T be 
undefined.
-if (arguments.length > 2) {
-  T = arguments[2];
-}
-  }
+  var result = new (Function.prototype.bind.apply( 

[GitHub] incubator-weex pull request #726: [android] recycle-list new feafure

2017-09-21 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/incubator-weex/pull/726


---


[24/50] [abbrv] incubator-weex git commit: add more test case for expression parser

2017-09-21 Thread acton393
add more test case for expression parser


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

Branch: refs/heads/0.16-dev
Commit: 3344bb491c8048eedc9a7f564bc5573af147c24f
Parents: 7a9b30c
Author: jianbai.gbj 
Authored: Wed Sep 20 12:12:12 2017 +0800
Committer: jianbai.gbj 
Committed: Wed Sep 20 12:12:12 2017 +0800

--
 .../taobao/weex/dom/binding/WXStatement.java|   2 +-
 .../com/taobao/weex/el/parse/Operators.java |  29 +++-
 .../java/com/taobao/weex/el/parse/Parser.java   |  66 +
 .../java/com/taobao/weex/el/parse/Token.java|   2 +-
 .../weex/ui/component/binding/Statements.java   | 138 ++-
 .../java/com/taobao/weex/el/ParserTest.java |  32 -
 .../ui/component/binding/BindingValueTest.java  |  18 +--
 .../ui/component/binding/StatementTest.java |  15 +-
 8 files changed, 183 insertions(+), 119 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3344bb49/android/sdk/src/main/java/com/taobao/weex/dom/binding/WXStatement.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/dom/binding/WXStatement.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/binding/WXStatement.java
index c11aaec..e17c708 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/binding/WXStatement.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/binding/WXStatement.java
@@ -44,7 +44,7 @@ public class WXStatement implements Map,Cloneable  {
  *  '[[repeat]]': {
  *  '@expression': 'dataList',
  *  '@index': 'index',
- *  '@label': 'item'
+ *  '@alias': 'item'
  * }
  *  }
  * 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3344bb49/android/sdk/src/main/java/com/taobao/weex/el/parse/Operators.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/el/parse/Operators.java 
b/android/sdk/src/main/java/com/taobao/weex/el/parse/Operators.java
index 42dcf67..610b058 100644
--- a/android/sdk/src/main/java/com/taobao/weex/el/parse/Operators.java
+++ b/android/sdk/src/main/java/com/taobao/weex/el/parse/Operators.java
@@ -23,6 +23,7 @@ import java.util.ArrayList;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
+import java.util.Stack;
 
 /**
  * Created by furture on 2017/8/28.
@@ -74,6 +75,18 @@ public class Operators {
 }
 }
 }
+if(context instanceof Stack){
+Stack stack = (Stack) context;
+for(int index=stack.size()-1; index >= 0; index--){
+Object value = stack.get(index);
+if(value instanceof  Map){
+Map map = (Map) value;
+if(map.containsKey(key)){
+return map.get(key);
+}
+}
+}
+}
 
 if(context instanceof  Map){
 return ((Map) context).get(key);
@@ -438,6 +451,8 @@ public class Operators {
 OPERATORS_PRIORITY.put(SPACE_STR, 0);
 OPERATORS_PRIORITY.put(ARRAY_SEPRATOR_STR, 0);
 OPERATORS_PRIORITY.put(ARRAY_END_STR, 0);
+
+
 OPERATORS_PRIORITY.put(OR, 1);
 OPERATORS_PRIORITY.put(AND, 1);
 
@@ -469,12 +484,16 @@ public class Operators {
 
 }
 
-public static final List KEYWORDS = new ArrayList<>();
+public static final Object keywordValue(String keyword){
+return KEYWORDS.get(keyword);
+}
+
+public static final Map KEYWORDS = new HashMap<>();
 static {
-KEYWORDS.add("null");
-KEYWORDS.add("true");
-KEYWORDS.add("false");
-KEYWORDS.add("undefined");
+KEYWORDS.put("null", null);
+KEYWORDS.put("true", Boolean.TRUE);
+KEYWORDS.put("false", Boolean.FALSE);
+KEYWORDS.put("undefined", null);
 }
 
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3344bb49/android/sdk/src/main/java/com/taobao/weex/el/parse/Parser.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/el/parse/Parser.java 
b/android/sdk/src/main/java/com/taobao/weex/el/parse/Parser.java
index c2f2b9b..76a6eed 100644
--- a/android/sdk/src/main/java/com/taobao/weex/el/parse/Parser.java
+++ b/android/sdk/src/main/java/com/taobao/weex/el/parse/Parser.java
@@ -20,9 +20,7 @@ package com.taobao.weex.el.parse;
 
 

[36/50] [abbrv] incubator-weex git commit: 测试

2017-09-21 Thread acton393
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3dd927eb/pre-build/native-bundle-main.js
--
diff --git a/pre-build/native-bundle-main.js b/pre-build/native-bundle-main.js
index 13cdf6a..d7a7088 100644
--- a/pre-build/native-bundle-main.js
+++ b/pre-build/native-bundle-main.js
@@ -1,5 +1,5 @@
-(this.nativeLog || function(s) {console.log(s)})('START JS FRAMEWORK 0.22.1, 
Build 2017-09-21 11:51.');
-(this.getJSFMVersion = function(){return "0.22.1"});var global = this, process 
= { env: {} };var setTimeout = global.setTimeout;
+(this.nativeLog || function(s) {console.log(s)})('START JS FRAMEWORK 0.22.2, 
Build 2017-09-21 15:46.');
+(this.getJSFMVersion = function(){return "0.22.2"});var global = this, process 
= { env: {} };var setTimeout = global.setTimeout;
 
 (function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? 
factory() :
@@ -15344,8 +15344,7 @@ var NativeComponent = function () {
   }
 
   if (typeof nextProp === 'function') {
-var params = nextProps[propKey.slice(2).toLowerCase() + 
'EventParams'];
-_host2.default.driver.addEventListener(this$1.getNativeNode(), 
propKey.slice(2).toLowerCase(), nextProp, params);
+_host2.default.driver.addEventListener(this$1.getNativeNode(), 
propKey.slice(2).toLowerCase(), nextProp, nextProps);
   }
   // Update other property
 } else {
@@ -17512,7 +17511,8 @@ var Driver = {
 parent = parent || before.parentNode;
 return parent.insertBefore(node, before);
   },
-  addEventListener: function addEventListener(node, eventName, eventHandler, 
params) {
+  addEventListener: function addEventListener(node, eventName, eventHandler, 
props) {
+var params = props[eventName + 'EventParams'];
 return node.addEvent(eventName, eventHandler, params);
   },
   removeEventListener: function removeEventListener(node, eventName, 
eventHandler) {
@@ -17582,8 +17582,7 @@ var Driver = {
   this$1.setStyles(node, value);
 } else if (EVENT_PREFIX_REGEXP.test(prop)) {
   var eventName = prop.slice(2).toLowerCase();
-  var params = props[eventName + 'EventParams'];
-  this$1.addEventListener(node, eventName, value, params);
+  this$1.addEventListener(node, eventName, value, props);
 } else {
   this$1.setAttribute(node, prop, value);
 }
@@ -21917,7 +21916,7 @@ var frameworks = {
   Weex: Weex
 };
 
-var subversion = 
{"browser":"0.5.0","framework":"0.22.1","vue-render":"0.12.3","transformer":">=0.1.5
 <0.5"};
+var subversion = 
{"browser":"0.5.0","framework":"0.22.2","vue-render":"0.12.3","transformer":">=0.1.5
 <0.5"};
 
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
@@ -26497,4 +26496,4 @@ setup(frameworks);
 global.registerMethods(methods$2);
 
 })));
-//# 
sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJmaWxlIjpudWxsLCJzb3VyY2VzIjpbIi4uL3dlZXgvaHRtbDUvZnJhbWV3b3Jrcy92YW5pbGxhL2luZGV4LmpzIiwiLi4vLi4vdnVlL3BhY2thZ2VzL3dlZXgtdnVlLWZyYW1ld29yay9mYWN0b3J5LmpzIiwiLi4vLi4vdnVlL3BhY2thZ2VzL3dlZXgtdnVlLWZyYW1ld29yay9pbmRleC5qcyIsIi4uL3dlZXgvaHRtbDUvZnJhbWV3b3Jrcy9sZWdhY3kvYXBpL21ldGhvZHMuanMiLCIuLi93ZWV4L2h0bWw1L2ZyYW1ld29ya3MvbGVnYWN5L3V0aWwvc2hhcmVkLmpzIiwiLi4vd2VleC9odG1sNS9mcmFtZXdvcmtzL2xlZ2FjeS91dGlsL2luZGV4LmpzIiwiLi4vd2VleC9odG1sNS9mcmFtZXdvcmtzL2xlZ2FjeS9jb3JlL2RlcC5qcyIsIi4uL3dlZXgvaHRtbDUvZnJhbWV3b3Jrcy9sZWdhY3kvY29yZS93YXRjaGVyLmpzIiwiLi4vd2VleC9odG1sNS9mcmFtZXdvcmtzL2xlZ2FjeS9jb3JlL2FycmF5LmpzIiwiLi4vd2VleC9odG1sNS9mcmFtZXdvcmtzL2xlZ2FjeS9jb3JlL29ic2VydmVyLmpzIiwiLi4vd2VleC9odG1sNS9mcmFtZXdvcmtzL2xlZ2FjeS9jb3JlL3N0YXRlLmpzIiwiLi4vd2VleC9odG1sNS9mcmFtZXdvcmtzL2xlZ2FjeS9jb25maWcuanMiLCIuLi93ZWV4L2h0bWw1L2ZyYW1ld29ya3MvbGVnYWN5L3ZtL2RpcmVjdGl2ZS5qcyIsIi4uL3dlZXgvaHRtbDUvZnJhbWV3b3Jrcy9sZWdhY3kvdm0vZ
 
G9tLWhlbHBlci5qcyIsIi4uL3dlZXgvaHRtbDUvZnJhbWV3b3Jrcy9sZWdhY3kvdm0vY29tcGlsZXIuanMiLCIuLi93ZWV4L2h0bWw1L2ZyYW1ld29ya3MvbGVnYWN5L3ZtL2V2ZW50cy5qcyIsIi4uL3dlZXgvaHRtbDUvZnJhbWV3b3Jrcy9sZWdhY3kvdm0vaW5kZXguanMiLCIuLi93ZWV4L2h0bWw1L2ZyYW1ld29ya3MvbGVnYWN5L2FwcC9yZWdpc3Rlci5qcyIsIi4uL3dlZXgvbm9kZV9tb2R1bGVzL3NlbXZlci9zZW12ZXIuanMiLCIuLi93ZWV4L2h0bWw1L2ZyYW1ld29ya3MvbGVnYWN5L2FwcC9kb3duZ3JhZGUuanMiLCIuLi93ZWV4L2h0bWw1L2ZyYW1ld29ya3MvbGVnYWN5L2FwcC92aWV3cG9ydC5qcyIsIi4uL3dlZXgvaHRtbDUvZnJhbWV3b3Jrcy9sZWdhY3kvYXBwL2J1bmRsZS9ib290c3RyYXAuanMiLCIuLi93ZWV4L2h0bWw1L2ZyYW1ld29ya3MvbGVnYWN5L2FwcC9idW5kbGUvZGVmaW5lLmpzIiwiLi4vd2VleC9odG1sNS9mcmFtZXdvcmtzL2xlZ2FjeS9hcHAvYnVuZGxlL2luZGV4LmpzIiwiLi4vd2VleC9odG1sNS9mcmFtZXdvcmtzL2xlZ2FjeS9hcHAvY3RybC9taXNjLmpzIiwiLi4vd2VleC9odG1sNS9mcmFtZXdvcmtzL2xlZ2FjeS9hcHAvY3RybC9pbml0LmpzIiwiLi4vd2VleC9odG1sNS9mcmFtZXdvcmtzL2xlZ2FjeS9hcHAvY3RybC9pbmRleC5qcyIsIi4uL3dlZXgvaHRtbDUvZnJhbWV3b3Jrcy9sZWdhY3kvYXBwL2RpZmZlci5qcyIsIi4uL3dlZXgvaHRtbDUvZnJhbWV3b3Jrcy9sZWdhY3
 

[20/50] [abbrv] incubator-weex git commit: lifecycle event

2017-09-21 Thread acton393
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c4662c64/pre-build/native-bundle-main.js
--
diff --git a/pre-build/native-bundle-main.js b/pre-build/native-bundle-main.js
index a8f2dc5..0dbf526 100644
--- a/pre-build/native-bundle-main.js
+++ b/pre-build/native-bundle-main.js
@@ -1,5 +1,6 @@
-(this.nativeLog || function(s) {console.log(s)})('START JS FRAMEWORK 
0.22.0-beta.2, Build 2017-09-15 15:41.');
-(this.getJSFMVersion = function(){return "0.22.0-beta.2"});var global = this, 
process = { env: {} };var setTimeout = global.setTimeout;
+(this.nativeLog || function(s) {console.log(s)})('START JS FRAMEWORK 0.21.11, 
Build 2017-09-19 15:53.');
+;(this.getJSFMVersion = function(){return "0.21.11"});
+var global = this, process = { env: {} };var setTimeout = global.setTimeout;
 
 (function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? 
factory() :
@@ -7,6 +8,8 @@
(factory());
 }(this, (function () { 'use strict';
 
+var subversion = 
{"browser":"0.5.0","framework":"0.21.11","vue-render":"0.12.3","transformer":">=0.1.5
 <0.5"};
+
 /*
  * Licensed to the Apache Software Foundation (ASF) under one
  * or more contributor license agreements.  See the NOTICE file
@@ -25,115 +28,94 @@
  * specific language governing permissions and limitations
  * under the License.
  */
-var config = {};
-
-var instanceMap = {};
-
-function init$1 (cfg) {
-  config.Document = cfg.Document;
-  config.Element = cfg.Element;
-  config.Comment = cfg.Comment;
-  config.sendTasks = cfg.sendTasks;
-}
-
-function createInstance (id, code, options, data, serviceObjects) {
-  if ( options === void 0 ) options = {};
-  if ( data === void 0 ) data = {};
-  if ( serviceObjects === void 0 ) serviceObjects = {};
-
-  var document = new config.Document(id, options.bundleUrl);
-  var callbacks = {};
-  var instance = { id: id, data: data, document: document, callbacks: 
callbacks };
 
-  var lastCallbackId = 0;
-  document.addCallback = function (func) {
-lastCallbackId++;
-callbacks[lastCallbackId] = func;
-return lastCallbackId
-  };
-  document.handleCallback = function (funcId, data, ifLast) {
-var callback = callbacks[funcId];
-if (ifLast) {
-  delete callbacks[funcId];
-}
-return callback(data)
-  };
-  instanceMap[id] = instance;
+/* eslint-disable */
 
-  var globalObjects = Object.assign({
-Document: config.Document,
-Element: config.Element,
-Comment: config.Comment,
-sendTasks: function (tasks) { return config.sendTasks(id, tasks, -1); },
-options: options,
-document: document
-  }, serviceObjects);
+// Production steps of ECMA-262, Edition 6, 22.1.2.1
+// Reference: 
https://people.mozilla.org/~jorendorff/es6-draft.html#sec-array.from
 
-  var globalKeys = [];
-  var globalValues = [];
-  for (var key in globalObjects) {
-globalKeys.push(key);
-globalValues.push(globalObjects[key]);
-  }
-  globalKeys.push(code);
+/* istanbul ignore if */
+if (!Array.from) {
+  Array.from = (function() {
+var toStr = Object.prototype.toString;
+var isCallable = function(fn) {
+  return typeof fn === 'function' || toStr.call(fn) === '[object 
Function]';
+};
+var toInteger = function(value) {
+  var number = Number(value);
+  if (isNaN(number)) {
+return 0;
+  }
+  if (number === 0 || !isFinite(number)) {
+return number;
+  }
+  return (number > 0 ? 1 : -1) * Math.floor(Math.abs(number));
+};
+var maxSafeInteger = Math.pow(2, 53) - 1;
+var toLength = function(value) {
+  var len = toInteger(value);
+  return Math.min(Math.max(len, 0), maxSafeInteger);
+};
 
-  var result = new (Function.prototype.bind.apply( Function, [ null ].concat( 
globalKeys) ));
-  result.apply(void 0, globalValues);
+// The length property of the from method is 1.
+return function from(arrayLike/*, mapFn, thisArg */) {
+  // 1. Let C be the this value.
+  var C = this;
 
-  config.sendTasks(id, [{ module: 'dom', method: 'createFinish', args: [] }], 
-1);
+  // 2. Let items be ToObject(arrayLike).
+  var items = Object(arrayLike);
 
-  return instance
-}
+  // 3. ReturnIfAbrupt(items).
+  if (arrayLike == null) {
+throw new TypeError('Array.from requires an array-like object - not 
null or undefined');
+  }
 
-function destroyInstance (id) {
-  delete instanceMap[id];
-}
+  // 4. If mapfn is undefined, then let mapping be false.
+  var mapFn = arguments.length > 1 ? arguments[1] : void undefined;
+  var T;
+  if (typeof mapFn !== 'undefined') {
+// 5. else
+// 5. a If IsCallable(mapfn) is false, throw a TypeError exception.
+if (!isCallable(mapFn)) {
+  throw new TypeError('Array.from: when provided, the second argument 
must be a function');
+}
 
-function getRoot (id) {
-  return 

[33/50] [abbrv] incubator-weex git commit: create event and destroy event

2017-09-21 Thread acton393
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/d343d718/pre-build/native-bundle-main.js
--
diff --git a/pre-build/native-bundle-main.js b/pre-build/native-bundle-main.js
index 010c772..13cdf6a 100644
--- a/pre-build/native-bundle-main.js
+++ b/pre-build/native-bundle-main.js
@@ -1,5 +1,5 @@
-(this.nativeLog || function(s) {console.log(s)})('START JS FRAMEWORK 
0.22.0-beta.2, Build 2017-09-19 14:51.');
-(this.getJSFMVersion = function(){return "0.22.0-beta.2"});var global = this, 
process = { env: {} };var setTimeout = global.setTimeout;
+(this.nativeLog || function(s) {console.log(s)})('START JS FRAMEWORK 0.22.1, 
Build 2017-09-21 11:51.');
+(this.getJSFMVersion = function(){return "0.22.1"});var global = this, process 
= { env: {} };var setTimeout = global.setTimeout;
 
 (function (global, factory) {
typeof exports === 'object' && typeof module !== 'undefined' ? 
factory() :
@@ -310,12 +310,9 @@ var capitalize = cached(function (str) {
 /**
  * Hyphenate a camelCase string.
  */
-var hyphenateRE = /([^-])([A-Z])/g;
+var hyphenateRE = /\B([A-Z])/g;
 var hyphenate = cached(function (str) {
-  return str
-.replace(hyphenateRE, '$1-$2')
-.replace(hyphenateRE, '$1-$2')
-.toLowerCase()
+  return str.replace(hyphenateRE, '-$1').toLowerCase()
 });
 
 /**
@@ -730,7 +727,7 @@ var isAndroid = UA && UA.indexOf('android') > 0;
 var isIOS = UA && /iphone|ipad|ipod|ios/.test(UA);
 var isChrome = UA && /chrome\/\d+/.test(UA) && !isEdge;
 
-// Firefix has a "watch" function on Object.prototype...
+// Firefox has a "watch" function on Object.prototype...
 var nativeWatch = ({}).watch;
 
 var supportsPassive = false;
@@ -1299,7 +1296,7 @@ function mergeDataOrFn (
 : childVal;
   var defaultData = typeof parentVal === 'function'
 ? parentVal.call(vm)
-: undefined;
+: parentVal;
   if (instanceData) {
 return mergeData(instanceData, defaultData)
   } else {
@@ -1702,7 +1699,12 @@ function assertType (value, type) {
   var valid;
   var expectedType = getType(type);
   if (simpleCheckRE.test(expectedType)) {
-valid = typeof value === expectedType.toLowerCase();
+var t = typeof value;
+valid = t === expectedType.toLowerCase();
+// for primitive wrapper objects
+if (!valid && t === 'object') {
+  valid = value instanceof type;
+}
   } else if (expectedType === 'Object') {
 valid = isPlainObject(value);
   } else if (expectedType === 'Array') {
@@ -1900,7 +1902,7 @@ function createTextVNode (val) {
 // used for static nodes and slot nodes because they may be reused across
 // multiple renders, cloning them avoids errors when DOM manipulations rely
 // on their elm reference.
-function cloneVNode (vnode) {
+function cloneVNode (vnode, deep) {
   var cloned = new VNode(
 vnode.tag,
 vnode.data,
@@ -1916,14 +1918,17 @@ function cloneVNode (vnode) {
   cloned.key = vnode.key;
   cloned.isComment = vnode.isComment;
   cloned.isCloned = true;
+  if (deep && vnode.children) {
+cloned.children = cloneVNodes(vnode.children);
+  }
   return cloned
 }
 
-function cloneVNodes (vnodes) {
+function cloneVNodes (vnodes, deep) {
   var len = vnodes.length;
   var res = new Array(len);
   for (var i = 0; i < len; i++) {
-res[i] = cloneVNode(vnodes[i]);
+res[i] = cloneVNode(vnodes[i], deep);
   }
   return res
 }
@@ -1971,11 +1976,15 @@ function updateListeners (
   remove$$1,
   vm
 ) {
-  var name, cur, old, event;
+  var name, def$$1, cur, old, event;
   for (name in on) {
-cur = on[name];
+def$$1 = cur = on[name];
 old = oldOn[name];
 event = normalizeEvent(name);
+if (isPlainObject(def$$1)) {
+  cur = def$$1.handler;
+  event.params = def$$1.params;
+}
 if (isUndef(cur)) {
   "development" !== 'production' && warn(
 "Invalid handler for event \"" + (event.name) + "\": got " + 
String(cur),
@@ -1985,7 +1994,7 @@ function updateListeners (
   if (isUndef(cur.fns)) {
 cur = on[name] = createFnInvoker(cur);
   }
-  add(event.name, cur, event.once, event.capture, event.passive);
+  add(event.name, cur, event.once, event.capture, event.passive, 
event.params);
 } else if (cur !== old) {
   old.fns = cur;
   on[name] = old;
@@ -2303,11 +2312,17 @@ function resolveAsyncComponent (
 
 /*  */
 
+function isAsyncPlaceholder (node) {
+  return node.isComment && node.asyncFactory
+}
+
+/*  */
+
 function getFirstComponentChild (children) {
   if (Array.isArray(children)) {
 for (var i = 0; i < children.length; i++) {
   var c = children[i];
-  if (isDef(c) && isDef(c.componentOptions)) {
+  if (isDef(c) && (isDef(c.componentOptions) || isAsyncPlaceholder(c))) {
 return c
   }
 }
@@ -2726,8 +2741,8 @@ function updateChildComponent (
   // update $attrs and $listensers hash
   // these are also reactive so they may trigger child update if the 

[40/50] [abbrv] incubator-weex git commit: bundle js

2017-09-21 Thread acton393
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/71c692ca/pre-build/native-bundle-main.js
--
diff --git a/pre-build/native-bundle-main.js b/pre-build/native-bundle-main.js
index d7a7088..c737167 100644
--- a/pre-build/native-bundle-main.js
+++ b/pre-build/native-bundle-main.js
@@ -1,26499 +1,8 @@
-(this.nativeLog || function(s) {console.log(s)})('START JS FRAMEWORK 0.22.2, 
Build 2017-09-21 15:46.');
-(this.getJSFMVersion = function(){return "0.22.2"});var global = this, process 
= { env: {} };var setTimeout = global.setTimeout;
-
-(function (global, factory) {
-   typeof exports === 'object' && typeof module !== 'undefined' ? 
factory() :
-   typeof define === 'function' && define.amd ? define(factory) :
-   (factory());
-}(this, (function () { 'use strict';
-
-/*
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-var config = {};
-
-var instanceMap = {};
-
-function init$1 (cfg) {
-  config.Document = cfg.Document;
-  config.Element = cfg.Element;
-  config.Comment = cfg.Comment;
-  config.sendTasks = cfg.sendTasks;
-}
-
-function createInstance (id, code, options, data, serviceObjects) {
-  if ( options === void 0 ) options = {};
-  if ( data === void 0 ) data = {};
-  if ( serviceObjects === void 0 ) serviceObjects = {};
-
-  var document = new config.Document(id, options.bundleUrl);
-  var callbacks = {};
-  var instance = { id: id, data: data, document: document, callbacks: 
callbacks };
-
-  var lastCallbackId = 0;
-  document.addCallback = function (func) {
-lastCallbackId++;
-callbacks[lastCallbackId] = func;
-return lastCallbackId
-  };
-  document.handleCallback = function (funcId, data, ifLast) {
-var callback = callbacks[funcId];
-if (ifLast) {
-  delete callbacks[funcId];
-}
-return callback(data)
-  };
-  instanceMap[id] = instance;
-
-  var globalObjects = Object.assign({
-Document: config.Document,
-Element: config.Element,
-Comment: config.Comment,
-sendTasks: function (tasks) { return config.sendTasks(id, tasks, -1); },
-options: options,
-document: document
-  }, serviceObjects);
-
-  var globalKeys = [];
-  var globalValues = [];
-  for (var key in globalObjects) {
-globalKeys.push(key);
-globalValues.push(globalObjects[key]);
-  }
-  globalKeys.push(code);
-
-  var result = new (Function.prototype.bind.apply( Function, [ null ].concat( 
globalKeys) ));
-  result.apply(void 0, globalValues);
-
-  config.sendTasks(id, [{ module: 'dom', method: 'createFinish', args: [] }], 
-1);
-
-  return instance
-}
-
-function destroyInstance (id) {
-  delete instanceMap[id];
-}
-
-function getRoot (id) {
-  return instanceMap[id].document.body.toJSON()
-}
-
-function receiveTasks (id, tasks) {
-  var jsHandlers = {
-fireEvent: function (id, ref, type, data, domChanges) {
-  var ref$1 = instanceMap[id];
-  var document = ref$1.document;
-  var el = document.getRef(ref);
-  return document.fireEvent(el, type, data, domChanges)
-},
-
-callback: function (id, funcId, data, ifLast) {
-  var ref = instanceMap[id];
-  var document = ref.document;
-  return document.handleCallback(funcId, data, ifLast)
-}
-  };
-
-  var ref = instanceMap[id] || {};
-  var document = ref.document;
-  if (document && Array.isArray(tasks)) {
-var results = [];
-tasks.forEach(function (task) {
-  var handler = jsHandlers[task.method];
-  var args = [].concat( task.args );
-  if (typeof handler === 'function') {
-args.unshift(id);
-results.push(handler.apply(void 0, args));
-  }
-});
-return results
-  }
-}
-
-
-var Vanilla = Object.freeze({
-   init: init$1,
-   createInstance: createInstance,
-   destroyInstance: destroyInstance,
-   getRoot: getRoot,
-   receiveTasks: receiveTasks
-});
-
-var commonjsGlobal = typeof window !== 'undefined' ? window : typeof global 
!== 'undefined' ? global : typeof self !== 'undefined' ? self : {};
-
-
-
-function unwrapExports (x) {
-   return x && x.__esModule ? x['default'] : x;
-}
-
-function createCommonjsModule(fn, module) {
-   return module = { exports: {} }, 

[45/50] [abbrv] incubator-weex git commit: keep basic list component

2017-09-21 Thread acton393
keep basic list component


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

Branch: refs/heads/0.16-dev
Commit: c7b9938b1d022e93784e77f46a02151351a1ed47
Parents: 7da6838
Author: jianbai.gbj 
Authored: Thu Sep 21 17:41:51 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 21 17:41:51 2017 +0800

--
 .../com/taobao/weex/ui/component/list/BasicListComponent.java| 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c7b9938b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
index 1643e65..5393f9a 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
@@ -6,9 +6,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY



[16/50] [abbrv] incubator-weex git commit: adapt new protocol

2017-09-21 Thread acton393
adapt new protocol


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

Branch: refs/heads/0.16-dev
Commit: 26091f5b5be4ce8cf13d40bd66d0fd703ed64e06
Parents: 11b5b7f
Author: jianbai.gbj 
Authored: Mon Sep 18 22:05:28 2017 +0800
Committer: jianbai.gbj 
Committed: Mon Sep 18 22:05:28 2017 +0800

--
 .../java/com/taobao/weex/common/Constants.java  |   4 +-
 .../main/java/com/taobao/weex/dom/WXAttr.java   |   5 +
 .../com/taobao/weex/dom/binding/ELUtils.java|  19 +++-
 .../taobao/weex/dom/binding/WXStatement.java|   2 +-
 .../weex/ui/component/binding/Statements.java   | 100 ++-
 .../list/template/TemplateStickyHelper.java |   2 +-
 .../list/template/WXRecyclerTemplateList.java   |  71 +++--
 .../java/com/taobao/weex/el/ParserTest.java |   7 +-
 8 files changed, 170 insertions(+), 40 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/26091f5b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java 
b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
index 6a96a08..1e1ad86 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
@@ -184,13 +184,15 @@ public class Constants {
 
 interface  Recycler{
   String LIST_DATA = "listData";
-  String LIST_DATA_ITEM  ="item";
+  String LIST_DATA_ITEM  ="alias";
   String LIST_DATA_ITEM_INDEX = "index";
   String LIST_DATA_TEMPLATE_KEY = "templateKey";
   String SLOT_TEMPLATE_TYPE = "templateType";
   String LIST_DATA_ITEM_ID = "itemId";
   String CELL_INDEX = "cellIndex";
   String TYPE_INDEX = "typeIndex";
+  String APPEND = "append";
+  String UPDATE_CELL = "updateCell";
 }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/26091f5b/android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java
index edf83b1..3434fe3 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java
@@ -18,6 +18,7 @@
  */
 package com.taobao.weex.dom;
 
+import static com.taobao.weex.dom.binding.ELUtils.COMPONENT_PROPS;
 import static java.lang.Boolean.parseBoolean;
 
 import android.support.annotation.NonNull;
@@ -471,6 +472,10 @@ public class WXAttr implements Map,Cloneable {
* filter dynamic attrs and statements
* */
   private boolean filterBindingStatement(String key, Object value) {
+if(COMPONENT_PROPS.equals(key)){
+  ELUtils.bindingBlock(value);
+  return  false;
+}
 if(ELUtils.isBinding(value)){
   if(mBindingAttrs == null){
   mBindingAttrs = new ArrayMap();

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/26091f5b/android/sdk/src/main/java/com/taobao/weex/dom/binding/ELUtils.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/binding/ELUtils.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/binding/ELUtils.java
index d4b9c9e..329fb99 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/binding/ELUtils.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/binding/ELUtils.java
@@ -25,6 +25,8 @@ import com.taobao.weex.el.parse.Block;
 import com.taobao.weex.el.parse.Parser;
 import com.taobao.weex.utils.WXLogUtils;
 
+import java.util.Set;
+
 /**
  * util's for binding and statment
  * Created by jianbai.gbj on 2017/8/17.
@@ -32,8 +34,12 @@ import com.taobao.weex.utils.WXLogUtils;
 public class ELUtils {
 
 public static final String BINDING = "@binding";
+/**
+ * sub template
+ * */
+public static final String IS_COMPONENT_ROOT = "@isComponentRoot";
 
-public static final String SCOPE = "scope";
+public static final String COMPONENT_PROPS = "@componentProps";
 
 /**
  * @param value check object is binding expression
@@ -67,6 +73,17 @@ public class ELUtils {
 object.put(BINDING, Parser.parse(binding.toString()));
 }
 }
+Set keys = object.keySet();
+for(Object propsKey : keys){
+   

[08/50] [abbrv] incubator-weex git commit: redesign list view code

2017-09-21 Thread acton393
redesign list view code


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

Branch: refs/heads/0.16-dev
Commit: 64e017e25d1cecd82918204f398feb18da81a2cf
Parents: e1f7f24
Author: jianbai.gbj 
Authored: Thu Sep 14 13:06:00 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 14 13:06:00 2017 +0800

--
 .../ui/component/list/BasicListComponent.java   | 92 ++--
 .../list/template/WXRecyclerTemplateList.java   | 31 +--
 .../weex/ui/view/listview/WXRecyclerView.java   | 29 ++
 3 files changed, 38 insertions(+), 114 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/64e017e2/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
index 59e2aaa..8dda086 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
@@ -82,20 +82,19 @@ import java.util.Map;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
+import static com.taobao.weex.common.Constants.Name.LOADMOREOFFSET;
+
 /**
  * Created by sospartan on 13/12/2016.
  */
 
 public abstract class BasicListComponent extends WXVContainer implements
 IRecyclerAdapterListener, IOnLoadMoreListener, 
Scrollable {
-  public static final String TRANSFORM = "transform";
-  public static final String LOADMOREOFFSET = "loadmoreoffset";
   private String TAG = "BasicListComponent";
   private int mListCellCount = 0;
   private boolean mForceLoadmoreNextTime = false;
   private ArrayList recycleViewList = new ArrayList<>();
   private static int visibleCellCount = 6;
-  private static final Pattern transformPattern = 
Pattern.compile("([a-z]+)\\(([0-9\\.]+),?([0-9\\.]+)?\\)");
 
   private Map mAppearComponents = new HashMap<>();
 
@@ -228,56 +227,7 @@ public abstract class BasicListComponenthttp://git-wip-us.apache.org/repos/asf/incubator-weex/blob/64e017e2/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
index 9138b35..d03e363 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
@@ -31,7 +31,6 @@ import android.support.v7.widget.LinearLayoutManager;
 import android.support.v7.widget.RecyclerView;
 import android.support.v7.widget.StaggeredGridLayoutManager;
 import android.text.TextUtils;
-import android.util.Log;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.ViewTreeObserver;
@@ -68,12 +67,10 @@ import com.taobao.weex.ui.component.binding.Layouts;
 import com.taobao.weex.ui.component.binding.Statements;
 import com.taobao.weex.ui.component.list.RecyclerTransform;
 import com.taobao.weex.ui.component.list.WXCell;
-import com.taobao.weex.ui.view.listview.ExtendedLinearLayoutManager;
 import com.taobao.weex.ui.view.listview.WXRecyclerView;
 import com.taobao.weex.ui.view.listview.adapter.IOnLoadMoreListener;
 import com.taobao.weex.ui.view.listview.adapter.IRecyclerAdapterListener;
 import com.taobao.weex.ui.view.listview.adapter.RecyclerViewBaseAdapter;
-import com.taobao.weex.ui.view.listview.adapter.TransformItemDecoration;
 import com.taobao.weex.ui.view.listview.adapter.WXRecyclerViewOnScrollListener;
 import com.taobao.weex.ui.view.refresh.wrapper.BounceRecyclerView;
 import com.taobao.weex.utils.WXLogUtils;
@@ -85,8 +82,6 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 import java.util.Set;
-import java.util.regex.Matcher;
-import java.util.regex.Pattern;
 
 import static com.taobao.weex.common.Constants.Name.LOADMOREOFFSET;
 
@@ -462,31 +457,7 @@ public class WXRecyclerTemplateList extends 
WXVContainer imp
 if (position >= 0) {
 final int pos = position;
 final WXRecyclerView view = bounceRecyclerView.getInnerView();
-
-if (!smooth) {
-   

[19/50] [abbrv] incubator-weex git commit: bundle taobao test

2017-09-21 Thread acton393
bundle taobao test


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

Branch: refs/heads/0.16-dev
Commit: 9ed73cb0b8a281b2764bfb3cdd8c23e05a0d00bf
Parents: 1769f7c
Author: jianbai.gbj 
Authored: Tue Sep 19 14:16:01 2017 +0800
Committer: jianbai.gbj 
Committed: Tue Sep 19 14:16:01 2017 +0800

--
 android/sdk/build.gradle| 6 +-
 pre-build/native-bundle-main.js | 26675 -
 2 files changed, 26670 insertions(+), 11 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/9ed73cb0/android/sdk/build.gradle
--
diff --git a/android/sdk/build.gradle b/android/sdk/build.gradle
index 0be69fb..59e3d7e 100755
--- a/android/sdk/build.gradle
+++ b/android/sdk/build.gradle
@@ -45,7 +45,7 @@ version = "0.9.4"
 android {
 compileSdkVersion project.compileSdkVersion
 buildToolsVersion project.buildToolsVersion
-resourcePrefix "weex"
+//resourcePrefix "weex"
 
 useLibrary 'org.apache.http.legacy'
 copy {
@@ -56,8 +56,8 @@ android {
 }
 def line
 new File(projectDir,"assets/main.js").withReader { line = it.readLine() }
-def m = line =~ /[A-Z\s]+\s+([0-9\.]+),\s+Build\s+[0-9]+/;
-def jsfmVersion = m[0][1]
+//def m = line =~ /[A-Z\s]+\s+([0-9\.]+),\s+Build\s+[0-9]+/;
+def jsfmVersion = "0.22.0-beta.2"  //m[0][1]
 println jsfmVersion
 
 if(project.hasProperty('asfRelease')){



[23/50] [abbrv] incubator-weex git commit: add supported array and more testcase

2017-09-21 Thread acton393
add supported array and more testcase


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

Branch: refs/heads/0.16-dev
Commit: 7a9b30c84c3abac180bc7988b6397a39c3bdb235
Parents: 148135c
Author: jianbai.gbj 
Authored: Wed Sep 20 11:00:56 2017 +0800
Committer: jianbai.gbj 
Committed: Wed Sep 20 11:00:56 2017 +0800

--
 .../com/taobao/weex/dom/binding/ELUtils.java|  10 +-
 .../com/taobao/weex/el/parse/ArrayStack.java|   8 ++
 .../java/com/taobao/weex/el/parse/Block.java|  28 +++-
 .../java/com/taobao/weex/el/parse/Operator.java |   5 +-
 .../com/taobao/weex/el/parse/Operators.java |  22 ++-
 .../java/com/taobao/weex/el/parse/Parser.java   | 135 ++-
 .../java/com/taobao/weex/el/parse/Token.java|   3 +
 .../taobao/weex/ui/component/WXComponent.java   |   4 +-
 .../weex/ui/component/binding/Statements.java   |  30 ++---
 .../com/taobao/weex/el/IfStatementTest.java |  30 ++---
 .../java/com/taobao/weex/el/ParserTest.java |  59 +---
 11 files changed, 243 insertions(+), 91 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7a9b30c8/android/sdk/src/main/java/com/taobao/weex/dom/binding/ELUtils.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/binding/ELUtils.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/binding/ELUtils.java
index 329fb99..c2f3bb8 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/binding/ELUtils.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/binding/ELUtils.java
@@ -21,8 +21,8 @@ package com.taobao.weex.dom.binding;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.taobao.weex.WXEnvironment;
-import com.taobao.weex.el.parse.Block;
 import com.taobao.weex.el.parse.Parser;
+import com.taobao.weex.el.parse.Token;
 import com.taobao.weex.utils.WXLogUtils;
 
 import java.util.Set;
@@ -69,7 +69,7 @@ public class ELUtils {
 JSONObject  object = (JSONObject) value;
 if(object.containsKey(BINDING)){
 Object binding = object.get(BINDING);
-if(!(binding instanceof Block)){
+if(!(binding instanceof Token)){
 object.put(BINDING, Parser.parse(binding.toString()));
 }
 }
@@ -79,7 +79,7 @@ public class ELUtils {
 && 
((JSONObject)object.get(propsKey)).containsKey(BINDING)){
 JSONObject propsValue = (JSONObject) object.get(propsKey);
 Object binding = propsValue.get(BINDING);
-if(!(binding instanceof Block)){
+if(!(binding instanceof Token)){
 propsValue.put(BINDING, 
Parser.parse(binding.toString()));
 }
 }
@@ -101,7 +101,7 @@ public class ELUtils {
 return WXStatement.WX_FOR.equals(name);
 }
 
-public static Block vifBlock(String code){
+public static Token vifBlock(String code){
 return Parser.parse(code);
 }
 
@@ -109,7 +109,7 @@ public class ELUtils {
 if(vfor instanceof  JSONObject){
 if(((JSONObject) vfor).containsKey(WXStatement.WX_FOR_LIST)){
 Object list = ((JSONObject) vfor).get(WXStatement.WX_FOR_LIST);
-if(!(list instanceof Block)){
+if(!(list instanceof Token)){
 ((JSONObject) vfor).put(WXStatement.WX_FOR_LIST, 
Parser.parse(list.toString()));
 }
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7a9b30c8/android/sdk/src/main/java/com/taobao/weex/el/parse/ArrayStack.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/el/parse/ArrayStack.java 
b/android/sdk/src/main/java/com/taobao/weex/el/parse/ArrayStack.java
index 5de2eaa..6a4c3bc 100644
--- a/android/sdk/src/main/java/com/taobao/weex/el/parse/ArrayStack.java
+++ b/android/sdk/src/main/java/com/taobao/weex/el/parse/ArrayStack.java
@@ -57,6 +57,14 @@ public class ArrayStack {
 return stack.get(i);
 }
 
+public T remove(int i) {
+return stack.remove(i);
+}
+
+public void add(int i, T t) {
+stack.add(i, t);
+}
+
 public boolean isEmpty() {
 return   stack.isEmpty();
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7a9b30c8/android/sdk/src/main/java/com/taobao/weex/el/parse/Block.java

[21/50] [abbrv] incubator-weex git commit: lifecycle event

2017-09-21 Thread acton393
lifecycle event


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

Branch: refs/heads/0.16-dev
Commit: c4662c648e2b74a65019b4074de8687ba8c893bd
Parents: 9ed73cb
Author: jianbai.gbj 
Authored: Tue Sep 19 16:15:47 2017 +0800
Committer: jianbai.gbj 
Committed: Tue Sep 19 16:15:47 2017 +0800

--
 .../java/com/taobao/weex/common/Constants.java  | 7 +
 .../main/java/com/taobao/weex/dom/WXEvent.java  |22 +
 .../com/taobao/weex/dom/action/Actions.java | 2 +-
 .../weex/dom/action/RemoveEventAction.java  | 5 +-
 .../list/template/LifecycleManager.java |   188 +
 .../list/template/WXRecyclerTemplateList.java   |46 +-
 pre-build/native-bundle-main.js | 45196 -
 7 files changed, 22812 insertions(+), 22654 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c4662c64/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java 
b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
index 1aff022..d5611d9 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
@@ -282,6 +282,13 @@ public class Constants {
 String UNSTICKY = "unsticky";
 String STICKY = "sticky";
 
+interface Recycler{
+  String CREATE = "recycler-create";
+  String ATTACH = "recycler-attach";
+  String DETACH = "recycler-detach";
+  String DESTORY = "recycler-destroy";
+}
+
   }
 
   public interface PSEUDO {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c4662c64/android/sdk/src/main/java/com/taobao/weex/dom/WXEvent.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXEvent.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/WXEvent.java
index 985d720..942979f 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXEvent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXEvent.java
@@ -61,6 +61,17 @@ public class WXEvent extends ArrayList implements 
Serializable, Cloneabl
 super.clear();
   }
 
+
+  public boolean remove(String o) {
+ if(mEventBindingArgs != null){
+mEventBindingArgs.remove(o);
+ }
+ if(mEventBindingArgsValues != null){
+mEventBindingArgsValues.remove(o);
+ }
+ return super.remove(o);
+  }
+
   /**
* can by null
* */
@@ -90,6 +101,17 @@ public class WXEvent extends ArrayList implements 
Serializable, Cloneabl
 }
   }
 
+  public static String getEventName(Object event){
+if(event instanceof CharSequence){
+  return event.toString();
+}else if(event instanceof JSONObject){
+  JSONObject bindings = (JSONObject) event;
+  String eventName = bindings.getString(WXEvent.EVENT_KEY_TYPE);
+  return  eventName;
+}
+return  event.toString();
+  }
+
   public void putEventBindingArgs(String event, Object args){
   if(!contains(event)){
   add(event);

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c4662c64/android/sdk/src/main/java/com/taobao/weex/dom/action/Actions.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/action/Actions.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/action/Actions.java
index 08c1902..c284997 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/action/Actions.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/action/Actions.java
@@ -92,7 +92,7 @@ public class Actions {
 if (args == null) {
   return null;
 }
-return new RemoveEventAction(args.getString(0),args.getString(1));
+return new RemoveEventAction(args.getString(0),args.get(1));
   case CREATE_FINISH:
 return new CreateFinishAction();
   case REFRESH_FINISH:

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c4662c64/android/sdk/src/main/java/com/taobao/weex/dom/action/RemoveEventAction.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/dom/action/RemoveEventAction.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/action/RemoveEventAction.java
index c79bba9..1ae132c 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/dom/action/RemoveEventAction.java
+++ 

[44/50] [abbrv] incubator-weex git commit: keep variable

2017-09-21 Thread acton393
keep variable


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

Branch: refs/heads/0.16-dev
Commit: 7da68386e45d998fa85369a8ab3bdc705844d165
Parents: 0e44b6e
Author: jianbai.gbj 
Authored: Thu Sep 21 17:36:48 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 21 17:36:48 2017 +0800

--
 .../src/main/java/com/taobao/weex/dom/action/AddEventAction.java   | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7da68386/android/sdk/src/main/java/com/taobao/weex/dom/action/AddEventAction.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/dom/action/AddEventAction.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/action/AddEventAction.java
index e01d49a..8e6c99c 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/action/AddEventAction.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/action/AddEventAction.java
@@ -65,7 +65,7 @@ class AddEventAction extends TraceableAction implements 
DOMAction, RenderAction
 }
 
 domObject.getEvents().addEvent(mEvent);
-
+mUpdatedDom = domObject;
 if (WXTracing.isAvailable() && mBeginEvent != null) {
   submitPerformance("addEventToDom", "X", instance.getInstanceId(), 
Stopwatch.tack(), Stopwatch.lastTickStamp(), true);
 }



[02/50] [abbrv] incubator-weex git commit: v-if false handler

2017-09-21 Thread acton393
v-if false handler


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

Branch: refs/heads/0.16-dev
Commit: 43caaf36cf2ea07ae82b4a17ec98871263f50c7d
Parents: af99ed7
Author: jianbai.gbj 
Authored: Tue Sep 12 15:28:31 2017 +0800
Committer: jianbai.gbj 
Committed: Tue Sep 12 15:28:31 2017 +0800

--
 .../main/java/com/taobao/weex/common/Constants.java  |  2 ++
 .../com/taobao/weex/ui/component/WXComponent.java| 15 +++
 .../list/template/WXRecyclerTemplateList.java| 10 +-
 .../view/listview/ExtendedLinearLayoutManager.java   |  2 +-
 .../src/test/java/com/taobao/weex/el/ParserTest.java |  2 ++
 5 files changed, 21 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43caaf36/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java 
b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
index ed40338..0cc5bf4 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
@@ -189,6 +189,8 @@ public class Constants {
 String LIST_DATA_ITEM_ID = "itemId";
 String CELL_INDEX = "cellIndex";
 String TYPE_INDEX = "typeIndex";
+
+String KEEP_POSITION = "keepPosition";
   }
 
   public interface Value {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43caaf36/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
index dad2c1d..03adfd2 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
@@ -1663,10 +1663,17 @@ public abstract class  WXComponent 
implements IWXObject, IWXActi
   this.waste = waste;
   WXDomObject domObject = (WXDomObject) getDomObject();
   if(waste){
-domObject.setVisible(false);
-if(getHostView() != null){
-  getHostView().setVisibility(View.GONE);
-}
+  
if(WXUtils.getBoolean(domObject.getAttrs().get(Constants.Name.KEEP_POSITION), 
false)){
+domObject.setVisible(true);
+if(getHostView() != null){
+   getHostView().setVisibility(View.INVISIBLE);
+}
+  }else{
+domObject.setVisible(false);
+if(getHostView() != null){
+  getHostView().setVisibility(View.GONE);
+}
+  }
   }else{
 domObject.setVisible(true);
 if(getHostView() != null){

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/43caaf36/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
index 8895080..e8a9179 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
@@ -1078,11 +1078,11 @@ public class WXRecyclerTemplateList extends 
WXVContainer imp
 templateViewHolder.setHolderPosition(position);
 Statements.doRender(component, getStackContextForPosition(position));
 if(WXEnvironment.isApkDebugable()){
-WXLogUtils.d(TAG, position + " onBindViewHolder render used " + 
(System.currentTimeMillis() - start));
+WXLogUtils.d(TAG, position + getTemplateKey(position) + " 
onBindViewHolder render used " + (System.currentTimeMillis() - start));
 }
 Layouts.doLayout(component, templateViewHolder.getLayoutContext());
 if(WXEnvironment.isApkDebugable()){
-WXLogUtils.d(TAG, position + " onBindViewHolder render used " + 
(System.currentTimeMillis() - start));
+WXLogUtils.d(TAG,  position + getTemplateKey(position) + " 
onBindViewHolder render used " + (System.currentTimeMillis() - start));
 }
 }
 
@@ -1102,15 +1102,15 @@ public class WXRecyclerTemplateList 

[10/50] [abbrv] incubator-weex git commit: rename utils

2017-09-21 Thread acton393
rename utils


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

Branch: refs/heads/0.16-dev
Commit: 2544b5e065bcdd9c7d4442d3b5f5a584f188d388
Parents: 89f68fd
Author: jianbai.gbj 
Authored: Thu Sep 14 14:45:14 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 14 14:45:14 2017 +0800

--
 .../main/java/com/taobao/weex/dom/WXAttr.java   |  14 +--
 .../java/com/taobao/weex/dom/WXDomObject.java   |   5 -
 .../main/java/com/taobao/weex/dom/WXEvent.java  |   4 +-
 .../taobao/weex/dom/binding/BindingUtils.java   | 108 ---
 .../com/taobao/weex/dom/binding/ELUtils.java| 108 +++
 .../weex/ui/component/binding/Statements.java   |  22 ++--
 6 files changed, 128 insertions(+), 133 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2544b5e0/android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java
index f67587f..edf83b1 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXAttr.java
@@ -27,7 +27,7 @@ import android.text.TextUtils;
 import com.taobao.weex.common.Constants;
 import com.taobao.weex.common.Constants.Name;
 import com.taobao.weex.common.WXImageSharpen;
-import com.taobao.weex.dom.binding.BindingUtils;
+import com.taobao.weex.dom.binding.ELUtils;
 import com.taobao.weex.dom.binding.WXStatement;
 import com.taobao.weex.ui.view.listview.WXRecyclerView;
 import com.taobao.weex.utils.WXLogUtils;
@@ -471,27 +471,27 @@ public class WXAttr implements Map,Cloneable {
* filter dynamic attrs and statements
* */
   private boolean filterBindingStatement(String key, Object value) {
-if(BindingUtils.isBinding(value)){
+if(ELUtils.isBinding(value)){
   if(mBindingAttrs == null){
   mBindingAttrs = new ArrayMap();
   }
-  value = BindingUtils.bindingBlock(value);
+  value = ELUtils.bindingBlock(value);
   mBindingAttrs.put(key, value);
   return  true;
 }
-if(BindingUtils.isVif(key)){
+if(ELUtils.isVif(key)){
   if(mStatement == null){
  mStatement = new WXStatement();
   }
-  mStatement.put(key, BindingUtils.vifBlock(value.toString()));
+  mStatement.put(key, ELUtils.vifBlock(value.toString()));
   return  true;
 }
 
-if(BindingUtils.isVfor(key)){
+if(ELUtils.isVfor(key)){
if(mStatement == null){
   mStatement = new WXStatement();
}
-   value = BindingUtils.vforBlock(value);
+   value = ELUtils.vforBlock(value);
if(value != null) {
   mStatement.put(key, value);
   return  true;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2544b5e0/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
index c2cafd4..1dea173 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
@@ -22,7 +22,6 @@ import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.text.TextUtils;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.taobao.weex.WXEnvironment;
@@ -31,8 +30,6 @@ import com.taobao.weex.WXSDKManager;
 import com.taobao.weex.bridge.WXValidateProcessor;
 import com.taobao.weex.common.Constants;
 import com.taobao.weex.common.Constants.Name;
-import com.taobao.weex.dom.binding.BindingUtils;
-import com.taobao.weex.dom.binding.WXStatement;
 import com.taobao.weex.dom.flex.CSSLayoutContext;
 import com.taobao.weex.dom.flex.CSSNode;
 import com.taobao.weex.dom.flex.Spacing;
@@ -42,10 +39,8 @@ import com.taobao.weex.utils.WXViewUtils;
 
 import java.util.ArrayList;
 import java.util.HashMap;
-import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
-import java.util.Set;
 import java.util.concurrent.atomic.AtomicBoolean;
 
 /**


[29/50] [abbrv] incubator-weex git commit: fire node

2017-09-21 Thread acton393
fire node


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

Branch: refs/heads/0.16-dev
Commit: 699da8f611d9f2eb790cee2df4f9a89c555e0ab9
Parents: 08abc8c
Author: jianbai.gbj 
Authored: Wed Sep 20 21:07:17 2017 +0800
Committer: jianbai.gbj 
Committed: Wed Sep 20 21:07:17 2017 +0800

--
 .../list/template/CellLifecycleManager.java | 22 ++--
 1 file changed, 16 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/699da8f6/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
index 2f54f9e..80880c2 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
@@ -125,9 +125,8 @@ public class CellLifecycleManager {
 || slotWatchAttachRefs.get(cell.getRef()).size() == 0){
 return;
 }
-Map params = new HashMap<>(8);
-params.put("position", position);
-cell.fireEvent(Constants.Event.SLOT_LIFECYCLE.ATTACH, params);
+List refs = slotWatchAttachRefs.get(cell.getRef());
+fireChildEvent(Constants.Event.SLOT_LIFECYCLE.ATTACH, cell, refs, 
position);
 }
 
 /**
@@ -143,9 +142,8 @@ public class CellLifecycleManager {
 || slotWatchDetachRefs.get(cell.getRef()).size() == 0){
 return;
 }
-Map params = new HashMap<>(8);
-params.put("position", position);
-cell.fireEvent(Constants.Event.SLOT_LIFECYCLE.DETACH, params);
+List refs = slotWatchDetachRefs.get(cell.getRef());
+fireChildEvent(Constants.Event.SLOT_LIFECYCLE.DETACH, cell, refs, 
position);
 }
 
 /**
@@ -174,4 +172,16 @@ public class CellLifecycleManager {
 }
 eventSlotWatchRefs.clear();
 }
+
+private final  void  fireChildEvent(String event, WXCell cell, 
List refs, int position){
+for(String ref : refs){
+WXComponent component = recyclerTemplateList.findChildByRef(cell, 
ref);
+if(component == null){
+continue;
+}
+Map params = new HashMap<>(8);
+params.put("position", position);
+component.fireEvent(event, params);
+}
+}
 }



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

2017-09-21 Thread acton393
Merge branch '0.16-dev' of 
https://git-wip-us.apache.org/repos/asf/incubator-weex into wip-us-0.16-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/af292302
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/af292302
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/af292302

Branch: refs/heads/0.16-dev
Commit: af2923026bc8012bcb31b32664aae4ab4b190f82
Parents: 9f4eb8c dbdab8e
Author: acton393 
Authored: Thu Sep 21 21:38:05 2017 +0800
Committer: acton393 
Committed: Thu Sep 21 21:38:05 2017 +0800

--
 .travis.yml |  4 
 doc/source/cn/guide/index.md|  9 ++---
 doc/source/cn/guide/set-up-env.md   |  4 ++--
 doc/source/cn/guide/tools/toolkit.md|  2 +-
 .../cn/references/advanced/extend-to-android.md | 21 ++--
 doc/source/cn/references/common-style.md|  1 +
 doc/source/cn/references/components/text.md |  6 +++---
 doc/source/cn/references/modules/animation.md   |  2 ++
 doc/source/cn/references/modules/dom.md |  2 +-
 doc/source/guide/index.md   |  4 ++--
 doc/source/guide/set-up-env.md  |  6 +++---
 doc/source/guide/tools/toolkit.md   |  5 ++---
 doc/source/references/common-style.md   |  1 +
 doc/source/references/components/text.md|  8 
 doc/source/references/modules/animation.md  |  3 ++-
 doc/source/references/modules/dom.md|  2 +-
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj   |  4 +++-
 .../WeexSDK/Sources/Component/WXWebComponent.m  |  1 +
 ios/sdk/WeexSDK/Sources/WeexSDK.h   |  1 +
 19 files changed, 55 insertions(+), 31 deletions(-)
--




[17/50] [abbrv] incubator-weex git commit: Merge remote-tracking branch 'origin/0.16-dev' into 0.16-dev-template-list

2017-09-21 Thread acton393
Merge remote-tracking branch 'origin/0.16-dev' into 0.16-dev-template-list

# Conflicts:
#   android/sdk/src/main/java/com/taobao/weex/common/Constants.java
#   
android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java


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

Branch: refs/heads/0.16-dev
Commit: 1769f7c3f2ce9a042c968c7b9349ba645df73ca8
Parents: 26091f5 e52d273
Author: jianbai.gbj 
Authored: Tue Sep 19 12:06:32 2017 +0800
Committer: jianbai.gbj 
Committed: Tue Sep 19 12:06:32 2017 +0800

--
 android/build.gradle|  13 +-
 .../commons/adapter/FrescoImageComponent.java   |   2 +-
 android/gradle.properties   |   5 +-
 .../gradle/wrapper/gradle-wrapper.properties|   2 +-
 android/jacoco.gradle   |  43 +
 .../alibaba/weex/benchmark/BenchmarkTest.java   |  29 ++-
 .../playground/app/src/main/AndroidManifest.xml |   8 +
 .../alibaba/weex/util/CoverageDataDumper.java   |  36 
 .../alibaba/weex/util/JacocoCodeCoverage.java   |  93 ++
 android/sdk/libs/armeabi/libweexjsb.so  | Bin 0 -> 22556 bytes
 android/sdk/libs/armeabi/libweexjsc.so  | Bin 7570392 -> 325660 bytes
 android/sdk/libs/armeabi/libweexjss.so  | Bin 0 -> 6754016 bytes
 .../java/com/taobao/weex/WXEnvironment.java |  16 ++
 .../java/com/taobao/weex/WXSDKInstance.java | 110 ++-
 .../weex/appfram/pickers/DatePickerImpl.java|   3 +-
 .../appfram/websocket/WebSocketCloseCodes.java  |   2 +-
 .../com/taobao/weex/bridge/WXBridgeManager.java |  48 -
 .../java/com/taobao/weex/bridge/WXParams.java   |   9 +
 .../java/com/taobao/weex/common/Constants.java  |   2 +
 .../java/com/taobao/weex/common/WXConfig.java   |   1 +
 .../com/taobao/weex/dom/ImmutableDomObject.java |  21 ++-
 .../main/java/com/taobao/weex/dom/WXStyle.java  |  17 --
 .../com/taobao/weex/dom/action/Actions.java |   4 +-
 .../weex/dom/action/ReloadPageAction.java   |   6 +-
 .../taobao/weex/ui/component/WXComponent.java   | 143 ++
 .../com/taobao/weex/ui/component/WXDiv.java |  74 +++-
 .../com/taobao/weex/ui/component/WXImage.java   |  75 
 .../com/taobao/weex/ui/component/WXSlider.java  |   4 +-
 .../com/taobao/weex/ui/component/WXText.java|  90 +
 .../taobao/weex/ui/component/WXVContainer.java  |  50 +++--
 .../ui/component/list/BasicListComponent.java   | 165 -
 .../taobao/weex/ui/component/list/WXCell.java   |  63 ++-
 .../weex/ui/component/list/WXListComponent.java |  90 +
 .../com/taobao/weex/ui/flat/FlatComponent.java  |  33 
 .../com/taobao/weex/ui/flat/FlatGUIContext.java | 146 +++
 .../taobao/weex/ui/flat/WidgetContainer.java|  93 ++
 .../weex/ui/flat/widget/AndroidViewWidget.java  |  76 
 .../taobao/weex/ui/flat/widget/BaseWidget.java  | 130 +
 .../taobao/weex/ui/flat/widget/TextWidget.java  |  49 +
 .../com/taobao/weex/ui/flat/widget/Widget.java  |  51 +
 .../taobao/weex/ui/flat/widget/WidgetGroup.java |  54 ++
 .../taobao/weex/ui/module/WXTimerModule.java|   9 +-
 .../com/taobao/weex/ui/view/WXFrameLayout.java  |  53 +-
 .../com/taobao/weex/ui/view/WXImageView.java|  16 +-
 .../weex/ui/view/border/BorderCorner.java   |  37 ++--
 .../taobao/weex/ui/view/border/BorderUtil.java  |  26 ---
 .../weex/ui/view/border/BottomLeftCorner.java   |   7 +-
 .../weex/ui/view/border/BottomRightCorner.java  |   7 +-
 .../weex/ui/view/border/TopLeftCorner.java  |   7 +-
 .../weex/ui/view/border/TopRightCorner.java |   7 +-
 .../com/taobao/weex/utils/FunctionParser.java   |   6 -
 .../com/taobao/weex/utils/ImageDrawable.java|  17 +-
 .../java/com/taobao/weex/utils/OsVersion.java   |   2 +-
 .../main/java/com/taobao/weex/utils/Trace.java  |   4 +-
 .../java/com/taobao/weex/utils/WXUtils.java |  64 ---
 .../java/com/taobao/weex/utils/WXViewUtils.java |  31 
 .../com/taobao/weex/ui/component/WXDivTest.java |  12 +-
 .../taobao/weex/ui/component/WXTextTest.java|  18 +-
 .../weex/ui/module/WXTimerModuleTest.java   |  45 -
 dangerfile.js   |   4 +-
 ios/playground/WeexDemo/Scanner/WXScannerVC.m   |   2 +-
 .../WeexSDK/Sources/Bridge/WXBridgeContext.m|   4 +-
 .../Component/Recycler/WXMultiColumnLayout.m|  32 ++--
 .../Sources/Component/WXComponent_internal.h|   3 +-
 .../WeexSDK/Sources/Component/WXEditComponent.m |   9 +-
 .../Sources/Component/WXImageComponent.m|  37 +++-
 .../WeexSDK/Sources/Component/WXListComponent.m |   4 

[12/50] [abbrv] incubator-weex git commit: event type config

2017-09-21 Thread acton393
event type config


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

Branch: refs/heads/0.16-dev
Commit: 7fc24dfcc5738c003c063a95734bc34157c73d2e
Parents: b450c5a
Author: jianbai.gbj 
Authored: Thu Sep 14 21:35:01 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 14 21:35:01 2017 +0800

--
 .../com/taobao/weex/bridge/WXBridgeManager.java | 14 +---
 .../java/com/taobao/weex/common/Constants.java  | 16 +
 .../list/template/WXRecyclerTemplateList.java   | 34 
 3 files changed, 39 insertions(+), 25 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7fc24dfc/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java 
b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
index 3a44575..9cdad89 100644
--- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
+++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
@@ -25,6 +25,7 @@ import android.os.Looper;
 import android.os.Message;
 import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
+import android.support.v4.util.ArrayMap;
 import android.text.TextUtils;
 
 import com.alibaba.fastjson.JSON;
@@ -1063,15 +1064,18 @@ public class WXBridgeManager implements 
Callback,BactchExecutor {
 
 ArrayList argsList = new ArrayList<>();
 for (Object arg : args) {
-  argsList.add(arg);
+argsList.add(arg);
+}
+if(params != null){
+   ArrayMap map = new ArrayMap(4);
+   map.put(KEY_PARAMS, params);
+   argsList.add(map);
 }
 
 WXHashMap task = new WXHashMap<>();
 task.put(KEY_METHOD, method);
 task.put(KEY_ARGS, argsList);
-if(params != null){
-   task.put(KEY_PARAMS, params);
-}
+
 
 if (mNextTickTasks.get(instanceId) == null) {
   ArrayList> list = new ArrayList<>();
@@ -1149,7 +1153,7 @@ public class WXBridgeManager implements 
Callback,BactchExecutor {
   throw new WXRuntimeException(
   "fireEvent must be called by main thread");
 }
-addJSEventTask(METHOD_FIRE_EVENT, instanceId, params, ref, type, 
data,domChanges);
+addJSEventTask(METHOD_FIRE_EVENT, instanceId, params, ref, type, data, 
domChanges);
 sendMessage(instanceId, WXJSBridgeMsgType.CALL_JS_BATCH);
   }
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7fc24dfc/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java 
b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
index 1bbe888..6a96a08 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
@@ -182,13 +182,17 @@ public class Constants {
 String ARIA_HIDDEN = "ariaHidden";
 
 
-String LIST_DATA = "listData";
-String LIST_DATA_TEMPLATE_KEY = "templateKey";
-String SLOT_TEMPLATE_TYPE = "templateType";
+interface  Recycler{
+  String LIST_DATA = "listData";
+  String LIST_DATA_ITEM  ="item";
+  String LIST_DATA_ITEM_INDEX = "index";
+  String LIST_DATA_TEMPLATE_KEY = "templateKey";
+  String SLOT_TEMPLATE_TYPE = "templateType";
+  String LIST_DATA_ITEM_ID = "itemId";
+  String CELL_INDEX = "cellIndex";
+  String TYPE_INDEX = "typeIndex";
+}
 
-String LIST_DATA_ITEM_ID = "itemId";
-String CELL_INDEX = "cellIndex";
-String TYPE_INDEX = "typeIndex";
 
 String VIF_FALSE = "ifFalse";
   }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7fc24dfc/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
index 1b85b0a..3bee7af 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java

[06/50] [abbrv] incubator-weex git commit: refactor code

2017-09-21 Thread acton393
refactor code


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

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

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


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

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2826a474/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
index 826b080..a36b912 100644
--- 

[09/50] [abbrv] incubator-weex git commit: remove unused code and scope supported

2017-09-21 Thread acton393
remove unused code and scope supported


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

Branch: refs/heads/0.16-dev
Commit: 89f68fddf3d2bc384d6a6414c508015254462389
Parents: 64e017e
Author: jianbai.gbj 
Authored: Thu Sep 14 14:43:09 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 14 14:43:09 2017 +0800

--
 .../taobao/weex/dom/binding/BindingUtils.java   |  2 +-
 .../java/com/taobao/weex/el/parse/Parser.java   |  1 -
 .../weex/ui/component/binding/Statements.java   | 16 +++--
 .../list/template/WXRecyclerTemplateList.java   | 69 
 4 files changed, 11 insertions(+), 77 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/89f68fdd/android/sdk/src/main/java/com/taobao/weex/dom/binding/BindingUtils.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/dom/binding/BindingUtils.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/binding/BindingUtils.java
index e54d4f0..0b2bfd9 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/binding/BindingUtils.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/binding/BindingUtils.java
@@ -33,7 +33,7 @@ public class BindingUtils {
 
 public static final String BINDING = "@binding";
 
-public static final String ALIAS = "@alias";
+public static final String SCOPE = "scope";
 
 /**
  * @param value check object is binding expression

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/89f68fdd/android/sdk/src/main/java/com/taobao/weex/el/parse/Parser.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/el/parse/Parser.java 
b/android/sdk/src/main/java/com/taobao/weex/el/parse/Parser.java
index 9679dd4..e60ffaa 100644
--- a/android/sdk/src/main/java/com/taobao/weex/el/parse/Parser.java
+++ b/android/sdk/src/main/java/com/taobao/weex/el/parse/Parser.java
@@ -28,7 +28,6 @@ import java.util.List;
 /**
  * Created by furture on 2017/8/28.
  * simple expression parse, less ast node and save memory
- * reference https://github.com/jquery/esprima
  */
 public class Parser {
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/89f68fdd/android/sdk/src/main/java/com/taobao/weex/ui/component/binding/Statements.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/binding/Statements.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/binding/Statements.java
index 37b0224..86ce51c 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/binding/Statements.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/binding/Statements.java
@@ -236,6 +236,16 @@ public class Statements {
 Set> entries = dynamic.entrySet();
 
 /**
+ * scope supported
+ * */
+if(attr.get(BindingUtils.SCOPE) != null){
+String alias = attr.get(BindingUtils.SCOPE).toString();
+Map map = new ArrayMap(4);
+map.put(alias, dynamic.get(alias));
+context.push(map);
+}
+
+/**
  * diff attrs, see attrs has update, remove none update attrs
  * */
 Iterator> iterator = entries.iterator();
@@ -289,12 +299,6 @@ public class Statements {
 Block block = (Block) (binding.get(BindingUtils.BINDING));
 Object blockValue = block.execute(context);
 dynamic.put(key, blockValue);
-if(binding.getString(BindingUtils.ALIAS) != null){
-   String alias =  binding.getString(BindingUtils.ALIAS);
-Map map = new ArrayMap(4);
-map.put(alias, blockValue);
-context.push(map);
-}
 }else if(value instanceof JSONArray){
 JSONArray array = (JSONArray) value;
 StringBuilder builder = new StringBuilder();

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/89f68fdd/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
 

[37/50] [abbrv] incubator-weex git commit: 测试

2017-09-21 Thread acton393
测试


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

Branch: refs/heads/0.16-dev
Commit: 3dd927eb02590d92ca82e31081f3c9795f6aaa5c
Parents: 91455e2
Author: jianbai.gbj 
Authored: Thu Sep 21 16:01:53 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 21 16:01:53 2017 +0800

--
 .../list/template/CellLifecycleManager.java|  4 
 .../list/template/WXRecyclerTemplateList.java  |  2 ++
 pre-build/native-bundle-main.js| 17 -
 3 files changed, 14 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3dd927eb/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
index 28c352b..884f0b4 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
@@ -188,6 +188,10 @@ public class CellLifecycleManager {
 fireChildEvent(Constants.Event.SLOT_LIFECYCLE.DESTORY, cell, refs, 
position);
 }
 
+public Map getFiredCreateEvent() {
+return firedCreateEvent;
+}
+
 private final  void  fireChildEvent(String event, WXCell cell, 
List refs, int position){
 if(refs == null || refs.size() == 0){
 return;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3dd927eb/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
index 03a3eb9..7a4c3e9 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
@@ -180,6 +180,8 @@ public class WXRecyclerTemplateList extends 
WXVContainer imp
 cellLifecycleManager = new CellLifecycleManager(this);
 orientation = mDomObject.getOrientation();
 listDataTemplateKey = 
WXUtils.getString(getDomObject().getAttrs().get(Constants.Name.Recycler.LIST_DATA_TEMPLATE_KEY),
 Constants.Name.Recycler.SLOT_TEMPLATE_TYPE);
+listDataItemKey = 
WXUtils.getString(getDomObject().getAttrs().get(Constants.Name.Recycler.LIST_DATA_ITEM),
 listDataItemKey);
+listDataIndexKey = 
WXUtils.getString(getDomObject().getAttrs().get(Constants.Name.Recycler.LIST_DATA_ITEM_INDEX),
 listDataIndexKey);
 }
 
 @Override



[43/50] [abbrv] incubator-weex git commit: remove waster update

2017-09-21 Thread acton393
remove waster update


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

Branch: refs/heads/0.16-dev
Commit: 0e44b6eb20695502678efaccd3279a61ad9e867a
Parents: 73c9537
Author: jianbai.gbj 
Authored: Thu Sep 21 17:18:29 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 21 17:18:29 2017 +0800

--
 .../alibaba/weex/commons/adapter/BlurTool.java  |   6 +-
 android/sdk/build.gradle|   2 +-
 .../ui/component/list/BasicListComponent.java   | 122 +--
 3 files changed, 65 insertions(+), 65 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/0e44b6eb/android/commons/src/main/java/com/alibaba/weex/commons/adapter/BlurTool.java
--
diff --git 
a/android/commons/src/main/java/com/alibaba/weex/commons/adapter/BlurTool.java 
b/android/commons/src/main/java/com/alibaba/weex/commons/adapter/BlurTool.java
index e59e9e6..ee07d75 100644
--- 
a/android/commons/src/main/java/com/alibaba/weex/commons/adapter/BlurTool.java
+++ 
b/android/commons/src/main/java/com/alibaba/weex/commons/adapter/BlurTool.java
@@ -6,9 +6,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- * 
+ *
  *   http://www.apache.org/licenses/LICENSE-2.0
- * 
+ *
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
@@ -123,7 +123,7 @@ public class BlurTool {
 }
 
 private static Bitmap stackBlur(Bitmap sentBitmap, int radius) {
-// ArrayStack Blur Algorithm by Mario Klingemann 
+// Stack Blur Algorithm by Mario Klingemann 
 Bitmap bitmap = sentBitmap.copy(sentBitmap.getConfig(), true);
 
 if (radius < 1) {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/0e44b6eb/android/sdk/build.gradle
--
diff --git a/android/sdk/build.gradle b/android/sdk/build.gradle
index e10bd93..0be69fb 100755
--- a/android/sdk/build.gradle
+++ b/android/sdk/build.gradle
@@ -45,7 +45,7 @@ version = "0.9.4"
 android {
 compileSdkVersion project.compileSdkVersion
 buildToolsVersion project.buildToolsVersion
-//resourcePrefix "weex"
+resourcePrefix "weex"
 
 useLibrary 'org.apache.http.legacy'
 copy {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/0e44b6eb/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
index 9e71f19..1643e65 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/BasicListComponent.java
@@ -86,7 +86,7 @@ import java.util.regex.Pattern;
  */
 
 public abstract class BasicListComponent extends WXVContainer implements
-IRecyclerAdapterListener, IOnLoadMoreListener, 
Scrollable {
+IRecyclerAdapterListener, IOnLoadMoreListener, 
Scrollable {
   public static final String TRANSFORM = "transform";
   public static final String LOADMOREOFFSET = "loadmoreoffset";
   private String TAG = "BasicListComponent";
@@ -561,62 +561,62 @@ public abstract class BasicListComponent currentStickyPos) {
-currentStickyPos = pos;
-  }
+RecyclerView.LayoutManager layoutManager;
+boolean beforeFirstVisibleItem = false;
+boolean removeOldSticky = false;
+layoutManager = getHostView().getInnerView().getLayoutManager();
+if (layoutManager instanceof LinearLayoutManager || layoutManager 
instanceof GridLayoutManager) {
+  int fVisible = ((LinearLayoutManager) 
layoutManager).findFirstVisibleItemPosition();
+  int pos = mChildren.indexOf(cell);
+  cell.setScrollPositon(pos);
+
+  if (pos <= fVisible) {
+beforeFirstVisibleItem = true;
+if(pos > currentStickyPos) {
+  currentStickyPos = pos;
 }
+  }
 
-if(pos > fVisible){
-  removeOldSticky = true;
-}
-  } else if(layoutManager 

[26/50] [abbrv] incubator-weex git commit: save code, should improve textdom after 11

2017-09-21 Thread acton393
save code, should improve textdom after 11


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

Branch: refs/heads/0.16-dev
Commit: 8ed95e4510ee0577e7ec5788c33cf376408a3583
Parents: 14499e8
Author: jianbai.gbj 
Authored: Wed Sep 20 15:35:58 2017 +0800
Committer: jianbai.gbj 
Committed: Wed Sep 20 15:35:58 2017 +0800

--
 .../src/test/java/com/taobao/weex/el/ParserTest.java   | 13 +++--
 1 file changed, 3 insertions(+), 10 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/8ed95e45/android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java
--
diff --git a/android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java 
b/android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java
index d8f6622..32f8c2e 100644
--- a/android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java
+++ b/android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java
@@ -22,7 +22,6 @@ import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.alibaba.fastjson.parser.Feature;
-import com.alibaba.fastjson.serializer.SerializerFeature;
 import com.taobao.weex.el.parse.ArrayStack;
 import com.taobao.weex.el.parse.Operators;
 import com.taobao.weex.el.parse.Parser;
@@ -94,23 +93,17 @@ public class ParserTest extends TestCase {
 }
 
 public void testDebug(){
-
-
-//System.out.println("execute " + Parser.parse("true ? false : 
item.name").execute(this.createContext()));
-
-
+System.out.println("execute " + Parser.parse("true ? false : 
item.name").execute(this.createContext()));
 show("true ? false : true ");
-
 show("true ? false : ((item.name))");
-/**
 Parser.parse("item[1]").execute(this.createContext());
 Token block = Parser.parse("{{{item.name}}}");
 show("true ? item.name : false");
-   show("((true) && 2 > 1) && (1) && (1)");
+show("((true) && 2 > 1) && (1) && (1)");
 System.out.println(block.execute(createContext())
 + "  " + Double.parseDouble(".0e6"));
 show("1 > -1");
- */
+
 }
 
 



[15/50] [abbrv] incubator-weex git commit: only notify watch event

2017-09-21 Thread acton393
only notify watch event


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

Branch: refs/heads/0.16-dev
Commit: 11b5b7fb816887dcaa3c6f80104cff96c0bb0e9e
Parents: 7b039c5
Author: jianbai.gbj 
Authored: Fri Sep 15 12:07:57 2017 +0800
Committer: jianbai.gbj 
Committed: Fri Sep 15 12:07:57 2017 +0800

--
 .../sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java   | 2 +-
 .../main/java/com/taobao/weex/ui/component/WXComponent.java  | 8 
 .../ui/component/list/template/WXRecyclerTemplateList.java   | 6 +++---
 android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java | 5 +
 .../taobao/weex/ui/component/list/WXListComponentTest.java   | 3 ++-
 5 files changed, 19 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/11b5b7fb/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
index 1dea173..c766e35 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomObject.java
@@ -231,7 +231,7 @@ public class WXDomObject extends CSSNode implements 
Cloneable,ImmutableDomObject
 WXEvent events = new WXEvent();
 JSONArray eventArray = (JSONArray) event;
 int count = eventArray.size();
-for (int i = 0; i < count; ++i) {
+for (int i = 0; i < count; i++) {
 Object value = eventArray.get(i);
 events.addEvent(value);
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/11b5b7fb/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
index 98b41f5..939ae91 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
@@ -1420,6 +1420,14 @@ public abstract class  WXComponent 
implements IWXObject, IWXActi
 }
   }
 
+  public void notifyWatchAppearDisappearEvent(String wxEventType,String 
direction){
+if(containsEvent(wxEventType)) {
+  Map params = new HashMap<>();
+  params.put("direction", direction);
+  fireEvent(wxEventType, params);
+}
+  }
+
   public boolean isUsing() {
 return isUsing;
   }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/11b5b7fb/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
index 3bee7af..118007c 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
@@ -1171,7 +1171,7 @@ public class WXRecyclerTemplateList extends 
WXVContainer imp
 int key = childLisener.getHostView().hashCode();
 if(appear){
 if(!componentDisAppearList.containsKey(key)){
-
childLisener.notifyAppearStateChange(Constants.Event.APPEAR, direction);
+
childLisener.notifyWatchAppearDisappearEvent(Constants.Event.APPEAR, direction);
 List eventArgs = null;
 if(childLisener.getDomObject().getEvents() != null
 && 
childLisener.getDomObject().getEvents().getEventBindingArgsValues() != null
@@ -1182,7 +1182,7 @@ public class WXRecyclerTemplateList extends 
WXVContainer imp
 }
 }else{
 if(componentDisAppearList.containsKey(key)){
-
childLisener.notifyAppearStateChange(Constants.Event.DISAPPEAR, direction);
+
childLisener.notifyWatchAppearDisappearEvent(Constants.Event.DISAPPEAR, 
direction);
 componentDisAppearList.remove(key);
  

[14/50] [abbrv] incubator-weex git commit: recycle conflict with diff, remove

2017-09-21 Thread acton393
recycle conflict with diff, remove


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

Branch: refs/heads/0.16-dev
Commit: 7b039c50283ebb1928d8d56b669ac3f709cd4298
Parents: b3f5d31
Author: jianbai.gbj 
Authored: Thu Sep 14 22:44:34 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 14 22:44:34 2017 +0800

--
 .../weex/ui/component/list/template/TemplateStickyHelper.java  | 2 --
 1 file changed, 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/7b039c50/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/TemplateStickyHelper.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/TemplateStickyHelper.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/TemplateStickyHelper.java
index d768f32..8d228bc 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/TemplateStickyHelper.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/TemplateStickyHelper.java
@@ -144,8 +144,6 @@ public class TemplateStickyHelper {
 if(fakeStickyHolder == null){
 fakeStickyHolder = 
recyclerTemplateList.onCreateViewHolder(recyclerView, stickyHolderType);
 stickyHolderCache.put(stickyHolderType, fakeStickyHolder);
-}else{
-fakeStickyHolder.getComponent().recycled();
 }
 recyclerTemplateList.onBindViewHolder(fakeStickyHolder, 
matchStickyPosition);
 fakeStickyHolder.itemView.setTranslationY(0);



[32/50] [abbrv] incubator-weex git commit: update main bundle

2017-09-21 Thread acton393
update main bundle


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

Branch: refs/heads/0.16-dev
Commit: e10881f69e2661dcd084a17b386cd654127109e7
Parents: c8bed7e
Author: jianbai.gbj 
Authored: Thu Sep 21 11:57:43 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 21 11:57:43 2017 +0800

--
 .../java/com/taobao/weex/common/Constants.java  |3 +-
 .../list/template/WXRecyclerTemplateList.java   |   54 +-
 pre-build/native-bundle-main.js | 1384 +-
 3 files changed, 700 insertions(+), 741 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e10881f6/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java 
b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
index 04d4387..7d3c45a 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
@@ -187,12 +187,11 @@ public class Constants {
   String LIST_DATA_ITEM  ="alias";
   String LIST_DATA_ITEM_INDEX = "index";
   String LIST_DATA_TEMPLATE_KEY = "templateKey";
+
   String SLOT_TEMPLATE_TYPE = "templateType";
   String LIST_DATA_ITEM_ID = "itemId";
   String CELL_INDEX = "cellIndex";
   String TYPE_INDEX = "typeIndex";
-  String APPEND_LIST_DATA = "appendListData";
-  String UPDATE_CELL = "updateCell";
 }
 
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e10881f6/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
index 734e31d..56b4264 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
@@ -180,6 +180,7 @@ public class WXRecyclerTemplateList extends 
WXVContainer imp
 mStickyHelper = new TemplateStickyHelper(this);
 cellLifecycleManager = new CellLifecycleManager(this);
 orientation = mDomObject.getOrientation();
+listDataTemplateKey = 
WXUtils.getString(getDomObject().getAttrs().get(Constants.Name.Recycler.LIST_DATA_TEMPLATE_KEY),
 Constants.Name.Recycler.SLOT_TEMPLATE_TYPE);
 }
 
 @Override
@@ -610,14 +611,6 @@ public class WXRecyclerTemplateList extends 
WXVContainer imp
  setListData(param);
 }
 return true;
-case Constants.Name.Recycler.APPEND_LIST_DATA:{
-   appendListData(param);
- }
- return true;
-case Constants.Name.Recycler.UPDATE_CELL:{
-updateCell(param);
-}
-return true;
 case Constants.Name.Recycler.LIST_DATA_ITEM:
 listDataItemKey = WXUtils.getString(param, listDataItemKey);
 return true;
@@ -675,6 +668,7 @@ public class WXRecyclerTemplateList extends 
WXVContainer imp
 }
 }
 }
+listDataTemplateKey = 
WXUtils.getString(getDomObject().getAttrs().get(Constants.Name.Recycler.LIST_DATA_TEMPLATE_KEY),
 Constants.Name.Recycler.SLOT_TEMPLATE_TYPE);
 if(update){
 notifyUpdateList();
 }
@@ -749,44 +743,37 @@ public class WXRecyclerTemplateList extends 
WXVContainer imp
 inner.setScrollable(scrollable);
 }
 
-@WXComponentProp(name = Constants.Name.Recycler.APPEND_LIST_DATA)
-public void  appendListData(Object arrayObject){
+@JSMethod
+public void  appendListData(JSONArray arrayObject){
 if(listData == null){
 listData = new JSONArray();
 }
-if(arrayObject instanceof  JSONObject){
-listData.add(arrayObject);
-}else if(arrayObject instanceof  JSONArray){
-listData.addAll((JSONArray)arrayObject);
+if(arrayObject instanceof  JSONArray){
+listData.addAll(arrayObject);
 }
 notifyUpdateList();
 }
 
-@WXComponentProp(name = Constants.Name.Recycler.UPDATE_CELL)
-public void  updateCell(Object data){
-

[25/50] [abbrv] incubator-weex git commit: add more test case

2017-09-21 Thread acton393
add more 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/14499e87
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/14499e87
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/14499e87

Branch: refs/heads/0.16-dev
Commit: 14499e87adc26f0282ae890befa071bf7341cef5
Parents: 3344bb4
Author: jianbai.gbj 
Authored: Wed Sep 20 13:02:26 2017 +0800
Committer: jianbai.gbj 
Committed: Wed Sep 20 13:02:26 2017 +0800

--
 android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java | 8 ++--
 1 file changed, 6 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/14499e87/android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java
--
diff --git a/android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java 
b/android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java
index e265b5e..d8f6622 100644
--- a/android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java
+++ b/android/sdk/src/test/java/com/taobao/weex/el/ParserTest.java
@@ -88,6 +88,7 @@ public class ParserTest extends TestCase {
 Assert.assertEquals(false, Parser.parse("true ? false : 
item.name.work").execute(this.createContext()));
 Assert.assertEquals("hello world", Parser.parse("item.name ? item.name 
: false").execute(this.createContext()));
 Assert.assertEquals(null, Parser.parse("item.name ? item.name.not : 
false").execute(this.createContext()));
+Assert.assertEquals("hello world", Parser.parse("item.name == null ? 
false : (item.name)").execute(this.createContext()));
 
 
 }
@@ -95,9 +96,12 @@ public class ParserTest extends TestCase {
 public void testDebug(){
 
 
-System.out.println("execute " + Parser.parse("true ? false : 
item.name").execute(this.createContext()));
+//System.out.println("execute " + Parser.parse("true ? false : 
item.name").execute(this.createContext()));
 
-show("true ? false : item.name");
+
+show("true ? false : true ");
+
+show("true ? false : ((item.name))");
 /**
 Parser.parse("item[1]").execute(this.createContext());
 Token block = Parser.parse("{{{item.name}}}");



[49/50] [abbrv] incubator-weex git commit: update main.js

2017-09-21 Thread acton393
update main.js


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

Branch: refs/heads/0.16-dev
Commit: 9f4eb8cc1eb5aa87a282b1f312dcd5395c9adde9
Parents: 4f47be8
Author: jianbai.gbj 
Authored: Thu Sep 21 19:08:54 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 21 19:08:54 2017 +0800

--
 pre-build/native-bundle-main.js | 12 ++--
 1 file changed, 6 insertions(+), 6 deletions(-)
--




[13/50] [abbrv] incubator-weex git commit: sticky improve

2017-09-21 Thread acton393
sticky improve


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

Branch: refs/heads/0.16-dev
Commit: b3f5d31451fa98e518e19c12a609a105757ba7be
Parents: 7fc24df
Author: jianbai.gbj 
Authored: Thu Sep 14 22:23:11 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 14 22:23:11 2017 +0800

--
 .../list/template/TemplateStickyHelper.java | 44 +---
 1 file changed, 39 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b3f5d314/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/TemplateStickyHelper.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/TemplateStickyHelper.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/TemplateStickyHelper.java
index a537c94..d768f32 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/TemplateStickyHelper.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/TemplateStickyHelper.java
@@ -58,11 +58,14 @@ public class TemplateStickyHelper {
 RecyclerView recyclerView = 
recyclerTemplateList.getHostView().getInnerView();
 RecyclerView.LayoutManager layoutManager = 
recyclerView.getLayoutManager();
 int firstVisiblePosition = -1;
+int lastVisiblePosition = -1;
 if (layoutManager instanceof LinearLayoutManager) {
 firstVisiblePosition = ((LinearLayoutManager) 
layoutManager).findFirstVisibleItemPosition();
+lastVisiblePosition  = ((LinearLayoutManager) 
layoutManager).findLastVisibleItemPosition();
 }else if (layoutManager instanceof StaggeredGridLayoutManager) {
 int [] firstVisibleItemPositions = new int[3];//max 3 column
 firstVisiblePosition = ((StaggeredGridLayoutManager) 
layoutManager).findFirstVisibleItemPositions(firstVisibleItemPositions)[0];
+lastVisiblePosition = ((StaggeredGridLayoutManager) 
layoutManager).findLastVisibleItemPositions(firstVisibleItemPositions)[0];
 }
 if(firstVisiblePosition < 0){
 return;
@@ -98,6 +101,22 @@ public class TemplateStickyHelper {
 
stickyFakeViewHolder.getComponent().fireEvent(Constants.Event.UNSTICKY);
 }
 }
+
+/**check has sticky cell not visible */
+for(int i=0; i

[07/50] [abbrv] incubator-weex git commit: has fixed size

2017-09-21 Thread acton393
has fixed 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/e1f7f24e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/e1f7f24e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/e1f7f24e

Branch: refs/heads/0.16-dev
Commit: e1f7f24e1ceb6815a6616d6e4a31802dbdf06ffa
Parents: 2826a47
Author: jianbai.gbj 
Authored: Thu Sep 14 12:16:14 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 14 12:16:14 2017 +0800

--
 .../ui/component/list/RecyclerTransform.java| 21 +-
 .../list/template/ListDataManager.java  | 26 --
 .../list/template/WXRecyclerTemplateList.java   | 29 +++-
 3 files changed, 42 insertions(+), 34 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e1f7f24e/android/sdk/src/main/java/com/taobao/weex/ui/component/list/RecyclerTransform.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/RecyclerTransform.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/RecyclerTransform.java
index 166cffe..15beede 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/RecyclerTransform.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/RecyclerTransform.java
@@ -1,3 +1,21 @@
+/**
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ *   http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ */
 package com.taobao.weex.ui.component.list;
 
 import android.support.v7.widget.RecyclerView;
@@ -10,11 +28,12 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 /**
+ * recycler item decoration transform
  * Created by jianbai.gbj on 2017/9/14.
  */
 public class RecyclerTransform {
 
-public static final String TRANSFORM = "transform";
+public static final String TRANSFORM = Constants.Name.TRANSFORM;
 private static final Pattern transformPattern = 
Pattern.compile("([a-z]+)\\(([0-9\\.]+),?([0-9\\.]+)?\\)");
 private static final String TAG = "RecyclerTransform";
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e1f7f24e/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/ListDataManager.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/ListDataManager.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/ListDataManager.java
deleted file mode 100644
index 90d20f4..000
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/ListDataManager.java
+++ /dev/null
@@ -1,26 +0,0 @@
-/**
- * Licensed to the Apache Software Foundation (ASF) under one
- * or more contributor license agreements.  See the NOTICE file
- * distributed with this work for additional information
- * regarding copyright ownership.  The ASF licenses this file
- * to you under the Apache License, Version 2.0 (the
- * "License"); you may not use this file except in compliance
- * with the License.  You may obtain a copy of the License at
- *
- *   http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing,
- * software distributed under the License is distributed on an
- * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
- * KIND, either express or implied.  See the License for the
- * specific language governing permissions and limitations
- * under the License.
- */
-package com.taobao.weex.ui.component.list.template;
-
-/**
- * Created by furture on 2017/9/4.
- */
-
-public class ListDataManager {
-}

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e1f7f24e/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
 

[03/50] [abbrv] incubator-weex git commit: ifFalse handle action

2017-09-21 Thread acton393
ifFalse handle action


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

Branch: refs/heads/0.16-dev
Commit: 649ec4cbd21b37a26282d27477931cefab8a4f5b
Parents: 43caaf3
Author: jianbai.gbj 
Authored: Tue Sep 12 15:32:44 2017 +0800
Committer: jianbai.gbj 
Committed: Tue Sep 12 15:32:44 2017 +0800

--
 .../src/main/java/com/taobao/weex/common/Constants.java   |  2 +-
 .../java/com/taobao/weex/ui/component/WXComponent.java| 10 +-
 2 files changed, 6 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/649ec4cb/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java 
b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
index 0cc5bf4..1bbe888 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/Constants.java
@@ -190,7 +190,7 @@ public class Constants {
 String CELL_INDEX = "cellIndex";
 String TYPE_INDEX = "typeIndex";
 
-String KEEP_POSITION = "keepPosition";
+String VIF_FALSE = "ifFalse";
   }
 
   public interface Value {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/649ec4cb/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
index 03adfd2..4b2b517 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
@@ -1663,11 +1663,11 @@ public abstract class  WXComponent 
implements IWXObject, IWXActi
   this.waste = waste;
   WXDomObject domObject = (WXDomObject) getDomObject();
   if(waste){
-  
if(WXUtils.getBoolean(domObject.getAttrs().get(Constants.Name.KEEP_POSITION), 
false)){
-domObject.setVisible(true);
-if(getHostView() != null){
-   getHostView().setVisibility(View.INVISIBLE);
-}
+  
if(Constants.Value.VISIBLE.equals(domObject.getAttrs().get(Constants.Name.VIF_FALSE))){
+ domObject.setVisible(true);
+ if(getHostView() != null){
+   getHostView().setVisibility(View.VISIBLE);
+ }
   }else{
 domObject.setVisible(false);
 if(getHostView() != null){



[04/50] [abbrv] incubator-weex git commit: handle layout reset width

2017-09-21 Thread acton393
handle layout reset width


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

Branch: refs/heads/0.16-dev
Commit: 08515fe19fc35879807e6e66fb14310d52d8da58
Parents: 649ec4c
Author: jianbai.gbj 
Authored: Wed Sep 13 15:28:34 2017 +0800
Committer: jianbai.gbj 
Committed: Wed Sep 13 15:28:34 2017 +0800

--
 .../com/taobao/weex/dom/WXCellDomObject.java| 41 +-
 .../taobao/weex/dom/binding/BindingUtils.java   |  2 +
 .../taobao/weex/ui/component/WXComponent.java   |  7 +++
 .../weex/ui/component/binding/Layouts.java  |  2 -
 .../weex/ui/component/binding/Statements.java   | 58 
 .../list/template/WXRecyclerTemplateList.java   | 24 +++-
 6 files changed, 92 insertions(+), 42 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/08515fe1/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
index 0990143..bb3694d 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
@@ -47,12 +47,51 @@ public class WXCellDomObject extends WXDomObject {
 WXLogUtils.d("getAvailableWidth:"+w);
 node.setLayoutWidth(w);
   }
-}
+}else if (node instanceof  WXCellDomObject){
+  WXCellDomObject slotDomObject = (WXCellDomObject) node;
+  WXRecyclerDomObject recyclerDomObject = 
slotDomObject.getRecyclerDomObject();
+  if(recyclerDomObject == null){
+  return;
+  }
+  if(slotDomObject.isSticky()){
+  float w = recyclerDomObject.getAvailableWidth();
+  node.setLayoutWidth(w);
+  measureOutput.width  = w;
+  }else {
+  if(!recyclerDomObject.hasPreCalculateCellWidth()){
+  recyclerDomObject.preCalculateCellWidth();
+  }
+  float w = recyclerDomObject.getColumnWidth();
+  if(w <= 0 && recyclerDomObject.getColumnCount() <= 1){
+  w = recyclerDomObject.getAvailableWidth();
+  }
+  node.setLayoutWidth(w);
+  measureOutput.width  = w;
+  }
   }
+
+}
 }
   };
 
   public WXCellDomObject() {
 setMeasureFunction(CELL_MEASURE_FUNCTION);
   }
+
+
+public boolean isSticky() {
+return getStyles().isSticky();
+}
+private  WXRecyclerDomObject recyclerDomObject;
+
+
+
+public WXRecyclerDomObject getRecyclerDomObject() {
+return recyclerDomObject;
+}
+
+public void setRecyclerDomObject(WXRecyclerDomObject recyclerDomObject) {
+this.recyclerDomObject = recyclerDomObject;
+}
+
 }

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/08515fe1/android/sdk/src/main/java/com/taobao/weex/dom/binding/BindingUtils.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/dom/binding/BindingUtils.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/binding/BindingUtils.java
index 1a5eaef..e54d4f0 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/binding/BindingUtils.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/binding/BindingUtils.java
@@ -33,6 +33,8 @@ public class BindingUtils {
 
 public static final String BINDING = "@binding";
 
+public static final String ALIAS = "@alias";
+
 /**
  * @param value check object is binding expression
  * */

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/08515fe1/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
index 4b2b517..98b41f5 100644
--- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
@@ -1663,6 +1663,13 @@ public abstract class  WXComponent 
implements IWXObject, IWXActi
   this.waste = waste;
   WXDomObject domObject = (WXDomObject) getDomObject();
   if(waste){
+  if(domObject.getAttrs().getStatement() == null) {
+  domObject.setVisible(false);
+   

[47/50] [abbrv] incubator-weex git commit: use apache

2017-09-21 Thread acton393
use apache


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

Branch: refs/heads/0.16-dev
Commit: 4f47be841a4ae0dcb593b0d84432436aff58d740
Parents: 4a3b537
Author: jianbai.gbj 
Authored: Thu Sep 21 17:51:47 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 21 17:51:47 2017 +0800

--
 .../src/main/java/com/alibaba/weex/commons/adapter/BlurTool.java | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/4f47be84/android/commons/src/main/java/com/alibaba/weex/commons/adapter/BlurTool.java
--
diff --git 
a/android/commons/src/main/java/com/alibaba/weex/commons/adapter/BlurTool.java 
b/android/commons/src/main/java/com/alibaba/weex/commons/adapter/BlurTool.java
index ee07d75..e968032 100644
--- 
a/android/commons/src/main/java/com/alibaba/weex/commons/adapter/BlurTool.java
+++ 
b/android/commons/src/main/java/com/alibaba/weex/commons/adapter/BlurTool.java
@@ -6,9 +6,9 @@
  * to you under the Apache License, Version 2.0 (the
  * "License"); you may not use this file except in compliance
  * with the License.  You may obtain a copy of the License at
- *
+ * 
  *   http://www.apache.org/licenses/LICENSE-2.0
- *
+ * 
  * Unless required by applicable law or agreed to in writing,
  * software distributed under the License is distributed on an
  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY



[11/50] [abbrv] incubator-weex git commit: width auto adapt

2017-09-21 Thread acton393
width auto adapt


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

Branch: refs/heads/0.16-dev
Commit: b450c5a0b097887fa13b66f4c0c6dd362ee5be7c
Parents: 2544b5e
Author: jianbai.gbj 
Authored: Thu Sep 14 20:08:48 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 14 20:08:48 2017 +0800

--
 .../com/taobao/weex/dom/WXCellDomObject.java |  9 +
 .../com/taobao/weex/dom/WXRecyclerDomObject.java | 19 ---
 2 files changed, 21 insertions(+), 7 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b450c5a0/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
--
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
index bb3694d..6d50ab6 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXCellDomObject.java
@@ -55,6 +55,9 @@ public class WXCellDomObject extends WXDomObject {
   }
   if(slotDomObject.isSticky()){
   float w = recyclerDomObject.getAvailableWidth();
+  if(w <= 0){
+  w = recyclerDomObject.getViewPortWidth();
+  }
   node.setLayoutWidth(w);
   measureOutput.width  = w;
   }else {
@@ -64,6 +67,12 @@ public class WXCellDomObject extends WXDomObject {
   float w = recyclerDomObject.getColumnWidth();
   if(w <= 0 && recyclerDomObject.getColumnCount() <= 1){
   w = recyclerDomObject.getAvailableWidth();
+  if(w <= 0){
+  w = recyclerDomObject.getLayoutWidth();
+  if(w <= 0){
+  w = recyclerDomObject.getViewPortWidth();
+  }
+  }
   }
   node.setLayoutWidth(w);
   measureOutput.width  = w;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/b450c5a0/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java 
b/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java
index f873512..1ae3af2 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXRecyclerDomObject.java
@@ -34,7 +34,6 @@ import static 
com.taobao.weex.dom.flex.CSSLayout.DIMENSION_WIDTH;
 /**
  * Created by zhengshihan on 2017/2/21.
  */
-
 public class WXRecyclerDomObject extends WXDomObject{
 
 
@@ -79,13 +78,19 @@ public class WXRecyclerDomObject extends WXDomObject{
 
 @Override
 public float getStyleWidth() {
-if (Float.isNaN(cssstyle.dimensions[DIMENSION_WIDTH])){
-   if(getParent() != null){
-   return getParent().getLayoutWidth();
-   }
-   return  getViewPortWidth();
+float width =  getLayoutWidth();
+if (Float.isNaN(width) || width <= 0){
+if(getParent() != null){
+width = getParent().getLayoutWidth();
+}
+if (Float.isNaN(width) || width <= 0){
+width = super.getStyleWidth();
+}
+}
+if (Float.isNaN(width) || width <= 0){
+width = getViewPortWidth();
 }
-return super.getStyleWidth();
+return width;
 }
 
 public void preCalculateCellWidth(){



[05/50] [abbrv] incubator-weex git commit: performance improve hack

2017-09-21 Thread acton393
performance improve hack


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

Branch: refs/heads/0.16-dev
Commit: 3dc6ac774e4418d57e87d7a8237bb27bb9e0ede3
Parents: 08515fe
Author: jianbai.gbj 
Authored: Thu Sep 14 11:56:15 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 14 11:56:15 2017 +0800

--
 .../list/template/WXRecyclerTemplateList.java  | 17 +++--
 1 file changed, 3 insertions(+), 14 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3dc6ac77/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
index 04e2070..826b080 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/WXRecyclerTemplateList.java
@@ -87,22 +87,8 @@ import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 
 /**
- * todo-list
- * 1、appear事件
- * 2、sticky事件
- * 3、多列测试
- * 5、for loop
  * weex template list supported
  * https://github.com/Hanks10100/weex-native-directive
- * demo address
- * http://dotwe.org/vue/ee9b5bbbe11629f565372595951670ec
- *
- * http://dotwe.org/vue/87b258b6359913605a3e65c6c444
- *
- * http://dotwe.org/vue/94839a9b4e87c7c5464585f6a6c109ce
- *
- * http://dotwe.org/vue/0e549fb446458ecdc21e6115ea3a3c7b
- *
  * Created by jianbai.gbj on 2017/8/17.
  */
 @Component(lazyload = false)
@@ -204,6 +190,9 @@ public class WXRecyclerTemplateList extends 
WXVContainer imp
 bounceRecyclerView.setOverScrollMode(View.OVER_SCROLL_NEVER);
 bounceRecyclerView.getInnerView().clearOnScrollListeners();
 
bounceRecyclerView.getInnerView().addOnScrollListener(mViewOnScrollListener);
+if("true".equals(getDomObject().getAttrs().get("hasFixedSize"))){
+bounceRecyclerView.getInnerView().setHasFixedSize(true);
+}
 bounceRecyclerView.getInnerView().addOnScrollListener(new 
RecyclerView.OnScrollListener() {
 @Override
 public void onScrollStateChanged(RecyclerView recyclerView, int 
newState) {



[30/50] [abbrv] incubator-weex git commit: 生命周期的事件完善

2017-09-21 Thread acton393
生命周期的事件完善


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

Branch: refs/heads/0.16-dev
Commit: c8bed7eae213b589c488a9bd0edabdccc76847aa
Parents: 699da8f
Author: jianbai.gbj 
Authored: Wed Sep 20 21:41:17 2017 +0800
Committer: jianbai.gbj 
Committed: Wed Sep 20 21:41:17 2017 +0800

--
 .../list/template/CellLifecycleManager.java | 62 +++-
 .../list/template/WXRecyclerTemplateList.java   | 25 
 2 files changed, 45 insertions(+), 42 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/c8bed7ea/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
--
diff --git 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
index 80880c2..054bb7a 100644
--- 
a/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
+++ 
b/android/sdk/src/main/java/com/taobao/weex/ui/component/list/template/CellLifecycleManager.java
@@ -18,8 +18,6 @@
  */
 package com.taobao.weex.ui.component.list.template;
 
-import android.util.Log;
-
 import com.taobao.weex.common.Constants;
 import com.taobao.weex.dom.WXEvent;
 import com.taobao.weex.ui.component.WXComponent;
@@ -46,18 +44,18 @@ public class CellLifecycleManager {
 
 private WXRecyclerTemplateList recyclerTemplateList;
 private Map> eventSlotWatchRefs;
-private List createEvent; // only call once
+private Map firedCreateEvent; // only call once
 
 
 public CellLifecycleManager(WXRecyclerTemplateList recyclerTemplateList) {
 this.recyclerTemplateList = recyclerTemplateList;
 this.eventSlotWatchRefs = new HashMap<>();
-this.createEvent = new ArrayList<>();
+this.firedCreateEvent = new HashMap<>();
 }
 
 
 
-public void updateSlotLifecycleWatch(WXCell cell, WXComponent component){
+public void filterLifecycleWatchEvent(WXCell cell, WXComponent component){
 WXEvent wxEvent = component.getDomObject().getEvents();
 for(String event : lifecycleEventNames){
 if(wxEvent.contains(event)){
@@ -80,7 +78,7 @@ public class CellLifecycleManager {
 WXVContainer container = (WXVContainer) component;
 for(int i=0; i  slotWatchCreateRefs = 
eventSlotWatchRefs.get(Constants.Event.SLOT_LIFECYCLE.CREATE);
 if(slotWatchCreateRefs == null
-|| slotWatchCreateRefs.get(key) == null
-|| slotWatchCreateRefs.get(key).size() == 0){
+|| slotWatchCreateRefs.get(cell.getRef()) == null
+|| slotWatchCreateRefs.get(cell.getRef()).size() == 0){
 return;
 }
-if(createEvent.size() >= position){
-if(createEvent.contains(key + position)){
-return;
-}
+if(cell.getRef().equals(firedCreateEvent.get(position))){
+return;
 }
-WXCell cell = recyclerTemplateList.getTemplates().get(key);
-if(cell == null){
+List refs = slotWatchCreateRefs.get(cell.getRef());
+if(refs == null || refs.size() == 0){
 return;
 }
-Map params = new HashMap<>(8);
-params.put("position", position);
-cell.fireEvent(Constants.Event.SLOT_LIFECYCLE.CREATE, params);
-createEvent.add(key + position);
+fireChildEvent(Constants.Event.SLOT_LIFECYCLE.CREATE, cell, refs, 
position);
+firedCreateEvent.put(position, cell.getRef());
 }
 
 
@@ -160,28 +157,35 @@ public class CellLifecycleManager {
 String key = recyclerTemplateList.getTemplateKey(position);
 if(slotWatchDestroyRefs.get(key) == null
 || 

[41/50] [abbrv] incubator-weex git commit: bundle js

2017-09-21 Thread acton393
bundle js


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

Branch: refs/heads/0.16-dev
Commit: 71c692ca1ff9f25f5d1b0571726a4272919176f2
Parents: cbdcdee
Author: jianbai.gbj 
Authored: Thu Sep 21 16:56:11 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 21 16:56:11 2017 +0800

--
 pre-build/native-bundle-main.js | 26507 +
 1 file changed, 8 insertions(+), 26499 deletions(-)
--




[42/50] [abbrv] incubator-weex git commit: Merge remote-tracking branch 'origin/0.16-dev' into 0.16-dev-template-list

2017-09-21 Thread acton393
Merge remote-tracking branch 'origin/0.16-dev' into 0.16-dev-template-list


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

Branch: refs/heads/0.16-dev
Commit: 73c9537fd135229f40330e8a6a10d85fb41e992a
Parents: 71c692c 8325077
Author: jianbai.gbj 
Authored: Thu Sep 21 16:58:23 2017 +0800
Committer: jianbai.gbj 
Committed: Thu Sep 21 16:58:23 2017 +0800

--
 .travis.yml |   47 +-
 POSSIBLE-NOTICES-FOR-BIN-DIST   |5 +-
 WeexSDK.podspec |2 -
 .../com/taobao/weex/dom/WXTextDomObject.java|   11 +-
 .../weex/dom/action/CreateBodyAction.java   |   12 +-
 .../weex/ui/view/WXBaseCircleIndicator.java |  131 +-
 .../java/com/taobao/weex/utils/LogLevel.java|4 +-
 .../java/com/taobao/weex/utils/WXLogUtils.java  |   14 +
 dangerfile-android.js   |  108 ++
 dangerfile-ios.js   |  107 ++
 dangerfile-jsfm.js  |  105 +
 ios/sdk/WeexSDK.xcodeproj/project.pbxproj   |   42 -
 .../Sources/Bridge/WXDebugLoggerBridge.h|   26 -
 .../Sources/Bridge/WXDebugLoggerBridge.m|  213 ---
 ios/sdk/WeexSDK/Sources/Bridge/WXJSCoreBridge.m |   89 +-
 .../Sources/Display/WXComponent+Display.m   |2 +-
 ios/sdk/WeexSDK/Sources/Engine/WXSDKEngine.m|4 -
 .../Sources/Manager/WXComponentManager.m|5 +-
 ios/sdk/WeexSDK/Sources/Model/WXComponent.m |3 +-
 .../WeexSDK/Sources/Module/WXAnimationModule.m  |   26 +-
 .../WeexSDK/Sources/Module/WXWebSocketModule.m  |1 -
 .../Sources/WebSocket/SRWebSocket+Weex.h|   29 -
 .../Sources/WebSocket/SRWebSocket+Weex.m|   47 -
 .../Sources/WebSocket/WXWebSocketDefaultImpl.h  |   25 -
 .../Sources/WebSocket/WXWebSocketDefaultImpl.m  |  121 --
 ios/sdk/WeexSDK/dependency/SRWebSocket.h|  135 --
 ios/sdk/WeexSDK/dependency/SRWebSocket.m| 1806 --
 package.json|5 +-
 scripts/generate_apache_release.sh  |2 +-
 test/pages/components/iconfont.vue  |6 +-
 test/scripts/components/scroll-event.test.js|2 +-
 31 files changed, 472 insertions(+), 2663 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/73c9537f/android/sdk/src/main/java/com/taobao/weex/dom/WXTextDomObject.java
--



[28/50] [abbrv] incubator-weex git commit: bundle.js更新

2017-09-21 Thread acton393
bundle.js更新


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

Branch: refs/heads/0.16-dev
Commit: 08abc8c223b1f2fe356d93713e55d3db0e14f78d
Parents: 8ed95e4
Author: jianbai.gbj 
Authored: Wed Sep 20 20:16:08 2017 +0800
Committer: jianbai.gbj 
Committed: Wed Sep 20 20:16:08 2017 +0800

--
 pre-build/native-bundle-main.js | 44602 -
 1 file changed, 22236 insertions(+), 22366 deletions(-)
--




[GitHub] incubator-weex pull request #730: + [ios] set the wxwebsock handler public

2017-09-21 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/incubator-weex/pull/730


---


[GitHub] incubator-weex issue #730: + [ios] set the wxwebsock handler public

2017-09-21 Thread weex-bot
Github user weex-bot commented on the issue:

https://github.com/apache/incubator-weex/pull/730
  






  

  
  Messages

  
  
  :book:
  

  has no jsfm file changed,skip test!
  

  




  Generated by :no_entry_sign: http://github.com/danger/danger-js/;>dangerJS




---


[GitHub] incubator-weex pull request #730: + [ios] set the wxwebsock handler public

2017-09-21 Thread kfeagle
GitHub user kfeagle opened a pull request:

https://github.com/apache/incubator-weex/pull/730

+ [ios] set the wxwebsock handler public

+ [ios] set the wxwebsock handler public

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/kfeagle/incubator-weex socket-0.16-dev

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/incubator-weex/pull/730.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #730


commit dbdab8ee9ec7eb35636fedfaf5a6efef64a4bf63
Author: 齐山 
Date:   2017-09-21T12:25:00Z

+ [ios] set the wxwebsock handler public




---


[GitHub] incubator-weex pull request #727: Doc merge dev

2017-09-21 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/incubator-weex/pull/727


---


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

2017-09-21 Thread gurisxie
Merge branch 'dev' of https://git-wip-us.apache.org/repos/asf/incubator-weex 
into 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/d16ba8d8
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/d16ba8d8
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/d16ba8d8

Branch: refs/heads/0.16-dev
Commit: d16ba8d888e07d285e3f523ed4010c934b1a4c48
Parents: 72184b4 5b3ecd5
Author: zshshr 
Authored: Wed Sep 13 15:21:10 2017 +0800
Committer: zshshr 
Committed: Wed Sep 13 15:21:10 2017 +0800

--
 doc/source/cn/references/common-style.md  | 3 +++
 doc/source/cn/references/modules/animation.md | 2 ++
 doc/source/references/common-style.md | 3 +++
 doc/source/references/modules/animation.md| 3 ++-
 4 files changed, 10 insertions(+), 1 deletion(-)
--




[10/14] incubator-weex git commit: * [doc] bug fix index

2017-09-21 Thread gurisxie
* [doc] bug fix index


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

Branch: refs/heads/0.16-dev
Commit: 4c3f020504e9e05bc699e333db771f3d3b398e26
Parents: 5148596
Author: gurisxie <279483...@qq.com>
Authored: Tue Sep 19 17:22:25 2017 +0800
Committer: gurisxie <279483...@qq.com>
Committed: Tue Sep 19 17:22:25 2017 +0800

--
 doc/source/cn/guide/index.md | 9 ++---
 doc/source/guide/index.md| 4 ++--
 2 files changed, 8 insertions(+), 5 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/4c3f0205/doc/source/cn/guide/index.md
--
diff --git a/doc/source/cn/guide/index.md b/doc/source/cn/guide/index.md
index 22670ed..8208629 100644
--- a/doc/source/cn/guide/index.md
+++ b/doc/source/cn/guide/index.md
@@ -10,9 +10,11 @@ has_chapter_content: true
 
 Weex 是一套简单易用的跨平台开发方案,能以 web 
的开发体验构建高性能、可扩展的 native 
应用,为了做到这些,Weex 与  Vue 合作,使用 Vue 
作为上层框架,并遵循 W3C 标准实现了统一的 JSEngine 和 DOM 
API,这样一来,你甚至可以使用其他框架驱动 Weex,打造
三端一致的 native 应用。
 
-## Vue 是什么?
+## VueJS简介
 
-Vue.js 是 Evan You 开发的渐进式 JavaScript 框架。开发者
能够通过撰写 `*.vue` 文件,基于 ``, 

[11/14] incubator-weex git commit: * [doc] update set-up-env.md

2017-09-21 Thread gurisxie
* [doc] update set-up-env.md


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

Branch: refs/heads/0.16-dev
Commit: a64ce53b2f6869953f3e04542f5448448a131d50
Parents: 4c3f020
Author: erha19 
Authored: Wed Sep 20 17:36:28 2017 +0800
Committer: erha19 
Committed: Wed Sep 20 17:36:28 2017 +0800

--
 doc/source/cn/guide/set-up-env.md | 2 +-
 doc/source/guide/set-up-env.md| 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/a64ce53b/doc/source/cn/guide/set-up-env.md
--
diff --git a/doc/source/cn/guide/set-up-env.md 
b/doc/source/cn/guide/set-up-env.md
index a01c4ae..98d1b0d 100644
--- a/doc/source/cn/guide/set-up-env.md
+++ b/doc/source/cn/guide/set-up-env.md
@@ -74,7 +74,7 @@ $ sudo cnpm install -g weex-toolkit
 然后初始化 Weex 项目:
 
 ```bash
-$ weex init awesome-project
+$ weex create awesome-project
 ```
 
 执行完命令后,在 `awesome-project` 目录中就创建了一个使用 
Weex 和 Vue 的模板项目。

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/a64ce53b/doc/source/guide/set-up-env.md
--
diff --git a/doc/source/guide/set-up-env.md b/doc/source/guide/set-up-env.md
index 1dee4f6..6a846b0 100644
--- a/doc/source/guide/set-up-env.md
+++ b/doc/source/guide/set-up-env.md
@@ -44,7 +44,7 @@ Then you can use the Weex command to verify that the 
installation is successful:
 You can use the CLI to generate a Weex project called "awesome-project". Run 
the following command in a Terminal:
 
 ```bash
-$ weex init awesome-project
+$ weex create awesome-project
 ```
 
 Then enter the awesome-project folder, the CLI has been for us to generate a 
standard project structure.



[07/14] incubator-weex git commit: Merge commit 'd16ba8d888e07d285e3f523ed4010c934b1a4c48' into dev

2017-09-21 Thread gurisxie
Merge commit 'd16ba8d888e07d285e3f523ed4010c934b1a4c48' into dev

Conflicts:
doc/source/guide/set-up-env.md


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

Branch: refs/heads/0.16-dev
Commit: bdd6f1b5b6a0dc1c2fbd12335b801f687149d29c
Parents: 5cffb4e d16ba8d
Author: gurisxie <279483...@qq.com>
Authored: Fri Sep 15 10:55:24 2017 +0800
Committer: gurisxie <279483...@qq.com>
Committed: Fri Sep 15 10:55:24 2017 +0800

--
 .flowconfig |   1 +
 .gitignore  |   4 +
 .travis.yml |  91 ++-
 Dangerfile-ios  |   1 +
 HOW-TO-BUILD.md |  80 +++
 LICENSE |  22 +-
 POSSIBLE-NOTICES-FOR-BIN-DIST   |   3 +
 README.md   |  53 +-
 README_RELEASE.md   |  69 --
 RUN-RAT.md  |  12 +
 WeexSDK.podspec |   6 +-
 android/build.gradle|   7 +-
 android/commons/build.gradle|   1 +
 .../adapter/DefaultWebSocketAdapter.java|  54 +-
 .../weex/commons/util/RequestIdGenerator.java   |  15 +
 .../weex/commons/util/WSEventReporter.java  | 192 ++
 .../gradle/wrapper/gradle-wrapper.properties|   4 +-
 android/playground/app/build.gradle |   4 +-
 .../java/com/alibaba/weex/WXApplication.java|   4 +
 .../java/com/alibaba/weex/WXPageActivity.java   |   3 +-
 .../extend/adapter/InterceptWXHttpAdapter.java  |  57 +-
 .../weex/extend/component/WXParallax.java   | 345 ++
 .../weex/extend/module/WXEventModule.java   |  23 +-
 android/run-ci.sh   |   4 -
 android/sdk/assets/main.js  |   8 -
 android/sdk/build.gradle|  27 +-
 android/sdk/libs/armeabi/libweexjsc.so  | Bin 7558100 -> 7570504 bytes
 android/sdk/libs/x86/libweexjsc.so  | Bin 4545544 -> 12121924 bytes
 .../java/com/taobao/weex/ComponentObserver.java |  50 ++
 .../com/taobao/weex/LayoutFinishListener.java   |  26 +
 .../java/com/taobao/weex/WXEnvironment.java |   5 +
 .../main/java/com/taobao/weex/WXSDKEngine.java  |   6 +
 .../java/com/taobao/weex/WXSDKInstance.java | 102 ++-
 .../main/java/com/taobao/weex/WXSDKManager.java |  15 +-
 .../taobao/weex/adapter/ICrashInfoReporter.java |  27 +
 .../taobao/weex/adapter/IDrawableLoader.java|   3 +-
 .../weex/adapter/IWXUserTrackAdapter.java   |   2 +-
 .../java/com/taobao/weex/bridge/WXBridge.java   | 299 +++-
 .../com/taobao/weex/bridge/WXBridgeManager.java | 425 +++-
 .../com/taobao/weex/bridge/WXModuleManager.java |  44 +-
 .../java/com/taobao/weex/common/Constants.java  |   2 +
 .../weex/common/ICheckBindingScroller.java  |  27 +
 .../java/com/taobao/weex/common/IWXBridge.java  |  21 +
 .../java/com/taobao/weex/common/WXConfig.java   |   1 +
 .../com/taobao/weex/common/WXImageStrategy.java |   9 +-
 .../com/taobao/weex/common/WXPerformance.java   |   9 +-
 .../taobao/weex/dom/DOMActionContextImpl.java   |  15 +-
 .../com/taobao/weex/dom/TextDecorationSpan.java |  55 ++
 .../main/java/com/taobao/weex/dom/WXAttr.java   |  38 +-
 .../java/com/taobao/weex/dom/WXDomHandler.java  |   4 +
 .../java/com/taobao/weex/dom/WXDomManager.java  |  19 +
 .../java/com/taobao/weex/dom/WXDomModule.java   |   2 +-
 .../com/taobao/weex/dom/WXImageQuality.java |   4 +-
 .../taobao/weex/dom/WXRecyclerDomObject.java|   4 +
 .../main/java/com/taobao/weex/dom/WXStyle.java  |  32 +-
 .../com/taobao/weex/dom/WXSwitchDomObject.java  |  29 +-
 .../com/taobao/weex/dom/WXTextDomObject.java|  15 +-
 .../com/taobao/weex/dom/action/Actions.java |  74 +-
 .../taobao/weex/dom/action/AnimationAction.java |  40 +-
 .../weex/dom/action/CreateFinishAction.java |  20 +
 .../weex/dom/action/ExecutableRenderAction.java |  48 ++
 .../weex/dom/action/ModuleInvocationAction.java |  68 ++
 .../weex/dom/action/UpdateStyleAction.java  |   4 +-
 .../taobao/weex/ui/IExternalModuleGetter.java   |  30 +
 .../taobao/weex/ui/IExternalMoudleGetter.java   |  29 -
 .../ui/animation/DimensionUpdateListener.java   |  74 --
 .../weex/ui/animation/HeightProperty.java   |  35 +
 .../weex/ui/animation/LayoutParamsProperty.java |  64 ++
 .../weex/ui/animation/WXAnimationBean.java  |  73 +-
 .../taobao/weex/ui/animation/WidthProperty.java |  35 +
 .../ui/component/AbstractEditComponent.java |  47 +-
 .../com/taobao/weex/ui/component/Textarea.java  |   6 +
 

[08/14] incubator-weex git commit: * [doc] Update doc format.

2017-09-21 Thread gurisxie
* [doc] Update doc 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/81aa503e
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/81aa503e
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/81aa503e

Branch: refs/heads/0.16-dev
Commit: 81aa503ee9008d7f093ae270594579dd7bcd6f20
Parents: bdd6f1b
Author: YorkShen 
Authored: Fri Sep 15 16:27:36 2017 +0800
Committer: YorkShen 
Committed: Fri Sep 15 16:27:36 2017 +0800

--
 doc/source/references/common-style.md | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/81aa503e/doc/source/references/common-style.md
--
diff --git a/doc/source/references/common-style.md 
b/doc/source/references/common-style.md
index 9c1251f..359b0e0 100644
--- a/doc/source/references/common-style.md
+++ b/doc/source/references/common-style.md
@@ -203,9 +203,9 @@ Currently supported format:
 * scaleX(  )
 * scaleY(  )
 * rotate(  )
-- rotateX(  ) v0.14+
-- rotateY(  ) v0.14+
-- perspective(  ), supported for Android 4.1 and above. v0.16+
+* rotateX(  ) v0.14+
+* rotateY(  ) v0.14+
+* perspective(  ), supported for Android 4.1 and above. v0.16+
 * transform-origin: number/percentage/keyword(top/left/right/bottom)
 
 ### Example



[06/14] incubator-weex git commit: * [doc] bug fix setup about

2017-09-21 Thread gurisxie
* [doc] bug fix setup about


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

Branch: refs/heads/0.16-dev
Commit: 5cffb4e5c52bffc30c24a461ccf76a2546030635
Parents: b13b428
Author: gurisxie <279483...@qq.com>
Authored: Fri Sep 15 10:50:30 2017 +0800
Committer: gurisxie <279483...@qq.com>
Committed: Fri Sep 15 10:50:30 2017 +0800

--
 doc/source/cn/guide/set-up-env.md| 2 +-
 doc/source/cn/guide/tools/toolkit.md | 2 +-
 doc/source/guide/set-up-env.md   | 2 +-
 doc/source/guide/tools/toolkit.md| 5 ++---
 4 files changed, 5 insertions(+), 6 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5cffb4e5/doc/source/cn/guide/set-up-env.md
--
diff --git a/doc/source/cn/guide/set-up-env.md 
b/doc/source/cn/guide/set-up-env.md
index 139e155..30b77d6 100644
--- a/doc/source/cn/guide/set-up-env.md
+++ b/doc/source/cn/guide/set-up-env.md
@@ -90,7 +90,7 @@ $ weex init awesome-project
 - `serve`: 开启静态服务器
 - `debug`: 调试模式
 
-我们先通过 `npm install` 安装项目依赖。之后运行 `npm run dev` 
和 `npm run serve` 开启watch 模式和静态服务器。
+我们先通过 `npm install` 安装项目依赖。之后运行根目录下的 
`sh ./start` 开启  watch 模式和静态服务器。
 
 然后我们打开浏览器,进入 `http://localhost:8080/index.html` 
即可看到 weex h5 页面。 
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5cffb4e5/doc/source/cn/guide/tools/toolkit.md
--
diff --git a/doc/source/cn/guide/tools/toolkit.md 
b/doc/source/cn/guide/tools/toolkit.md
index 90bfe13..de72f75 100644
--- a/doc/source/cn/guide/tools/toolkit.md
+++ b/doc/source/cn/guide/tools/toolkit.md
@@ -53,7 +53,7 @@ $ weex init awesome-project
 - `serve`: 开启静态服务器
 - `debug`: 调试模式
 
-我们先通过 `npm install` 安装项目依赖。之后运行 `npm run dev` 
和 `npm run serve` 开启 `watch` 模式和静态服务器。
+我们先通过 `npm install` 安装项目依赖。之后运行根目录下的 
`sh ./start` 开启 watch 模式和静态服务器。
 
 然后我们打开浏览器,进入 `http://localhost:8080/index.html` 
即可看到 Weex h5 页面。
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5cffb4e5/doc/source/guide/set-up-env.md
--
diff --git a/doc/source/guide/set-up-env.md b/doc/source/guide/set-up-env.md
index 702c347..b734d08 100644
--- a/doc/source/guide/set-up-env.md
+++ b/doc/source/guide/set-up-env.md
@@ -57,7 +57,7 @@ We enter the awesome-project folder and install dependencies 
with the following
 npm install
 ```
 
-Then we run `npm run dev` and `npm run serve` to start watch mode and static 
server.
+Then we run `sh ./start` in root directory to start watch mode and static 
server.
 
 Finally, we can see the Weex page in `http://localhost:8080/index.html`.
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5cffb4e5/doc/source/guide/tools/toolkit.md
--
diff --git a/doc/source/guide/tools/toolkit.md 
b/doc/source/guide/tools/toolkit.md
index 2e19b2d..ff088cb 100644
--- a/doc/source/guide/tools/toolkit.md
+++ b/doc/source/guide/tools/toolkit.md
@@ -37,10 +37,9 @@ There are some useful npm scripts you will use in the future:
 - `serve`: start a web server
 - `debug`: open the debug mode
 
-When all dependences are ready, you can input `npm run dev` and run `npm run 
server` in a command line tab. Now you can visit our web page in :
-
-http://localhost:8080/index.html
+Then we run `sh ./start` in root directory to start watch mode and static 
server. 
 
+Finally, we can see the Weex page in `http://localhost:8080/index.html`.
 
 ### preview Weex page in time
 



[02/14] incubator-weex git commit: * [doc] update text document

2017-09-21 Thread gurisxie
* [doc]  update text document


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

Branch: refs/heads/0.16-dev
Commit: 3ae4e89e8cacb224af716f91bcb086f3c46355b1
Parents: e83b0de
Author: acton393 
Authored: Tue Sep 12 18:19:22 2017 +0800
Committer: acton393 
Committed: Tue Sep 12 18:19:22 2017 +0800

--
 doc/source/cn/references/components/text.md | 6 +++---
 doc/source/cn/references/modules/dom.md | 2 +-
 doc/source/references/components/text.md| 8 
 doc/source/references/modules/dom.md| 2 +-
 4 files changed, 9 insertions(+), 9 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3ae4e89e/doc/source/cn/references/components/text.md
--
diff --git a/doc/source/cn/references/components/text.md 
b/doc/source/cn/references/components/text.md
index 136d409..b91f6f9 100644
--- a/doc/source/cn/references/components/text.md
+++ b/doc/source/cn/references/components/text.md
@@ -62,7 +62,7 @@ version: 2.1
 
 `支持版本:v0.12.0`
 
-支持ttf和woff字体格式的自定义字体, 可以通过调用 `dom` 
module 里面的 [addRule](../modules/dom.html#addRule)方法, 
构建自定义的`font-family`使用, addRule 建议在`mounted`时候调用
+支持ttf和woff字体格式的自定义字体, 可以通过调用 `dom` 
module 里面的 [addRule](../modules/dom.html#addRule)方法, 
构建自定义的`font-family`使用, addRule 建议在 `beforeCreate` 或者
更早时调用
 
 ```html
 
@@ -75,7 +75,7 @@ version: 2.1
 
 
 module.exports = {
-mounted: function() {
+beforeCreate: function() {
 
 var domModule = weex.requireModule('dom');
 //目前支持ttf、woff文件,不支持svg、eot类型,moreItem at 
http://www.iconfont.cn/
@@ -89,7 +89,7 @@ version: 2.1
 
 ```
 
-[try it](http://dotwe.org/vue/6ece072d0abd9a9e5718eb26bd5719f8)
+[try it](http://dotwe.org/vue/95b2c6716f37066d5f44c5c75c979394)
 
 ## 示例
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3ae4e89e/doc/source/cn/references/modules/dom.md
--
diff --git a/doc/source/cn/references/modules/dom.md 
b/doc/source/cn/references/modules/dom.md
index 9f0297c..a177929 100644
--- a/doc/source/cn/references/modules/dom.md
+++ b/doc/source/cn/references/modules/dom.md
@@ -274,7 +274,7 @@ domModule.addRule('fontFace', {
 
 ```
 
-[try it](http://dotwe.org/vue/6ece072d0abd9a9e5718eb26bd5719f8)
+[try it](http://dotwe.org/vue/95b2c6716f37066d5f44c5c75c979394)
 
 ## 其他
 

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/3ae4e89e/doc/source/references/components/text.md
--
diff --git a/doc/source/references/components/text.md 
b/doc/source/references/components/text.md
index e235fae..f0a1bc5 100644
--- a/doc/source/references/components/text.md
+++ b/doc/source/references/components/text.md
@@ -59,7 +59,7 @@ check out [common events](../common-event.html)
 
 `support:v0.12.0`
 
-support `ttf` and `woff` font format to custom your text, call 
[addRule](../modules/dom.html#addRule) in dom module to build your own 
`font-family`, we suggest that you call `addRule` in `mounted`
+support `ttf` and `woff` font format to custom your text, call 
[addRule](../modules/dom.html#addRule) in dom module to build your own 
`font-family`, we suggest that you call `addRule` in `beforeCreate`
 
 ```html
 
@@ -72,10 +72,10 @@ support `ttf` and `woff` font format to custom your text, 
call [addRule](../modu
 
 
 module.exports = {
-mounted: function() {
+beforeCreate: function() {
 
 var domModule = weex.requireModule('dom');
-//目前支持ttf、woff文件,不支持svg、eot类型,moreItem at 
http://www.iconfont.cn/
+//support ttf、woff file,svg、eot can not be supported ,moreItem 
at http://www.iconfont.cn/
 
 domModule.addRule('fontFace', {
 'fontFamily': "iconfont2",
@@ -86,7 +86,7 @@ support `ttf` and `woff` font format to custom your text, 
call [addRule](../modu
 
 ```
 
-[try it](http://dotwe.org/vue/6ece072d0abd9a9e5718eb26bd5719f8)
+[try it](http://dotwe.org/vue/95b2c6716f37066d5f44c5c75c979394)
 
 ## Example
 


[13/14] incubator-weex git commit: Merge commit 'eeaa5e0bd24a580dcbf1ab6cec4c13f2f9718d63' into doc-merge-dev

2017-09-21 Thread gurisxie
Merge commit 'eeaa5e0bd24a580dcbf1ab6cec4c13f2f9718d63' into doc-merge-dev

finish Conflicts:
doc/source/cn/references/common-style.md
doc/source/references/common-style.md


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

Branch: refs/heads/0.16-dev
Commit: e42de9110e6b190901ac28e3ad57d17d4b9e8b72
Parents: 8325077 eeaa5e0
Author: gurisxie <279483...@qq.com>
Authored: Thu Sep 21 17:56:13 2017 +0800
Committer: gurisxie <279483...@qq.com>
Committed: Thu Sep 21 17:56:13 2017 +0800

--
 doc/source/cn/guide/index.md|  9 ++---
 doc/source/cn/guide/set-up-env.md   |  4 ++--
 doc/source/cn/guide/tools/toolkit.md|  2 +-
 .../cn/references/advanced/extend-to-android.md | 21 ++--
 doc/source/cn/references/common-style.md|  1 +
 doc/source/cn/references/components/text.md |  6 +++---
 doc/source/cn/references/modules/animation.md   |  2 ++
 doc/source/cn/references/modules/dom.md |  2 +-
 doc/source/guide/index.md   |  4 ++--
 doc/source/guide/set-up-env.md  |  6 +++---
 doc/source/guide/tools/toolkit.md   |  5 ++---
 doc/source/references/common-style.md   |  1 +
 doc/source/references/components/text.md|  8 
 doc/source/references/modules/animation.md  |  3 ++-
 doc/source/references/modules/dom.md|  2 +-
 .../WeexSDK/Sources/Component/WXWebComponent.m  |  1 +
 16 files changed, 51 insertions(+), 26 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/e42de911/ios/sdk/WeexSDK/Sources/Component/WXWebComponent.m
--



[14/14] incubator-weex git commit: Merge branch 'doc-merge-dev' of https://github.com/gurisxie/incubator-weex into 0.16-dev

2017-09-21 Thread gurisxie
Merge branch 'doc-merge-dev' of https://github.com/gurisxie/incubator-weex into 
0.16-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/eee46df7
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/eee46df7
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/eee46df7

Branch: refs/heads/0.16-dev
Commit: eee46df77bf014e6f43eeddb1cb94dc36e882cf7
Parents: 5af980c e42de91
Author: gurisxie <279483...@qq.com>
Authored: Thu Sep 21 20:15:45 2017 +0800
Committer: gurisxie <279483...@qq.com>
Committed: Thu Sep 21 20:15:45 2017 +0800

--
 doc/source/cn/guide/index.md|  9 ++---
 doc/source/cn/guide/set-up-env.md   |  4 ++--
 doc/source/cn/guide/tools/toolkit.md|  2 +-
 .../cn/references/advanced/extend-to-android.md | 21 ++--
 doc/source/cn/references/common-style.md|  1 +
 doc/source/cn/references/components/text.md |  6 +++---
 doc/source/cn/references/modules/animation.md   |  2 ++
 doc/source/cn/references/modules/dom.md |  2 +-
 doc/source/guide/index.md   |  4 ++--
 doc/source/guide/set-up-env.md  |  6 +++---
 doc/source/guide/tools/toolkit.md   |  5 ++---
 doc/source/references/common-style.md   |  1 +
 doc/source/references/components/text.md|  8 
 doc/source/references/modules/animation.md  |  3 ++-
 doc/source/references/modules/dom.md|  2 +-
 .../WeexSDK/Sources/Component/WXWebComponent.m  |  1 +
 16 files changed, 51 insertions(+), 26 deletions(-)
--




[03/14] incubator-weex git commit: * [android] add the right proguard config of extend-to-android

2017-09-21 Thread gurisxie
* [android] add  the right proguard config of extend-to-android


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

Branch: refs/heads/0.16-dev
Commit: 72184b43d04548acd0354934c6f84e22579bc9a9
Parents: 3ae4e89
Author: zshshr 
Authored: Wed Sep 13 14:38:37 2017 +0800
Committer: zshshr 
Committed: Wed Sep 13 14:38:37 2017 +0800

--
 .../cn/references/advanced/extend-to-android.md | 21 ++--
 1 file changed, 19 insertions(+), 2 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/72184b43/doc/source/cn/references/advanced/extend-to-android.md
--
diff --git a/doc/source/cn/references/advanced/extend-to-android.md 
b/doc/source/cn/references/advanced/extend-to-android.md
index 61a5bbf..0dcfa14 100644
--- a/doc/source/cn/references/advanced/extend-to-android.md
+++ b/doc/source/cn/references/advanced/extend-to-android.md
@@ -193,9 +193,26 @@ public class ImageAdapter implements IWXImgLoaderAdapter {
 ```java
 -keep class com.taobao.weex.WXDebugTool{*;}
 -keep class com.taobao.weex.devtools.common.LogUtil{*;}
--keep public class * extends com.taobao.weex.ui.component.WXComponent{*;}
--keep public class * extends com.taobao.weex.common.WXModule{*;}
 -keepclassmembers class ** {
   @com.taobao.weex.ui.component.WXComponentProp public *;
 }
+-keep class com.taobao.weex.bridge.**{*;}
+-keep class com.taobao.weex.dom.**{*;}
+-keep class com.taobao.weex.adapter.**{*;}
+-keep class com.taobao.weex.common.**{*;}
+-keep class * implements com.taobao.weex.IWXObject{*;}
+-keep class com.taobao.weex.ui.**{*;}
+-keep class com.taobao.weex.ui.component.**{*;}
+-keep class com.taobao.weex.utils.**{
+public ;
+public ;
+}
+-keep class com.taobao.weex.view.**{*;}
+-keep class com.taobao.weex.module.**{*;}
+-keep public class * extends com.taobao.weex.common.WXModule{*;}
+-keep public class * extends com.taobao.weex.ui.component.WXComponent{*;}
+-keep public class com.taobao.taolive.ui.weex.**{*;}
+-keep class * implements com.taobao.weex.ui.IExternalComponentGetter{*;}
+-keep class com.alibaba.aliweex.hc.HCConfig{*;}
+-keep class com.alibaba.dynamic.**{*;}
 ```
\ No newline at end of file



[GitHub] incubator-weex pull request #729: * [test] remove travis iOS

2017-09-21 Thread asfgit
Github user asfgit closed the pull request at:

https://github.com/apache/incubator-weex/pull/729


---


incubator-weex git commit: * [test] remove travis iOS

2017-09-21 Thread gurisxie
Repository: incubator-weex
Updated Branches:
  refs/heads/0.16-dev 83250773f -> 5af980c81


* [test] remove travis iOS


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

Branch: refs/heads/0.16-dev
Commit: 5af980c814fb24841970789462e08b558b24b5b4
Parents: 8325077
Author: gurisxie <279483...@qq.com>
Authored: Thu Sep 21 19:30:04 2017 +0800
Committer: gurisxie <279483...@qq.com>
Committed: Thu Sep 21 19:30:04 2017 +0800

--
 .travis.yml | 4 
 1 file changed, 4 deletions(-)
--


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/5af980c8/.travis.yml
--
diff --git a/.travis.yml b/.travis.yml
index dd3f139..8a49ae6 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -11,16 +11,12 @@ env:
 matrix:
 fast_finish: true
 exclude:
-  - os: linux
-env: TEST_SUITE=ios
   - os: osx
 env: TEST_SUITE=danger
   - os: osx
 env: TEST_SUITE=jsfm
   - os: osx
 env: TEST_SUITE=android
-  - os: osx
-env: TEST_SUITE=ios
   - os: linux
 env: TEST_SUITE=android
 include:



[GitHub] incubator-weex issue #729: * [test] remove travis iOS

2017-09-21 Thread weex-bot
Github user weex-bot commented on the issue:

https://github.com/apache/incubator-weex/pull/729
  





  

  
  Warnings

  
  
  :warning:
  

  No Changelog changes!
  

  





  Generated by :no_entry_sign: http://github.com/danger/danger-js/;>dangerJS




---


[GitHub] incubator-weex issue #728: * [jsfm] upgrade weex-js-framework to 0.22.3

2017-09-21 Thread weex-bot
Github user weex-bot commented on the issue:

https://github.com/apache/incubator-weex/pull/728
  






  

  
  Messages

  
  
  :book:
  

  has no jsfm file changed,skip test!
  

  




  Generated by :no_entry_sign: http://github.com/danger/danger-js/;>dangerJS




---


[GitHub] incubator-weex pull request #729: * [test] remove travis iOS

2017-09-21 Thread gurisxie
GitHub user gurisxie opened a pull request:

https://github.com/apache/incubator-weex/pull/729

* [test] remove travis iOS

Test bugfix remove ios:
1、delete all ios env dependence.


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gurisxie/incubator-weex test-bugfix-removeIos

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/incubator-weex/pull/729.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #729


commit 5af980c814fb24841970789462e08b558b24b5b4
Author: gurisxie <279483...@qq.com>
Date:   2017-09-21T11:30:04Z

* [test] remove travis iOS




---


[GitHub] incubator-weex pull request #728: * [jsfm] upgrade weex-js-framework to 0.22...

2017-09-21 Thread Hanks10100
GitHub user Hanks10100 opened a pull request:

https://github.com/apache/incubator-weex/pull/728

* [jsfm] upgrade weex-js-framework to 0.22.3

Notable Change:

+ Support the first version of ``.
+ [vue] upgrade `weex-vue-framework` to 2.4.2-weex.5.
+ [rax] upgrade `weex-rax-framework` to 0.4.14.

You can merge this pull request into a Git repository by running:

$ git pull https://github.com/Hanks10100/incubator-weex jsfm-release-0.22

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/incubator-weex/pull/728.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #728


commit b7ff22e12605209c5ffb376dfa0d16a45ba45843
Author: Hanks 
Date:   2017-09-21T11:17:23Z

* [jsfm] upgrade weex-js-framework to 0.22.3




---


[GitHub] incubator-weex pull request #726: 0.16 dev template list

2017-09-21 Thread gubaojian
GitHub user gubaojian reopened a pull request:

https://github.com/apache/incubator-weex/pull/726

0.16 dev template list

1, new recycle-list compoent  with hight performance and low memory cost
https://github.com/Hanks10100/weex-native-directive



You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gubaojian/incubator-weex 
0.16-dev-template-list

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/incubator-weex/pull/726.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #726


commit 22ae8c538438685b236c258e4f2c9a13ac612cb9
Author: jianbai.gbj 
Date:   2017-08-23T09:05:46Z

template list scroll

commit 9704477133795833127e9a9318e816c86944a585
Author: jianbai.gbj 
Date:   2017-08-24T08:04:34Z

keep sticky

commit c14a9ede2975b52fb200908b4846baf24e645661
Author: jianbai.gbj 
Date:   2017-08-24T12:10:22Z

sticky list view

commit 0bae0f6f4aac42dc89d01ae68cf7d09e0f460079
Author: jianbai.gbj 
Date:   2017-08-24T13:17:29Z

sticky  header

commit 06ceea9139a9ac14cf5d0e8c179e4d5e896b75fd
Author: jianbai.gbj 
Date:   2017-08-24T13:36:20Z

sticky  header

commit d0af3129c8eb92b22c6d33bebd44c9072cf73ff8
Author: jianbai.gbj 
Date:   2017-08-25T01:35:30Z

sticky event and unsticky event

commit bd31ed1fd6ed9b476460fe1f9c0e8806aef985d8
Author: jianbai.gbj 
Date:   2017-08-25T02:20:48Z

event args

commit dc91a285dbf6110dc35fb5e9cdb98270bdbfbebc
Author: jianbai.gbj 
Date:   2017-08-25T04:55:07Z

render event args

commit 932a7fabdcbb9692c386292d195f93b5eeb25580
Author: jianbai.gbj 
Date:   2017-08-25T06:00:29Z

scroll event sync

commit 55d87f2ffdf990577474e73352be6328ceb4a05e
Author: jianbai.gbj 
Date:   2017-08-25T11:42:38Z

save code

commit 1a5e9704eeb1bbea605b96061de37bf453903e66
Author: jianbai.gbj 
Date:   2017-08-28T06:44:11Z

save code

commit f41427d9ef155004a88f75891d47ef829bbdc563
Author: jianbai.gbj 
Date:   2017-08-28T06:48:58Z

test code add

commit 401fa8c242b585d702250f4f9110faeb82a3eba0
Author: jianbai.gbj 
Date:   2017-08-28T06:50:19Z

Merge remote-tracking branch 'origin/0.16-dev' into 0.16-dev-template-list

commit 23a6b6a898c543916704bd0551dd1a2ed1bc1be6
Author: jianbai.gbj 
Date:   2017-08-29T01:56:28Z

now el expression parser

commit 88030f04f1853ceffd37d49bc4685fa734e892f2
Author: jianbai.gbj 
Date:   2017-08-29T02:04:18Z

save codes

commit 267883d75c6430cae193e472887b65d5daeb0a28
Author: jianbai.gbj 
Date:   2017-08-29T06:22:32Z

el parser

commit c913e84a77635fb69037e779755c0be9ab48cac2
Author: jianbai.gbj 
Date:   2017-08-29T07:04:47Z

replace old el pression

commit 7fe4e05981bd862a037c1bd9d7b359d82b5dec8f
Author: jianbai.gbj 
Date:   2017-08-29T07:52:30Z

render code

commit 5a8cf6d3105f001460ed640bf27102ee74df7356
Author: jianbai.gbj 
Date:   2017-08-29T12:10:12Z

save code

commit 86d89165c001b2ec2fd1c0bbab5a68c92348acb7
Author: jianbai.gbj 
Date:   2017-08-29T12:17:32Z

save code

commit eb67c0cb036d0fd1b02736287448b5be9b4fc2c8
Author: jianbai.gbj 
Date:   2017-09-01T09:29:11Z

save code

commit 3922bd09504fcfcbb1de247eae94612e64432398
Author: jianbai.gbj 
Date:   2017-09-01T10:45:14Z

template list

commit c7f9c285fdd42d9c401a2808c0c919fbb4154a6d
Author: jianbai.gbj 
Date:   2017-09-01T11:46:59Z

stack

commit 96e0369e1cd1404ca1f4f9e90935e41384b84eb7
Author: jianbai.gbj 
Date:   2017-09-01T12:09:14Z

stack

commit 0e71769696ab0a9b4ce60120d1f128e1de340f52
Author: jianbai.gbj 
Date:   2017-09-04T07:14:11Z

appear event handle

commit 50c4be1ed346847cd4f20692da1fe568f1daa261
Author: jianbai.gbj 
Date:   2017-09-04T08:34:30Z

save code

commit cbf6f6285303ca2ed217f07de6fe0b3e8711a921
Author: jianbai.gbj 
Date:   2017-09-04T09:14:07Z

render component

commit b9439b745cb064c9c9023f234f2514b7138aba0e
Author: jianbai.gbj 
Date:   2017-09-04T09:19:31Z

remove test code

commit d02ee629e32a45068be389575f92aa4f1e085fac
Author: jianbai.gbj 

[GitHub] incubator-weex pull request #726: 0.16 dev template list

2017-09-21 Thread gubaojian
Github user gubaojian closed the pull request at:

https://github.com/apache/incubator-weex/pull/726


---


[GitHub] incubator-weex issue #724: * [doc] fix doc dotwe address

2017-09-21 Thread jondong
Github user jondong commented on the issue:

https://github.com/apache/incubator-weex/pull/724
  
Thanks for the quick fix, actually I'm preparing a PR for this, not only 
for the dotWe issue, but also hope to cover the English expression issue. 
Anyway, I'll propose another supplementary patch for this afterward.
BTW, reviewing & submitting your own PR is not a good practice. We need to 
avoid this. From the perspective of regulation, I hope we can make reviewing 
codes by another committer as a forcing step before submit, even you are a 
committer with the merging right.


---


[GitHub] incubator-weex pull request #727: Doc merge dev

2017-09-21 Thread gurisxie
GitHub user gurisxie opened a pull request:

https://github.com/apache/incubator-weex/pull/727

Doc merge dev

merge dev doc to 0.16-dev
1、doc 
2、out pr about ios web


You can merge this pull request into a Git repository by running:

$ git pull https://github.com/gurisxie/incubator-weex doc-merge-dev

Alternatively you can review and apply these changes as the patch at:

https://github.com/apache/incubator-weex/pull/727.patch

To close this pull request, make a commit to your master/trunk branch
with (at least) the following in the commit message:

This closes #727


commit e83b0de20898fc470047925fd404f413fb88a76f
Author: NSHYJ 
Date:   2017-08-31T01:51:22Z

* [iOS] webview scale page to fit

commit 3ae4e89e8cacb224af716f91bcb086f3c46355b1
Author: acton393 
Date:   2017-09-12T10:19:22Z

* [doc]  update text document

commit 72184b43d04548acd0354934c6f84e22579bc9a9
Author: zshshr 
Date:   2017-09-13T06:38:37Z

* [android] add  the right proguard config of extend-to-android

commit 5b3ecd5ccf88a6247c9327ebb48220d9993ff74c
Author: YorkShen 
Date:   2017-09-13T07:08:04Z

* [doc] Update doc for animation.

commit d16ba8d888e07d285e3f523ed4010c934b1a4c48
Author: zshshr 
Date:   2017-09-13T07:21:10Z

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

commit 5cffb4e5c52bffc30c24a461ccf76a2546030635
Author: gurisxie <279483...@qq.com>
Date:   2017-09-15T02:50:30Z

* [doc] bug fix setup about

commit bdd6f1b5b6a0dc1c2fbd12335b801f687149d29c
Author: gurisxie <279483...@qq.com>
Date:   2017-09-15T02:55:24Z

Merge commit 'd16ba8d888e07d285e3f523ed4010c934b1a4c48' into dev

Conflicts:
doc/source/guide/set-up-env.md

commit 81aa503ee9008d7f093ae270594579dd7bcd6f20
Author: YorkShen 
Date:   2017-09-15T08:27:36Z

* [doc] Update doc format.

commit 5148596d0ff05b7fd36d4616853c4a66be1e30c7
Author: gurisxie <279483...@qq.com>
Date:   2017-09-18T11:24:59Z

* [doc] bugfix week init project run command

commit 4c3f020504e9e05bc699e333db771f3d3b398e26
Author: gurisxie <279483...@qq.com>
Date:   2017-09-19T09:22:25Z

* [doc] bug fix index

commit a64ce53b2f6869953f3e04542f5448448a131d50
Author: erha19 
Date:   2017-09-20T09:36:28Z

* [doc] update set-up-env.md

commit eeaa5e0bd24a580dcbf1ab6cec4c13f2f9718d63
Author: atomtong 
Date:   2017-09-21T09:07:14Z

* [doc] fix doc dotwe address

commit e42de9110e6b190901ac28e3ad57d17d4b9e8b72
Author: gurisxie <279483...@qq.com>
Date:   2017-09-21T09:56:13Z

Merge commit 'eeaa5e0bd24a580dcbf1ab6cec4c13f2f9718d63' into doc-merge-dev

finish Conflicts:
doc/source/cn/references/common-style.md
doc/source/references/common-style.md




---


  1   2   >