You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by lu...@apache.org on 2019/09/17 05:47:19 UTC

[incubator-weex] branch master updated: [Android] Revert WeexFrame (#2912)

This is an automated email from the ASF dual-hosted git repository.

luckychen pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/incubator-weex.git


The following commit(s) were added to refs/heads/master by this push:
     new 3337bc8  [Android] Revert WeexFrame (#2912)
3337bc8 is described below

commit 3337bc82a57fb12616dc749271d20530147096d5
Author: YorkShen <sh...@gmail.com>
AuthorDate: Tue Sep 17 13:47:13 2019 +0800

    [Android] Revert WeexFrame (#2912)
    
    * Revert "[Android] Fix Crash in NotifyLayout (#2902)"
    
    This reverts commit 5e8d9ac935d6fbadd2469d83540426cc30b4e676.
    
    * Update submodule
---
 .../java/com/taobao/weex/WeexFrameRateControl.java | 52 ++++++++++------------
 .../com/taobao/weex/bridge/WXBridgeManager.java    |  6 +--
 weex-playground                                    |  2 +-
 3 files changed, 27 insertions(+), 33 deletions(-)

diff --git a/android/sdk/src/main/java/com/taobao/weex/WeexFrameRateControl.java b/android/sdk/src/main/java/com/taobao/weex/WeexFrameRateControl.java
index 14817fd..eef4d5c 100644
--- a/android/sdk/src/main/java/com/taobao/weex/WeexFrameRateControl.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WeexFrameRateControl.java
@@ -26,15 +26,14 @@ import android.annotation.SuppressLint;
 import android.os.Build;
 import android.util.Log;
 import android.view.Choreographer;
-import com.taobao.weex.bridge.WXBridgeManager;
 import com.taobao.weex.common.WXErrorCode;
 import java.lang.ref.WeakReference;
 
 public class WeexFrameRateControl {
     private static final long VSYNC_FRAME = 1000 / 60;
     private WeakReference<VSyncListener> mListener;
-    private Choreographer mChoreographer;
-    private Choreographer.FrameCallback mVSyncFrameCallback;
+    private final Choreographer mChoreographer;
+    private final Choreographer.FrameCallback mVSyncFrameCallback;
     private final Runnable runnable;
 
     public interface VSyncListener {
@@ -44,32 +43,27 @@ public class WeexFrameRateControl {
     public WeexFrameRateControl(VSyncListener listener) {
         mListener = new WeakReference<>(listener);
         if (Build.VERSION.SDK_INT > Build.VERSION_CODES.ICE_CREAM_SANDWICH_MR1) {
-          WXBridgeManager.getInstance().post(new Runnable() {
-              @Override
-              public void run() {
-                  mChoreographer = Choreographer.getInstance();
-                  mVSyncFrameCallback = new Choreographer.FrameCallback() {
-                      @SuppressLint("NewApi")
-                      @Override
-                      public void doFrame(long frameTimeNanos) {
-                          VSyncListener vSyncListener;
-                          if (mListener != null && (vSyncListener=mListener.get()) != null) {
-                              try {
-                                  vSyncListener.OnVSync();
-                                  mChoreographer.postFrameCallback(mVSyncFrameCallback);
-                              }catch (UnsatisfiedLinkError e){
-                                  if(vSyncListener instanceof WXSDKInstance){
-                                      ((WXSDKInstance) vSyncListener).onRenderError(
-                                          WXErrorCode.WX_DEGRAD_ERR_INSTANCE_CREATE_FAILED.getErrorCode(),
-                                          Log.getStackTraceString(e));
-                                  }
-                              }
-                          }
-                      }
-                  };
-              }
-          });
-          runnable = null;
+            mChoreographer = Choreographer.getInstance();
+            mVSyncFrameCallback = new Choreographer.FrameCallback() {
+                @SuppressLint("NewApi")
+                @Override
+                public void doFrame(long frameTimeNanos) {
+                    VSyncListener vSyncListener;
+                    if (mListener != null && (vSyncListener=mListener.get()) != null) {
+                        try {
+                            vSyncListener.OnVSync();
+                            mChoreographer.postFrameCallback(mVSyncFrameCallback);
+                        }catch (UnsatisfiedLinkError e){
+                            if(vSyncListener instanceof WXSDKInstance){
+                                ((WXSDKInstance) vSyncListener).onRenderError(
+                                    WXErrorCode.WX_DEGRAD_ERR_INSTANCE_CREATE_FAILED.getErrorCode(),
+                                    Log.getStackTraceString(e));
+                            }
+                        }
+                    }
+                }
+            };
+            runnable = null;
         } else {
             // For API 15 or lower
             runnable = new Runnable() {
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 9e70482..bb38315 100755
--- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
+++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridgeManager.java
@@ -31,7 +31,7 @@ import android.support.annotation.NonNull;
 import android.support.annotation.Nullable;
 import android.support.annotation.RestrictTo;
 import android.support.annotation.RestrictTo.Scope;
-import android.support.annotation.WorkerThread;
+import android.support.annotation.UiThread;
 import android.support.v4.util.ArrayMap;
 import android.text.TextUtils;
 import android.util.Log;
@@ -3461,7 +3461,7 @@ public class WXBridgeManager implements Callback, BactchExecutor {
    * @param instanceId
    * @return
    */
-  @WorkerThread
+  @UiThread
   public boolean notifyLayout(String instanceId) {
     if (isSkipFrameworkInit(instanceId) || isJSFrameworkInit()) {
       return mWXBridge.notifyLayout(instanceId);
@@ -3469,7 +3469,7 @@ public class WXBridgeManager implements Callback, BactchExecutor {
     return false;
   }
 
-  @WorkerThread
+  @UiThread
   public void forceLayout(String instanceId) {
     if (isSkipFrameworkInit(instanceId) || isJSFrameworkInit()) {
       mWXBridge.forceLayout(instanceId);
diff --git a/weex-playground b/weex-playground
index b93e553..1f536fa 160000
--- a/weex-playground
+++ b/weex-playground
@@ -1 +1 @@
-Subproject commit b93e553ebf434baffa7d7f2f71f0a9f1e8cc9de1
+Subproject commit 1f536fa83893520568bccdefffdeb469c7e957cf