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