http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/sdk/src/main/java/com/taobao/weex/ui/animation/WXAnimationBean.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/animation/WXAnimationBean.java b/android/sdk/src/main/java/com/taobao/weex/ui/animation/WXAnimationBean.java index 0abe3d7..fe425b7 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/animation/WXAnimationBean.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/animation/WXAnimationBean.java @@ -45,6 +45,11 @@ import java.util.Map.Entry; public class WXAnimationBean { + public final static String LINEAR = "linear"; + public final static String EASE_IN_OUT = "ease-in-out"; + public final static String EASE_IN = "ease-in"; + public final static String EASE_OUT = "ease-out"; + public final static String CUBIC_BEZIER = "cubic-bezier"; public final static int NUM_CUBIC_PARAM = 4; public long delay; public long duration; @@ -82,7 +87,7 @@ public class WXAnimationBean { static { wxToAndroidMap.put(WX_TRANSLATE, Arrays.asList - (View.TRANSLATION_X, View.TRANSLATION_Y)); + (View.TRANSLATION_X, View.TRANSLATION_Y)); wxToAndroidMap.put(WX_TRANSLATE_X, Collections.singletonList(View.TRANSLATION_X)); wxToAndroidMap.put(WX_TRANSLATE_Y, Collections.singletonList(View.TRANSLATION_Y)); wxToAndroidMap.put(WX_ROTATE, Collections.singletonList(View.ROTATION)); @@ -114,7 +119,7 @@ public class WXAnimationBean { private float cameraDistance = Float.MAX_VALUE; private static Map<Property<View,Float>, Float> parseTransForm(@Nullable String rawTransform, final int width, - final int height,final int viewportW) { + final int height,final int viewportW) { return TransformParser.parseTransForm(rawTransform, width, height, viewportW); } @@ -142,7 +147,7 @@ public class WXAnimationBean { private static Pair<Float, Float> parsePivot(@NonNull List<String> list, int width, int height,int viewportW) { return new Pair<>( - parsePivotX(list.get(0), width,viewportW), parsePivotY(list.get(1), height,viewportW)); + parsePivotX(list.get(0), width,viewportW), parsePivotY(list.get(1), height,viewportW)); } private static float parsePivotX(String x, int width,int viewportW) { @@ -237,3 +242,4 @@ public class WXAnimationBean { } } } +
http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/sdk/src/main/java/com/taobao/weex/ui/animation/WXAnimationModule.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/animation/WXAnimationModule.java b/android/sdk/src/main/java/com/taobao/weex/ui/animation/WXAnimationModule.java index 3b15347..11b02bc 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/animation/WXAnimationModule.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/animation/WXAnimationModule.java @@ -21,31 +21,22 @@ package com.taobao.weex.ui.animation; import android.support.annotation.Nullable; import android.text.TextUtils; -import com.alibaba.fastjson.JSONObject; import com.taobao.weex.WXSDKInstance; import com.taobao.weex.WXSDKManager; import com.taobao.weex.annotation.JSMethod; import com.taobao.weex.common.WXModule; -import com.taobao.weex.dom.DOMAction; -import com.taobao.weex.dom.RenderAction; -import com.taobao.weex.dom.WXDomHandler; -import com.taobao.weex.dom.action.Actions; +import com.taobao.weex.ui.action.GraphicActionAnimation; import com.taobao.weex.ui.component.WXComponent; - -import static com.taobao.weex.dom.action.Actions.getAnimationAction; - public class WXAnimationModule extends WXModule { @JSMethod - public void transition(@Nullable String ref, @Nullable JSONObject animation, @Nullable String callBack) { - if (!TextUtils.isEmpty(ref) && animation != null && mWXSDKInstance != null) { - DOMAction animationActions = getAnimationAction(ref, animation, callBack); + public void transition(@Nullable String ref, @Nullable String animation, @Nullable String callBack) { + if (!TextUtils.isEmpty(ref) && !TextUtils.isEmpty(animation) && mWXSDKInstance != null) { //Due to animation module rely on the result of the css-layout and the batch mechanism of //css-layout, the animation.transition must be delayed the batch time. - WXSDKManager.getInstance().getWXDomManager().postActionDelay(mWXSDKInstance.getInstanceId(), - animationActions, - false, WXDomHandler.DELAY_TIME); + GraphicActionAnimation action = new GraphicActionAnimation(mWXSDKInstance.getInstanceId(), ref, animation, callBack); + WXSDKManager.getInstance().getWXRenderManager().postGraphicAction(action.getPageId(), action); } } @@ -55,9 +46,11 @@ public class WXAnimationModule extends WXModule { private WXAnimationBean wxAnimationBean; private String callback; - public void execute(WXSDKInstance mInstance, WXComponent component) { - RenderAction action = Actions.getAnimationAction(component.getRef(), wxAnimationBean, callback); - WXSDKManager.getInstance().getWXRenderManager().runOnThread(mInstance.getInstanceId(), action); + public void execute(WXSDKInstance instance, WXComponent component) { + if (null != instance && null != component) { + GraphicActionAnimation action = new GraphicActionAnimation(instance.getInstanceId(), component.getRef(), wxAnimationBean, callback); + WXSDKManager.getInstance().getWXRenderManager().postGraphicAction(action.getPageId(), action); + } } public AnimationHolder(WXAnimationBean wxAnimationBean, String callback) { http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/sdk/src/main/java/com/taobao/weex/ui/component/AbstractEditComponent.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/AbstractEditComponent.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/AbstractEditComponent.java index 1c78d42..139b1b5 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/component/AbstractEditComponent.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/AbstractEditComponent.java @@ -24,9 +24,11 @@ import android.support.annotation.NonNull; import android.text.Editable; import android.text.InputFilter; import android.text.InputType; +import android.text.TextPaint; import android.text.TextUtils; import android.text.TextWatcher; import android.text.method.PasswordTransformationMethod; +import android.util.Log; import android.util.TypedValue; import android.view.Gravity; import android.view.KeyEvent; @@ -43,11 +45,16 @@ import com.taobao.weex.annotation.JSMethod; import com.taobao.weex.bridge.WXBridgeManager; import com.taobao.weex.common.Constants; import com.taobao.weex.common.WXThread; -import com.taobao.weex.dom.WXDomObject; +import com.taobao.weex.dom.CSSConstants; import com.taobao.weex.dom.WXStyle; +import com.taobao.weex.layout.ContentBoxMeasurement; +import com.taobao.weex.layout.MeasureMode; +import com.taobao.weex.layout.MeasureSize; +import com.taobao.weex.ui.action.BasicComponentData; import com.taobao.weex.ui.component.helper.SoftKeyboardDetector; import com.taobao.weex.ui.component.helper.WXTimeInputHelper; import com.taobao.weex.ui.view.WXEditText; +import com.taobao.weex.utils.TypefaceUtil; import com.taobao.weex.utils.WXLogUtils; import com.taobao.weex.utils.WXResourceUtils; import com.taobao.weex.utils.WXUtils; @@ -59,6 +66,8 @@ import java.util.Map; import java.util.regex.Pattern; import java.util.regex.PatternSyntaxException; +import static com.taobao.weex.dom.WXStyle.UNSET; + /** * Created by sospartan on 7/11/16. */ @@ -84,9 +93,76 @@ public abstract class AbstractEditComponent extends WXComponent<WXEditText> { private int mFormatRepeatCount = 0; private static final int MAX_TEXT_FORMAT_REPEAT = 3; - public AbstractEditComponent(WXSDKInstance instance, WXDomObject dom, WXVContainer parent, boolean isLazy) { - super(instance, dom, parent, isLazy); + private TextPaint mPaint = new TextPaint(); + private int mLineHeight = UNSET; + + public AbstractEditComponent(WXSDKInstance instance, WXVContainer parent, boolean isLazy, BasicComponentData basicComponentData) { + super(instance, parent, isLazy, basicComponentData); mInputMethodManager = (InputMethodManager) getContext().getSystemService(Context.INPUT_METHOD_SERVICE); + setContentBoxMeasurement(new ContentBoxMeasurement() { + /** uiThread = false **/ + @Override + public void measureInternal(float width, float height, int widthMeasureMode, int heightMeasureMode) { + if (CSSConstants.isUndefined(width) || widthMeasureMode == MeasureMode.UNSPECIFIED) { + width = 0; + } + mMeasureWidth = width; + mMeasureHeight = getMeasureHeight(); + } + + /** uiThread = false **/ + @Override + public void layoutBefore() { + updateStyleAndAttrs(); + } + + /** uiThread = false **/ + @Override + public void layoutAfter(float computedWidth, float computedHeight) { + + } + }); + } + + protected final float getMeasuredLineHeight() { + return mLineHeight != UNSET && mLineHeight > 0 ? mLineHeight : mPaint.getFontMetrics(null); + } + + protected float getMeasureHeight() { + return getMeasuredLineHeight(); + } + + protected void updateStyleAndAttrs() { + if (getStyles().size() > 0) { + int fontSize = UNSET, fontStyle = UNSET, fontWeight = UNSET; + String fontFamily = null; + if (getStyles().containsKey(Constants.Name.FONT_SIZE)) { + fontSize = WXStyle.getFontSize(getStyles(),getViewPortWidth()); + } + + if (getStyles().containsKey(Constants.Name.FONT_FAMILY)) { + fontFamily = WXStyle.getFontFamily(getStyles()); + } + + if (getStyles().containsKey(Constants.Name.FONT_STYLE)) { + fontStyle = WXStyle.getFontStyle(getStyles()); + } + + if (getStyles().containsKey(Constants.Name.FONT_WEIGHT)) { + fontWeight = WXStyle.getFontWeight(getStyles()); + } + + int lineHeight = WXStyle.getLineHeight(getStyles(),getViewPortWidth()); + if (lineHeight != UNSET) + mLineHeight = lineHeight; + + if (fontSize != UNSET) + mPaint.setTextSize(fontSize); + + if (fontFamily != null) { + TypefaceUtil.applyFontStyle(mPaint, fontStyle, fontWeight, fontFamily); + } + } } @Override @@ -97,7 +173,7 @@ public abstract class AbstractEditComponent extends WXComponent<WXEditText> { } @Override - protected void onHostViewInitialized(final WXEditText host) { + protected void onHostViewInitialized(WXEditText host) { super.onHostViewInitialized(host); addFocusChangeListener(new OnFocusChangeListener() { @Override @@ -105,7 +181,7 @@ public abstract class AbstractEditComponent extends WXComponent<WXEditText> { if (!hasFocus) { decideSoftKeyboard(); } - setPseudoClassStatus(Constants.PSEUDO.FOCUS, hasFocus); + setPseudoClassStatus(Constants.PSEUDO.FOCUS,hasFocus); } }); @@ -118,31 +194,34 @@ public abstract class AbstractEditComponent extends WXComponent<WXEditText> { return !isDisabled(); } - private void applyOnClickListener() { - addClickListener(new OnClickListener() { - @Override - public void onHostViewClick() { - switch (mType) { - case Constants.Value.DATE: - hideSoftKeyboard(); - if (getParent() != null) { - getParent().interceptFocus(); - } - WXTimeInputHelper.pickDate(mMax, mMin, AbstractEditComponent.this); - break; - case Constants.Value.TIME: - hideSoftKeyboard(); - if (getParent() != null) { - getParent().interceptFocus(); - } - WXTimeInputHelper.pickTime(AbstractEditComponent.this); - break; - } + private OnClickListener mOnClickListener = new OnClickListener() { + @Override + public void onHostViewClick() { + switch (mType) { + case Constants.Value.DATE: + hideSoftKeyboard(); + if (getParent() != null) { + getParent().interceptFocus(); + } + WXTimeInputHelper.pickDate(mMax, mMin, AbstractEditComponent.this); + break; + case Constants.Value.TIME: + hideSoftKeyboard(); + if (getParent() != null) { + getParent().interceptFocus(); + } + WXTimeInputHelper.pickTime(AbstractEditComponent.this); + break; } - }); + } + }; + + private void applyOnClickListener() { + addClickListener(mOnClickListener); } - protected int getVerticalGravity() { + + protected int getVerticalGravity(){ return Gravity.CENTER_VERTICAL; } @@ -152,7 +231,7 @@ public abstract class AbstractEditComponent extends WXComponent<WXEditText> { * @param editText */ protected void appleStyleAfterCreated(final WXEditText editText) { - String alignStr = (String) getDomObject().getStyles().get(Constants.Name.TEXT_ALIGN); + String alignStr = (String) getStyles().get(Constants.Name.TEXT_ALIGN); int textAlign = getTextAlign(alignStr); if (textAlign <= 0) { textAlign = Gravity.START; @@ -209,7 +288,7 @@ public abstract class AbstractEditComponent extends WXComponent<WXEditText> { }; editText.addTextChangedListener(mTextChangedEventDispatcher); - editText.setTextSize(TypedValue.COMPLEX_UNIT_PX, WXStyle.getFontSize(getDomObject().getStyles(), getInstance().getInstanceViewPortWidth())); + editText.setTextSize(TypedValue.COMPLEX_UNIT_PX, WXStyle.getFontSize(getStyles(), getInstance().getInstanceViewPortWidth())); } @@ -278,7 +357,6 @@ public abstract class AbstractEditComponent extends WXComponent<WXEditText> { mBeforeText = s.toString(); fireEvent(Constants.Event.INPUT, s.toString()); - } @Override @@ -320,13 +398,13 @@ public abstract class AbstractEditComponent extends WXComponent<WXEditText> { attrsChanges.put("value", value); domChanges.put("attrs", attrsChanges); - WXSDKManager.getInstance().fireEvent(getInstanceId(), getDomObject().getRef(), event, params, domChanges); + WXSDKManager.getInstance().fireEvent(getInstanceId(), getRef(), event, params, domChanges); } } public void performOnChange(String value) { - if (getDomObject() != null && getDomObject().getEvents() != null) { - String event = getDomObject().getEvents().contains(Constants.Event.CHANGE) ? Constants.Event.CHANGE : null; + if (getEvents() != null) { + String event = getEvents().contains(Constants.Event.CHANGE) ? Constants.Event.CHANGE : null; fireEvent(event, value); } } @@ -466,6 +544,7 @@ public abstract class AbstractEditComponent extends WXComponent<WXEditText> { @WXComponentProp(name = Constants.Name.TYPE) public void setType(String type) { + Log.e("weex", "setType=" + type); if (type == null || getHostView() == null) { return; } @@ -522,7 +601,7 @@ public abstract class AbstractEditComponent extends WXComponent<WXEditText> { @WXComponentProp(name = Constants.Name.FONT_SIZE) public void setFontSize(String fontSize) { - if (getHostView() != null && fontSize != null) { + if (getHostView() != null && fontSize != null ) { Map<String, Object> map = new HashMap<>(1); map.put(Constants.Name.FONT_SIZE, fontSize); getHostView().setTextSize(TypedValue.COMPLEX_UNIT_PX, WXStyle.getFontSize(map, getInstance().getInstanceViewPortWidth())); @@ -555,7 +634,6 @@ public abstract class AbstractEditComponent extends WXComponent<WXEditText> { /** * Compatible with both 'max-length' and 'maxlength' - * * @param maxLength */ @WXComponentProp(name = Constants.Name.MAX_LENGTH) @@ -568,7 +646,6 @@ public abstract class AbstractEditComponent extends WXComponent<WXEditText> { /** * Compatible with both 'max-length' and 'maxlength' - * * @param maxLength */ @WXComponentProp(name = Constants.Name.MAXLENGTH) http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/sdk/src/main/java/com/taobao/weex/ui/component/ComponentUtils.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/ComponentUtils.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/ComponentUtils.java index b28a94f..373d9cd 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/component/ComponentUtils.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/ComponentUtils.java @@ -20,9 +20,6 @@ package com.taobao.weex.ui.component; import com.taobao.weex.WXEnvironment; import com.taobao.weex.WXSDKManager; -import com.taobao.weex.dom.DOMActionContext; -import com.taobao.weex.dom.WXDomObject; -import com.taobao.weex.dom.action.TraceableAction; import com.taobao.weex.utils.WXLogUtils; /** @@ -54,69 +51,71 @@ public class ComponentUtils { /** * build component tree and dom tree for template list * */ - public static synchronized final WXComponent buildTree(WXDomObject domObject, WXVContainer parent){ - DOMActionContext domActionContext = WXSDKManager.getInstance().getWXDomManager().getDomContext(parent.getInstanceId()); - if(domActionContext == null){ - return null; - } - DomTreeBuilder builder = new DomTreeBuilder(); - domObject.traverseTree( - domActionContext.getAddDOMConsumer(), - domActionContext.getApplyStyleConsumer() - ); - return builder.buildComponentTree(domActionContext, domObject, parent); - } + // TODO +// public static synchronized final WXComponent buildTree(WXDomObject domObject, WXVContainer parent){ +// DOMActionContext domActionContext = WXSDKManager.getInstance().getWXDomManager().getDomContext(parent.getInstanceId()); +// if(domActionContext == null){ +// return null; +// } +// DomTreeBuilder builder = new DomTreeBuilder(); +// domObject.traverseTree( +// domActionContext.getAddDOMConsumer(), +// domActionContext.getApplyStyleConsumer() +// ); +// return builder.buildComponentTree(domActionContext, domObject, parent); +// } /** * dom tree build * */ - static class DomTreeBuilder extends TraceableAction { - - private WXComponent buildComponentTree(DOMActionContext context, WXDomObject dom, WXVContainer parent) { - if (dom == null) { - return null; - } - long startNanos = System.nanoTime(); - dom.setCloneThis(true); - WXComponent component = WXComponentFactory.newInstance(context.getInstance(), dom, parent); - if (component != null) { - component.mTraceInfo.domThreadStart = dom.mDomThreadTimestamp; - component.mTraceInfo.rootEventId = mTracingEventId; - component.mTraceInfo.domQueueTime = mDomQueueTime; - } - context.registerComponent(dom.getRef(), component); - if (component instanceof WXVContainer) { - WXVContainer container = (WXVContainer) component; - WXDomObject parentDom = (WXDomObject) container.getDomObject(); - for (int i = 0; i < dom.childCount(); ++i) { - WXDomObject child = dom.getChild(i); - if (child != null) { - WXComponent childComponent = buildComponentTree(context, child, container); - container.addChild(childComponent); - WXDomObject childDomObject = (WXDomObject) childComponent.getDomObject(); - if(childDomObject != child) { - int index = parentDom.index(child); - parentDom.add(childDomObject, index); - if(index >= 0) { - parentDom.remove(child); - i--; - } - RuntimeException exception = new IllegalArgumentException(childDomObject.getClass().getName() - + " not support clone this"); - WXLogUtils.e("weex", exception); - if(WXEnvironment.isApkDebugable()){ - throw exception; - } - } - } - } - } - dom.setCloneThis(false); - if (component != null) { - component.mTraceInfo.domThreadNanos = System.nanoTime() - startNanos; - } - return component; - } - } + // TODO +// static class DomTreeBuilder extends TraceableAction { +// +// private WXComponent buildComponentTree(DOMActionContext context, WXDomObject dom, WXVContainer parent) { +// if (dom == null) { +// return null; +// } +// long startNanos = System.nanoTime(); +// dom.setCloneThis(true); +// WXComponent component = WXComponentFactory.newInstance(context.getInstance(), dom, parent); +// if (component != null) { +// component.mTraceInfo.domThreadStart = dom.mDomThreadTimestamp; +// component.mTraceInfo.rootEventId = mTracingEventId; +// component.mTraceInfo.domQueueTime = mDomQueueTime; +// } +// context.registerComponent(dom.getRef(), component); +// if (component instanceof WXVContainer) { +// WXVContainer container = (WXVContainer) component; +// WXDomObject parentDom = (WXDomObject) container.getDomObject(); +// for (int i = 0; i < dom.childCount(); ++i) { +// WXDomObject child = dom.getChild(i); +// if (child != null) { +// WXComponent childComponent = buildComponentTree(context, child, container); +// container.addChild(childComponent); +// WXDomObject childDomObject = (WXDomObject) childComponent.getDomObject(); +// if(childDomObject != child) { +// int index = parentDom.index(child); +// parentDom.add(childDomObject, index); +// if(index >= 0) { +// parentDom.remove(child); +// i--; +// } +// RuntimeException exception = new IllegalArgumentException(childDomObject.getClass().getName() +// + " not support clone this"); +// WXLogUtils.e("weex", exception); +// if(WXEnvironment.isApkDebugable()){ +// throw exception; +// } +// } +// } +// } +// } +// dom.setCloneThis(false); +// if (component != null) { +// component.mTraceInfo.domThreadNanos = System.nanoTime() - startNanos; +// } +// return component; +// } +// } } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/sdk/src/main/java/com/taobao/weex/ui/component/Textarea.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/Textarea.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/Textarea.java index 7e36d27..acc9100 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/component/Textarea.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/Textarea.java @@ -23,8 +23,7 @@ import android.view.Gravity; import com.taobao.weex.WXSDKInstance; import com.taobao.weex.common.Constants; -import com.taobao.weex.dom.TextAreaEditTextDomObject; -import com.taobao.weex.dom.WXDomObject; +import com.taobao.weex.ui.action.BasicComponentData; import com.taobao.weex.ui.view.WXEditText; import com.taobao.weex.utils.WXUtils; @@ -32,8 +31,12 @@ import com.taobao.weex.utils.WXUtils; * Created by sospartan on 7/11/16. */ public class Textarea extends AbstractEditComponent { - public Textarea(WXSDKInstance instance, WXDomObject dom, WXVContainer parent, boolean isLazy) { - super(instance, dom, parent, isLazy); + + public static final int DEFAULT_ROWS = 2; + private int mNumberOfLines = DEFAULT_ROWS; + + public Textarea(WXSDKInstance instance, WXVContainer parent, boolean isLazy, BasicComponentData basicComponentData) { + super(instance, parent, isLazy, basicComponentData); } @Override @@ -45,9 +48,9 @@ public class Textarea extends AbstractEditComponent { @Override protected void appleStyleAfterCreated(WXEditText editText) { super.appleStyleAfterCreated(editText); - String rowsStr = (String) getDomObject().getStyles().get(Constants.Name.ROWS); + String rowsStr = (String) getStyles().get(Constants.Name.ROWS); - int rows = TextAreaEditTextDomObject.DEFAULT_ROWS; + int rows = DEFAULT_ROWS; try{ if(!TextUtils.isEmpty(rowsStr)) { rows = Integer.parseInt(rowsStr); @@ -87,4 +90,30 @@ public class Textarea extends AbstractEditComponent { text.setLines(rows); } + + @Override + protected float getMeasureHeight(){ + return getMeasuredLineHeight() * mNumberOfLines; + } + + @Override + protected void updateStyleAndAttrs() { + super.updateStyleAndAttrs(); + Object raw = getAttrs().get(Constants.Name.ROWS); + if (raw == null) { + return; + } else if (raw instanceof String) { + String rowsStr = (String) raw; + try { + int lines = Integer.parseInt(rowsStr); + if (lines > 0) { + mNumberOfLines = lines; + } + } catch (NumberFormatException e) { + e.printStackTrace(); + } + } else if (raw instanceof Integer) { + mNumberOfLines = (Integer) raw; + } + } } http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/sdk/src/main/java/com/taobao/weex/ui/component/WXA.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXA.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXA.java index aae667f..e0b8442 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXA.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXA.java @@ -21,43 +21,36 @@ package com.taobao.weex.ui.component; import com.taobao.weex.WXSDKInstance; import com.taobao.weex.annotation.Component; import com.taobao.weex.common.Constants; -import com.taobao.weex.dom.ImmutableDomObject; import com.taobao.weex.dom.WXAttr; -import com.taobao.weex.dom.WXDomObject; +import com.taobao.weex.ui.action.BasicComponentData; import com.taobao.weex.ui.view.WXFrameLayout; import com.taobao.weex.utils.ATagUtil; -import com.taobao.weex.utils.WXLogUtils; @Component(lazyload = false) public class WXA extends WXDiv { @Deprecated - public WXA(WXSDKInstance instance, WXDomObject dom, WXVContainer parent, String instanceId, boolean isLazy) { - this(instance, dom, parent); + public WXA(WXSDKInstance instance, WXVContainer parent, String instanceId, boolean isLazy, BasicComponentData basicComponentData) { + this(instance, parent, basicComponentData); } - public WXA(WXSDKInstance instance, WXDomObject dom, WXVContainer parent) { - super(instance, dom, parent); + public WXA(WXSDKInstance instance, WXVContainer parent, BasicComponentData basicComponentData) { + super(instance, parent, basicComponentData); } @Override protected void onHostViewInitialized(WXFrameLayout host) { - super.onHostViewInitialized(host); addClickListener(new OnClickListener() { @Override public void onHostViewClick() { String href; - ImmutableDomObject domObject = getDomObject(); - if (domObject != null) { - WXAttr attr = domObject.getAttrs(); - if (attr !=null && (href = (String)attr.get("href")) != null) { - ATagUtil.onClick(null, getInstanceId(), href); - } - } else { - WXLogUtils.d("WXA", "Property href is empty."); + WXAttr attr = getAttrs(); + if (attr !=null && (href = (String)attr.get("href")) != null) { + ATagUtil.onClick(null, getInstanceId(), href); } } }); + super.onHostViewInitialized(host); } @Override http://git-wip-us.apache.org/repos/asf/incubator-weex/blob/2f8caedb/android/sdk/src/main/java/com/taobao/weex/ui/component/WXBaseRefresh.java ---------------------------------------------------------------------- diff --git a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXBaseRefresh.java b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXBaseRefresh.java index 146fd27..45a21e8 100644 --- a/android/sdk/src/main/java/com/taobao/weex/ui/component/WXBaseRefresh.java +++ b/android/sdk/src/main/java/com/taobao/weex/ui/component/WXBaseRefresh.java @@ -22,7 +22,7 @@ import android.content.Context; import android.support.annotation.NonNull; import com.taobao.weex.WXSDKInstance; import com.taobao.weex.annotation.Component; -import com.taobao.weex.dom.WXDomObject; +import com.taobao.weex.ui.action.BasicComponentData; import com.taobao.weex.ui.view.WXFrameLayout; /** @@ -34,8 +34,8 @@ public class WXBaseRefresh extends WXVContainer<WXFrameLayout> { private WXLoadingIndicator mLoadingIndicator; - public WXBaseRefresh(WXSDKInstance instance, WXDomObject node, WXVContainer parent, boolean lazy) { - super(instance, node, parent, lazy); + public WXBaseRefresh(WXSDKInstance instance, WXVContainer parent, boolean lazy, BasicComponentData basicComponentData) { + super(instance, parent, lazy, basicComponentData); } @Override
