commit 464ade4a54c2715ffbc336bb39fd88ccbd97749f
Author: leszek <leszek@koltunski.pl>
Date:   Thu Oct 12 16:24:55 2023 +0200

    Unify the (small,medium,big,huge) UI graphics.

diff --git a/build.gradle b/build.gradle
index 9977b7cb..84c1f192 100644
--- a/build.gradle
+++ b/build.gradle
@@ -56,7 +56,7 @@ dependencies {
     implementation ('com.google.android.play:core:1.10.3')
     implementation ('androidx.appcompat:appcompat:1.6.1')
     implementation ('androidx.work:work-runtime:2.8.1')
-    implementation ('com.google.android.material:material:1.9.0')
+    implementation ('com.google.android.material:material:1.10.0')
     //implementation "com.android.billingclient:billing:5.1.0"
     implementation project(path: ':distorted-component-jsons')
     implementation project(path: ':distorted-component-dmesh')
diff --git a/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java b/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java
index 791147b1..75951b0c 100644
--- a/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java
+++ b/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java
@@ -346,29 +346,4 @@ public class BandagedCreatorActivity extends AppCompatActivity
       {
       return mObjectOrdinal;
       }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-    public static int getDrawableSize()
-      {
-      if( mScreenHeight<1000 ) return 0;
-      if( mScreenHeight<1600 ) return 1;
-      if( mScreenHeight<1900 ) return 2;
-      return 3;
-      }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-    public static int getDrawable(int small, int medium, int big, int huge)
-      {
-      int size = getDrawableSize();
-
-      switch(size)
-        {
-        case 0 : return small;
-        case 1 : return medium;
-        case 2 : return big;
-        default: return huge;
-        }
-      }
 }
diff --git a/src/main/java/org/distorted/bandaged/BandagedCreatorObjectView.java b/src/main/java/org/distorted/bandaged/BandagedCreatorObjectView.java
index 06ae7339..2b9a8cf4 100644
--- a/src/main/java/org/distorted/bandaged/BandagedCreatorObjectView.java
+++ b/src/main/java/org/distorted/bandaged/BandagedCreatorObjectView.java
@@ -52,10 +52,7 @@ public class BandagedCreatorObjectView
 
     final int icon = R.drawable.ui_trash;
     LinearLayout.LayoutParams paramsB = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,3.0f);
-    TransparentImageButton delButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, paramsB);
-
-    int iconHeight = (int)(RATIO_ICON*(BandagedCreatorActivity.RATIO_SCROLL-2*RubikActivity.PADDING)*height);
-    delButton.setIconSize(iconHeight);
+    TransparentImageButton delButton = new TransparentImageButton(act,icon,paramsB);
 
     bottom.addView(plaButton);
     bottom.addView(delButton);
