commit b6f7c7f2d18f73e783a704491325378bf67e696d
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Wed Feb 17 23:42:08 2021 +0100

    Improve the test - now it will hopefully not crash on slow devices (part 2)

diff --git a/src/main/java/org/distorted/main/RubikActivity.java b/src/main/java/org/distorted/main/RubikActivity.java
index a8929d0e..91d622d4 100644
--- a/src/main/java/org/distorted/main/RubikActivity.java
+++ b/src/main/java/org/distorted/main/RubikActivity.java
@@ -41,7 +41,6 @@ import org.distorted.dialogs.RubikDialogPrivacy;
 import org.distorted.effects.BaseEffect;
 import org.distorted.library.main.DistortedLibrary;
 
-import org.distorted.library.message.EffectListener;
 import org.distorted.objects.TwistyObject;
 import org.distorted.scores.RubikScores;
 import org.distorted.scores.RubikScoresDownloader;
@@ -254,6 +253,7 @@ public class RubikActivity extends AppCompatActivity implements RubikDebug.Activ
 
       RubikDebug debug = RubikDebug.getInstance();
       debug.onResume(this);
+      RubikRenderer.mStartDebug = true;
 
       view.initialize();
       restorePreferences();
diff --git a/src/main/java/org/distorted/main/RubikDebug.java b/src/main/java/org/distorted/main/RubikDebug.java
index 615eed17..79f978ac 100644
--- a/src/main/java/org/distorted/main/RubikDebug.java
+++ b/src/main/java/org/distorted/main/RubikDebug.java
@@ -33,7 +33,6 @@ public class RubikDebug
   private static final int LOOP_NUM2     = 9;
 
   private String mDebug;
-  private long mResumeTime;
   private int mNumReturned;
   private ActivityChanger mChanger;
 
@@ -50,7 +49,6 @@ public class RubikDebug
   private void initialize()
     {
     mDebug      = "";
-    mResumeTime = 0;
     mNumReturned= 0;
     }
 
@@ -113,8 +111,19 @@ public class RubikDebug
   public void onResume(ActivityChanger changer)
     {
     mChanger = changer;
-    mResumeTime = System.currentTimeMillis();
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public void onPause()
+    {
+    initialize();
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
 
+  public void onFirstDraw()
+    {
     final Timer timer = new Timer();
 
     timer.scheduleAtFixedRate(new TimerTask()
@@ -134,13 +143,6 @@ public class RubikDebug
       } ,LOOP_INTERVAL, LOOP_INTERVAL);
     }
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  public void onPause()
-    {
-    initialize();
-    }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   public void onReturned()
diff --git a/src/main/java/org/distorted/main/RubikRenderer.java b/src/main/java/org/distorted/main/RubikRenderer.java
index 340ab0fe..57850f97 100644
--- a/src/main/java/org/distorted/main/RubikRenderer.java
+++ b/src/main/java/org/distorted/main/RubikRenderer.java
@@ -45,6 +45,8 @@ public class RubikRenderer implements GLSurfaceView.Renderer, DistortedLibrary.E
    private final Fps mFPS;
    private boolean mErrorShown;
 
+   static boolean mStartDebug = false;
+
    private static class Fps
      {
      private static final int NUM_FRAMES  = 100;
@@ -105,6 +107,13 @@ public class RubikRenderer implements GLSurfaceView.Renderer, DistortedLibrary.E
      mFPS.onRender(time);
      mView.getPreRender().preRender();
      mScreen.render(time);
+
+     if( mStartDebug )
+       {
+       mStartDebug = false;
+       RubikDebug debug = RubikDebug.getInstance();
+       debug.onFirstDraw();
+       }
      }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/tutorial/TutorialActivity.java b/src/main/java/org/distorted/tutorial/TutorialActivity.java
index 55aaae39..e3183738 100644
--- a/src/main/java/org/distorted/tutorial/TutorialActivity.java
+++ b/src/main/java/org/distorted/tutorial/TutorialActivity.java
@@ -198,9 +198,11 @@ public class TutorialActivity extends AppCompatActivity implements RubikDebug.Ac
     protected void onResume() 
       {
       super.onResume();
+
       RubikDebug debug = RubikDebug.getInstance();
       debug.onResume(this);
-      RubikDebug.addDebug("RubikActivity: onResume");
+      TutorialRenderer.mStartDebug = true;
+      RubikDebug.addDebug("TutorialActivity: onResume");
 
       DistortedLibrary.onResume(1);
       TutorialSurfaceView view = findViewById(R.id.tutorialSurfaceView);
diff --git a/src/main/java/org/distorted/tutorial/TutorialRenderer.java b/src/main/java/org/distorted/tutorial/TutorialRenderer.java
index f474a841..65fc3276 100644
--- a/src/main/java/org/distorted/tutorial/TutorialRenderer.java
+++ b/src/main/java/org/distorted/tutorial/TutorialRenderer.java
@@ -22,11 +22,11 @@ package org.distorted.tutorial;
 import android.opengl.GLSurfaceView;
 
 import org.distorted.effects.BaseEffect;
-import org.distorted.library.effect.EffectType;
 import org.distorted.library.effect.VertexEffectQuaternion;
 import org.distorted.library.effect.VertexEffectRotate;
 import org.distorted.library.main.DistortedLibrary;
 import org.distorted.library.main.DistortedScreen;
+import org.distorted.main.RubikDebug;
 
 import javax.microedition.khronos.egl.EGLConfig;
 import javax.microedition.khronos.opengles.GL10;
@@ -38,6 +38,8 @@ public class TutorialRenderer implements GLSurfaceView.Renderer, DistortedLibrar
    private final TutorialSurfaceView mView;
    private final DistortedScreen mScreen;
 
+   static boolean mStartDebug = false;
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
    TutorialRenderer(TutorialSurfaceView v)
@@ -57,6 +59,13 @@ public class TutorialRenderer implements GLSurfaceView.Renderer, DistortedLibrar
      long time = System.currentTimeMillis();
      mView.getPreRender().preRender();
      mScreen.render(time);
+
+     if( mStartDebug )
+       {
+       mStartDebug = false;
+       RubikDebug debug = RubikDebug.getInstance();
+       debug.onFirstDraw();
+       }
      }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
