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 2017/04/12 02:41:34 UTC
[1/3] incubator-weex git commit: * [Android] Add the ability of
disable changing layerType
Repository: incubator-weex
Updated Branches:
refs/heads/0.12-dev 02487c9c8 -> 476e58c9a
* [Android] Add the ability of disable changing layerType
For certain custom weex instance, one can disable the ability of changing layerType by call WXSDKInstance.enableLayerType(boolean). The default value for this flag is true and setting this to false will have performance punishment
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/8e51cef1
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/8e51cef1
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/8e51cef1
Branch: refs/heads/0.12-dev
Commit: 8e51cef1b0e4de454c7920632e0d64b60e8fa6d4
Parents: a6207a6
Author: YorkShen <sh...@gmail.com>
Authored: Wed Mar 22 11:45:55 2017 +0800
Committer: YorkShen <sh...@gmail.com>
Committed: Wed Mar 22 11:45:55 2017 +0800
----------------------------------------------------------------------
.../java/com/taobao/weex/WXSDKInstance.java | 25 ++++++++++++++++++++
.../taobao/weex/dom/action/AnimationAction.java | 3 ++-
.../taobao/weex/ui/component/WXComponent.java | 15 ++++++++----
3 files changed, 38 insertions(+), 5 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/8e51cef1/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
----------------------------------------------------------------------
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 eb0653f..51903ea 100755
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
@@ -208,6 +208,7 @@ import android.content.Context;
import android.content.Intent;
import android.content.IntentFilter;
import android.graphics.Color;
+import android.graphics.Paint;
import android.net.Uri;
import android.os.Message;
import android.support.annotation.Nullable;
@@ -293,6 +294,7 @@ public class WXSDKInstance implements IWXActivityStateListener,DomContext, View.
private boolean isCommit=false;
private WXGlobalEventReceiver mGlobalEventReceiver=null;
private boolean trackComponent;
+ private boolean enableLayerType = true;
private boolean mNeedValidate = false;
private static volatile int mViewPortWidth = 750;
private int mInstanceViewPortWidth = 750;
@@ -340,6 +342,29 @@ public class WXSDKInstance implements IWXActivityStateListener,DomContext, View.
this.trackComponent = trackComponent;
}
+ /**
+ * Tell whether it is enabled to change the layerType
+ * {@link android.view.View#setLayerType(int, Paint)}
+ * @return True for enable to change the layerType of component, false otherwise. The default
+ * is True
+ */
+ public boolean isLayerTypeEnabled() {
+ return enableLayerType;
+ }
+
+ /**
+ * Enable the ability of changing layerType. e.g. {@link android.view.View#setLayerType(int, Paint)}
+ * Disable the ability of changing layerType will have tremendous <strong>performance
+ * punishment</strong>.
+ *
+ * <strong>Do not</strong> set this to false unless you know exactly what you are doing.
+ * @param enable True for enable to change the layerType of component, false otherwise. The default
+ * is True
+ */
+ public void enableLayerType(boolean enable) {
+ enableLayerType = enable;
+ }
+
public boolean isNeedValidate() {
return mNeedValidate;
}
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/8e51cef1/android/sdk/src/main/java/com/taobao/weex/dom/action/AnimationAction.java
----------------------------------------------------------------------
diff --git a/android/sdk/src/main/java/com/taobao/weex/dom/action/AnimationAction.java b/android/sdk/src/main/java/com/taobao/weex/dom/action/AnimationAction.java
index 9768016..d85d997 100644
--- a/android/sdk/src/main/java/com/taobao/weex/dom/action/AnimationAction.java
+++ b/android/sdk/src/main/java/com/taobao/weex/dom/action/AnimationAction.java
@@ -328,7 +328,8 @@ class AnimationAction implements DOMAction, RenderAction {
.getInstanceViewPortWidth());
if (animator != null) {
Animator.AnimatorListener animatorCallback = createAnimatorListener(instance, callback);
- if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2) {
+ if (Build.VERSION.SDK_INT < Build.VERSION_CODES.JELLY_BEAN_MR2 && component
+ .enableLayerType() ) {
component.getHostView().setLayerType(View.LAYER_TYPE_HARDWARE, null);
}
Interpolator interpolator = createTimeInterpolator();
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/8e51cef1/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 fcf7aa4..c1c99bc 100755
--- 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
@@ -159,7 +159,6 @@ import com.taobao.weex.common.IWXObject;
import com.taobao.weex.common.WXRuntimeException;
import com.taobao.weex.dom.ImmutableDomObject;
import com.taobao.weex.dom.WXDomHandler;
-import com.taobao.weex.dom.WXDomManager;
import com.taobao.weex.dom.WXDomObject;
import com.taobao.weex.dom.WXDomTask;
import com.taobao.weex.dom.WXStyle;
@@ -1132,7 +1131,7 @@ public abstract class WXComponent<T extends View> implements IWXObject, IWXActi
}
public void setOpacity(float opacity) {
- if (opacity >= 0 && opacity <= 1 && mHost.getAlpha() != opacity) {
+ if (opacity >= 0 && opacity <= 1 && mHost.getAlpha() != opacity && enableLayerType()) {
mHost.setLayerType(View.LAYER_TYPE_HARDWARE, null);
mHost.setAlpha(opacity);
}
@@ -1320,7 +1319,7 @@ public abstract class WXComponent<T extends View> implements IWXObject, IWXActi
if (WXEnvironment.isApkDebugable() && !WXUtils.isUiThread()) {
throw new WXRuntimeException("[WXComponent] destroy can only be called in main thread");
}
- if(mHost!= null && mHost.getLayerType()==View.LAYER_TYPE_HARDWARE) {
+ if(mHost!= null && mHost.getLayerType()==View.LAYER_TYPE_HARDWARE && enableLayerType()) {
mHost.setLayerType(View.LAYER_TYPE_NONE, null);
}
removeAllEvent();
@@ -1506,4 +1505,12 @@ public abstract class WXComponent<T extends View> implements IWXObject, IWXActi
public void setStickyOffset(int stickyOffset) {
mStickyOffset = stickyOffset;
}
-}
+
+ /**
+ * For now, this method respect the result of {@link WXSDKInstance#isLayerTypeEnabled()}
+ * @return Refer {@link WXSDKInstance#isLayerTypeEnabled()}
+ */
+ public boolean enableLayerType() {
+ return getInstance().isLayerTypeEnabled();
+ }
+}
\ No newline at end of file
[3/3] incubator-weex git commit: Merge branch
'android-feature-disable-layerType' of
https://github.com/YorkShen/incubator-weex into 0.12-dev
Posted by ky...@apache.org.
Merge branch 'android-feature-disable-layerType' of https://github.com/YorkShen/incubator-weex into 0.12-dev
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/476e58c9
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/476e58c9
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/476e58c9
Branch: refs/heads/0.12-dev
Commit: 476e58c9a5b5ce749494a3afbe1a15ad343b3c25
Parents: 02487c9 28dac6d
Author: YorkShen <sh...@gmail.com>
Authored: Wed Apr 12 10:41:27 2017 +0800
Committer: YorkShen <sh...@gmail.com>
Committed: Wed Apr 12 10:41:27 2017 +0800
----------------------------------------------------------------------
.../java/com/taobao/weex/WXSDKInstance.java | 25 ++++++++++++++++++++
.../taobao/weex/dom/action/AnimationAction.java | 3 ++-
.../taobao/weex/ui/component/WXComponent.java | 14 ++++++++---
3 files changed, 38 insertions(+), 4 deletions(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/476e58c9/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
----------------------------------------------------------------------
diff --cc android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
index d10a394,51903ea..b7aea32
mode 100644,100755..100644
--- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
+++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/476e58c9/android/sdk/src/main/java/com/taobao/weex/dom/action/AnimationAction.java
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/476e58c9/android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
----------------------------------------------------------------------
diff --cc android/sdk/src/main/java/com/taobao/weex/ui/component/WXComponent.java
index 42d9573,7b9bca1..e1b8e3b
mode 100644,100755..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
[2/3] incubator-weex git commit: * [android] Fix layerType name in
WXComponent
Posted by ky...@apache.org.
* [android] Fix layerType name in WXComponent
Project: http://git-wip-us.apache.org/repos/asf/incubator-weex/repo
Commit: http://git-wip-us.apache.org/repos/asf/incubator-weex/commit/28dac6df
Tree: http://git-wip-us.apache.org/repos/asf/incubator-weex/tree/28dac6df
Diff: http://git-wip-us.apache.org/repos/asf/incubator-weex/diff/28dac6df
Branch: refs/heads/0.12-dev
Commit: 28dac6df7c95554c2fde4c706bc627c597e8c338
Parents: 8e51cef
Author: YorkShen <sh...@gmail.com>
Authored: Wed Apr 12 10:34:28 2017 +0800
Committer: YorkShen <sh...@gmail.com>
Committed: Wed Apr 12 10:34:28 2017 +0800
----------------------------------------------------------------------
.../src/main/java/com/taobao/weex/ui/component/WXComponent.java | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
----------------------------------------------------------------------
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/28dac6df/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 c1c99bc..7b9bca1 100755
--- 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
@@ -1510,7 +1510,7 @@ public abstract class WXComponent<T extends View> implements IWXObject, IWXActi
* For now, this method respect the result of {@link WXSDKInstance#isLayerTypeEnabled()}
* @return Refer {@link WXSDKInstance#isLayerTypeEnabled()}
*/
- public boolean enableLayerType() {
+ public boolean isLayerTypeEnabled() {
return getInstance().isLayerTypeEnabled();
}
}
\ No newline at end of file