From 40629a72a9a3ba0da6e6d947fef5050583838007 Mon Sep 17 00:00:00 2001 From: Anthony Calosa Date: Tue, 23 Sep 2025 19:09:15 +0800 Subject: [PATCH] update Sentry, update oshi, update android-all, npe prevention --- forge-game/pom.xml | 2 +- forge-gui-android/pom.xml | 8 ++++---- forge-gui-mobile-dev/pom.xml | 2 +- .../src/forge/itemmanager/views/ImageView.java | 18 ++++++++++++++++-- 4 files changed, 22 insertions(+), 8 deletions(-) diff --git a/forge-game/pom.xml b/forge-game/pom.xml index d4c360abda8..ce1a3dd95a5 100644 --- a/forge-game/pom.xml +++ b/forge-game/pom.xml @@ -32,7 +32,7 @@ io.sentry sentry-logback - 8.19.1 + 8.21.1 org.jgrapht diff --git a/forge-gui-android/pom.xml b/forge-gui-android/pom.xml index 62059c01379..0de3daae9eb 100644 --- a/forge-gui-android/pom.xml +++ b/forge-gui-android/pom.xml @@ -97,7 +97,7 @@ org.robolectric android-all - 15-robolectric-12650502 + 15-robolectric-13954326 provided @@ -156,7 +156,7 @@ io.sentry sentry-android - 8.19.1 + 8.21.1 aar @@ -177,7 +177,7 @@ io.sentry sentry-android-core - 8.19.1 + 8.21.1 aar @@ -201,7 +201,7 @@ io.sentry sentry-android-ndk - 8.19.1 + 8.21.1 aar diff --git a/forge-gui-mobile-dev/pom.xml b/forge-gui-mobile-dev/pom.xml index 1c287064cdb..34ac5a2cfca 100644 --- a/forge-gui-mobile-dev/pom.xml +++ b/forge-gui-mobile-dev/pom.xml @@ -242,7 +242,7 @@ com.github.oshi oshi-core - 6.8.3 + 6.9.0 diff --git a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java index 18b921f1bae..324a6460923 100644 --- a/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java +++ b/forge-gui-mobile/src/forge/itemmanager/views/ImageView.java @@ -92,7 +92,12 @@ public class ImageView extends ItemView { private T get(int index) { synchronized (lock) { - return internalList.get(index); + try { + // TODO: Find cause why index is invalid on some cases... + return internalList.get(index); + } catch (Exception e) { + return null; + } } } @@ -579,6 +584,8 @@ public class ImageView extends ItemView { maxPileHeight = 0; for (int j = 0; j < group.piles.size(); j++) { Pile pile = group.piles.get(j); + if (pile == null) + continue; y = pileY; for (int k = 0; k < pile.items.size(); k++) { ItemInfo itemInfo = pile.items.get(k); @@ -588,7 +595,10 @@ public class ImageView extends ItemView { itemInfo.setBounds(x, y, itemWidth, itemHeight); y += dy; } - pile.items.get(pile.items.size() - 1).pos = CardStackPosition.Top; + ItemInfo itemInfo = pile.items.get(pile.items.size() - 1); + if (itemInfo == null) + continue; + itemInfo.pos = CardStackPosition.Top; pileHeight = y + itemHeight - dy - pileY; if (pileHeight > maxPileHeight) { maxPileHeight = pileHeight; @@ -705,9 +715,13 @@ public class ImageView extends ItemView { float relX = x + group.getScrollLeft() - group.getLeft(); float relY = y + getScrollValue(); Pile pile = group.piles.get(j); + if (pile == null) + continue; if (pile.contains(relX, relY)) { for (int k = pile.items.size() - 1; k >= 0; k--) { ItemInfo item = pile.items.get(k); + if (item == null) + continue; if (item.contains(relX, relY)) { return item; }