From 011008df934655ab7ebb0e50d437c553d32a0619 Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Sat, 24 Feb 2018 20:42:01 +0800 Subject: [PATCH] feat: util.format() supports java array --- .../com/stardust/scriptdroid/ui/edit/EditorView.java | 3 +-- ...uilder.java => TextSizeSettingDialogBuilder.java} | 10 +++++----- .../scriptdroid/ui/edit/editor/CodeEditText.java | 1 + ..._size_change.xml => dialog_text_size_setting.xml} | 0 autojs/src/main/assets/modules/__util__.js | 12 +++++++++--- 5 files changed, 16 insertions(+), 10 deletions(-) rename app/src/main/java/com/stardust/scriptdroid/ui/edit/{TextSizeChangeDialogBuilder.java => TextSizeSettingDialogBuilder.java} (85%) rename app/src/main/res/layout/{dialog_text_size_change.xml => dialog_text_size_setting.xml} (100%) diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/edit/EditorView.java b/app/src/main/java/com/stardust/scriptdroid/ui/edit/EditorView.java index 374958bf..dda41454 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/edit/EditorView.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/edit/EditorView.java @@ -41,7 +41,6 @@ import com.stardust.scriptdroid.ui.widget.EWebView; import com.stardust.scriptdroid.ui.widget.SimpleTextWatcher; import com.stardust.scriptdroid.ui.widget.ToolbarMenuItem; import com.stardust.util.BackPressedHandler; -import com.stardust.util.ViewUtil; import com.stardust.util.ViewUtils; import com.stardust.widget.ViewSwitcher; @@ -393,7 +392,7 @@ public class EditorView extends FrameLayout implements CodeCompletionBar.OnHintC } public void selectTextSize() { - new TextSizeChangeDialogBuilder(getContext()) + new TextSizeSettingDialogBuilder(getContext()) .initialValue((int) ViewUtils.pxToSp(getContext(), mEditor.getCodeEditText().getTextSize())) .callback(this::setTextSize) .show(); diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/edit/TextSizeChangeDialogBuilder.java b/app/src/main/java/com/stardust/scriptdroid/ui/edit/TextSizeSettingDialogBuilder.java similarity index 85% rename from app/src/main/java/com/stardust/scriptdroid/ui/edit/TextSizeChangeDialogBuilder.java rename to app/src/main/java/com/stardust/scriptdroid/ui/edit/TextSizeSettingDialogBuilder.java index bfbfdb7d..017f7db7 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/edit/TextSizeChangeDialogBuilder.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/edit/TextSizeSettingDialogBuilder.java @@ -17,7 +17,7 @@ import butterknife.ButterKnife; * Created by Stardust on 2018/2/24. */ -public class TextSizeChangeDialogBuilder extends ThemeColorMaterialDialogBuilder implements SeekBar.OnSeekBarChangeListener { +public class TextSizeSettingDialogBuilder extends ThemeColorMaterialDialogBuilder implements SeekBar.OnSeekBarChangeListener { public interface PositiveCallback { @@ -36,9 +36,9 @@ public class TextSizeChangeDialogBuilder extends ThemeColorMaterialDialogBuilder private int mTextSize; private MaterialDialog mMaterialDialog; - public TextSizeChangeDialogBuilder(@NonNull Context context) { + public TextSizeSettingDialogBuilder(@NonNull Context context) { super(context); - View view = View.inflate(context, R.layout.dialog_text_size_change, null); + View view = View.inflate(context, R.layout.dialog_text_size_setting, null); customView(view, false); title(R.string.text_text_size); positiveText(R.string.ok); @@ -58,12 +58,12 @@ public class TextSizeChangeDialogBuilder extends ThemeColorMaterialDialogBuilder mPreviewText.setTextSize(textSize); } - public TextSizeChangeDialogBuilder initialValue(int value) { + public TextSizeSettingDialogBuilder initialValue(int value) { mSeekBar.setProgress(value - MIN); return this; } - public TextSizeChangeDialogBuilder callback(PositiveCallback callback) { + public TextSizeSettingDialogBuilder callback(PositiveCallback callback) { onPositive((dialog, which) -> callback.onPositive(mTextSize)); return this; } diff --git a/app/src/main/java/com/stardust/scriptdroid/ui/edit/editor/CodeEditText.java b/app/src/main/java/com/stardust/scriptdroid/ui/edit/editor/CodeEditText.java index 1aaff2fa..bffd7910 100644 --- a/app/src/main/java/com/stardust/scriptdroid/ui/edit/editor/CodeEditText.java +++ b/app/src/main/java/com/stardust/scriptdroid/ui/edit/editor/CodeEditText.java @@ -33,6 +33,7 @@ import com.stardust.scriptdroid.BuildConfig; import com.stardust.scriptdroid.ui.edit.theme.Theme; import java.lang.reflect.Array; +import java.util.Arrays; /** * Created by Administrator on 2018/2/11. diff --git a/app/src/main/res/layout/dialog_text_size_change.xml b/app/src/main/res/layout/dialog_text_size_setting.xml similarity index 100% rename from app/src/main/res/layout/dialog_text_size_change.xml rename to app/src/main/res/layout/dialog_text_size_setting.xml diff --git a/autojs/src/main/assets/modules/__util__.js b/autojs/src/main/assets/modules/__util__.js index 1d24408e..59b8083b 100644 --- a/autojs/src/main/assets/modules/__util__.js +++ b/autojs/src/main/assets/modules/__util__.js @@ -213,9 +213,8 @@ function arrayToHash(array) { function formatValue(ctx, value, recurseTimes) { // Provide a hook for user-specified inspect functions. // Check that value is an object with an inspect function on it - if (ctx.customInspect && - value && - isFunction(value.inspect) && + if (ctx.customInspect && value && value instanceof Object && + ("inspect" in value) && isFunction(value.inspect) && // Filter out the util module, it's inspect function is special value.inspect !== exports.inspect && // Also filter out any prototype objects using the circular check. @@ -227,6 +226,10 @@ function formatValue(ctx, value, recurseTimes) { return ret; } + if(value && isFunction(value.getClass) && value.getClass().isArray()){ + return formatJavaArray(value); + } + // Primitive types cannot have properties var primitive = formatPrimitive(ctx, value); if (primitive) { @@ -345,6 +348,9 @@ function formatPrimitive(ctx, value) { return ctx.stylize('null', 'null'); } +function formatJavaArray(javaArray){ + return java.util.Arrays.toString(javaArray); +} function formatError(value) { return '[' + Error.prototype.toString.call(value) + ']';