commit 31a9f38d1b788af0670ef81dceafef884a4e94a6
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sun Jul 5 00:07:01 2020 +0100

    Introduce HUGE ui version.

diff --git a/src/main/java/org/distorted/main/RubikActivity.java b/src/main/java/org/distorted/main/RubikActivity.java
index 7cfb59e9..bcd71712 100644
--- a/src/main/java/org/distorted/main/RubikActivity.java
+++ b/src/main/java/org/distorted/main/RubikActivity.java
@@ -313,14 +313,19 @@ public class RubikActivity extends AppCompatActivity
         //android.util.Log.e("view", "returning medium, mScrH="+mScreenHeight);
         return 1;
         }
+      if( mScreenHeight<1900 )
+        {
+        //android.util.Log.e("view", "returning bug, mScrH="+mScreenHeight);
+        return 2;
+        }
 
-      //android.util.Log.e("view", "returning big, mScrH="+mScreenHeight);
-      return 2;
+      //android.util.Log.e("view", "returning huge, mScrH="+mScreenHeight);
+      return 3;
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-    public static int getDrawable(int small, int medium, int big)
+    public static int getDrawable(int small, int medium, int big, int huge)
       {
       int size = getDrawableSize();
 
@@ -328,7 +333,8 @@ public class RubikActivity extends AppCompatActivity
         {
         case 0 : return small;
         case 1 : return medium;
-        default: return big;
+        case 2 : return big;
+        default: return huge;
         }
       }
 