diff --git a/src/main/java/org/distorted/bandaged/BandagedCreatorScreen.java b/src/main/java/org/distorted/bandaged/BandagedCreatorScreen.java
index 109ad535..f4ecd61a 100644
--- a/src/main/java/org/distorted/bandaged/BandagedCreatorScreen.java
+++ b/src/main/java/org/distorted/bandaged/BandagedCreatorScreen.java
@@ -66,9 +66,8 @@ public class BandagedCreatorScreen implements AdapterView.OnItemSelectedListener
 
   private void setupBackButton(final BandagedCreatorActivity act)
     {
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_smallback,R.drawable.ui_medium_smallback, R.drawable.ui_big_smallback, R.drawable.ui_huge_smallback);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
-    mBackButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mBackButton = new TransparentImageButton(act,R.drawable.ui_huge_smallback,params);
 
     mBackButton.setOnClickListener( new View.OnClickListener()
       {
@@ -84,9 +83,8 @@ public class BandagedCreatorScreen implements AdapterView.OnItemSelectedListener
 
   private void setupDoneButton(final BandagedCreatorActivity act)
     {
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_done,R.drawable.ui_medium_done, R.drawable.ui_big_done, R.drawable.ui_huge_done);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
-    mDoneButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mDoneButton = new TransparentImageButton(act,R.drawable.ui_huge_done,params);
 
     mDoneButton.setOnClickListener( new View.OnClickListener()
       {
@@ -103,9 +101,8 @@ public class BandagedCreatorScreen implements AdapterView.OnItemSelectedListener
 
   private void setupResetButton(final BandagedCreatorActivity 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 = new TransparentImageButton(act,R.drawable.ui_huge_reset,params);
 
     mResetButton.setOnClickListener( new View.OnClickListener()
       {
diff --git a/src/main/java/org/distorted/bandaged/BandagedPlayActivity.java b/src/main/java/org/distorted/bandaged/BandagedPlayActivity.java
index be3b6013..3292efb9 100644
--- a/src/main/java/org/distorted/bandaged/BandagedPlayActivity.java
+++ b/src/main/java/org/distorted/bandaged/BandagedPlayActivity.java
@@ -278,31 +278,6 @@ public class BandagedPlayActivity extends AppCompatActivity
       return mScreen;
       }
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-    public static int getDrawableSize()
-      {
-      if( mScreenHeight<1000 ) return 0;
-      if( mScreenHeight<1600 ) return 1;
-      if( mScreenHeight<1900 ) return 2;
-      return 3;
-      }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-    public static int getDrawable(int small, int medium, int big, int huge)
-      {
-      int size = getDrawableSize();
-
-      switch(size)
-        {
-        case 0 : return small;
-        case 1 : return medium;
-        case 2 : return big;
-        default: return huge;
-        }
-      }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public boolean isVertical()
diff --git a/src/main/java/org/distorted/bandaged/BandagedPlayScreen.java b/src/main/java/org/distorted/bandaged/BandagedPlayScreen.java
index cd4cf5cb..1b2fd34b 100644
--- a/src/main/java/org/distorted/bandaged/BandagedPlayScreen.java
+++ b/src/main/java/org/distorted/bandaged/BandagedPlayScreen.java
@@ -45,9 +45,8 @@ public class BandagedPlayScreen
 
   private void setupBackButton(final BandagedPlayActivity act)
     {
-    int icon = BandagedPlayActivity.getDrawable(R.drawable.ui_small_smallback,R.drawable.ui_medium_smallback, R.drawable.ui_big_smallback, R.drawable.ui_huge_smallback);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
-    mBackButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mBackButton = new TransparentImageButton(act,R.drawable.ui_huge_smallback,params);
 
     mBackButton.setOnClickListener( new View.OnClickListener()
       {
@@ -63,9 +62,8 @@ public class BandagedPlayScreen
 
   private void setupSolveButton(final BandagedPlayActivity act)
     {
-    int icon = BandagedPlayActivity.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(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mSolveButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE,params);
+    mSolveButton = new TransparentImageButton(act,R.drawable.ui_huge_cube_solve,params);
 
     mSolveButton.setOnClickListener( new View.OnClickListener()
       {
@@ -83,9 +81,8 @@ public class BandagedPlayScreen
 
   private void setupScrambleButton(final BandagedPlayActivity act)
     {
-    int icon = BandagedPlayActivity.getDrawable(R.drawable.ui_small_cube_scramble,R.drawable.ui_medium_cube_scramble, R.drawable.ui_big_cube_scramble, R.drawable.ui_huge_cube_scramble);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mScrambleButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mScrambleButton = new TransparentImageButton(act,R.drawable.ui_huge_cube_scramble,params);
 
     mScrambleButton.setOnClickListener( new View.OnClickListener()
       {
diff --git a/src/main/java/org/distorted/config/ConfigActivity.java b/src/main/java/org/distorted/config/ConfigActivity.java
index 8d03138d..f2755092 100644
--- a/src/main/java/org/distorted/config/ConfigActivity.java
+++ b/src/main/java/org/distorted/config/ConfigActivity.java
@@ -261,41 +261,6 @@ public class ConfigActivity extends AppCompatActivity
       return view.getObjectControl();
       }
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-    public static int getDrawableSize()
-      {
-      if( mScreenHeight<1000 )
-        {
-        return 0;
-        }
-      if( mScreenHeight<1600 )
-        {
-        return 1;
-        }
-      if( mScreenHeight<1900 )
-        {
-        return 2;
-        }
-
-      return 3;
-      }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-    public static int getDrawable(int small, int medium, int big, int huge)
-      {
-      int size = getDrawableSize();
-
-      switch(size)
-        {
-        case 0 : return small;
-        case 1 : return medium;
-        case 2 : return big;
-        default: return huge;
-        }
-      }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public boolean isVertical()
diff --git a/src/main/java/org/distorted/config/ConfigScreen.java b/src/main/java/org/distorted/config/ConfigScreen.java
index 182d75ec..6055bd2e 100644
--- a/src/main/java/org/distorted/config/ConfigScreen.java
+++ b/src/main/java/org/distorted/config/ConfigScreen.java
@@ -103,9 +103,8 @@ public class ConfigScreen
 
   private void setupBackButton(final ConfigActivity act)
     {
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_smallback,R.drawable.ui_medium_smallback, R.drawable.ui_big_smallback, R.drawable.ui_huge_smallback);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
-    mBackButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mBackButton = new TransparentImageButton(act,R.drawable.ui_huge_smallback,params);
 
     mBackButton.setOnClickListener( new View.OnClickListener()
       {
@@ -122,9 +121,8 @@ public class ConfigScreen
   private void setupObjectButton(final ConfigActivity act, final int width, final int height)
     {
     final int margin= (int)(height*MARGIN);
-    final 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);
-    mObjectButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mObjectButton = new TransparentImageButton(act,R.drawable.ui_huge_cube_menu,params);
 
     mObjectButton.setOnClickListener( new View.OnClickListener()
       {
@@ -215,9 +213,8 @@ public class ConfigScreen
 
   private void setupPrevButton(final ConfigActivity act)
     {
-    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);
-    mPrevButton = new TransparentImageButton(act,icon,TransparentImageButton.GRAVITY_MIDDLE,params);
+    mPrevButton = new TransparentImageButton(act,R.drawable.ui_huge_left,params);
 
     mPrevButton.setOnClickListener( new View.OnClickListener()
       {
@@ -235,9 +232,8 @@ public class ConfigScreen
 
   private void setupNextButton(final ConfigActivity act)
     {
-    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);
-    mNextButton = new TransparentImageButton(act,icon,TransparentImageButton.GRAVITY_MIDDLE,params);
+    mNextButton = new TransparentImageButton(act,R.drawable.ui_huge_right,params);
 
     mNextButton.setOnClickListener( new View.OnClickListener()
       {
diff --git a/src/main/java/org/distorted/helpers/LockController.java b/src/main/java/org/distorted/helpers/LockController.java
index 5d4d9af7..891f0811 100644
--- a/src/main/java/org/distorted/helpers/LockController.java
+++ b/src/main/java/org/distorted/helpers/LockController.java
@@ -17,7 +17,6 @@ import android.view.View;
 import android.widget.LinearLayout;
 
 import org.distorted.main.R;
-import org.distorted.main.RubikActivity;
 import org.distorted.objectlib.main.ObjectControl;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -46,37 +45,14 @@ public class LockController
     {
     control.toggleLock();
     boolean locked = control.retLocked();
-    mLockButton.setIconResource(getLockIcon(locked,false));
+    mLockButton.setImageResource(getLockIcon(locked,false));
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private int getLockIcon(boolean locked, boolean red)
     {
-    if( locked )
-      {
-      if( red )
-        {
-        return RubikActivity.getDrawable(R.drawable.ui_small_locked_red,
-                                         R.drawable.ui_medium_locked_red,
-                                         R.drawable.ui_big_locked_red,
-                                         R.drawable.ui_huge_locked_red);
-        }
-      else
-        {
-        return RubikActivity.getDrawable(R.drawable.ui_small_locked,
-                                         R.drawable.ui_medium_locked,
-                                         R.drawable.ui_big_locked,
-                                         R.drawable.ui_huge_locked);
-        }
-      }
-    else
-      {
-      return RubikActivity.getDrawable(R.drawable.ui_small_unlocked,
-                                       R.drawable.ui_medium_unlocked,
-                                       R.drawable.ui_big_unlocked,
-                                       R.drawable.ui_huge_unlocked);
-      }
+    return locked ? (red? R.drawable.ui_huge_locked_red : R.drawable.ui_huge_locked) : R.drawable.ui_huge_unlocked;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -89,7 +65,7 @@ public class LockController
       public void run()
         {
         if( mLockButton!=null )
-          mLockButton.setIconResource(getLockIcon(locked,red));
+          mLockButton.setImageResource(getLockIcon(locked,red));
         }
       });
     }
@@ -145,7 +121,7 @@ public class LockController
     boolean locked = control.retLocked();
     final int icon = getLockIcon(locked,false);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mLockButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mLockButton = new TransparentImageButton(act,icon,params);
 
     mLockButton.setOnClickListener( new View.OnClickListener()
       {
@@ -167,7 +143,7 @@ public class LockController
       public void run()
         {
         if( mLockButton!=null )
-          mLockButton.setIconResource(getLockIcon(locked,false));
+          mLockButton.setImageResource(getLockIcon(locked,false));
         }
       });
     }
diff --git a/src/main/java/org/distorted/helpers/MovesController.java b/src/main/java/org/distorted/helpers/MovesController.java
index 37e458ed..26370e38 100644
--- a/src/main/java/org/distorted/helpers/MovesController.java
+++ b/src/main/java/org/distorted/helpers/MovesController.java
@@ -20,7 +20,6 @@ import org.distorted.objectlib.helpers.MovesFinished;
 import org.distorted.objectlib.main.ObjectControl;
 
 import org.distorted.main.R;
-import org.distorted.main.RubikActivity;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -59,20 +58,7 @@ public class MovesController implements MovesFinished
 
   private int getPrevIcon(boolean on)
     {
-    if( on )
-      {
-      return 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);
-      }
-    else
-      {
-      return RubikActivity.getDrawable(R.drawable.ui_small_cube_grey,
-                                       R.drawable.ui_medium_cube_grey,
-                                       R.drawable.ui_big_cube_grey,
-                                       R.drawable.ui_huge_cube_grey);
-      }
+    return on ? R.drawable.ui_huge_cube_back : R.drawable.ui_huge_cube_grey;
     }
 
 //////////////////////////////////////////////////////////////////////////////////////////////////
@@ -116,7 +102,7 @@ public class MovesController implements MovesFinished
       public void run()
         {
         if( mPrevButton!=null )
-          mPrevButton.setIconResource(getPrevIcon(on));
+          mPrevButton.setImageResource(getPrevIcon(on));
         }
       });
     }
@@ -158,7 +144,7 @@ public class MovesController implements MovesFinished
     {
     final int icon = getPrevIcon( !mMoves.isEmpty() );
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mPrevButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mPrevButton = new TransparentImageButton(act,icon,params);
 
     mPrevButton.setOnClickListener( new View.OnClickListener()
       {
diff --git a/src/main/java/org/distorted/helpers/TransparentImageButton.java b/src/main/java/org/distorted/helpers/TransparentImageButton.java
index 1de4e81b..05c014f1 100644
--- a/src/main/java/org/distorted/helpers/TransparentImageButton.java
+++ b/src/main/java/org/distorted/helpers/TransparentImageButton.java
@@ -14,34 +14,21 @@ import android.content.Context;
 import android.util.TypedValue;
 import android.widget.LinearLayout;
 
-import com.google.android.material.button.MaterialButton;
+import androidx.appcompat.widget.AppCompatImageButton;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 @SuppressLint("ViewConstructor")
-public class TransparentImageButton extends MaterialButton
+public class TransparentImageButton extends AppCompatImageButton
 {
-  public static final int GRAVITY_START  = 0;
-  public static final int GRAVITY_MIDDLE = 1;
-  public static final int GRAVITY_END    = 2;
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-  public TransparentImageButton(Context context, int icon, int gravity, LinearLayout.LayoutParams params)
+  public TransparentImageButton(Context context, int icon, LinearLayout.LayoutParams params)
     {
     super(context);
 
     setLayoutParams(params);
     setPadding(0,0,0,0);
-    setIconResource(icon);
-    setIconTint(null);
-
-    switch(gravity)
-      {
-      case GRAVITY_START : setIconGravity(MaterialButton.ICON_GRAVITY_START     ); break;
-      case GRAVITY_MIDDLE: setIconGravity(MaterialButton.ICON_GRAVITY_TEXT_START); break;
-      case GRAVITY_END   : setIconGravity(MaterialButton.ICON_GRAVITY_END       ); break;
-      }
+    setImageResource(icon);
+    setScaleType(ScaleType.FIT_CENTER);
 
     TypedValue outValue = new TypedValue();
     context.getTheme().resolveAttribute(android.R.attr.selectableItemBackgroundBorderless, outValue, true);
diff --git a/src/main/java/org/distorted/main/RubikActivity.java b/src/main/java/org/distorted/main/RubikActivity.java
index 068d0b59..384cad39 100644
--- a/src/main/java/org/distorted/main/RubikActivity.java
+++ b/src/main/java/org/distorted/main/RubikActivity.java
@@ -68,19 +68,21 @@ public class RubikActivity extends AppCompatActivity
     public static final boolean SHOW_IAP_DEBUG        = true;
     public static final boolean USE_IAP               = false;
 
-    public static final float PADDING             = 0.01f;
+    public static final float PADDING             = 0.010f;
     public static final float SMALL_MARGIN        = 0.004f;
-    public static final float BUTTON_TEXT_SIZE    = 0.05f;
-    public static final float TITLE_TEXT_SIZE     = 0.06f;
-    public static final float PATTERN_GROUP_TEXT  = 0.03f;
-    public static final float PATTERN_CHILD_TEXT  = 0.02f;
+    public static final float BUTTON_TEXT_SIZE    = 0.050f;
+    public static final float TITLE_TEXT_SIZE     = 0.060f;
+    public static final float PATTERN_GROUP_TEXT  = 0.030f;
+    public static final float PATTERN_CHILD_TEXT  = 0.020f;
     public static final float SCORES_LEVEL_TEXT   = 0.035f;
     public static final float SCORES_ITEM_TEXT    = 0.025f;
     public static final float TAB_WIDTH           = 0.066f;
     public static final float TAB_HEIGHT          = 0.066f;
     public static final float POPUP_PADDING       = 0.028f;
     public static final float POPUP_MARGIN        = 0.016f;
-    public static final float RATIO_BAR           = 0.10f;
+    public static final float POPUP_BOTTOM        = 0.090f;
+    public static final float BUTT_PAD            = 0.020f;
+    public static final float RATIO_BAR           = 0.100f;
 
     public static final int FLAGS =  View.SYSTEM_UI_FLAG_LAYOUT_HIDE_NAVIGATION
                                    | View.SYSTEM_UI_FLAG_LAYOUT_FULLSCREEN
@@ -616,31 +618,6 @@ public class RubikActivity extends AppCompatActivity
       control.changeIfDifferent(ordinal,name,meshState,iconMode,asset);
       }
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-    public static int getDrawableSize()
-      {
-      if( mScreenHeight<1000 ) return 0;
-      if( mScreenHeight<1600 ) return 1;
-      if( mScreenHeight<1900 ) return 2;
-      return 3;
-      }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-    public static int getDrawable(int small, int medium, int big, int huge)
-      {
-      int size = getDrawableSize();
-
-      switch(size)
-        {
-        case 0 : return small;
-        case 1 : return medium;
-        case 2 : return big;
-        default: return huge;
-        }
-      }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public void acceptPrivacy()
diff --git a/src/main/java/org/distorted/purchase/PurchaseActivity.java b/src/main/java/org/distorted/purchase/PurchaseActivity.java
index b57858f4..48ceb3fe 100644
--- a/src/main/java/org/distorted/purchase/PurchaseActivity.java
+++ b/src/main/java/org/distorted/purchase/PurchaseActivity.java
@@ -277,31 +277,6 @@ public class PurchaseActivity extends AppCompatActivity
       mScreen.blockUI();
       }
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-    public static int getDrawableSize()
-      {
-      if( mScreenHeight<1000 ) return 0;
-      if( mScreenHeight<1600 ) return 1;
-      if( mScreenHeight<1900 ) return 2;
-      return 3;
-      }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-    public static int getDrawable(int small, int medium, int big, int huge)
-      {
-      int size = getDrawableSize();
-
-      switch(size)
-        {
-        case 0 : return small;
-        case 1 : return medium;
-        case 2 : return big;
-        default: return huge;
-        }
-      }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     int getObjectPrice()
diff --git a/src/main/java/org/distorted/purchase/PurchaseScreen.java b/src/main/java/org/distorted/purchase/PurchaseScreen.java
index e7fc91ca..1ecd222e 100644
--- a/src/main/java/org/distorted/purchase/PurchaseScreen.java
+++ b/src/main/java/org/distorted/purchase/PurchaseScreen.java
@@ -14,7 +14,6 @@ import android.widget.LinearLayout;
 
 import org.distorted.helpers.TransparentImageButton;
 import org.distorted.main.R;
-import org.distorted.main.RubikActivity;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -34,9 +33,8 @@ public class PurchaseScreen
 
   private void setupBackButton(final PurchaseActivity act)
     {
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_smallback,R.drawable.ui_medium_smallback, R.drawable.ui_big_smallback, R.drawable.ui_huge_smallback);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT);
-    mBackButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mBackButton = new TransparentImageButton(act,R.drawable.ui_huge_smallback,params);
 
     mBackButton.setOnClickListener( new View.OnClickListener()
       {
diff --git a/src/main/java/org/distorted/screens/RubikScreenDone.java b/src/main/java/org/distorted/screens/RubikScreenDone.java
index e81133f4..da48c559 100644
--- a/src/main/java/org/distorted/screens/RubikScreenDone.java
+++ b/src/main/java/org/distorted/screens/RubikScreenDone.java
@@ -76,9 +76,8 @@ public class RubikScreenDone extends RubikScreenAbstract
 
   private void setupBackButton(final RubikActivity act)
     {
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_back,R.drawable.ui_medium_back, R.drawable.ui_big_back, R.drawable.ui_huge_back);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mBackButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mBackButton = new TransparentImageButton(act,R.drawable.ui_huge_back,params);
 
     mBackButton.setOnClickListener( new View.OnClickListener()
       {
diff --git a/src/main/java/org/distorted/screens/RubikScreenPattern.java b/src/main/java/org/distorted/screens/RubikScreenPattern.java
index 0fe656fd..1ebe11f8 100644
--- a/src/main/java/org/distorted/screens/RubikScreenPattern.java
+++ b/src/main/java/org/distorted/screens/RubikScreenPattern.java
@@ -132,9 +132,8 @@ public class RubikScreenPattern extends RubikScreenAbstract
 
   private void setupBackButton(final RubikActivity act)
     {
-    final int icon = RubikActivity.getDrawable(R.drawable.ui_small_back,R.drawable.ui_medium_back, R.drawable.ui_big_back, R.drawable.ui_huge_back);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mBackButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mBackButton = new TransparentImageButton(act,R.drawable.ui_huge_back,params);
 
     mBackButton.setOnClickListener( new View.OnClickListener()
       {
@@ -152,9 +151,8 @@ public class RubikScreenPattern extends RubikScreenAbstract
 
   private void setupPrevButton(final RubikActivity act)
     {
-    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);
-    mPrevButton = new TransparentImageButton(act,icon,TransparentImageButton.GRAVITY_MIDDLE,params);
+    mPrevButton = new TransparentImageButton(act,R.drawable.ui_huge_left,params);
 
     mPrevButton.setOnClickListener( new View.OnClickListener()
       {
@@ -174,9 +172,8 @@ public class RubikScreenPattern extends RubikScreenAbstract
 
   private void setupNextButton(final RubikActivity act)
     {
-    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);
-    mNextButton = new TransparentImageButton(act,icon,TransparentImageButton.GRAVITY_MIDDLE,params);
+    mNextButton = new TransparentImageButton(act,R.drawable.ui_huge_right,params);
 
     mNextButton.setOnClickListener( new View.OnClickListener()
       {
diff --git a/src/main/java/org/distorted/screens/RubikScreenPlay.java b/src/main/java/org/distorted/screens/RubikScreenPlay.java
index 225c2753..9c3ec901 100644
--- a/src/main/java/org/distorted/screens/RubikScreenPlay.java
+++ b/src/main/java/org/distorted/screens/RubikScreenPlay.java
@@ -22,6 +22,7 @@ import android.util.TypedValue;
 import android.view.Gravity;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.view.ViewGroup;
 import android.widget.Button;
 import android.widget.GridLayout;
 import android.widget.ImageButton;
@@ -59,6 +60,8 @@ import static org.distorted.main.RubikActivity.USE_IAP;
 
 public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Updatee
   {
+  private static final int MP = LinearLayout.LayoutParams.MATCH_PARENT;
+
   private static final float MENU_BUTTON_HEIGHT  = 0.068f;
   private static final float MENU_TEXT_SIZE      = 0.024f;
   private static final float MENU_MARGIN         = 0.008f;
@@ -98,7 +101,6 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
     mScreenWidth  = act.getScreenWidthInPixels();
     mScreenHeight = act.getScreenHeightInPixels();
     mUpperBarHeight = act.getHeightUpperBar();
-
     mMenuButtonHeight = (int)(mScreenHeight*MENU_BUTTON_HEIGHT);
     mMenuTextSize     = (int)(mScreenHeight*MENU_TEXT_SIZE);
 
@@ -125,9 +127,8 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
   private void setupObjectButton(final RubikActivity act, final float width)
     {
     final int margin  = (int)(width*RubikActivity.SMALL_MARGIN);
-    final 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.0f);
-    mObjButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(MP,MP,1.0f);
+    mObjButton = new TransparentImageButton(act, R.drawable.ui_huge_cube_menu,params);
 
     mObjButton.setOnClickListener( new View.OnClickListener()
       {
@@ -156,9 +157,8 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
 
   private void setupMenuButton(final RubikActivity act, final float width, final float height)
     {
-    final 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,1.0f);
-    mMenuButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(MP,MP,1.0f);
+    mMenuButton = new TransparentImageButton(act, R.drawable.ui_huge_menu,params);
 
     mMenuButton.setOnClickListener( new View.OnClickListener()
       {
@@ -193,12 +193,17 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
     int cubeSize = (int)( (Math.min(width,(int)(height*0.7f))) / 9 );
     int margin   = (int)(height*RubikActivity.POPUP_MARGIN);
     int padding  = (int)(height*RubikActivity.POPUP_PADDING);
+    int botHeight= (int)(height*RubikActivity.POPUP_BOTTOM);
     mObjectSize  = (int)(cubeSize + 2*margin + 0.5f);
     mMaxRowCount = (int)((height-1.8f*mUpperBarHeight)/mObjectSize);
 
     LinearLayout view = (LinearLayout)inflate( act, R.layout.popup_object, null);
     GridLayout objectGrid = view.findViewById(R.id.objectGrid);
     RelativeLayout bottomLayout = view.findViewById(R.id.bottomLayout);
+
+    ViewGroup.LayoutParams params = bottomLayout.getLayoutParams();
+    params.height = botHeight;
+
     setupBottomLayout(act,bottomLayout);
 
     PopupCreator.createObjectGrid(objectGrid,act,mRowCount,mColCount,numObjects,margin,cubeSize,padding);
@@ -244,17 +249,13 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
 
   private void setupBottomLayout(final RubikActivity act, final RelativeLayout layout)
     {
-    int iconT = RubikActivity.getDrawable(R.drawable.ui_small_tutorial,R.drawable.ui_medium_tutorial, R.drawable.ui_big_tutorial, R.drawable.ui_huge_tutorial);
-    int iconD = RubikActivity.getDrawable(R.drawable.ui_small_download,R.drawable.ui_medium_download, R.drawable.ui_big_download, R.drawable.ui_huge_download);
-    int iconI = RubikActivity.getDrawable(R.drawable.ui_small_info,R.drawable.ui_medium_info, R.drawable.ui_big_info, R.drawable.ui_huge_info);
-
     ImageButton buttonTut = layout.findViewById(R.id.buttonTut);
     ImageButton buttonDow = layout.findViewById(R.id.buttonDow);
     ImageButton buttonInf = layout.findViewById(R.id.buttonInf);
 
-    buttonTut.setImageResource(iconT);
-    buttonDow.setImageResource(iconD);
-    buttonInf.setImageResource(iconI);
+    buttonTut.setImageResource(R.drawable.ui_huge_tutorial);
+    buttonDow.setImageResource(R.drawable.ui_huge_download);
+    buttonInf.setImageResource(R.drawable.ui_huge_info);
 
     TypedValue outValue = new TypedValue();
     act.getTheme().resolveAttribute(android.R.attr.selectableItemBackgroundBorderless, outValue, true);
@@ -306,9 +307,8 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
 
   void setupSolveButton(final RubikActivity act)
     {
-    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(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mSolveButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE,params);
+    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(MP,MP,1.0f);
+    mSolveButton = new TransparentImageButton(act, R.drawable.ui_huge_cube_solve,params);
 
     mSolveButton.setOnClickListener( new View.OnClickListener()
       {
@@ -325,9 +325,8 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
 
   private void setupScrambleButton(final RubikActivity act)
     {
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_cube_scramble,R.drawable.ui_medium_cube_scramble, R.drawable.ui_big_cube_scramble, R.drawable.ui_huge_cube_scramble);
-    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mScrambleButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(MP,MP,1.0f);
+    mScrambleButton = new TransparentImageButton(act, R.drawable.ui_huge_cube_scramble,params);
 
     mScrambleButton.setOnClickListener( new View.OnClickListener()
       {
diff --git a/src/main/java/org/distorted/screens/RubikScreenReady.java b/src/main/java/org/distorted/screens/RubikScreenReady.java
index ce003aef..5aac4eb4 100644
--- a/src/main/java/org/distorted/screens/RubikScreenReady.java
+++ b/src/main/java/org/distorted/screens/RubikScreenReady.java
@@ -57,9 +57,8 @@ public class RubikScreenReady extends RubikScreenBase
 
   private void setupBackButton(final RubikActivity act)
     {
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_back,R.drawable.ui_medium_back, R.drawable.ui_big_back, R.drawable.ui_huge_back);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mBackButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mBackButton = new TransparentImageButton(act,R.drawable.ui_huge_back,params);
 
     mBackButton.setOnClickListener( new View.OnClickListener()
       {
diff --git a/src/main/java/org/distorted/screens/RubikScreenSolution.java b/src/main/java/org/distorted/screens/RubikScreenSolution.java
index 1c279348..3eb43b5b 100644
--- a/src/main/java/org/distorted/screens/RubikScreenSolution.java
+++ b/src/main/java/org/distorted/screens/RubikScreenSolution.java
@@ -101,9 +101,8 @@ public class RubikScreenSolution extends RubikScreenAbstract implements MovesFin
 
   private void setupPrevButton(final RubikActivity act)
     {
-    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);
-    mPrevButton = new TransparentImageButton(act,icon,TransparentImageButton.GRAVITY_MIDDLE,params);
+    mPrevButton = new TransparentImageButton(act,R.drawable.ui_huge_left,params);
 
     mPrevButton.setOnClickListener( new View.OnClickListener()
       {
@@ -121,9 +120,8 @@ public class RubikScreenSolution extends RubikScreenAbstract implements MovesFin
 
   private void setupNextButton(final RubikActivity act)
     {
-    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);
-    mNextButton = new TransparentImageButton(act,icon,TransparentImageButton.GRAVITY_MIDDLE,params);
+    mNextButton = new TransparentImageButton(act,R.drawable.ui_huge_right,params);
 
     mNextButton.setOnClickListener( new View.OnClickListener()
       {
@@ -162,9 +160,8 @@ public class RubikScreenSolution extends RubikScreenAbstract implements MovesFin
 
   private void setupBackButton(final RubikActivity act)
     {
-    final int icon = RubikActivity.getDrawable(R.drawable.ui_small_back,R.drawable.ui_medium_back, R.drawable.ui_big_back, R.drawable.ui_huge_back);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mBackButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE,params);
+    mBackButton = new TransparentImageButton(act,R.drawable.ui_huge_back,params);
 
     mBackButton.setOnClickListener( new View.OnClickListener()
       {
diff --git a/src/main/java/org/distorted/screens/RubikScreenSolver.java b/src/main/java/org/distorted/screens/RubikScreenSolver.java
index c26e55e5..b50c1942 100644
--- a/src/main/java/org/distorted/screens/RubikScreenSolver.java
+++ b/src/main/java/org/distorted/screens/RubikScreenSolver.java
@@ -287,9 +287,8 @@ 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 = new TransparentImageButton(act, R.drawable.ui_huge_reset, params);
 
     mResetButton.setOnClickListener( new View.OnClickListener()
       {
@@ -306,9 +305,8 @@ public class RubikScreenSolver extends RubikScreenAbstract
 
   private void setupSolveButton(final RubikActivity act)
     {
-    final int icon = RubikActivity.getDrawable(R.drawable.ui_small_solve,R.drawable.ui_medium_solve, R.drawable.ui_big_solve, R.drawable.ui_huge_solve);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mSolveButton = new TransparentImageButton(act,icon,TransparentImageButton.GRAVITY_MIDDLE,params);
+    mSolveButton = new TransparentImageButton(act,R.drawable.ui_huge_solve,params);
 
     mSolveButton.setOnClickListener( new View.OnClickListener()
       {
@@ -330,9 +328,8 @@ public class RubikScreenSolver extends RubikScreenAbstract
 
   private void setupBackButton(final RubikActivity act)
     {
-    final int icon = RubikActivity.getDrawable(R.drawable.ui_small_back,R.drawable.ui_medium_back, R.drawable.ui_big_back, R.drawable.ui_huge_back);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mBackButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mBackButton = new TransparentImageButton(act,R.drawable.ui_huge_back,params);
 
     mBackButton.setOnClickListener( new View.OnClickListener()
       {
diff --git a/src/main/java/org/distorted/screens/RubikScreenSolving.java b/src/main/java/org/distorted/screens/RubikScreenSolving.java
index 4d0b7609..11d27478 100644
--- a/src/main/java/org/distorted/screens/RubikScreenSolving.java
+++ b/src/main/java/org/distorted/screens/RubikScreenSolving.java
@@ -82,9 +82,8 @@ public class RubikScreenSolving extends RubikScreenBase
 
   private void setupBackButton(final RubikActivity act)
     {
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_back,R.drawable.ui_medium_back, R.drawable.ui_big_back, R.drawable.ui_huge_back);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mBackButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mBackButton = new TransparentImageButton(act,R.drawable.ui_huge_back,params);
 
     mBackButton.setOnClickListener( new View.OnClickListener()
       {
diff --git a/src/main/java/org/distorted/tutorials/TutorialActivity.java b/src/main/java/org/distorted/tutorials/TutorialActivity.java
index 186bba4f..33cd3858 100644
--- a/src/main/java/org/distorted/tutorials/TutorialActivity.java
+++ b/src/main/java/org/distorted/tutorials/TutorialActivity.java
@@ -280,31 +280,6 @@ public class TutorialActivity extends AppCompatActivity
       startActivity(intent);
       }
 
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-    public static int getDrawableSize()
-      {
-      if( mScreenHeight<1000 ) return 0;
-      if( mScreenHeight<1600 ) return 1;
-      if( mScreenHeight<1900 ) return 2;
-      return 3;
-      }
-
-///////////////////////////////////////////////////////////////////////////////////////////////////
-
-    public static int getDrawable(int small, int medium, int big, int huge)
-      {
-      int size = getDrawableSize();
-
-      switch(size)
-        {
-        case 0 : return small;
-        case 1 : return medium;
-        case 2 : return big;
-        default: return huge;
-        }
-      }
-
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     public boolean isVertical()
diff --git a/src/main/java/org/distorted/tutorials/TutorialScreen.java b/src/main/java/org/distorted/tutorials/TutorialScreen.java
index d048073f..4fef67ec 100644
--- a/src/main/java/org/distorted/tutorials/TutorialScreen.java
+++ b/src/main/java/org/distorted/tutorials/TutorialScreen.java
@@ -17,7 +17,6 @@ import org.distorted.objectlib.main.ObjectControl;
 
 import org.distorted.helpers.LockController;
 import org.distorted.main.R;
-import org.distorted.main.RubikActivity;
 import org.distorted.objects.RubikObject;
 import org.distorted.helpers.TransparentImageButton;
 
@@ -35,9 +34,8 @@ public class TutorialScreen
 
   private void setupLockButton(final TutorialActivity act)
     {
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_locked,R.drawable.ui_medium_locked, R.drawable.ui_big_locked, R.drawable.ui_huge_locked);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mLockButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mLockButton = new TransparentImageButton(act,R.drawable.ui_huge_locked,params);
 
     mLockButton.setOnClickListener( new View.OnClickListener()
       {
@@ -80,9 +78,8 @@ public class TutorialScreen
 
   private void setupSolveButton(final TutorialActivity act)
     {
-    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(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mSolveButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mSolveButton = new TransparentImageButton(act,R.drawable.ui_huge_cube_solve,params);
 
     mSolveButton.setOnClickListener( new View.OnClickListener()
       {
@@ -99,9 +96,8 @@ public class TutorialScreen
 
   private void setupScrambleButton(final TutorialActivity act)
     {
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_cube_scramble,R.drawable.ui_medium_cube_scramble, R.drawable.ui_big_cube_scramble, R.drawable.ui_huge_cube_scramble);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mScrambleButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mScrambleButton = new TransparentImageButton(act,R.drawable.ui_huge_cube_scramble,params);
 
     mScrambleButton.setOnClickListener( new View.OnClickListener()
       {
@@ -118,9 +114,8 @@ public class TutorialScreen
 
   private void setupBackButton(final TutorialActivity act)
     {
-    int icon = RubikActivity.getDrawable(R.drawable.ui_small_smallback,R.drawable.ui_medium_smallback, R.drawable.ui_big_smallback, R.drawable.ui_huge_smallback);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.MATCH_PARENT,1.0f);
-    mBackButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
+    mBackButton = new TransparentImageButton(act,R.drawable.ui_huge_smallback,params);
 
     mBackButton.setOnClickListener( new View.OnClickListener()
       {
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_big_back.png b/src/main/res/drawable-ldrtl-nodpi/ui_big_back.png
deleted file mode 100644
index 0ad1363e..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_big_back.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_big_cube_back.png b/src/main/res/drawable-ldrtl-nodpi/ui_big_cube_back.png
deleted file mode 100644
index 15c91007..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_big_cube_back.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_big_cube_grey.png b/src/main/res/drawable-ldrtl-nodpi/ui_big_cube_grey.png
deleted file mode 100644
index e4836b21..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_big_cube_grey.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_big_cube_scramble.png b/src/main/res/drawable-ldrtl-nodpi/ui_big_cube_scramble.png
deleted file mode 100644
index 82993011..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_big_cube_scramble.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_big_cube_solve.png b/src/main/res/drawable-ldrtl-nodpi/ui_big_cube_solve.png
deleted file mode 100644
index 54328d09..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_big_cube_solve.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_big_left.png b/src/main/res/drawable-ldrtl-nodpi/ui_big_left.png
deleted file mode 100644
index 0b397b80..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_big_left.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_big_reset.png b/src/main/res/drawable-ldrtl-nodpi/ui_big_reset.png
deleted file mode 100644
index 2ab5fead..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_big_reset.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_big_right.png b/src/main/res/drawable-ldrtl-nodpi/ui_big_right.png
deleted file mode 100644
index 5ebae214..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_big_right.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_big_smallback.png b/src/main/res/drawable-ldrtl-nodpi/ui_big_smallback.png
deleted file mode 100644
index 5fd16e3a..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_big_smallback.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_big_solve.png b/src/main/res/drawable-ldrtl-nodpi/ui_big_solve.png
deleted file mode 100644
index 2d56e43b..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_big_solve.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_medium_back.png b/src/main/res/drawable-ldrtl-nodpi/ui_medium_back.png
deleted file mode 100644
index 1e2c7032..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_medium_back.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_medium_cube_back.png b/src/main/res/drawable-ldrtl-nodpi/ui_medium_cube_back.png
deleted file mode 100644
index 2a379f0d..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_medium_cube_back.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_medium_cube_grey.png b/src/main/res/drawable-ldrtl-nodpi/ui_medium_cube_grey.png
deleted file mode 100644
index e07cdb51..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_medium_cube_grey.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_medium_cube_scramble.png b/src/main/res/drawable-ldrtl-nodpi/ui_medium_cube_scramble.png
deleted file mode 100644
index 8687db28..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_medium_cube_scramble.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_medium_cube_solve.png b/src/main/res/drawable-ldrtl-nodpi/ui_medium_cube_solve.png
deleted file mode 100644
index c2387ff0..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_medium_cube_solve.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_medium_left.png b/src/main/res/drawable-ldrtl-nodpi/ui_medium_left.png
deleted file mode 100644
index dc59456e..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_medium_left.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_medium_reset.png b/src/main/res/drawable-ldrtl-nodpi/ui_medium_reset.png
deleted file mode 100644
index 841ef285..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_medium_reset.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_medium_right.png b/src/main/res/drawable-ldrtl-nodpi/ui_medium_right.png
deleted file mode 100644
index d13fb61d..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_medium_right.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_medium_smallback.png b/src/main/res/drawable-ldrtl-nodpi/ui_medium_smallback.png
deleted file mode 100644
index 7e2c8b59..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_medium_smallback.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_medium_solve.png b/src/main/res/drawable-ldrtl-nodpi/ui_medium_solve.png
deleted file mode 100644
index 040882c1..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_medium_solve.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_small_back.png b/src/main/res/drawable-ldrtl-nodpi/ui_small_back.png
deleted file mode 100644
index a510940e..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_small_back.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_small_cube_back.png b/src/main/res/drawable-ldrtl-nodpi/ui_small_cube_back.png
deleted file mode 100644
index 529d4a0f..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_small_cube_back.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_small_cube_grey.png b/src/main/res/drawable-ldrtl-nodpi/ui_small_cube_grey.png
deleted file mode 100644
index 68a6802c..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_small_cube_grey.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_small_cube_scramble.png b/src/main/res/drawable-ldrtl-nodpi/ui_small_cube_scramble.png
deleted file mode 100644
index 176eb4f2..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_small_cube_scramble.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_small_cube_solve.png b/src/main/res/drawable-ldrtl-nodpi/ui_small_cube_solve.png
deleted file mode 100644
index 4b486c46..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_small_cube_solve.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_small_left.png b/src/main/res/drawable-ldrtl-nodpi/ui_small_left.png
deleted file mode 100644
index eb9404ca..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_small_left.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_small_reset.png b/src/main/res/drawable-ldrtl-nodpi/ui_small_reset.png
deleted file mode 100644
index 6dd59281..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_small_reset.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_small_right.png b/src/main/res/drawable-ldrtl-nodpi/ui_small_right.png
deleted file mode 100644
index 05f7f7c4..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_small_right.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_small_smallback.png b/src/main/res/drawable-ldrtl-nodpi/ui_small_smallback.png
deleted file mode 100644
index 8257eaa5..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_small_smallback.png and /dev/null differ
diff --git a/src/main/res/drawable-ldrtl-nodpi/ui_small_solve.png b/src/main/res/drawable-ldrtl-nodpi/ui_small_solve.png
deleted file mode 100644
index aefc4b8a..00000000
Binary files a/src/main/res/drawable-ldrtl-nodpi/ui_small_solve.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_back.png b/src/main/res/drawable-nodpi/ui_big_back.png
deleted file mode 100644
index c3ad4366..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_back.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_cube_back.png b/src/main/res/drawable-nodpi/ui_big_cube_back.png
deleted file mode 100644
index bbe4bf9d..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_cube_back.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_cube_grey.png b/src/main/res/drawable-nodpi/ui_big_cube_grey.png
deleted file mode 100644
index 7919378b..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_cube_grey.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_cube_menu.png b/src/main/res/drawable-nodpi/ui_big_cube_menu.png
deleted file mode 100644
index bac36ba9..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_cube_menu.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_cube_scramble.png b/src/main/res/drawable-nodpi/ui_big_cube_scramble.png
deleted file mode 100644
index 54328d09..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_cube_scramble.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_cube_solve.png b/src/main/res/drawable-nodpi/ui_big_cube_solve.png
deleted file mode 100644
index 82993011..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_cube_solve.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_done.png b/src/main/res/drawable-nodpi/ui_big_done.png
deleted file mode 100644
index 1dbd4535..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_done.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_down.png b/src/main/res/drawable-nodpi/ui_big_down.png
deleted file mode 100644
index 6f3ad610..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_down.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_download.png b/src/main/res/drawable-nodpi/ui_big_download.png
deleted file mode 100644
index 9e9ea55f..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_download.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_info.png b/src/main/res/drawable-nodpi/ui_big_info.png
deleted file mode 100644
index 162c0848..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_info.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_left.png b/src/main/res/drawable-nodpi/ui_big_left.png
deleted file mode 100644
index 5ebae214..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_left.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_locked.png b/src/main/res/drawable-nodpi/ui_big_locked.png
deleted file mode 100644
index ca5140f2..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_locked.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_locked_red.png b/src/main/res/drawable-nodpi/ui_big_locked_red.png
deleted file mode 100644
index 9443c67d..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_locked_red.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_menu.png b/src/main/res/drawable-nodpi/ui_big_menu.png
deleted file mode 100644
index 85e5f276..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_menu.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_reset.png b/src/main/res/drawable-nodpi/ui_big_reset.png
deleted file mode 100644
index 677bc10b..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_reset.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_right.png b/src/main/res/drawable-nodpi/ui_big_right.png
deleted file mode 100644
index 0b397b80..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_right.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_smallback.png b/src/main/res/drawable-nodpi/ui_big_smallback.png
deleted file mode 100644
index 958125c8..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_smallback.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_solve.png b/src/main/res/drawable-nodpi/ui_big_solve.png
deleted file mode 100644
index d76db1a4..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_solve.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_tutorial.png b/src/main/res/drawable-nodpi/ui_big_tutorial.png
deleted file mode 100644
index 69a57a9d..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_tutorial.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_big_unlocked.png b/src/main/res/drawable-nodpi/ui_big_unlocked.png
deleted file mode 100644
index 000232b4..00000000
Binary files a/src/main/res/drawable-nodpi/ui_big_unlocked.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_back.png b/src/main/res/drawable-nodpi/ui_huge_back.png
index 07e4f80e..d6e5cdc9 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_back.png and b/src/main/res/drawable-nodpi/ui_huge_back.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
index 5fbe8dbb..b8ba4b08 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_cube_back.png and b/src/main/res/drawable-nodpi/ui_huge_cube_back.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_cube_grey.png b/src/main/res/drawable-nodpi/ui_huge_cube_grey.png
index 2f95c0e6..bb963fcf 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_cube_grey.png and b/src/main/res/drawable-nodpi/ui_huge_cube_grey.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
index 7770270f..90d4365a 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_cube_menu.png and b/src/main/res/drawable-nodpi/ui_huge_cube_menu.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_cube_scramble.png b/src/main/res/drawable-nodpi/ui_huge_cube_scramble.png
index f2b5750c..85ce4ef8 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_cube_scramble.png and b/src/main/res/drawable-nodpi/ui_huge_cube_scramble.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
index 9c23af10..1dba11ee 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_cube_solve.png and b/src/main/res/drawable-nodpi/ui_huge_cube_solve.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_done.png b/src/main/res/drawable-nodpi/ui_huge_done.png
index 70ca8b3b..bdf301b1 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_done.png and b/src/main/res/drawable-nodpi/ui_huge_done.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_down.png b/src/main/res/drawable-nodpi/ui_huge_down.png
index a1a29685..4f368b5a 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_down.png 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
index a5f57b43..7b712913 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_left.png and b/src/main/res/drawable-nodpi/ui_huge_left.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_locked.png b/src/main/res/drawable-nodpi/ui_huge_locked.png
index 676db820..0100b374 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_locked.png and b/src/main/res/drawable-nodpi/ui_huge_locked.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_locked_red.png b/src/main/res/drawable-nodpi/ui_huge_locked_red.png
index aa6b60c6..c0c80adc 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_locked_red.png and b/src/main/res/drawable-nodpi/ui_huge_locked_red.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_menu.png b/src/main/res/drawable-nodpi/ui_huge_menu.png
index a68becb6..1ee04b77 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_menu.png and b/src/main/res/drawable-nodpi/ui_huge_menu.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_reset.png b/src/main/res/drawable-nodpi/ui_huge_reset.png
index cea52c2e..f40b1db7 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_reset.png and b/src/main/res/drawable-nodpi/ui_huge_reset.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_right.png b/src/main/res/drawable-nodpi/ui_huge_right.png
index 64d25b7f..c1da12a2 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_right.png and b/src/main/res/drawable-nodpi/ui_huge_right.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_smallback.png b/src/main/res/drawable-nodpi/ui_huge_smallback.png
index 954d60c2..f650ff99 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_smallback.png and b/src/main/res/drawable-nodpi/ui_huge_smallback.png differ
diff --git a/src/main/res/drawable-nodpi/ui_huge_unlocked.png b/src/main/res/drawable-nodpi/ui_huge_unlocked.png
index 59efc275..3a27b8b2 100644
Binary files a/src/main/res/drawable-nodpi/ui_huge_unlocked.png and b/src/main/res/drawable-nodpi/ui_huge_unlocked.png differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_back.png b/src/main/res/drawable-nodpi/ui_medium_back.png
deleted file mode 100644
index c6570432..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_back.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_cube_back.png b/src/main/res/drawable-nodpi/ui_medium_cube_back.png
deleted file mode 100644
index 0680557e..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_cube_back.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_cube_grey.png b/src/main/res/drawable-nodpi/ui_medium_cube_grey.png
deleted file mode 100644
index db5bfc22..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_cube_grey.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_cube_menu.png b/src/main/res/drawable-nodpi/ui_medium_cube_menu.png
deleted file mode 100644
index 4693144c..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_cube_menu.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_cube_scramble.png b/src/main/res/drawable-nodpi/ui_medium_cube_scramble.png
deleted file mode 100644
index c2387ff0..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_cube_scramble.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_cube_solve.png b/src/main/res/drawable-nodpi/ui_medium_cube_solve.png
deleted file mode 100644
index 8687db28..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_cube_solve.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_done.png b/src/main/res/drawable-nodpi/ui_medium_done.png
deleted file mode 100644
index ad77e748..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_done.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_down.png b/src/main/res/drawable-nodpi/ui_medium_down.png
deleted file mode 100644
index 166afd58..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_down.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_download.png b/src/main/res/drawable-nodpi/ui_medium_download.png
deleted file mode 100644
index 08fe1f46..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_download.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_info.png b/src/main/res/drawable-nodpi/ui_medium_info.png
deleted file mode 100644
index 04fa5fa1..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_info.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_left.png b/src/main/res/drawable-nodpi/ui_medium_left.png
deleted file mode 100644
index d13fb61d..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_left.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_locked.png b/src/main/res/drawable-nodpi/ui_medium_locked.png
deleted file mode 100644
index 243525e9..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_locked.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_locked_red.png b/src/main/res/drawable-nodpi/ui_medium_locked_red.png
deleted file mode 100644
index f3a7ea35..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_locked_red.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_menu.png b/src/main/res/drawable-nodpi/ui_medium_menu.png
deleted file mode 100644
index 23a137b4..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_menu.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_reset.png b/src/main/res/drawable-nodpi/ui_medium_reset.png
deleted file mode 100644
index 841ef285..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_reset.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_right.png b/src/main/res/drawable-nodpi/ui_medium_right.png
deleted file mode 100644
index dc59456e..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_right.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_smallback.png b/src/main/res/drawable-nodpi/ui_medium_smallback.png
deleted file mode 100644
index f0caa23e..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_smallback.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_solve.png b/src/main/res/drawable-nodpi/ui_medium_solve.png
deleted file mode 100644
index 0437490f..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_solve.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_tutorial.png b/src/main/res/drawable-nodpi/ui_medium_tutorial.png
deleted file mode 100644
index 244ce718..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_tutorial.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_medium_unlocked.png b/src/main/res/drawable-nodpi/ui_medium_unlocked.png
deleted file mode 100644
index fc105f75..00000000
Binary files a/src/main/res/drawable-nodpi/ui_medium_unlocked.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_back.png b/src/main/res/drawable-nodpi/ui_small_back.png
deleted file mode 100644
index 79103a06..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_back.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_cube_back.png b/src/main/res/drawable-nodpi/ui_small_cube_back.png
deleted file mode 100644
index f7c7d3bd..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_cube_back.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_cube_grey.png b/src/main/res/drawable-nodpi/ui_small_cube_grey.png
deleted file mode 100644
index 51563baa..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_cube_grey.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_cube_menu.png b/src/main/res/drawable-nodpi/ui_small_cube_menu.png
deleted file mode 100644
index 28862ece..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_cube_menu.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_cube_scramble.png b/src/main/res/drawable-nodpi/ui_small_cube_scramble.png
deleted file mode 100644
index 4b486c46..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_cube_scramble.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_cube_solve.png b/src/main/res/drawable-nodpi/ui_small_cube_solve.png
deleted file mode 100644
index 176eb4f2..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_cube_solve.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_done.png b/src/main/res/drawable-nodpi/ui_small_done.png
deleted file mode 100644
index 322bdefa..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_done.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_down.png b/src/main/res/drawable-nodpi/ui_small_down.png
deleted file mode 100644
index 9c204481..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_down.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_download.png b/src/main/res/drawable-nodpi/ui_small_download.png
deleted file mode 100644
index 8458009e..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_download.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_info.png b/src/main/res/drawable-nodpi/ui_small_info.png
deleted file mode 100644
index ace371a2..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_info.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_left.png b/src/main/res/drawable-nodpi/ui_small_left.png
deleted file mode 100644
index 05f7f7c4..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_left.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_locked.png b/src/main/res/drawable-nodpi/ui_small_locked.png
deleted file mode 100644
index 87cc4574..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_locked.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_locked_red.png b/src/main/res/drawable-nodpi/ui_small_locked_red.png
deleted file mode 100644
index 5ae8476a..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_locked_red.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_menu.png b/src/main/res/drawable-nodpi/ui_small_menu.png
deleted file mode 100644
index 8b444adc..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_menu.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_reset.png b/src/main/res/drawable-nodpi/ui_small_reset.png
deleted file mode 100644
index 6dd59281..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_reset.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_right.png b/src/main/res/drawable-nodpi/ui_small_right.png
deleted file mode 100644
index eb9404ca..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_right.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_smallback.png b/src/main/res/drawable-nodpi/ui_small_smallback.png
deleted file mode 100644
index 0fdcb97f..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_smallback.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_solve.png b/src/main/res/drawable-nodpi/ui_small_solve.png
deleted file mode 100644
index af14d4e2..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_solve.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_tutorial.png b/src/main/res/drawable-nodpi/ui_small_tutorial.png
deleted file mode 100644
index 4376c4ed..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_tutorial.png and /dev/null differ
diff --git a/src/main/res/drawable-nodpi/ui_small_unlocked.png b/src/main/res/drawable-nodpi/ui_small_unlocked.png
deleted file mode 100644
index 668786f8..00000000
Binary files a/src/main/res/drawable-nodpi/ui_small_unlocked.png and /dev/null differ
diff --git a/src/main/res/drawable/ui_big_spinner.xml b/src/main/res/drawable/ui_big_spinner.xml
deleted file mode 100644
index d81ead88..00000000
--- a/src/main/res/drawable/ui_big_spinner.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?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_big_down"/>
-            </item>
-        </layer-list>
-    </item>
-</selector>
\ No newline at end of file
diff --git a/src/main/res/drawable/ui_medium_spinner.xml b/src/main/res/drawable/ui_medium_spinner.xml
deleted file mode 100644
index 59cbdde9..00000000
--- a/src/main/res/drawable/ui_medium_spinner.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?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_medium_down"/>
-            </item>
-        </layer-list>
-    </item>
-</selector>
\ No newline at end of file
diff --git a/src/main/res/drawable/ui_small_spinner.xml b/src/main/res/drawable/ui_small_spinner.xml
deleted file mode 100644
index 38273540..00000000
--- a/src/main/res/drawable/ui_small_spinner.xml
+++ /dev/null
@@ -1,19 +0,0 @@
-<?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_small_down"/>
-            </item>
-        </layer-list>
-    </item>
-</selector>
\ No newline at end of file
diff --git a/src/main/res/drawable/ui_trash.png b/src/main/res/drawable/ui_trash.png
index 34028570..45b7b289 100644
Binary files a/src/main/res/drawable/ui_trash.png and b/src/main/res/drawable/ui_trash.png differ
diff --git a/src/main/res/layout/non_free_object.xml b/src/main/res/layout/non_free_object.xml
index 6bc1bf50..56b4e385 100644
--- a/src/main/res/layout/non_free_object.xml
+++ b/src/main/res/layout/non_free_object.xml
@@ -18,6 +18,6 @@
             android:adjustViewBounds="true"
             android:paddingTop="-10dp"
             android:scaleType="fitStart"
-            android:src="@drawable/ui_big_locked"/>
+            android:src="@drawable/ui_huge_locked"/>
 
     </FrameLayout>
\ No newline at end of file
diff --git a/src/main/res/layout/popup_object.xml b/src/main/res/layout/popup_object.xml
index 82b618b7..f334b8b4 100644
--- a/src/main/res/layout/popup_object.xml
+++ b/src/main/res/layout/popup_object.xml
@@ -21,7 +21,7 @@
    <RelativeLayout
        android:id="@+id/bottomLayout"
        android:layout_width="match_parent"
-       android:layout_height="wrap_content"
+       android:layout_height="60dp"
        android:background="@color/grey"
        android:paddingEnd="10dp"
        android:paddingStart="10dp">
@@ -29,20 +29,26 @@
        <ImageButton
            android:id="@+id/buttonTut"
            android:layout_alignParentStart="true"
+           android:adjustViewBounds="true"
+           android:scaleType="fitCenter"
            android:layout_width="wrap_content"
-           android:layout_height="wrap_content"/>
+           android:layout_height="match_parent"/>
 
        <ImageButton
            android:id="@+id/buttonDow"
            android:layout_centerHorizontal="true"
+           android:adjustViewBounds="true"
+           android:scaleType="fitCenter"
            android:layout_width="wrap_content"
-           android:layout_height="wrap_content"/>
+           android:layout_height="match_parent"/>
        <TextView
            android:id="@+id/bubbleUpdates"
+           android:adjustViewBounds="true"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/buttonDow"
            android:layout_alignEnd="@+id/buttonDow"
+           android:scaleType="fitCenter"
            android:textColor="#FFF"
            android:textSize="16sp"
            android:textStyle="bold"
@@ -50,9 +56,11 @@
 
        <ImageButton
            android:id="@+id/buttonInf"
+           android:adjustViewBounds="true"
            android:layout_alignParentEnd="true"
+           android:scaleType="fitCenter"
            android:layout_width="wrap_content"
-           android:layout_height="wrap_content"/>
+           android:layout_height="match_parent"/>
 
      </RelativeLayout>
 
