commit a7a7cc9c331435c54913e9f605211e67a2d05e1a
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sat Feb 1 01:16:34 2020 +0000

    Add a 5x5x5 cube.

diff --git a/src/main/java/org/distorted/magic/RubikActivity.java b/src/main/java/org/distorted/magic/RubikActivity.java
index f01020d9..2a10b1fe 100644
--- a/src/main/java/org/distorted/magic/RubikActivity.java
+++ b/src/main/java/org/distorted/magic/RubikActivity.java
@@ -39,7 +39,7 @@ public class RubikActivity extends AppCompatActivity
 {
             static final int DEFAULT_SIZE  = 3;
     private static final int SMALLEST_SIZE = 2;
-    private static final int[] button_ids  = {R.id.rubikSize2, R.id.rubikSize3, R.id.rubikSize4};
+    private static final int[] button_ids  = {R.id.rubikSize2, R.id.rubikSize3, R.id.rubikSize4, R.id.rubikSize5};
 
     public static final int MIN_SCRAMBLE =  1;
     public static final int DEF_SCRAMBLE =  3;
@@ -167,6 +167,14 @@ public class RubikActivity extends AppCompatActivity
       settings.show(getSupportFragmentManager(), null);
       }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public void Scores(View v)
+      {
+      RubikScores scores = new RubikScores();
+      scores.show(getSupportFragmentManager(), null);
+      }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public void About(View v)
diff --git a/src/main/java/org/distorted/magic/RubikRenderer.java b/src/main/java/org/distorted/magic/RubikRenderer.java
index f46ecdd9..217e9f60 100644
--- a/src/main/java/org/distorted/magic/RubikRenderer.java
+++ b/src/main/java/org/distorted/magic/RubikRenderer.java
@@ -229,82 +229,82 @@ public class RubikRenderer implements GLSurfaceView.Renderer, EffectListener
 // various things are done here delayed, 'after the next render' as not to be done mid-render and
 // cause artifacts.
 
