commit 4a6b3b53a1479ea517a65b07df20d535d45c1e80
Author: leszek <leszek@koltunski.pl>
Date:   Sat Nov 11 00:47:37 2023 +0100

    Progress with Tutorial activity; make the main ObjectPopup look nicer.

diff --git a/src/main/java/org/distorted/dialogs/RubikDialogTutorialSingle.java b/src/main/java/org/distorted/dialogs/RubikDialogTutorialSingle.java
index 3c75ce96..9fbca7ff 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogTutorialSingle.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogTutorialSingle.java
@@ -12,7 +12,9 @@ package org.distorted.dialogs;
 import static android.view.View.inflate;
 
 import android.app.Dialog;
+import android.content.Context;
 import android.content.res.Resources;
+import android.util.DisplayMetrics;
 import android.util.TypedValue;
 import android.view.View;
 import android.view.Window;
@@ -36,7 +38,9 @@ import java.io.InputStream;
 
 public class RubikDialogTutorialSingle extends RubikDialogAbstract
   {
-  public static final float PANE_HEIGHT  = 0.06f;
+  public static final float PANE_HEIGHT= 0.06f;
+  public static final float TEXT_SIZE  = 0.41f;
+
   private Dialog mDialog;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -51,7 +55,7 @@ public class RubikDialogTutorialSingle extends RubikDialogAbstract
     if( window!=null )
       {
       WindowManager.LayoutParams params = window.getAttributes();
-      params.width  = (int)Math.min( mHeight*0.65f,mWidth*0.98f );
+      params.width  = (int)Math.min( mHeight*0.67f,mWidth*0.98f );
       //params.height = (int)Math.min( mHeight*0.85f,mWidth*1.30f );
       window.setAttributes(params);
       }
@@ -132,7 +136,7 @@ public class RubikDialogTutorialSingle extends RubikDialogAbstract
   private View createRow(final FragmentActivity act, int countryID, final String desc, final String url,
                          final String auth, int size, int colorB, int colorT, boolean last)
     {
-    float textSize = 0.43f*size;
+    float textSize = size*TEXT_SIZE;
     View row = inflate( act, R.layout.dialog_tutorial_row, null);
 
     LinearLayout layout = row.findViewById(R.id.tutorialLayout);
@@ -171,7 +175,7 @@ public class RubikDialogTutorialSingle extends RubikDialogAbstract
 
     if( last )
       {
-      int m = 20;
+      int m = (int)convertDpToPixel(10,act);
       LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
       params.bottomMargin = m;
       params.leftMargin   = m;
@@ -182,6 +186,13 @@ public class RubikDialogTutorialSingle extends RubikDialogAbstract
     return row;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  private static float convertDpToPixel(float dp, Context context)
+    {
+    return dp*((float) context.getResources().getDisplayMetrics().densityDpi/DisplayMetrics.DENSITY_DEFAULT);
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   public static String getDialogTag()
diff --git a/src/main/java/org/distorted/main/MainObjectPopup.java b/src/main/java/org/distorted/main/MainObjectPopup.java
index 828c13ce..a4f5b0b8 100644
--- a/src/main/java/org/distorted/main/MainObjectPopup.java
+++ b/src/main/java/org/distorted/main/MainObjectPopup.java
@@ -49,6 +49,8 @@ public class MainObjectPopup
     mPopup.setContentView(layout);
     mPopup.setFocusable(true);
 
+    boolean firstButtonShown = false;
+
     mMenuTextSize = (int)(height*MENU_TEXT_SIZE);
     int padding   = (int)(height*MENU_MARGIN);
     int marginH   = padding/2;
@@ -63,9 +65,10 @@ public class MainObjectPopup
     if( object!=null && object.hasSolver() )
       {
       LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,levelHeight);
-      params.setMargins(marginH,marginV,marginH,marginV);
+      params.setMargins(marginH,marginH,marginH,marginV);
       b1.setLayoutParams(params);
       b1.setTextSize(TypedValue.COMPLEX_UNIT_PX, mMenuTextSize);
+
       b1.setOnClickListener(new View.OnClickListener()
         {
         @Override
@@ -75,6 +78,8 @@ public class MainObjectPopup
           act.switchToSolver(ordinal);
           }
         });
+
+      firstButtonShown = true;
       }
     else b1.setVisibility(GONE);
 
@@ -83,9 +88,10 @@ public class MainObjectPopup
     if( object!=null && object.hasPatterns() )
       {
       LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,levelHeight);
-      params.setMargins(marginH,marginV,marginH,marginV);
+      params.setMargins(marginH, firstButtonShown ? marginV : marginH ,marginH,marginV);
       b2.setLayoutParams(params);
       b2.setTextSize(TypedValue.COMPLEX_UNIT_PX, mMenuTextSize);
+
       b2.setOnClickListener(new View.OnClickListener()
         {
         @Override
@@ -95,6 +101,8 @@ public class MainObjectPopup
           act.switchToPattern(ordinal);
           }
         });
+
+      firstButtonShown = true;
       }
     else b2.setVisibility(GONE);
 
@@ -103,9 +111,10 @@ public class MainObjectPopup
     if( object!=null && object.hasExtras() )
       {
       LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,levelHeight);
-      params.setMargins(marginH,marginV,marginH,marginV);
+      params.setMargins(marginH,firstButtonShown ? marginV : marginH,marginH,marginV);
       b3.setLayoutParams(params);
       b3.setTextSize(TypedValue.COMPLEX_UNIT_PX, mMenuTextSize);
+
       b3.setOnClickListener(new View.OnClickListener()
         {
         @Override
@@ -115,15 +124,18 @@ public class MainObjectPopup
           act.switchToTutorial(ordinal);
           }
         });
+
+      firstButtonShown = true;
       }
     else b3.setVisibility(GONE);
 
     Button b4 = layout.findViewById(R.id.objectInfo);
 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,levelHeight);
-    params.setMargins(marginH,marginV,marginH,marginV);
+    params.setMargins(marginH,firstButtonShown ? marginV : marginH,marginH,marginV);
     b4.setLayoutParams(params);
     b4.setTextSize(TypedValue.COMPLEX_UNIT_PX, mMenuTextSize);
+
     b4.setOnClickListener( new View.OnClickListener()
       {
       @Override
@@ -178,6 +190,7 @@ public class MainObjectPopup
       level[i].setTextSize(TypedValue.COMPLEX_UNIT_PX, mMenuTextSize);
       level[i].setLayoutParams(params);
       level[i].setPadding(0,0,0,0);
+
       level[i].setOnClickListener( new View.OnClickListener()
         {
         @Override
@@ -187,6 +200,11 @@ public class MainObjectPopup
           }
         });
       }
+
+    int index = (numScramble>=1 && numScramble<=7) ? numScramble : LEVELS_SHOWN;
+    LinearLayout.LayoutParams params2 = new LinearLayout.LayoutParams(levelWidth,levelHeight);
+    params2.setMargins(margin,-margin,margin,margin);
+    level[index].setLayoutParams(params2);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/res/layout/object_popup.xml b/src/main/res/layout/object_popup.xml
index 80be915d..03f2d123 100644
--- a/src/main/res/layout/object_popup.xml
+++ b/src/main/res/layout/object_popup.xml
@@ -4,9 +4,6 @@
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:gravity="center"
-    android:layout_marginTop="0dp"
-    android:layout_marginBottom="0dp"
-    android:padding="0dp"
    android:orientation="vertical">
 
    <Button
