commit 31227bf6838241f44e40d88d33232af8e3f17d25
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sat Jun 20 13:21:47 2020 +0100

    Move the 'Effects' thing to a button in the Play state.

diff --git a/src/main/java/org/distorted/main/RubikActivity.java b/src/main/java/org/distorted/main/RubikActivity.java
index 5cfe52d1..8351ea6d 100644
--- a/src/main/java/org/distorted/main/RubikActivity.java
+++ b/src/main/java/org/distorted/main/RubikActivity.java
@@ -283,14 +283,6 @@ public class RubikActivity extends AppCompatActivity
       RubikState.switchState(this,RubikState.PLAY);
       }
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-    public void Effects(View v)
-      {
-      RubikDialogEffects settings = new RubikDialogEffects();
-      settings.show(getSupportFragmentManager(), null);
-      }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public void Scores(View v)
diff --git a/src/main/java/org/distorted/states/RubikStatePlay.java b/src/main/java/org/distorted/states/RubikStatePlay.java
index c19b4846..aaabafde 100644
--- a/src/main/java/org/distorted/states/RubikStatePlay.java
+++ b/src/main/java/org/distorted/states/RubikStatePlay.java
@@ -23,7 +23,6 @@ import android.content.Context;
 import android.content.SharedPreferences;
 import android.graphics.drawable.BitmapDrawable;
 import android.os.Build;
-import android.os.Bundle;
 import android.util.DisplayMetrics;
 import android.view.Gravity;
 import android.view.LayoutInflater;
@@ -36,8 +35,7 @@ import android.widget.LinearLayout;
 import android.widget.PopupWindow;
 import androidx.appcompat.widget.AppCompatSpinner;
 
-import com.google.firebase.analytics.FirebaseAnalytics;
-
+import org.distorted.dialogs.RubikDialogEffects;
 import org.distorted.main.R;
 import org.distorted.main.RubikActivity;
 import org.distorted.objects.RubikObjectList;
@@ -50,7 +48,7 @@ public class RubikStatePlay extends RubikStateAbstract implements AdapterView.On
   public  static final int DEF_OBJECT= RubikObjectList.CUBE.ordinal();
   public  static final int DEF_SIZE  =  3;
 
-  private ImageButton mObjButton;
+  private ImageButton mObjButton, mSettingsButton;
   private Button mBackButton, mSolveButton, mPlayButton;
   private PopupWindow mPopup;
   private int mObject = DEF_OBJECT;
@@ -88,16 +86,18 @@ public class RubikStatePlay extends RubikStateAbstract implements AdapterView.On
 
     // BOT ////////////////////////////
 
-    setupSolveButton(act,scale);
-
     LinearLayout layoutLeft = act.findViewById(R.id.mainBarLeft);
     layoutLeft.removeAllViews();
-    layoutLeft.addView(mSolveButton);
 
-    setupBackButton(act,scale);
+    setupSettingsButton(act,scale);
+    layoutLeft.addView(mSettingsButton);
+    setupSolveButton(act,scale);
+    layoutLeft.addView(mSolveButton);
 
     LinearLayout layoutRight = act.findViewById(R.id.mainBarRight);
     layoutRight.removeAllViews();
+
+    setupBackButton(act,scale);
     layoutRight.addView(mBackButton);
 
     setupPopupWindow(act, scale);
@@ -140,6 +140,28 @@ public class RubikStatePlay extends RubikStateAbstract implements AdapterView.On
       });
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  private void setupSettingsButton(final RubikActivity act, final float scale)
+    {
+    int padding = (int)(3*scale + 0.5f);
+    LinearLayout.LayoutParams objectParams = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT,LinearLayout.LayoutParams.MATCH_PARENT);
+    mSettingsButton = new ImageButton(act);
+    mSettingsButton.setLayoutParams(objectParams);
+    mSettingsButton.setPadding(padding,0,padding,0);
+    mSettingsButton.setImageResource(R.drawable.settings);
+
+    mSettingsButton.setOnClickListener( new View.OnClickListener()
+      {
+      @Override
+      public void onClick(View view)
+        {
+        RubikDialogEffects settings = new RubikDialogEffects();
+        settings.show(act.getSupportFragmentManager(), null);
+        }
+      });
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private void setupLevelSpinner(final RubikActivity act, final float scale)
diff --git a/src/main/res/drawable/settings.png b/src/main/res/drawable/settings.png
new file mode 100644
index 00000000..0fa288f5
Binary files /dev/null and b/src/main/res/drawable/settings.png differ
diff --git a/src/main/res/layout/dialog_main.xml b/src/main/res/layout/dialog_main.xml
index f5d4e0bb..ec396ff3 100644
--- a/src/main/res/layout/dialog_main.xml
+++ b/src/main/res/layout/dialog_main.xml
@@ -21,16 +21,6 @@
          android:layout_marginRight="10dp"
          android:text="@string/play" />
 
-     <Button
-         android:id="@+id/rubikSettings"
-         android:layout_width="fill_parent"
-         android:layout_height="fill_parent"
-         android:layout_weight="1"
-         android:onClick="Effects"
-         android:layout_marginLeft="10dp"
-         android:layout_marginRight="10dp"
-         android:text="@string/effects" />
-
      <Button
          android:id="@+id/rubikScores"
          android:layout_width="fill_parent"
diff --git a/src/main/res/layout/main.xml b/src/main/res/layout/main.xml
index fb0e0388..57573104 100644
--- a/src/main/res/layout/main.xml
+++ b/src/main/res/layout/main.xml
@@ -7,7 +7,7 @@
     <LinearLayout
         android:id="@+id/upperBar"
         android:layout_width="fill_parent"
-        android:layout_height="52dp"
+        android:layout_height="60dp"
         android:gravity="center"
         android:orientation="horizontal">
     </LinearLayout>
@@ -20,7 +20,7 @@
 
     <LinearLayout
         android:layout_width="match_parent"
-        android:layout_height="55dp"
+        android:layout_height="60dp"
         android:orientation="horizontal">
 
         <LinearLayout
