From 012685b3c9c7a40c209f4b62618e4d23061891f0 Mon Sep 17 00:00:00 2001 From: Mathias-Boulay Date: Sat, 19 Nov 2022 20:45:17 +0100 Subject: [PATCH] Fix[controls]: Take into account framework rounding --- .../handleview/EditControlPopup.java | 24 ++++++++++++------- 1 file changed, 16 insertions(+), 8 deletions(-) diff --git a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/EditControlPopup.java b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/EditControlPopup.java index 02dac12dd..15817f362 100644 --- a/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/EditControlPopup.java +++ b/app_pojavlauncher/src/main/java/net/kdt/pojavlaunch/customcontrols/handleview/EditControlPopup.java @@ -63,10 +63,13 @@ public class EditControlPopup { if(internalChanges) return; internalChanges = true; - if(right != (int)safeParseFloat(mWidthEditText.getText().toString())){ + int width = (int)(safeParseFloat(mWidthEditText.getText().toString())); + + if(width >= 0 && Math.abs(right - width) > 1){ mWidthEditText.setText(String.valueOf(right - left)); } - if(bottom != (int) safeParseFloat(mHeightEditText.getText().toString())){ + int height = (int)(safeParseFloat(mHeightEditText.getText().toString())); + if(height >= 0 && Math.abs(bottom - height) > 1){ mHeightEditText.setText(String.valueOf(bottom - top)); } @@ -211,7 +214,6 @@ public class EditControlPopup { mAdapter = new ArrayAdapter<>(mRootView.getContext(), R.layout.item_centered_textview); mSpecialArray = ControlData.buildSpecialButtonArray(); for (int i = 0; i < mSpecialArray.length; i++) { - //TODO this will break for sure mSpecialArray[i] = "SPECIAL_" + mSpecialArray[i]; } Collections.reverse(Arrays.asList(mSpecialArray)); @@ -386,8 +388,11 @@ public class EditControlPopup { public void afterTextChanged(Editable s) { if(internalChanges) return; - mCurrentlyEditedButton.getProperties().setWidth(safeParseFloat(s.toString())); - mCurrentlyEditedButton.updateProperties(); + float width = safeParseFloat(s.toString()); + if(width >= 0){ + mCurrentlyEditedButton.getProperties().setWidth(width); + mCurrentlyEditedButton.updateProperties(); + } } }); @@ -401,8 +406,11 @@ public class EditControlPopup { public void afterTextChanged(Editable s) { if(internalChanges) return; - mCurrentlyEditedButton.getProperties().setHeight(safeParseFloat(s.toString())); - mCurrentlyEditedButton.updateProperties(); + float height = safeParseFloat(s.toString()); + if(height >= 0){ + mCurrentlyEditedButton.getProperties().setHeight(height); + mCurrentlyEditedButton.updateProperties(); + } } }); @@ -522,7 +530,7 @@ public class EditControlPopup { } private float safeParseFloat(String string){ - float out = 10; // 10 px as a fallback + float out = -1; // -1 try { out = Float.parseFloat(string); }catch (NumberFormatException e){