From 4f82b940185d264f8e16a740a21232b46b17eaef Mon Sep 17 00:00:00 2001 From: SerpentSpirale Date: Fri, 25 Mar 2022 00:35:49 +0100 Subject: [PATCH] WIP broken button repositionning on resize --- .../main/java/net/kdt/pojavlaunch/BaseMainActivity.java | 9 ++++++++- .../src/main/java/net/kdt/pojavlaunch/Tools.java | 4 ++-- .../kdt/pojavlaunch/customcontrols/ControlLayout.java | 7 +++++++ 3 files changed, 17 insertions(+), 3 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java index 537854a04..64b7b6b98 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/BaseMainActivity.java @@ -197,8 +197,15 @@ public class BaseMainActivity extends BaseActivity { @Override public void onConfigurationChanged(@NonNull Configuration newConfig) { super.onConfigurationChanged(newConfig); - Tools.getDisplayMetrics(this); + + Tools.updateWindowSize(this); minecraftGLView.refreshSize(); + new Handler(Looper.getMainLooper()).postDelayed(new Runnable() { + @Override + public void run() { + mControlLayout.refreshControlButtonPositions(); + } + }, 1000); } public static void fullyExit() { diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java index f2e9e522d..7017864c8 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/Tools.java @@ -395,8 +395,8 @@ public final class Tools { public static DisplayMetrics currentDisplayMetrics; - public static void updateWindowSize(Activity ctx) { - currentDisplayMetrics = getDisplayMetrics(ctx); + public static void updateWindowSize(Activity activity) { + currentDisplayMetrics = getDisplayMetrics(activity); CallbackBridge.physicalWidth = (int) (currentDisplayMetrics.widthPixels); CallbackBridge.physicalHeight = (int) (currentDisplayMetrics.heightPixels); diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlLayout.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlLayout.java index 4975bb351..79bb53422 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlLayout.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/ControlLayout.java @@ -251,6 +251,13 @@ public class ControlLayout extends FrameLayout { return children; } + public void refreshControlButtonPositions(){ + for(ControlButton button : getButtonChildren()){ + button.setDynamicX(button.getProperties().dynamicX); + button.setDynamicY(button.getProperties().dynamicY); + } + } + HashMap mapTable = new HashMap<>(); //While this is called onTouch, this should only be called from a ControlButton. public boolean onTouch(View v, MotionEvent ev) {