From 7663f2b6e4bfc62786408573174548294a27e6ac Mon Sep 17 00:00:00 2001 From: YorkShen Date: Thu, 24 Aug 2017 11:16:41 +0800 Subject: [PATCH] * [android] Add flag in WXCell to decide whether enable flatGUI. --- .../main/java/com/taobao/weex/WXSDKInstance.java | 7 ++++--- .../java/com/taobao/weex/common/Constants.java | 2 ++ .../taobao/weex/ui/component/WXComponent.java | 2 +- .../java/com/taobao/weex/ui/component/WXDiv.java | 6 +++--- .../com/taobao/weex/ui/component/WXImage.java | 4 ++-- .../com/taobao/weex/ui/component/WXText.java | 4 ++-- .../taobao/weex/ui/component/list/WXCell.java | 16 +++++++++++++++- .../com/taobao/weex/ui/flat/FlatGUIIContext.java | 8 ++++---- .../com/taobao/weex/ui/flat/WidgetContainer.java | 2 +- 9 files changed, 34 insertions(+), 17 deletions(-) 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 3cd83d1448..8ee7f8d00d 100644 --- a/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java +++ b/android/sdk/src/main/java/com/taobao/weex/WXSDKInstance.java @@ -118,7 +118,8 @@ public class WXSDKInstance implements IWXActivityStateListener,DomContext, View. private boolean mNeedValidate = false; private static volatile int mViewPortWidth = 750; private int mInstanceViewPortWidth = 750; - private final @NonNull FlatUIIImplementation mUIImp = new FlatGUIIContext(); + private final @NonNull + FlatGUIIContext mUIImp =new FlatGUIIContext(); public long mRenderStartNanos; public int mExecJSTraceId = WXTracing.nextId(); @@ -200,7 +201,7 @@ public void enableLayerType(boolean enable) { } public @NonNull - FlatGUIIContext getFlatUIImp(){ + FlatGUIIContext getFlatUIContext(){ return mUIImp; } @@ -248,7 +249,7 @@ public WXSDKInstance(Context context) { /** * For unittest only. */ - @RestrictTo(Scope.LIBRARY) + @RestrictTo(Scope.TESTS) WXSDKInstance(Context context,String id) { mInstanceId = id; init(context); 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 92cb971858..0bde684e8b 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 @@ -180,6 +180,8 @@ public interface Name { String NORMAL = "normal"; String ARIA_LABEL = "ariaLabel"; String ARIA_HIDDEN = "ariaHidden"; + + String FLAT = "flat"; } public interface Value { 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 a81be29299..d18354463e 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 @@ -465,7 +465,7 @@ public final void setLayout(ImmutableDomObject domObject) { private void setComponentLayoutParams(int realWidth, int realHeight, int realLeft, int realTop, int realRight, int realBottom, Point rawOffset) { - FlatGUIIContext UIImp = getInstance().getFlatUIImp(); + FlatGUIIContext UIImp = getInstance().getFlatUIContext(); WidgetContainer ancestor; Widget widget; if ((ancestor = UIImp.getFlatComponentAncestor(this)) != null) { diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXDiv.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXDiv.java index d0584ac41e..18c734ed11 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXDiv.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXDiv.java @@ -67,7 +67,7 @@ protected WXFrameLayout initComponentHostView(@NonNull Context context) { @Override public boolean promoteToView(boolean checkAncestor) { return !intendToBeFlatContainer() || - getInstance().getFlatUIImp().promoteToView(this, checkAncestor, WXDiv.class); + getInstance().getFlatUIContext().promoteToView(this, checkAncestor, WXDiv.class); } /** @@ -78,7 +78,7 @@ public boolean promoteToView(boolean checkAncestor) { @NonNull public WidgetGroup getOrCreateFlatWidget() { if (mWidgetGroup == null) { - mWidgetGroup = new WidgetGroup(getInstance().getFlatUIImp().getFlatComponentAncestor(this).getHostView()); + mWidgetGroup = new WidgetGroup(getInstance().getFlatUIContext().getFlatComponentAncestor(this).getHostView()); for (int i = 0; i < getChildCount(); i++) { createChildViewAt(i); } @@ -103,7 +103,7 @@ public void unmountFlatGUI() { @Override public boolean intendToBeFlatContainer() { - return getInstance().getFlatUIImp().isFlatUIEnabled() && WXDiv.class.equals(getClass()); + return getInstance().getFlatUIContext().isFlatUIEnabled() && WXDiv.class.equals(getClass()); } @Override 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 1b0c0b4da2..50a8f87ff6 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 @@ -88,13 +88,13 @@ public Integer map(String raw) { @Override public boolean promoteToView(boolean checkAncestor) { - return getInstance().getFlatUIImp().promoteToView(this, checkAncestor, WXImage.class); + return getInstance().getFlatUIContext().promoteToView(this, checkAncestor, WXImage.class); } @Override @NonNull public ImageWidget getOrCreateFlatWidget() { if(imageWidget == null){ - imageWidget = new ImageWidget(getInstance().getFlatUIImp().getFlatComponentAncestor(this).getHostView()); + imageWidget = new ImageWidget(getInstance().getFlatUIContext().getFlatComponentAncestor(this).getHostView()); } return imageWidget; } diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXText.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXText.java index 13b352dba0..4c0a158064 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXText.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXText.java @@ -56,14 +56,14 @@ public class WXText extends WXComponent implements FlatComponent mWidgetRegistry = new ArrayMap<>(); private Map mViewWidgetRegistry = new ArrayMap<>(); - public FlatGUIIContext(boolean flatUIEnabled) { - this.mFlatUIEnabled = flatUIEnabled; + @RestrictTo(Scope.LIBRARY) + public void setFlatUIEnabled(boolean flag){ + mFlatUIEnabled = flag; } public boolean isFlatUIEnabled() { diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/flat/WidgetContainer.java b/android/sdk/src/main/java/com/taobao/weex/ui/flat/WidgetContainer.java index 9210514380..d501802a74 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/flat/WidgetContainer.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/flat/WidgetContainer.java @@ -56,7 +56,7 @@ public void createChildViewAt(int index) { if (ret.first != null) { WXComponent child = ret.first; Widget flatChild; - FlatGUIIContext uiImp = getInstance().getFlatUIImp(); + FlatGUIIContext uiImp = getInstance().getFlatUIContext(); WidgetContainer parent = uiImp.getFlatComponentAncestor(this); if (parent == null || uiImp.getAndroidViewWidget(this) != null) { parent = this;