SDL: Fixed bug #13306 - workaround for android issue "java.lang.NullPointerException android.view.View.onResolvePointerIcon" (b9cf5)

From b9cf5f08db5da61497898872058f0df7440e2e8e Mon Sep 17 00:00:00 2001
From: Sylvain <[EMAIL REDACTED]>
Date: Thu, 25 Sep 2025 13:25:28 +0200
Subject: [PATCH] Fixed bug #13306 - workaround for android issue
 "java.lang.NullPointerException android.view.View.onResolvePointerIcon"

(cherry picked from commit 10885f4b7e12db424848e93c69e73e341f7be35c)
---
 .../app/src/main/java/org/libsdl/app/SDLSurface.java  | 11 +++++++++++
 1 file changed, 11 insertions(+)

diff --git a/android-project/app/src/main/java/org/libsdl/app/SDLSurface.java b/android-project/app/src/main/java/org/libsdl/app/SDLSurface.java
index 080501c9fa85f..b6fb9bbae98f8 100644
--- a/android-project/app/src/main/java/org/libsdl/app/SDLSurface.java
+++ b/android-project/app/src/main/java/org/libsdl/app/SDLSurface.java
@@ -15,6 +15,7 @@
 import android.view.InputDevice;
 import android.view.KeyEvent;
 import android.view.MotionEvent;
+import android.view.PointerIcon;
 import android.view.Surface;
 import android.view.SurfaceHolder;
 import android.view.SurfaceView;
@@ -362,6 +363,16 @@ public void onSensorChanged(SensorEvent event) {
         }
     }
 
+    // Prevent android internal NullPointerException (https://github.com/libsdl-org/SDL/issues/13306)
+    @Override
+    public PointerIcon onResolvePointerIcon(MotionEvent event, int pointerIndex) {
+        try {
+            return super.onResolvePointerIcon(event, pointerIndex);
+        } catch (NullPointerException e) {
+            return null;
+        }
+    }
+
     // Captured pointer events for API 26.
     public boolean onCapturedPointerEvent(MotionEvent event)
     {