diff --git a/autojs/src/main/java/com/stardust/autojs/core/ui/attribute/AppbarAttributes.java b/autojs/src/main/java/com/stardust/autojs/core/ui/attribute/AppbarAttributes.java new file mode 100644 index 00000000..e04582ad --- /dev/null +++ b/autojs/src/main/java/com/stardust/autojs/core/ui/attribute/AppbarAttributes.java @@ -0,0 +1,24 @@ +package com.stardust.autojs.core.ui.attribute; + +import android.support.design.widget.AppBarLayout; +import android.view.View; + +import com.stardust.autojs.core.ui.inflater.ResourceParser; + +public class AppbarAttributes extends ViewAttributes { + public AppbarAttributes(ResourceParser resourceParser, View view) { + super(resourceParser, view); + } + + @Override + protected void onRegisterAttrs() { + super.onRegisterAttrs(); + registerPixelAttr("elevation", getView()::setTargetElevation); + registerBooleanAttr("expanded", getView()::setExpanded); + } + + @Override + public AppBarLayout getView() { + return (AppBarLayout) super.getView(); + } +} diff --git a/autojs/src/main/java/com/stardust/autojs/core/ui/attribute/ViewAttributes.java b/autojs/src/main/java/com/stardust/autojs/core/ui/attribute/ViewAttributes.java index 877acb3d..901c204a 100644 --- a/autojs/src/main/java/com/stardust/autojs/core/ui/attribute/ViewAttributes.java +++ b/autojs/src/main/java/com/stardust/autojs/core/ui/attribute/ViewAttributes.java @@ -351,10 +351,18 @@ public class ViewAttributes { this::parseDrawable, applier))); } + protected void registerPixelAttr(String name, ValueApplier applier) { + registerAttr(name, this::parseDimensionToPixel, applier); + } + protected void registerIntPixelAttr(String name, ValueApplier applier) { registerAttr(name, this::parseDimensionToIntPixel, applier); } + protected void registerIdAttr(String name, ValueApplier applier) { + registerAttr(name, Ids::parse, applier); + } + protected void registerBooleanAttr(String name, ValueApplier applier) { registerAttr(name, Boolean::parseBoolean, applier); } diff --git a/autojs/src/main/java/com/stardust/autojs/core/ui/attribute/ViewAttributesFactory.java b/autojs/src/main/java/com/stardust/autojs/core/ui/attribute/ViewAttributesFactory.java index 0f33e2dc..7241977f 100644 --- a/autojs/src/main/java/com/stardust/autojs/core/ui/attribute/ViewAttributesFactory.java +++ b/autojs/src/main/java/com/stardust/autojs/core/ui/attribute/ViewAttributesFactory.java @@ -1,7 +1,10 @@ package com.stardust.autojs.core.ui.attribute; +import android.support.design.widget.AppBarLayout; import android.view.View; import android.widget.ImageView; +import android.widget.RadioGroup; +import android.widget.TextView; import com.stardust.autojs.core.ui.inflater.ResourceParser; @@ -17,6 +20,8 @@ public class ViewAttributesFactory { static { sViewAttributesCreators.put(ImageView.class, ImageViewAttributes::new); + sViewAttributesCreators.put(AppBarLayout.class, AppbarAttributes::new); + sViewAttributesCreators.put(TextView.class, TextViewAttributes::new); } public static void put(Class clazz, ViewAttributesCreator creator) { diff --git a/autojs/src/main/java/com/stardust/autojs/core/ui/inflater/inflaters/TextViewInflater.java b/autojs/src/main/java/com/stardust/autojs/core/ui/inflater/inflaters/TextViewInflater.java index 27a868df..39e787b6 100644 --- a/autojs/src/main/java/com/stardust/autojs/core/ui/inflater/inflaters/TextViewInflater.java +++ b/autojs/src/main/java/com/stardust/autojs/core/ui/inflater/inflaters/TextViewInflater.java @@ -30,6 +30,12 @@ import java.util.Map; public class TextViewInflater extends BaseViewInflater { + private static final int LEFT = 0; + private static final int TOP = 1; + private static final int RIGHT = 2; + private static final int BOTTOM = 3; + + private static final ValueMapper AUTO_LINK_MASKS = new ValueMapper("autoLink") .map("all", Linkify.ALL) .map("email", Linkify.EMAIL_ADDRESSES) @@ -368,6 +374,18 @@ public class TextViewInflater extends BaseViewInflater { mAutoText = false; } + private void setDrawable(V view, int d) { + Drawable[] drawables = view.getCompoundDrawables(); + view.setCompoundDrawables( + mDrawableLeft != null ? mDrawableLeft : drawables[0], + mDrawableTop != null ? mDrawableTop : drawables[1], + mDrawableRight != null ? mDrawableRight : drawables[2], + mDrawableBottom != null ? mDrawableBottom : drawables[3] + ); + mDrawableLeft = mDrawableBottom = mDrawableRight = mDrawableTop = null; + } + + private void setDrawables(V view) { Drawable[] drawables = view.getCompoundDrawables(); view.setCompoundDrawables( diff --git a/common/release/output.json b/common/release/output.json index ad502ad0..09010d13 100644 --- a/common/release/output.json +++ b/common/release/output.json @@ -1 +1 @@ -[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":425,"versionName":"4.0.3 Alpha6","enabled":true,"outputFile":"commonRelease-4.0.3 Alpha6.apk","fullName":"commonRelease","baseName":"common-release"},"path":"commonRelease-4.0.3 Alpha6.apk","properties":{}}] \ No newline at end of file +[{"outputType":{"type":"APK"},"apkInfo":{"type":"MAIN","splits":[],"versionCode":426,"versionName":"4.0.3 Alpha7","enabled":true,"outputFile":"commonRelease-4.0.3 Alpha7.apk","fullName":"commonRelease","baseName":"common-release"},"path":"commonRelease-4.0.3 Alpha7.apk","properties":{}}] \ No newline at end of file diff --git a/project-versions.json b/project-versions.json index 8616dca6..39a00902 100644 --- a/project-versions.json +++ b/project-versions.json @@ -1,6 +1,6 @@ { - "appVersionCode": 425, - "appVersionName": "4.0.3 Alpha6", + "appVersionCode": 426, + "appVersionName": "4.0.3 Alpha7", "target": 28, "mini": 17, "compile": 28,