commit 4489e68ea77d55eb56695d1d2241d22c773da785
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Fri Jul 24 15:50:31 2020 +0100

    Catch possible exceptions setting up the Renderer (possible on very old devices) and display the OpenGL error popup.

diff --git a/src/main/java/org/distorted/main/RubikSurfaceView.java b/src/main/java/org/distorted/main/RubikSurfaceView.java
index c7a44172..0d60ad06 100644
--- a/src/main/java/org/distorted/main/RubikSurfaceView.java
+++ b/src/main/java/org/distorted/main/RubikSurfaceView.java
@@ -22,6 +22,7 @@ package org.distorted.main;
 import android.app.ActivityManager;
 import android.content.Context;
 import android.content.pm.ConfigurationInfo;
+import android.opengl.GLES30;
 import android.opengl.GLSurfaceView;
 import android.util.AttributeSet;
 import android.util.DisplayMetrics;
@@ -706,12 +707,28 @@ public class RubikSurfaceView extends GLSurfaceView
 
         final ActivityManager activityManager= (ActivityManager) context.getSystemService(Context.ACTIVITY_SERVICE);
 
-        if( activityManager!=null )
+        try
           {
           final ConfigurationInfo configurationInfo = activityManager.getDeviceConfigurationInfo();
           setEGLContextClientVersion( (configurationInfo.reqGlEsVersion>>16) >= 3 ? 3:2 );
           setRenderer(mRenderer);
           }
+        catch(Exception ex)
+          {
+          act.OpenGLError("This device does not support OpenGL ES 3.0");
+
+          String shading = GLES30.glGetString(GLES30.GL_SHADING_LANGUAGE_VERSION);
+          String version = GLES30.glGetString(GLES30.GL_VERSION);
+          String vendor  = GLES30.glGetString(GLES30.GL_VENDOR);
+          String renderer= GLES30.glGetString(GLES30.GL_RENDERER);
+
+          FirebaseCrashlytics crashlytics = FirebaseCrashlytics.getInstance();
+          crashlytics.setCustomKey("GLSL Version"  , shading );
+          crashlytics.setCustomKey("GLversion"     , version );
+          crashlytics.setCustomKey("GL Vendor "    , vendor  );
+          crashlytics.setCustomKey("GLSLrenderer"  , renderer);
+          crashlytics.recordException(ex);
+          }
         }
       }
 
