commit 6a76f80ab89586e95ef2841e17066774dbba2326
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Thu Oct 22 23:34:04 2020 +0100

    Do not permit clicking on the 'play' button if we are currently scrambling an object.

diff --git a/src/main/java/org/distorted/main/RubikPreRender.java b/src/main/java/org/distorted/main/RubikPreRender.java
index 1c1cd1b0..3795d658 100644
--- a/src/main/java/org/distorted/main/RubikPreRender.java
+++ b/src/main/java/org/distorted/main/RubikPreRender.java
@@ -189,7 +189,6 @@ public class RubikPreRender implements EffectListener
         }
 
       mCanRotate = true;
-      mCanPlay = false;
       doEffectNow( BaseEffect.Type.WIN );
       }
     else
diff --git a/src/main/java/org/distorted/states/RubikStatePlay.java b/src/main/java/org/distorted/states/RubikStatePlay.java
index c5934bd1..9a8f9d6b 100644
--- a/src/main/java/org/distorted/states/RubikStatePlay.java
+++ b/src/main/java/org/distorted/states/RubikStatePlay.java
@@ -196,28 +196,31 @@ public class RubikStatePlay extends RubikStateAbstract implements RubikPreRender
       @Override
       public void onClick(View view)
         {
-        if( mPlayPopup==null )
+        if( act.getPreRender().canPlay() )
           {
-          // I completely don't understand it, but Firebase says occasionally mPlayPopup is null here. Recreate.
-          float width = act.getScreenWidthInPixels();
-          setupPlayWindow(act,width);
-          }
+          if( mPlayPopup==null )
+            {
+            // I completely don't understand it, but Firebase says occasionally mPlayPopup is null here. Recreate.
+            float width = act.getScreenWidthInPixels();
+            setupPlayWindow(act,width);
+            }
 
-        mPlayPopup.setFocusable(false);
-        mPlayPopup.update();
+          mPlayPopup.setFocusable(false);
+          mPlayPopup.update();
 
-        View popupView = mPlayPopup.getContentView();
-        popupView.setSystemUiVisibility(RubikActivity.FLAGS);
+          View popupView = mPlayPopup.getContentView();
+          popupView.setSystemUiVisibility(RubikActivity.FLAGS);
 
-        final int sizeIndex = ObjectList.getSizeIndex(mObject,mSize);
-        final int maxLevel = ObjectList.getMaxLevel(mObject, sizeIndex);
-        final int levelsShown = Math.min(maxLevel,LEVELS_SHOWN);
+          final int sizeIndex = ObjectList.getSizeIndex(mObject,mSize);
+          final int maxLevel = ObjectList.getMaxLevel(mObject, sizeIndex);
+          final int levelsShown = Math.min(maxLevel,LEVELS_SHOWN);
 
-        mPlayPopup.showAsDropDown(view, margin, margin);
-        mPlayPopup.update(view, mPlayLayoutWidth, (int)(levelsShown*(mMenuItemSize+margin)+2*margin));
+          mPlayPopup.showAsDropDown(view, margin, margin);
+          mPlayPopup.update(view, mPlayLayoutWidth, (int)(levelsShown*(mMenuItemSize+margin)+2*margin));
 
-        mPlayPopup.setFocusable(true);
-        mPlayPopup.update();
+          mPlayPopup.setFocusable(true);
+          mPlayPopup.update();
+          }
         }
       });
     }
