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

[10/12] incubator-weex git commit: * [android] avoid NPE case and remove space

* [android] avoid NPE case and remove space


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

Branch: refs/heads/0.11-dev
Commit: 19abc48c958ec464eb3714e036a4991d79957d74
Parents: 610c3f1
Author: zshshr <zh...@gmail.com>
Authored: Mon Mar 6 17:47:36 2017 +0800
Committer: zshshr <zh...@gmail.com>
Committed: Mon Mar 6 17:47:36 2017 +0800

----------------------------------------------------------------------
 .../java/com/taobao/weex/dom/WXDomHandler.java  |  2 -
 .../java/com/taobao/weex/dom/WXDomManager.java  |  1 -
 .../adapter/WXRecyclerViewOnScrollListener.java | 86 +++++++++++---------
 3 files changed, 46 insertions(+), 43 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19abc48c/android/sdk/src/main/java/com/taobao/weex/dom/WXDomHandler.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomHandler.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomHandler.java
index 987d71b..2526a97 100755
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomHandler.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomHandler.java
@@ -210,7 +210,6 @@ import android.os.Message;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.taobao.weex.bridge.JSCallback;
-import com.taobao.weex.utils.WXLogUtils;
 
 /**
  * Handler for dom operations.
@@ -295,7 +294,6 @@ public class WXDomHandler implements Handler.Callback {
         mWXDomManager.batch();
         mHasBatch = false;
         break;
-
       case MsgType.WX_DOM_SCROLLTO:
         mWXDomManager.scrollToDom(task.instanceId, (String) task.args.get(0), (JSONObject) task.args.get(1));
         break;

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19abc48c/android/sdk/src/main/java/com/taobao/weex/dom/WXDomManager.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomManager.java b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomManager.java
index 6a8f534..d7ebaa7 100755
--- a/android/sdk/src/main/java/com/taobao/weex/dom/WXDomManager.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/WXDomManager.java
@@ -335,7 +335,6 @@ public final class WXDomManager {
    * Batch the execution of {@link WXDomStatement}
    */
   void batch() {
-
     throwIfNotDomThread();
     Iterator<Entry<String, WXDomStatement>> iterator = mDomRegistries.entrySet().iterator();
     while (iterator.hasNext()) {

http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/19abc48c/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/adapter/WXRecyclerViewOnScrollListener.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/adapter/WXRecyclerViewOnScrollListener.java b/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/adapter/WXRecyclerViewOnScrollListener.java
index 1cc3dbe..4a0d69a 100755
--- a/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/adapter/WXRecyclerViewOnScrollListener.java
+++ b/android/sdk/src/main/java/com/taobao/weex/ui/view/listview/adapter/WXRecyclerViewOnScrollListener.java
@@ -275,50 +275,56 @@ public class WXRecyclerViewOnScrollListener extends RecyclerView.OnScrollListene
   public void onScrolled(RecyclerView recyclerView, int dx, int dy) {
     super.onScrolled(recyclerView, dx, dy);
     RecyclerView.LayoutManager layoutManager = recyclerView.getLayoutManager();
-    IOnLoadMoreListener l;
-    if ((l = listener.get()) != null) {
-      l.onBeforeScroll(dx, dy);
+    if(listener == null){
+      return;
     }
+    IOnLoadMoreListener iOnLoadMoreListener = listener.get();
 
-    //  int lastVisibleItemPosition = -1;
-    if (layoutManager instanceof LinearLayoutManager) {
-      layoutManagerType = LAYOUT_MANAGER_TYPE.LINEAR;
-      mLastVisibleItemPosition = ((LinearLayoutManager) layoutManager).findLastVisibleItemPosition();
-      listener.get().notifyAppearStateChange(((LinearLayoutManager) layoutManager).findFirstVisibleItemPosition()
-              , mLastVisibleItemPosition
-              , dx
-              , dy);
-    } else if (layoutManager instanceof GridLayoutManager) {
-      layoutManagerType = LAYOUT_MANAGER_TYPE.GRID;
-      GridLayoutManager gridLayoutManager = ((GridLayoutManager) layoutManager);
-      mLastVisibleItemPosition = gridLayoutManager.findLastVisibleItemPosition();
-      listener.get().notifyAppearStateChange(((GridLayoutManager) layoutManager).findFirstVisibleItemPosition()
-              , mLastVisibleItemPosition
-              , dx
-              , dy);
+    if(iOnLoadMoreListener!=null) {
 
-    } else if (layoutManager instanceof StaggeredGridLayoutManager) {
-      layoutManagerType = LAYOUT_MANAGER_TYPE.STAGGERED_GRID;
-      StaggeredGridLayoutManager staggeredGridLayoutManager = (StaggeredGridLayoutManager) layoutManager;
-      int newspanCount = staggeredGridLayoutManager.getSpanCount();
-      if (mLastPositions == null || newspanCount != mLastPositions.length ) {
-        mLastPositions = new int[newspanCount];
-      }
-      if (mFirstPositions == null || newspanCount != mFirstPositions.length) {
-        mFirstPositions = new int[newspanCount];
+      iOnLoadMoreListener.onBeforeScroll(dx, dy);
+
+      if (layoutManager instanceof LinearLayoutManager) {
+        layoutManagerType = LAYOUT_MANAGER_TYPE.LINEAR;
+        LinearLayoutManager linearLayoutManager = (LinearLayoutManager) layoutManager;
+        mLastVisibleItemPosition = linearLayoutManager.findLastVisibleItemPosition();
+        int firstVisible = linearLayoutManager.findFirstVisibleItemPosition();
+        iOnLoadMoreListener.notifyAppearStateChange(firstVisible
+            , mLastVisibleItemPosition
+            , dx
+            , dy);
+      } else if (layoutManager instanceof GridLayoutManager) {
+        layoutManagerType = LAYOUT_MANAGER_TYPE.GRID;
+        GridLayoutManager gridLayoutManager = (GridLayoutManager) layoutManager;
+        mLastVisibleItemPosition = gridLayoutManager.findLastVisibleItemPosition();
+        iOnLoadMoreListener.notifyAppearStateChange(gridLayoutManager.findFirstVisibleItemPosition()
+            , mLastVisibleItemPosition
+            , dx
+            , dy);
+
+      } else if (layoutManager instanceof StaggeredGridLayoutManager) {
+        layoutManagerType = LAYOUT_MANAGER_TYPE.STAGGERED_GRID;
+        StaggeredGridLayoutManager staggeredGridLayoutManager = (StaggeredGridLayoutManager) layoutManager;
+        int newSpanCount = staggeredGridLayoutManager.getSpanCount();
+        if (mLastPositions == null || newSpanCount != mLastPositions.length) {
+          mLastPositions = new int[newSpanCount];
+        }
+        if (mFirstPositions == null || newSpanCount != mFirstPositions.length) {
+          mFirstPositions = new int[newSpanCount];
+        }
+        staggeredGridLayoutManager.findFirstVisibleItemPositions(mFirstPositions);
+        mFirstVisibleItemPosition = findMin(mFirstPositions);
+        staggeredGridLayoutManager.findLastVisibleItemPositions(mLastPositions);
+        mLastVisibleItemPosition = findMax(mLastPositions);
+        iOnLoadMoreListener.notifyAppearStateChange(
+            mFirstVisibleItemPosition
+            , mLastVisibleItemPosition
+            , dx
+            , dy);
+      } else {
+        throw new RuntimeException(
+            "Unsupported LayoutManager used. Valid ones are LinearLayoutManager, GridLayoutManager and StaggeredGridLayoutManager");
       }
-      staggeredGridLayoutManager.findFirstVisibleItemPositions(mFirstPositions);
-      mFirstVisibleItemPosition = findMin(mFirstPositions);
-      staggeredGridLayoutManager.findLastVisibleItemPositions(mLastPositions);
-      mLastVisibleItemPosition = findMax(mLastPositions);
-      listener.get().notifyAppearStateChange(
-              mFirstVisibleItemPosition
-              , mLastVisibleItemPosition
-              , dx
-              , dy);
-    } else {
-      throw new RuntimeException(
-              "Unsupported LayoutManager used. Valid ones are LinearLayoutManager, GridLayoutManager and StaggeredGridLayoutManager");
     }
   }