commit 7a60305a2f8dd94a3cf539f6efc59af1a8b6a2f5
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Wed Mar 1 23:36:23 2023 +0100

    New button in the solver screen: reset all textures.

diff --git a/src/main/java/org/distorted/screens/RubikScreenSolver.java b/src/main/java/org/distorted/screens/RubikScreenSolver.java
index 9c810b44..a2b89d2c 100644
--- a/src/main/java/org/distorted/screens/RubikScreenSolver.java
+++ b/src/main/java/org/distorted/screens/RubikScreenSolver.java
@@ -44,9 +44,11 @@ import org.distorted.solvers.SolverMain;
 
 public class RubikScreenSolver extends RubikScreenAbstract
   {
+  private static final int RESET_DURATION = 1000;
+
   private static Bitmap[] mBitmap;
   private ImageButton[] mColorButton;
-  private TransparentImageButton mBackButton, mSolveButton;
+  private TransparentImageButton mResetButton,mBackButton, mSolveButton;
   private boolean mSolving;
   private int mCurrentColor;
   private int[] mFaceColors;
@@ -115,10 +117,12 @@ public class RubikScreenSolver extends RubikScreenAbstract
     LinearLayout layoutBot = act.findViewById(R.id.lowerBar);
     layoutBot.removeAllViews();
 
+    setupResetButton(act);
     setupSolveButton(act);
     setupBackButton(act);
 
-    layoutL.addView(mSolveButton);
+    layoutL.addView(mResetButton);
+    layoutM.addView(mSolveButton);
     layoutR.addView(mBackButton);
 
     layoutBot.addView(layoutL);
@@ -242,6 +246,25 @@ public class RubikScreenSolver extends RubikScreenAbstract
       }
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  private void setupResetButton(final RubikActivity act)
+    {
+    int icon = RubikActivity.getDrawable(R.drawable.ui_small_reset,R.drawable.ui_medium_reset, R.drawable.ui_big_reset, R.drawable.ui_huge_reset);
+    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
+    mResetButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+
+    mResetButton.setOnClickListener( new View.OnClickListener()
+      {
+      @Override
+      public void onClick(View v)
+        {
+        ObjectControl control = act.getControl();
+        control.resetTextureMapsEffect(RESET_DURATION);
+        }
+      });
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private void setupSolveButton(final RubikActivity act)
