From f733ad75f1cf6507f9e62431f8a189a61c948e72 Mon Sep 17 00:00:00 2001 From: hyb1996 <946994919@qq.com> Date: Tue, 6 Nov 2018 12:29:43 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=20floaty.window=E6=82=AC?= =?UTF-8?q?=E6=B5=AE=E7=AA=97=E4=BD=8D=E7=BD=AE=E4=B8=8D=E6=AD=A3=E7=A1=AE?= =?UTF-8?q?=E7=9A=84=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../floaty/BaseResizableFloatyWindow.java | 23 +++++++++++++++++++ .../stardust/autojs/runtime/api/Floaty.java | 1 + autojs/src/main/res/layout/floaty_window.xml | 2 +- autojs/src/main/res/values/dimens.xml | 4 ++++ 4 files changed, 29 insertions(+), 1 deletion(-) create mode 100644 autojs/src/main/res/values/dimens.xml diff --git a/autojs/src/main/java/com/stardust/autojs/core/floaty/BaseResizableFloatyWindow.java b/autojs/src/main/java/com/stardust/autojs/core/floaty/BaseResizableFloatyWindow.java index b0ef76ab..d527b6d6 100644 --- a/autojs/src/main/java/com/stardust/autojs/core/floaty/BaseResizableFloatyWindow.java +++ b/autojs/src/main/java/com/stardust/autojs/core/floaty/BaseResizableFloatyWindow.java @@ -37,10 +37,12 @@ public class BaseResizableFloatyWindow extends ResizableFloatyWindow { private VolatileDispose mInflateException = new VolatileDispose<>(); private View mCloseButton; + private int mOffset; public BaseResizableFloatyWindow(Context context, ViewSupplier viewSupplier) { this(new MyFloaty(context, viewSupplier)); + mOffset = context.getResources().getDimensionPixelSize(R.dimen.floaty_window_offset); } private BaseResizableFloatyWindow(MyFloaty floaty) { @@ -51,6 +53,26 @@ public class BaseResizableFloatyWindow extends ResizableFloatyWindow { return mInflateException.blockedGetOrThrow(ScriptInterruptedException.class); } + @Override + protected WindowBridge onCreateWindowBridge(WindowManager.LayoutParams params) { + return new WindowBridge.DefaultImpl(params, getWindowManager(), getWindowView()) { + @Override + public int getX() { + return super.getX() + mOffset; + } + + @Override + public int getY() { + return super.getY() + mOffset; + } + + @Override + public void updatePosition(int x, int y) { + super.updatePosition(x - mOffset, y - mOffset); + } + }; + } + @Override public void onCreate(FloatyService service, WindowManager manager) { try { @@ -108,6 +130,7 @@ public class BaseResizableFloatyWindow extends ResizableFloatyWindow { private View mRootView; private Context mContext; + public MyFloaty(Context context, ViewSupplier supplier) { mContentViewSupplier = supplier; mContext = context; diff --git a/autojs/src/main/java/com/stardust/autojs/runtime/api/Floaty.java b/autojs/src/main/java/com/stardust/autojs/runtime/api/Floaty.java index 28e77b54..c39988f8 100644 --- a/autojs/src/main/java/com/stardust/autojs/runtime/api/Floaty.java +++ b/autojs/src/main/java/com/stardust/autojs/runtime/api/Floaty.java @@ -18,6 +18,7 @@ import com.stardust.autojs.util.FloatingPermission; import com.stardust.enhancedfloaty.FloatyService; import com.stardust.util.UiHandler; import com.stardust.util.ViewUtil; +import com.stardust.util.ViewUtils; import java.util.concurrent.CopyOnWriteArraySet; diff --git a/autojs/src/main/res/layout/floaty_window.xml b/autojs/src/main/res/layout/floaty_window.xml index b28440bf..ff1f18e0 100644 --- a/autojs/src/main/res/layout/floaty_window.xml +++ b/autojs/src/main/res/layout/floaty_window.xml @@ -9,7 +9,7 @@ android:id="@+id/container" android:layout_width="match_parent" android:layout_height="match_parent" - android:layout_margin="12dp"> + android:layout_margin="@dimen/floaty_window_offset"> diff --git a/autojs/src/main/res/values/dimens.xml b/autojs/src/main/res/values/dimens.xml new file mode 100644 index 00000000..531a26fe --- /dev/null +++ b/autojs/src/main/res/values/dimens.xml @@ -0,0 +1,4 @@ + + + 12dp + \ No newline at end of file