diff --git a/src/main/java/org/distorted/objects/RubikObjectList.java b/src/main/java/org/distorted/objects/RubikObjectList.java
index 31dc1f5f..2d697845 100644
--- a/src/main/java/org/distorted/objects/RubikObjectList.java
+++ b/src/main/java/org/distorted/objects/RubikObjectList.java
@@ -36,10 +36,10 @@ public enum RubikObjectList
   {
   CUBE (
          new int[][] {
-                       {2 , 12, R.raw.cube2, R.drawable.ui_small_cube2, R.drawable.ui_medium_cube2, R.drawable.ui_big_cube2} ,
-                       {3 , 16, R.raw.cube3, R.drawable.ui_small_cube3, R.drawable.ui_medium_cube3, R.drawable.ui_big_cube3} ,
-                       {4 , 20, R.raw.cube4, R.drawable.ui_small_cube4, R.drawable.ui_medium_cube4, R.drawable.ui_big_cube4} ,
-                       {5 , 24, R.raw.cube5, R.drawable.ui_small_cube5, R.drawable.ui_medium_cube5, R.drawable.ui_big_cube5}
+                       {2 , 12, R.raw.cube2, R.drawable.ui_small_cube2, R.drawable.ui_medium_cube2, R.drawable.ui_big_cube2, R.drawable.ui_huge_cube2} ,
+                       {3 , 16, R.raw.cube3, R.drawable.ui_small_cube3, R.drawable.ui_medium_cube3, R.drawable.ui_big_cube3, R.drawable.ui_huge_cube3} ,
+                       {4 , 20, R.raw.cube4, R.drawable.ui_small_cube4, R.drawable.ui_medium_cube4, R.drawable.ui_big_cube4, R.drawable.ui_huge_cube4} ,
+                       {5 , 24, R.raw.cube5, R.drawable.ui_small_cube5, R.drawable.ui_medium_cube5, R.drawable.ui_big_cube5, R.drawable.ui_huge_cube5}
                      },
          RubikCube.class,
          new RubikCubeMovement()
@@ -47,9 +47,9 @@ public enum RubikObjectList
 
   PYRA (
          new int[][] {
-                       {3 , 10, R.raw.pyra3, R.drawable.ui_small_pyra3, R.drawable.ui_medium_pyra3, R.drawable.ui_big_pyra3} ,
-                       {4 , 15, R.raw.pyra4, R.drawable.ui_small_pyra4, R.drawable.ui_medium_pyra4, R.drawable.ui_big_pyra4} ,
-                       {5 , 20, R.raw.pyra5, R.drawable.ui_small_pyra5, R.drawable.ui_medium_pyra5, R.drawable.ui_big_pyra5}
+                       {3 , 10, R.raw.pyra3, R.drawable.ui_small_pyra3, R.drawable.ui_medium_pyra3, R.drawable.ui_big_pyra3, R.drawable.ui_huge_pyra3} ,
+                       {4 , 15, R.raw.pyra4, R.drawable.ui_small_pyra4, R.drawable.ui_medium_pyra4, R.drawable.ui_big_pyra4, R.drawable.ui_huge_pyra4} ,
+                       {5 , 20, R.raw.pyra5, R.drawable.ui_small_pyra5, R.drawable.ui_medium_pyra5, R.drawable.ui_big_pyra5, R.drawable.ui_huge_pyra5}
                      },
          RubikPyraminx.class,
          new RubikPyraminxMovement()
@@ -61,7 +61,7 @@ public enum RubikObjectList
   public static final int MAX_LEVEL;
   public static final int MAX_OBJECT_SIZE;
 
-  private final int[] mObjectSizes, mMaxLevels, mSmallIconIDs, mMediumIconIDs, mBigIconIDs, mResourceIDs;
+  private final int[] mObjectSizes, mMaxLevels, mSmallIconIDs, mMediumIconIDs, mBigIconIDs, mHugeIconIDs, mResourceIDs;
   private final Class<? extends RubikObject> mObjectClass;
   private final RubikObjectMovement mObjectMovementClass;
   private static final RubikObjectList[] objects;
@@ -282,6 +282,7 @@ public enum RubikObjectList
     mSmallIconIDs = new int[length];
     mMediumIconIDs= new int[length];
     mBigIconIDs   = new int[length];
+    mHugeIconIDs  = new int[length];
 
     for(int i=0; i<length; i++)
       {
@@ -291,6 +292,7 @@ public enum RubikObjectList
       mSmallIconIDs[i] = info[i][3];
       mMediumIconIDs[i]= info[i][4];
       mBigIconIDs[i]   = info[i][5];
+      mHugeIconIDs[i]  = info[i][6];
       }
 
     mObjectClass         = object;
@@ -321,7 +323,8 @@ public enum RubikObjectList
       {
       case 0 : return mSmallIconIDs;
       case 1 : return mMediumIconIDs;
-      default: return mBigIconIDs;
+      case 2 : return mBigIconIDs;
+      default: return mHugeIconIDs;
       }
     }
 
diff --git a/src/main/java/org/distorted/states/RubikStatePattern.java b/src/main/java/org/distorted/states/RubikStatePattern.java
index 3fdf2dbc..1bb7b964 100644
--- a/src/main/java/org/distorted/states/RubikStatePattern.java
+++ b/src/main/java/org/distorted/states/RubikStatePattern.java
@@ -203,7 +203,7 @@ public class RubikStatePattern extends RubikStateAbstract
     {
     int padding = (int)(width*RubikActivity.PADDING);
     int margin  = (int)(width*RubikActivity.MARGIN);
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_left,R.drawable.ui_medium_left, R.drawable.ui_big_left);
+    int icon = RubikActivity.getDrawable(R.drawable.ui_small_left,R.drawable.ui_medium_left, R.drawable.ui_big_left, R.drawable.ui_huge_left);
 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
     params.topMargin    = margin;
@@ -236,7 +236,7 @@ public class RubikStatePattern extends RubikStateAbstract
     {
     int padding = (int)(width*RubikActivity.PADDING);
     int margin  = (int)(width*RubikActivity.MARGIN);
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_right,R.drawable.ui_medium_right, R.drawable.ui_big_right);
+    int icon = RubikActivity.getDrawable(R.drawable.ui_small_right,R.drawable.ui_medium_right, R.drawable.ui_big_right, R.drawable.ui_huge_right);
 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT, 1.0f);
     params.topMargin    = margin;
diff --git a/src/main/java/org/distorted/states/RubikStatePlay.java b/src/main/java/org/distorted/states/RubikStatePlay.java
index 097e06c8..05e50f64 100644
--- a/src/main/java/org/distorted/states/RubikStatePlay.java
+++ b/src/main/java/org/distorted/states/RubikStatePlay.java
@@ -151,7 +151,7 @@ public class RubikStatePlay extends RubikStateAbstract implements AdapterView.On
     {
     int padding = (int)(width*RubikActivity.PADDING);
     int margin  = (int)(width*RubikActivity.MARGIN);
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_cube_menu,R.drawable.ui_medium_cube_menu, R.drawable.ui_big_cube_menu);
+    int icon = RubikActivity.getDrawable(R.drawable.ui_small_cube_menu,R.drawable.ui_medium_cube_menu, R.drawable.ui_big_cube_menu, R.drawable.ui_huge_cube_menu);
 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT, 1.2f);
     params.topMargin    = margin;
