commit c95b37a4877ccf9a72bde5e4b26b3f909b4c073e
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sun Jan 29 02:23:23 2023 +0100

    Block the object, menu & back moves while we're scrambling!

diff --git a/src/main/java/org/distorted/helpers/MovesController.java b/src/main/java/org/distorted/helpers/MovesController.java
index a8d7983a..cde22880 100644
--- a/src/main/java/org/distorted/helpers/MovesController.java
+++ b/src/main/java/org/distorted/helpers/MovesController.java
@@ -165,7 +165,7 @@ public class MovesController implements MovesFinished
       @Override
       public void onClick(View v)
         {
-        backMove(act,control);
+        if( control.isScramblingAndSolvingNotBlocked() ) backMove(act,control);
         }
       });
     }
diff --git a/src/main/java/org/distorted/screens/RubikScreenBase.java b/src/main/java/org/distorted/screens/RubikScreenBase.java
index 8831a7a0..87f6037f 100644
--- a/src/main/java/org/distorted/screens/RubikScreenBase.java
+++ b/src/main/java/org/distorted/screens/RubikScreenBase.java
@@ -30,7 +30,7 @@ abstract class RubikScreenBase extends RubikScreenAbstract
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  void createBottomPane(final RubikActivity act, TransparentImageButton left, TransparentImageButton right)
+  void createBottomPane(final RubikActivity act, TransparentImageButton butt)
     {
     mMovesController.clearMoves(act);
 
@@ -52,8 +52,7 @@ abstract class RubikScreenBase extends RubikScreenAbstract
     mLockController.setupButton(act,control);
     layoutMid.addView(mLockController.getButton());
 
-    if( left !=null ) layoutRight.addView(left);
-    if( right!=null ) layoutRight.addView(right);
+    if( butt !=null ) layoutRight.addView(butt);
 
     layoutBot.addView(layoutLeft);
     layoutBot.addView(layoutMid);
diff --git a/src/main/java/org/distorted/screens/RubikScreenPlay.java b/src/main/java/org/distorted/screens/RubikScreenPlay.java
index fb34f05a..eff0cc1c 100644
--- a/src/main/java/org/distorted/screens/RubikScreenPlay.java
+++ b/src/main/java/org/distorted/screens/RubikScreenPlay.java
@@ -116,7 +116,7 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
 
     // BOTTOM /////////////////////////
     setupObjectButton(act,mScreenWidth);
-    createBottomPane(act,mObjButton,null);
+    createBottomPane(act,mObjButton);
     }
 
 //////////////////////////////////////////////////////////////////////////////////////////////////
@@ -133,17 +133,20 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
       @Override
       public void onClick(View view)
         {
-        if( mObjectPopup==null )
+        if( act.getControl().isScramblingAndSolvingNotBlocked() )
           {
-          float width = act.getScreenWidthInPixels();
-          float height= act.getScreenHeightInPixels();
-          setupObjectWindow(act,width,height);
-          }
+          if( mObjectPopup==null )
+            {
+            float width = act.getScreenWidthInPixels();
+            float height= act.getScreenHeightInPixels();
+            setupObjectWindow(act,width,height);
+            }
 
-        int rowCount = Math.min(mMaxRowCount,mRowCount);
-        View popupView = mObjectPopup.getContentView();
-        popupView.setSystemUiVisibility(RubikActivity.FLAGS);
-        displayPopup(act,view,mObjectPopup,mObjectSize*mColCount,mObjectSize*rowCount+5*margin,margin,margin);
+          int rowCount = Math.min(mMaxRowCount,mRowCount);
+          View popupView = mObjectPopup.getContentView();
+          popupView.setSystemUiVisibility(RubikActivity.FLAGS);
+          displayPopup(act,view,mObjectPopup,mObjectSize*mColCount,mObjectSize*rowCount+5*margin,margin,margin);
+          }
         }
       });
     }
@@ -161,16 +164,19 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
       @Override
       public void onClick(View view)
         {
-        if( mMenuPopup==null )
+        if( act.getControl().isScramblingAndSolvingNotBlocked() )
           {
-          float width = act.getScreenWidthInPixels();
-          setupMenuWindow(act,width,height);
-          }
+          if( mMenuPopup==null )
+            {
+            float width = act.getScreenWidthInPixels();
+            setupMenuWindow(act,width,height);
+            }
 
-        View popupView = mMenuPopup.getContentView();
-        popupView.setSystemUiVisibility(RubikActivity.FLAGS);
-        setupLevelButtonVisibilityAndColor(act);
-        displayPopup(act,view,mMenuPopup,mMenuLayoutWidth,mMenuLayoutHeight,(int)(-mMenuLayoutWidth/2 + width/6),0);
+          View popupView = mMenuPopup.getContentView();
+          popupView.setSystemUiVisibility(RubikActivity.FLAGS);
+          setupLevelButtonVisibilityAndColor(act);
+          displayPopup(act,view,mMenuPopup,mMenuLayoutWidth,mMenuLayoutHeight,(int)(-mMenuLayoutWidth/2 + width/6),0);
+          }
         }
       });
     }
diff --git a/src/main/java/org/distorted/screens/RubikScreenReady.java b/src/main/java/org/distorted/screens/RubikScreenReady.java
index 5b2e1a8a..ce003aef 100644
--- a/src/main/java/org/distorted/screens/RubikScreenReady.java
+++ b/src/main/java/org/distorted/screens/RubikScreenReady.java
@@ -50,7 +50,7 @@ public class RubikScreenReady extends RubikScreenBase
     layoutTop.addView(label);
 
     setupBackButton(act);
-    createBottomPane(act,mBackButton,null);
+    createBottomPane(act,mBackButton);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/screens/RubikScreenSolving.java b/src/main/java/org/distorted/screens/RubikScreenSolving.java
index 39bd7cf2..563a93c4 100644
--- a/src/main/java/org/distorted/screens/RubikScreenSolving.java
+++ b/src/main/java/org/distorted/screens/RubikScreenSolving.java
@@ -75,7 +75,7 @@ public class RubikScreenSolving extends RubikScreenBase
     layoutTop.addView(mTime);
 
     setupBackButton(act);
-    createBottomPane(act,mBackButton,null);
+    createBottomPane(act,mBackButton);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
