mirror of
https://github.com/Card-Forge/forge.git
synced 2025-11-17 11:18:01 +00:00
Add try/catch blocks to all input entry methods in order to minimize impact of unhandled exceptions
This commit is contained in:
@@ -26,6 +26,7 @@ import forge.assets.FSkin;
|
|||||||
import forge.assets.FSkinColor;
|
import forge.assets.FSkinColor;
|
||||||
import forge.assets.FSkinFont;
|
import forge.assets.FSkinFont;
|
||||||
import forge.assets.FImage;
|
import forge.assets.FImage;
|
||||||
|
import forge.error.BugReporter;
|
||||||
import forge.model.FModel;
|
import forge.model.FModel;
|
||||||
import forge.screens.FScreen;
|
import forge.screens.FScreen;
|
||||||
import forge.screens.SplashScreen;
|
import forge.screens.SplashScreen;
|
||||||
@@ -209,92 +210,146 @@ public class Forge implements ApplicationListener {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean press(float x, float y) {
|
public boolean press(float x, float y) {
|
||||||
for (FDisplayObject listener : potentialListeners) {
|
try {
|
||||||
if (listener.press(listener.screenToLocalX(x), listener.screenToLocalY(y))) {
|
for (FDisplayObject listener : potentialListeners) {
|
||||||
return true;
|
if (listener.press(listener.screenToLocalX(x), listener.screenToLocalY(y))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
BugReporter.reportException(ex);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean release(float x, float y) {
|
public boolean release(float x, float y) {
|
||||||
for (FDisplayObject listener : potentialListeners) {
|
try {
|
||||||
if (listener.release(listener.screenToLocalX(x), listener.screenToLocalY(y))) {
|
for (FDisplayObject listener : potentialListeners) {
|
||||||
return true;
|
if (listener.release(listener.screenToLocalX(x), listener.screenToLocalY(y))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
BugReporter.reportException(ex);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean longPress(float x, float y) {
|
public boolean longPress(float x, float y) {
|
||||||
for (FDisplayObject listener : potentialListeners) {
|
try {
|
||||||
if (listener.longPress(listener.screenToLocalX(x), listener.screenToLocalY(y))) {
|
for (FDisplayObject listener : potentialListeners) {
|
||||||
return true;
|
if (listener.longPress(listener.screenToLocalX(x), listener.screenToLocalY(y))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
BugReporter.reportException(ex);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean tap(float x, float y, int count) {
|
public boolean tap(float x, float y, int count) {
|
||||||
for (FDisplayObject listener : potentialListeners) {
|
try {
|
||||||
if (listener.tap(listener.screenToLocalX(x), listener.screenToLocalY(y), count)) {
|
for (FDisplayObject listener : potentialListeners) {
|
||||||
return true;
|
if (listener.tap(listener.screenToLocalX(x), listener.screenToLocalY(y), count)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
BugReporter.reportException(ex);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean fling(float velocityX, float velocityY) {
|
public boolean fling(float velocityX, float velocityY) {
|
||||||
for (FDisplayObject listener : potentialListeners) {
|
try {
|
||||||
if (listener.fling(velocityX, velocityY)) {
|
for (FDisplayObject listener : potentialListeners) {
|
||||||
return true;
|
if (listener.fling(velocityX, velocityY)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
BugReporter.reportException(ex);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean pan(float x, float y, float deltaX, float deltaY) {
|
public boolean pan(float x, float y, float deltaX, float deltaY) {
|
||||||
for (FDisplayObject listener : potentialListeners) {
|
try {
|
||||||
if (listener.pan(listener.screenToLocalX(x), listener.screenToLocalY(y), deltaX, deltaY)) {
|
for (FDisplayObject listener : potentialListeners) {
|
||||||
return true;
|
if (listener.pan(listener.screenToLocalX(x), listener.screenToLocalY(y), deltaX, deltaY)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
BugReporter.reportException(ex);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean panStop(float x, float y) {
|
public boolean panStop(float x, float y) {
|
||||||
for (FDisplayObject listener : potentialListeners) {
|
try {
|
||||||
if (listener.panStop(listener.screenToLocalX(x), listener.screenToLocalY(y))) {
|
for (FDisplayObject listener : potentialListeners) {
|
||||||
return true;
|
if (listener.panStop(listener.screenToLocalX(x), listener.screenToLocalY(y))) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
BugReporter.reportException(ex);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean zoom(float initialDistance, float distance) {
|
public boolean zoom(float initialDistance, float distance) {
|
||||||
for (FDisplayObject listener : potentialListeners) {
|
try {
|
||||||
if (listener.zoom(initialDistance, distance)) {
|
for (FDisplayObject listener : potentialListeners) {
|
||||||
return true;
|
if (listener.zoom(initialDistance, distance)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
BugReporter.reportException(ex);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean pinch(Vector2 initialPointer1, Vector2 initialPointer2, Vector2 pointer1, Vector2 pointer2) {
|
public boolean pinch(Vector2 initialPointer1, Vector2 initialPointer2, Vector2 pointer1, Vector2 pointer2) {
|
||||||
for (FDisplayObject listener : potentialListeners) {
|
try {
|
||||||
if (listener.pinch(initialPointer1, initialPointer2, pointer1, pointer2)) {
|
for (FDisplayObject listener : potentialListeners) {
|
||||||
return true;
|
if (listener.pinch(initialPointer1, initialPointer2, pointer1, pointer2)) {
|
||||||
|
return true;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
catch (Exception ex) {
|
||||||
|
BugReporter.reportException(ex);
|
||||||
|
return true;
|
||||||
}
|
}
|
||||||
return false;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -27,7 +27,8 @@ public abstract class FDialog extends FOverlay {
|
|||||||
protected final void doLayout(float width, float height) {
|
protected final void doLayout(float width, float height) {
|
||||||
width -= 2 * INSET_X;
|
width -= 2 * INSET_X;
|
||||||
|
|
||||||
float contentHeight = layoutAndGetHeight(width, height - TITLE_HEIGHT);
|
//ensure no more than half the screen is covered by dialog so it can be moved to see anything
|
||||||
|
float contentHeight = layoutAndGetHeight(width, height / 2 - TITLE_HEIGHT);
|
||||||
totalHeight = contentHeight + TITLE_HEIGHT;
|
totalHeight = contentHeight + TITLE_HEIGHT;
|
||||||
float y = (height - totalHeight) / 2;
|
float y = (height - totalHeight) / 2;
|
||||||
|
|
||||||
|
|||||||
@@ -152,7 +152,9 @@ public class FOptionPane extends FDialog {
|
|||||||
@Override
|
@Override
|
||||||
public void handleEvent(FEvent e) {
|
public void handleEvent(FEvent e) {
|
||||||
hide();
|
hide();
|
||||||
callback.run(option);
|
if (callback != null) {
|
||||||
|
callback.run(option);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}));
|
}));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user