@@ -196,7 +196,7 @@ public class RubikStatePlay extends RubikStateAbstract implements AdapterView.On
     {
     int padding = (int)(width*RubikActivity.PADDING);
     int margin  = (int)(width*RubikActivity.MARGIN);
-    int spin = RubikActivity.getDrawable(R.drawable.ui_small_spinner,R.drawable.ui_big_spinner, R.drawable.ui_big_spinner);
+    int spin = RubikActivity.getDrawable(R.drawable.ui_small_spinner,R.drawable.ui_big_spinner, R.drawable.ui_big_spinner, R.drawable.ui_huge_spinner);
 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT, 1.0f);
     params.topMargin    = margin;
@@ -273,7 +273,7 @@ public class RubikStatePlay extends RubikStateAbstract implements AdapterView.On
     {
     int padding = (int)(width*RubikActivity.PADDING);
     int margin  = (int)(width*RubikActivity.MARGIN);
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_menu,R.drawable.ui_medium_menu, R.drawable.ui_big_menu);
+    int icon = RubikActivity.getDrawable(R.drawable.ui_small_menu,R.drawable.ui_medium_menu, R.drawable.ui_big_menu, R.drawable.ui_huge_menu);
 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT);
     params.topMargin    = margin;
@@ -309,7 +309,7 @@ public class RubikStatePlay extends RubikStateAbstract implements AdapterView.On
     int padding  = (int)(width*RubikActivity.PADDING);
     int margin   = (int)(width*RubikActivity.MARGIN);
     int widthBut = (int)(width/6);
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_cube_solve,R.drawable.ui_medium_cube_solve, R.drawable.ui_big_cube_solve);
+    int icon = RubikActivity.getDrawable(R.drawable.ui_small_cube_solve,R.drawable.ui_medium_cube_solve, R.drawable.ui_big_cube_solve, R.drawable.ui_huge_cube_solve);
 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(widthBut, LinearLayout.LayoutParams.MATCH_PARENT);
     params.topMargin    = margin;
@@ -340,7 +340,7 @@ public class RubikStatePlay extends RubikStateAbstract implements AdapterView.On
     int padding  = (int)(width*RubikActivity.PADDING);
     int margin   = (int)(width*RubikActivity.MARGIN);
     int widthBut = (int)(width/6);
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_cube_back,R.drawable.ui_medium_cube_back, R.drawable.ui_big_cube_back);
+    int icon = RubikActivity.getDrawable(R.drawable.ui_small_cube_back,R.drawable.ui_medium_cube_back, R.drawable.ui_big_cube_back, R.drawable.ui_huge_cube_back);
 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(widthBut, LinearLayout.LayoutParams.MATCH_PARENT);
     params.topMargin    = margin;
@@ -376,7 +376,7 @@ public class RubikStatePlay extends RubikStateAbstract implements AdapterView.On
     mObjectPopup.setContentView(layout);
     mObjectPopup.setFocusable(true);
     int margin = (int)(width*RubikActivity.LARGE_MARGIN);
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_cube2,R.drawable.ui_medium_cube2, R.drawable.ui_big_cube2);
+    int icon = RubikActivity.getDrawable(R.drawable.ui_small_cube2,R.drawable.ui_medium_cube2, R.drawable.ui_big_cube2, R.drawable.ui_huge_cube2);
 
     BitmapDrawable bd = (BitmapDrawable) act.getResources().getDrawable(icon);
     int cubeWidth  = bd.getIntrinsicWidth();
