You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@weex.apache.org by ky...@apache.org on 2019/07/23 03:13:35 UTC

[incubator-weex] branch master updated: [Android] Fix setViewPort invalid (#2738)

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

kyork 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 6631c9d  [Android] Fix setViewPort invalid (#2738)
6631c9d is described below

commit 6631c9defac53391471caf29d92f57dac2c2efe4
Author: katherine95s <51...@users.noreply.github.com>
AuthorDate: Tue Jul 23 11:13:30 2019 +0800

    [Android] Fix setViewPort invalid (#2738)
---
 android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java     | 1 +
 android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java   | 6 ++++++
 .../src/main/java/com/taobao/weex/bridge/WXBridgeManager.java    | 5 +++++
 android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java  | 2 ++
 .../Source/base/android/jniprebuild/jniheader/WXBridge_jni.h     | 9 +++++++++
 5 files changed, 23 insertions(+)

diff --git a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
index 02a17db..17cd7c8 100644
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
@@ -454,6 +454,7 @@ public class WXSDKInstance implements IWXActivityStateListener,View.OnLayoutChan
   public void setInstanceViewPortWidth(int instanceViewPortWidth) {
     this.mInstanceViewPortWidth = instanceViewPortWidth;
     this.mAutoAdjustDeviceWidth = false;
+    WXBridgeManager.getInstance().setViewPortWidth(getInstanceId(),mInstanceViewPortWidth);
   }
 
   public void setAutoAdjustDeviceWidth(boolean autoAdjustViewPort){
diff --git a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java
index d311617..5c20a52 100644
--- a/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java
+++ b/android/sdk/src/main/java/com/taobao/weex/bridge/WXBridge.java
@@ -134,6 +134,8 @@ public class WXBridge implements IWXBridge {
    * */
   public native void nativeUpdateGlobalConfig(String config);
 
+  private native void nativeSetViewPortWidth(String instanceId, float viewPortWidth);
+
   public static final boolean MULTIPROCESS = true;
 
 
@@ -765,6 +767,10 @@ public class WXBridge implements IWXBridge {
     nativeSetInstanceRenderType(instanceId, renderType);
   }
 
+  @Override
+  public void setViewPortWidth(String instanceId,float viewPortWidth){
+    nativeSetViewPortWidth(instanceId,viewPortWidth);
+  }
 
   @Override
   public void removeInstanceRenderType(String instanceId){
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 8ee6f23..0ad54e6 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
@@ -3338,6 +3338,11 @@ public class WXBridgeManager implements Callback, BactchExecutor {
       mWXBridge.markDirty(instanceId, ref, dirty);
     }
   }
+  public void setViewPortWidth(String instanceId,float viewPortWidth){
+    if (isSkipFrameworkInit(instanceId) || isJSFrameworkInit()) {
+      mWXBridge.setViewPortWidth(instanceId,viewPortWidth);
+    }
+  }
 
   public int callHasTransitionPros(String instanceId, String ref, HashMap<String, String> styles) {
     WXComponent component = WXSDKManager.getInstance().getWXRenderManager().getWXComponent(instanceId, ref);
diff --git a/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java b/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java
index f98d5c0..0df86f7 100644
--- a/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java
+++ b/android/sdk/src/main/java/com/taobao/weex/common/IWXBridge.java
@@ -213,4 +213,6 @@ public interface IWXBridge extends IWXObject {
 
   void setPageArgument(String instanceId, String key, String value);
 
+  void setViewPortWidth(String instanceId,float viewPortWidth);
+
 }
diff --git a/weex_core/Source/base/android/jniprebuild/jniheader/WXBridge_jni.h b/weex_core/Source/base/android/jniprebuild/jniheader/WXBridge_jni.h
index 586a80a..eb8aa93 100644
--- a/weex_core/Source/base/android/jniprebuild/jniheader/WXBridge_jni.h
+++ b/weex_core/Source/base/android/jniprebuild/jniheader/WXBridge_jni.h
@@ -198,6 +198,9 @@ static void SetInstanceRenderType(JNIEnv* env, jobject jcaller,
 static void RemoveInstanceRenderType(JNIEnv* env, jobject jcaller,
                                      jstring instanceId);
 
+static void SetViewPortWidth(JNIEnv* env, jobject jcaller,
+                             jstring instanceId,jfloat viewPortWidth);
+
 static void SetPageArgument(JNIEnv* env, jobject jcaller,
                             jstring instanceId,
                             jstring key,
@@ -1204,6 +1207,12 @@ static const JNINativeMethod kMethodsWXBridge[] = {
             "Ljava/lang/String;"
             ")"
             "V", reinterpret_cast<void*>(RemoveInstanceRenderType) },
+    { "nativeSetViewPortWidth",
+            "("
+            "Ljava/lang/String;"
+            "F"
+            ")"
+            "V", reinterpret_cast<void*>(SetViewPortWidth)},
 };
 
 static bool RegisterNativesImpl(JNIEnv* env) {