-    @Override
-    public void onDrawFrame(GL10 glUnused) 
-      {
-      mScreen.render( System.currentTimeMillis() );
+   @Override
+   public void onDrawFrame(GL10 glUnused)
+     {
+     mScreen.render( System.currentTimeMillis() );
 
-      if( mSetQuatCurrent )
-        {
-        mSetQuatCurrent = false;
-        mView.setQuatCurrent();
-        }
+     if( mSetQuatCurrent )
+       {
+       mSetQuatCurrent = false;
+       mView.setQuatCurrent();
+       }
 
-      if( mSetQuatAccumulated )
-        {
-        mSetQuatAccumulated = false;
-        mView.setQuatAccumulated();
-        }
+     if( mSetQuatAccumulated )
+       {
+       mSetQuatAccumulated = false;
+       mView.setQuatAccumulated();
+       }
 
-      if( mFinishRotation )
-        {
-        mFinishRotation = false;
-        mCanRotate      = false;
-        mCanUI          = false;
-        mRotationFinishedID = mNewCube.finishRotationNow(this);
-        }
+     if( mFinishRotation )
+       {
+       mFinishRotation = false;
+       mCanRotate      = false;
+       mCanUI          = false;
+       mRotationFinishedID = mNewCube.finishRotationNow(this);
+       }
 
-      if( mRemoveRotation )
-        {
-        mRemoveRotation=false;
-        mNewCube.removeRotationNow();
-
-        boolean solved = mNewCube.isSolved();
-
-        if( solved && !mIsSolved )
-          {
-          mCanDrag        = false;
-          mCanRotate      = false;
-          mCanUI          = false;
-          doEffectNow( BaseEffect.Type.WIN );
-          }
-        else
-          {
-          mCanRotate = true;
-          mCanUI     = true;
-          }
-
-        mIsSolved = solved;
-        }
+     if( mRemoveRotation )
+       {
+       mRemoveRotation=false;
+       mNewCube.removeRotationNow();
 
-      if( mSizeChangeCube )
-        {
-        mSizeChangeCube = false;
-        mCanDrag        = false;
-        mCanRotate      = false;
-        mCanUI          = false;
-        createCubeNow(mNextCubeSize);
-        doEffectNow( BaseEffect.Type.SIZECHANGE );
-        }
+       boolean solved = mNewCube.isSolved();
 
-      if( mSolveCube )
-        {
-        mSolveCube      = false;
-        mCanDrag        = false;
-        mCanRotate      = false;
-        mCanUI          = false;
-        doEffectNow( BaseEffect.Type.SOLVE );
-        }
+       if( solved && !mIsSolved )
+         {
+         mCanDrag        = false;
+         mCanRotate      = false;
+         mCanUI          = false;
+         doEffectNow( BaseEffect.Type.WIN );
+         }
+       else
+         {
+         mCanRotate = true;
+         mCanUI     = true;
+         }
 
-      if( mScrambleCube )
-        {
-        mScrambleCube = false;
-        mCanDrag      = false;
-        mCanRotate    = false;
-        mCanUI        = false;
-        doEffectNow( BaseEffect.Type.SCRAMBLE );
-        }
-      }
+       mIsSolved = solved;
+       }
+
+     if( mSizeChangeCube )
+       {
+       mSizeChangeCube = false;
+       mCanDrag        = false;
+       mCanRotate      = false;
+       mCanUI          = false;
+       createCubeNow(mNextCubeSize);
+       doEffectNow( BaseEffect.Type.SIZECHANGE );
+       }
+
+     if( mSolveCube )
+       {
+       mSolveCube      = false;
+       mCanDrag        = false;
+       mCanRotate      = false;
+       mCanUI          = false;
+       doEffectNow( BaseEffect.Type.SOLVE );
+       }
+
+     if( mScrambleCube )
+       {
+       mScrambleCube = false;
+       mCanDrag      = false;
+       mCanRotate    = false;
+       mCanUI        = false;
+       doEffectNow( BaseEffect.Type.SCRAMBLE );
+       }
+     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
diff --git a/src/main/java/org/distorted/magic/RubikScores.java b/src/main/java/org/distorted/magic/RubikScores.java
new file mode 100644
index 00000000..afa88cb3
--- /dev/null
+++ b/src/main/java/org/distorted/magic/RubikScores.java
@@ -0,0 +1,29 @@
+///////////////////////////////////////////////////////////////////////////////////////////////////
+// Copyright 2019 Leszek Koltunski                                                               //
+//                                                                                               //
+// This file is part of Distorted.                                                               //
+//                                                                                               //
+// Distorted is free software: you can redistribute it and/or modify                             //
+// it under the terms of the GNU General Public License as published by                          //
+// the Free Software Foundation, either version 2 of the License, or                             //
+// (at your option) any later version.                                                           //
+//                                                                                               //
+// Distorted is distributed in the hope that it will be useful,                                  //
+// but WITHOUT ANY WARRANTY; without even the implied warranty of                                //
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the                                 //
+// GNU General Public License for more details.                                                  //
+//                                                                                               //
+// You should have received a copy of the GNU General Public License                             //
+// along with Distorted.  If not, see <http://www.gnu.org/licenses/>.                            //
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+package org.distorted.magic;
+
+import android.support.v7.app.AppCompatDialogFragment;
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+public class RubikScores extends AppCompatDialogFragment
+  {
+
+  }
diff --git a/src/main/res/drawable/button5.png b/src/main/res/drawable/button5.png
new file mode 100644
index 00000000..c6c5ff3a
Binary files /dev/null and b/src/main/res/drawable/button5.png differ
diff --git a/src/main/res/layout/main.xml b/src/main/res/layout/main.xml
index 2e74e049..af619fb0 100644
--- a/src/main/res/layout/main.xml
+++ b/src/main/res/layout/main.xml
@@ -6,94 +6,119 @@
 
     <LinearLayout
         android:layout_width="fill_parent"
-        android:layout_height="wrap_content"
+        android:layout_height="50dp"
         android:gravity="center|fill_horizontal" >
 
-         <Button
-            android:id="@+id/rubikSettings"
+        <Button
+            android:id="@+id/rubikScramble"
             android:layout_width="wrap_content"
-            android:layout_height="64dp"
+            android:layout_height="fill_parent"
             android:layout_weight="0.5"
-            android:onClick="Settings"
+            android:onClick="Scramble"
             android:paddingLeft="5dp"
             android:paddingRight="5dp"
-            android:text="@string/settings" />
+            android:text="@string/scramble" />
+
+        <org.distorted.component.HorizontalNumberPicker
+            android:id="@+id/rubikNumberPicker"
+            android:layout_width="192dp"
+            android:layout_height="fill_parent"/>
+
+        <Button
+            android:id="@+id/rubikSolve"
+            android:layout_width="wrap_content"
+            android:layout_height="fill_parent"
+            android:layout_weight="0.5"
+            android:onClick="Solve"
+            android:paddingLeft="5dp"
+            android:paddingRight="5dp"
+            android:text="@string/solve" />
+
+    </LinearLayout>
+
+    <org.distorted.magic.RubikSurfaceView
+        android:id="@+id/rubikSurfaceView"
+        android:layout_width="fill_parent"
+        android:layout_height="0dp"
+        android:layout_weight="1" />
+
+    <LinearLayout
+        android:layout_width="match_parent"
+        android:layout_height="wrap_content"
+        android:gravity="center" >
 
         <ImageButton
             android:id="@+id/rubikSize2"
             android:layout_width="64dp"
             android:layout_height="64dp"
             android:onClick="setSize"
-            android:paddingLeft="5dp"
-            android:paddingRight="5dp"
-            android:src="@drawable/button2"/>
+            android:paddingLeft="3dp"
+            android:paddingRight="3dp"
+            android:src="@drawable/button2" />
 
         <ImageButton
             android:id="@+id/rubikSize3"
             android:layout_width="64dp"
             android:layout_height="64dp"
             android:onClick="setSize"
-            android:paddingLeft="5dp"
-            android:paddingRight="5dp"
-            android:src="@drawable/button3"/>
+            android:paddingLeft="3dp"
+            android:paddingRight="3dp"
+            android:src="@drawable/button3" />
 
         <ImageButton
             android:id="@+id/rubikSize4"
             android:layout_width="64dp"
             android:layout_height="64dp"
             android:onClick="setSize"
-            android:paddingLeft="5dp"
-            android:paddingRight="5dp"
-            android:src="@drawable/button4"/>
+            android:paddingLeft="3dp"
+            android:paddingRight="3dp"
+            android:src="@drawable/button4" />
 
-        <Button
-            android:id="@+id/rubikAbout"
-            android:layout_width="wrap_content"
+        <ImageButton
+            android:id="@+id/rubikSize5"
+            android:layout_width="64dp"
             android:layout_height="64dp"
-            android:layout_weight="0.5"
-            android:onClick="About"
-            android:paddingLeft="5dp"
-            android:paddingRight="5dp"
-            android:text="@string/about" />
-
+            android:onClick="setSize"
+            android:paddingLeft="3dp"
+            android:paddingRight="3dp"
+            android:src="@drawable/button5" />
     </LinearLayout>
 
     <LinearLayout
         android:layout_width="fill_parent"
-        android:layout_height="64dp"
+        android:layout_height="50dp"
         android:gravity="center|fill_horizontal" >
 
         <Button
-            android:id="@+id/rubikScramble"
+            android:id="@+id/rubikSettings"
             android:layout_width="wrap_content"
             android:layout_height="fill_parent"
-            android:layout_weight="0.5"
-            android:onClick="Scramble"
-            android:paddingLeft="5dp"
-            android:paddingRight="5dp"
-            android:text="@string/scramble" />
+            android:layout_weight="1"
+            android:onClick="Settings"
+            android:paddingLeft="3dp"
+            android:paddingRight="3dp"
+            android:text="@string/settings" />
 
-        <org.distorted.component.HorizontalNumberPicker
-            android:id="@+id/rubikNumberPicker"
-            android:layout_width="192dp"
-            android:layout_height="fill_parent"/>
+        <Button
+            android:id="@+id/rubikScores"
+            android:layout_width="wrap_content"
+            android:layout_height="fill_parent"
+            android:layout_weight="1"
+            android:onClick="Scores"
+            android:paddingLeft="3dp"
+            android:paddingRight="3dp"
+            android:text="@string/scores" />
 
         <Button
-            android:id="@+id/rubikSolve"
+            android:id="@+id/rubikAbout"
             android:layout_width="wrap_content"
             android:layout_height="fill_parent"
-            android:layout_weight="0.5"
-            android:onClick="Solve"
-            android:paddingLeft="5dp"
-            android:paddingRight="5dp"
-            android:text="@string/solve" />
+            android:layout_weight="1"
+            android:onClick="About"
+            android:paddingLeft="3dp"
+            android:paddingRight="3dp"
+            android:text="@string/about" />
 
     </LinearLayout>
 
-    <org.distorted.magic.RubikSurfaceView
-        android:id="@+id/rubikSurfaceView"
-        android:layout_width="fill_parent"
-        android:layout_height="0dp"
-        android:layout_weight="1" />
-
 </LinearLayout>
diff --git a/src/main/res/layout/numberpicker.xml b/src/main/res/layout/numberpicker.xml
index 945bcbe3..3b5f868f 100644
--- a/src/main/res/layout/numberpicker.xml
+++ b/src/main/res/layout/numberpicker.xml
@@ -10,7 +10,7 @@
         android:layout_height="match_parent"
         android:layout_weight="1"
         android:text="-"
-        android:textSize="30sp" />
+        android:textSize="24sp" />
 
     <TextView
         android:id="@+id/textNumber"
@@ -18,7 +18,7 @@
         android:layout_height="match_parent"
         android:layout_weight="1"
         android:textAlignment="center"
-        android:textSize="46sp" />
+        android:textSize="36sp" />
 
     <Button
         android:id="@+id/buttonMore"
@@ -26,5 +26,5 @@
         android:layout_height="match_parent"
         android:layout_weight="1"
         android:text="+"
-        android:textSize="30sp" />
+        android:textSize="24sp" />
 </LinearLayout>
\ No newline at end of file
diff --git a/src/main/res/values/strings.xml b/src/main/res/values/strings.xml
index f44a5b08..ac184a95 100644
--- a/src/main/res/values/strings.xml
+++ b/src/main/res/values/strings.xml
@@ -5,6 +5,7 @@
     <string name="scramble">Scramble</string>
     <string name="solve">Solve</string>
     <string name="settings">Settings</string>
+    <string name="scores">Scores</string>
     <string name="about">About</string>
     <string name="save">SAVE</string>
     <string name="ok">OK</string>