diff --git a/src/main/java/org/distorted/states/RubikStateReady.java b/src/main/java/org/distorted/states/RubikStateReady.java
index a6b79f7b..5a58fbe4 100644
--- a/src/main/java/org/distorted/states/RubikStateReady.java
+++ b/src/main/java/org/distorted/states/RubikStateReady.java
@@ -104,7 +104,7 @@ public class RubikStateReady extends RubikStateAbstract
     {
     int padding = (int)(width*RubikActivity.PADDING);
     int widthBut= (int)(width/6);
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_cube_back,R.drawable.ui_medium_cube_back, R.drawable.ui_big_cube_back);
+    int icon = RubikActivity.getDrawable(R.drawable.ui_small_cube_back,R.drawable.ui_medium_cube_back, R.drawable.ui_big_cube_back, R.drawable.ui_huge_cube_back);
 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(widthBut,LinearLayout.LayoutParams.MATCH_PARENT);
     mPrevButton = new ImageButton(act);
diff --git a/src/main/java/org/distorted/states/RubikStateSolution.java b/src/main/java/org/distorted/states/RubikStateSolution.java
index b5145fc1..3192677f 100644
--- a/src/main/java/org/distorted/states/RubikStateSolution.java
+++ b/src/main/java/org/distorted/states/RubikStateSolution.java
@@ -100,7 +100,7 @@ public class RubikStateSolution extends RubikStateAbstract implements RubikPreRe
     {
     int padding = (int)(width*RubikActivity.PADDING);
     int margin  = (int)(width*RubikActivity.MARGIN);
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_left,R.drawable.ui_medium_left, R.drawable.ui_big_left);
+    int icon = RubikActivity.getDrawable(R.drawable.ui_small_left,R.drawable.ui_medium_left, R.drawable.ui_big_left, R.drawable.ui_huge_left);
 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
     params.topMargin    = margin;
@@ -131,7 +131,7 @@ public class RubikStateSolution extends RubikStateAbstract implements RubikPreRe
     {
     int padding = (int)(width*RubikActivity.PADDING);
     int margin  = (int)(width*RubikActivity.MARGIN);
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_right,R.drawable.ui_medium_right, R.drawable.ui_big_right);
+    int icon = RubikActivity.getDrawable(R.drawable.ui_small_right,R.drawable.ui_medium_right, R.drawable.ui_big_right, R.drawable.ui_huge_right);
 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT, 1.0f);
     params.topMargin    = margin;
diff --git a/src/main/java/org/distorted/states/RubikStateSolving.java b/src/main/java/org/distorted/states/RubikStateSolving.java
index 5de1dcdb..90943459 100644
--- a/src/main/java/org/distorted/states/RubikStateSolving.java
+++ b/src/main/java/org/distorted/states/RubikStateSolving.java
@@ -150,7 +150,7 @@ public class RubikStateSolving extends RubikStateAbstract implements RubikPreRen
     int padding = (int)(width*RubikActivity.PADDING);
     int margin  = (int)(width*RubikActivity.MARGIN);
     int widthBut= (int)(width/6);
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_cube_back,R.drawable.ui_medium_cube_back, R.drawable.ui_big_cube_back);
+    int icon = RubikActivity.getDrawable(R.drawable.ui_small_cube_back,R.drawable.ui_medium_cube_back, R.drawable.ui_big_cube_back, R.drawable.ui_huge_cube_back);
 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(widthBut,LinearLayout.LayoutParams.MATCH_PARENT);
     params.topMargin    = margin;
diff --git a/src/main/res/drawable-nodpi/ui_huge_cube2.png b/src/main/res/drawable-nodpi/ui_huge_cube2.png
new file mode 100644
index 00000000..1d541de4
Binary files /dev/null and b/src/main/res/drawable-nodpi/ui_huge_cube2.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_cube3.png b/src/main/res/drawable-nodpi/ui_huge_cube3.png
new file mode 100644
index 00000000..1000bb32
Binary files /dev/null and b/src/main/res/drawable-nodpi/ui_huge_cube3.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_cube4.png b/src/main/res/drawable-nodpi/ui_huge_cube4.png
new file mode 100644
index 00000000..89ef3641
Binary files /dev/null and b/src/main/res/drawable-nodpi/ui_huge_cube4.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_cube5.png b/src/main/res/drawable-nodpi/ui_huge_cube5.png
new file mode 100644
index 00000000..d44cb93c
Binary files /dev/null and b/src/main/res/drawable-nodpi/ui_huge_cube5.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_cube_back.png b/src/main/res/drawable-nodpi/ui_huge_cube_back.png
new file mode 100644
index 00000000..5fbe8dbb
Binary files /dev/null and b/src/main/res/drawable-nodpi/ui_huge_cube_back.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_cube_menu.png b/src/main/res/drawable-nodpi/ui_huge_cube_menu.png
new file mode 100644
index 00000000..24df9792
Binary files /dev/null and b/src/main/res/drawable-nodpi/ui_huge_cube_menu.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_cube_solve.png b/src/main/res/drawable-nodpi/ui_huge_cube_solve.png
new file mode 100644
index 00000000..9c23af10
Binary files /dev/null and b/src/main/res/drawable-nodpi/ui_huge_cube_solve.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_down.png b/src/main/res/drawable-nodpi/ui_huge_down.png
new file mode 100644
index 00000000..a1a29685
Binary files /dev/null and b/src/main/res/drawable-nodpi/ui_huge_down.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_left.png b/src/main/res/drawable-nodpi/ui_huge_left.png
new file mode 100644
index 00000000..988e21a9
Binary files /dev/null and b/src/main/res/drawable-nodpi/ui_huge_left.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_menu.png b/src/main/res/drawable-nodpi/ui_huge_menu.png
new file mode 100644
index 00000000..0d44f02f
Binary files /dev/null and b/src/main/res/drawable-nodpi/ui_huge_menu.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_pyra2.png b/src/main/res/drawable-nodpi/ui_huge_pyra2.png
new file mode 100644
index 00000000..2fcf22ca
Binary files /dev/null and b/src/main/res/drawable-nodpi/ui_huge_pyra2.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_pyra3.png b/src/main/res/drawable-nodpi/ui_huge_pyra3.png
new file mode 100644
index 00000000..3dcfc193
Binary files /dev/null and b/src/main/res/drawable-nodpi/ui_huge_pyra3.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_pyra4.png b/src/main/res/drawable-nodpi/ui_huge_pyra4.png
new file mode 100644
index 00000000..0e55237c
Binary files /dev/null and b/src/main/res/drawable-nodpi/ui_huge_pyra4.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_pyra5.png b/src/main/res/drawable-nodpi/ui_huge_pyra5.png
new file mode 100644
index 00000000..7a83df5b
Binary files /dev/null and b/src/main/res/drawable-nodpi/ui_huge_pyra5.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_right.png b/src/main/res/drawable-nodpi/ui_huge_right.png
new file mode 100644
index 00000000..8e854c92
Binary files /dev/null and b/src/main/res/drawable-nodpi/ui_huge_right.png differ
diff --git a/src/main/res/drawable/ui_huge_spinner.xml b/src/main/res/drawable/ui_huge_spinner.xml
new file mode 100644
index 00000000..59342199
--- /dev/null
+++ b/src/main/res/drawable/ui_huge_spinner.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+    <item>
+        <layer-list>
+            <item>
+                <shape android:shape="rectangle">
+                    <solid android:color="@color/light_grey" />
+                    <corners android:radius="6dip" />
+                    <stroke
+                        android:color="@color/grey"
+                        android:width="2dp"/>
+                </shape>
+            </item>
+            <item >
+                <bitmap android:gravity="center_vertical|right" android:src="@drawable/ui_huge_down"/>
+            </item>
+        </layer-list>
+    </item>
+</selector>
\ No newline at end of file
