commit b6cce5239a75cd9e6687d9ed99729ba186c23684
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Fri Jan 20 00:05:07 2023 +0100

    More fixes for UI in case of extreme screen (w/h) ratios ( from 1.0 to 2.0 ).

diff --git a/src/main/java/org/distorted/dialogs/RubikDialogAbandon.java b/src/main/java/org/distorted/dialogs/RubikDialogAbandon.java
index 70f03e50..c5333ce5 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogAbandon.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogAbandon.java
@@ -44,7 +44,7 @@ public class RubikDialogAbandon extends AppCompatDialogFragment
 
     DisplayMetrics displaymetrics = new DisplayMetrics();
     act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
-    final float butSize  = displaymetrics.widthPixels * RubikActivity.DIALOG_BUTTON_SIZE;
+    final float butSize = displaymetrics.heightPixels * 0.04f;
 
     final View view = inflater.inflate(R.layout.abandon_solve, null);
     builder.setView(view);
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogAbout.java b/src/main/java/org/distorted/dialogs/RubikDialogAbout.java
index 2db86946..8a738071 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogAbout.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogAbout.java
@@ -46,9 +46,10 @@ public class RubikDialogAbout extends AppCompatDialogFragment
 
     DisplayMetrics displaymetrics = new DisplayMetrics();
     act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
-    final float titleSize= displaymetrics.widthPixels * RubikActivity.BIG_TEXT_SIZE;
-    final float okSize   = displaymetrics.widthPixels * RubikActivity.DIALOG_BUTTON_SIZE;
-    final float textSize = displaymetrics.widthPixels * RubikActivity.SMALL_TEXT_SIZE;
+    int h = displaymetrics.heightPixels;
+    final float titleSize= h * 0.032f;
+    final float okSize   = h * 0.040f;
+    final float textSize = h * 0.025f;
 
     TextView tv = (TextView) inflater.inflate(R.layout.dialog_title, null);
     tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogBandagedDelete.java b/src/main/java/org/distorted/dialogs/RubikDialogBandagedDelete.java
index ceb104ed..266f77e5 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogBandagedDelete.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogBandagedDelete.java
@@ -43,8 +43,9 @@ public class RubikDialogBandagedDelete extends AppCompatDialogFragment
 
     DisplayMetrics displaymetrics = new DisplayMetrics();
     act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
-    final float titleSize= displaymetrics.widthPixels * RubikActivity.BIG_TEXT_SIZE;
-    final float okSize   = displaymetrics.widthPixels * RubikActivity.DIALOG_BUTTON_SIZE;
+    int h = displaymetrics.heightPixels;
+    final float titleSize= h * 0.032f;
+    final float okSize   = h * 0.040f;
 
     TextView tv = (TextView) inflater.inflate(R.layout.dialog_title, null);
     tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogBandagedSave.java b/src/main/java/org/distorted/dialogs/RubikDialogBandagedSave.java
index 9a31cffc..0ad8013e 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogBandagedSave.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogBandagedSave.java
@@ -44,8 +44,9 @@ public class RubikDialogBandagedSave extends AppCompatDialogFragment
 
     DisplayMetrics displaymetrics = new DisplayMetrics();
     act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
-    final float titleSize= displaymetrics.widthPixels * RubikActivity.BIG_TEXT_SIZE;
-    final float okSize   = displaymetrics.widthPixels * RubikActivity.DIALOG_BUTTON_SIZE;
+    int h = displaymetrics.heightPixels;
+    final float titleSize= h * 0.032f;
+    final float okSize   = h * 0.040f;
 
     TextView tv = (TextView) inflater.inflate(R.layout.dialog_title, null);
     tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogError.java b/src/main/java/org/distorted/dialogs/RubikDialogError.java
index af2d7c3a..2dd3b0ac 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogError.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogError.java
@@ -42,8 +42,9 @@ public class RubikDialogError extends AppCompatDialogFragment
 
     DisplayMetrics displaymetrics = new DisplayMetrics();
     act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
-    final float titleSize= displaymetrics.widthPixels * RubikActivity.BIG_TEXT_SIZE;
-    final float okSize   = displaymetrics.widthPixels * RubikActivity.DIALOG_BUTTON_SIZE;
+    int h = displaymetrics.heightPixels;
+    final float titleSize= h * 0.032f;
+    final float okSize   = h * 0.040f;
 
     TextView tv = (TextView) inflater.inflate(R.layout.dialog_title, null);
     tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogNewRecord.java b/src/main/java/org/distorted/dialogs/RubikDialogNewRecord.java
index d08664a8..b7866989 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogNewRecord.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogNewRecord.java
@@ -45,9 +45,10 @@ public class RubikDialogNewRecord extends AppCompatDialogFragment
 
     DisplayMetrics displaymetrics = new DisplayMetrics();
     act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
-    final float titleSize= displaymetrics.widthPixels * RubikActivity.BIG_TEXT_SIZE;
-    final float okSize   = displaymetrics.widthPixels * RubikActivity.DIALOG_BUTTON_SIZE;
-    final float textSize = displaymetrics.widthPixels * RubikActivity.BIG_TEXT_SIZE;
+    int h = displaymetrics.heightPixels;
+    final float titleSize= h*0.032f;
+    final float okSize   = h*0.040f;
+    final float textSize = h*0.032f;
 
     TextView tv = (TextView) inflater.inflate(R.layout.dialog_title, null);
     tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogPattern.java b/src/main/java/org/distorted/dialogs/RubikDialogPattern.java
index 9fab0b75..79b29abb 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogPattern.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogPattern.java
@@ -148,11 +148,9 @@ public class RubikDialogPattern extends AppCompatDialogFragment
     if( window!=null && context!=null )
       {
       DisplayMetrics metrics = context.getResources().getDisplayMetrics();
-      final float height= metrics.heightPixels;
-
       WindowManager.LayoutParams params = window.getAttributes();
-      params.width = WindowManager.LayoutParams.WRAP_CONTENT;
-      params.height = (int)(0.75f*height);
+      params.width  = (int)Math.min( 0.65f*metrics.heightPixels,0.98f*metrics.widthPixels );
+      params.height = (int)Math.min( 0.85f*metrics.heightPixels,1.30f*metrics.widthPixels );
       window.setAttributes(params);
       }
     }
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogPrivacy.java b/src/main/java/org/distorted/dialogs/RubikDialogPrivacy.java
index 9aeda7a6..ad372aa6 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogPrivacy.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogPrivacy.java
@@ -46,8 +46,9 @@ public class RubikDialogPrivacy extends AppCompatDialogFragment
 
     DisplayMetrics displaymetrics = new DisplayMetrics();
     act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
-    final float titleSize= displaymetrics.widthPixels * RubikActivity.BIG_TEXT_SIZE;
-    final float butSize  = displaymetrics.widthPixels * RubikActivity.DIALOG_BUTTON_SIZE;
+    int h = displaymetrics.heightPixels;
+    final float titleSize= h*0.032f;
+    final float butSize  = h*0.040f;
 
     TextView tv = (TextView) inflater.inflate(R.layout.dialog_title, null);
     tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogScores.java b/src/main/java/org/distorted/dialogs/RubikDialogScores.java
index e194e4a8..48303273 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogScores.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogScores.java
@@ -10,6 +10,7 @@
 package org.distorted.dialogs;
 
 import android.app.Dialog;
+import android.content.Context;
 import android.content.DialogInterface;
 import android.os.Bundle;
 import androidx.annotation.NonNull;
@@ -25,6 +26,7 @@ import android.view.LayoutInflater;
 import android.view.View;
 import android.view.ViewGroup;
 import android.view.Window;
+import android.view.WindowManager;
 import android.widget.Button;
 import android.widget.ImageView;
 import android.widget.TextView;
@@ -133,4 +135,24 @@ public class RubikDialogScores extends AppCompatDialogFragment
 
     return dialog;
     }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  @Override
+  public void onResume()
+    {
+    super.onResume();
+
+    Window window = getDialog().getWindow();
+    Context context = getContext();
+
+    if( window!=null && context!=null )
+      {
+      DisplayMetrics metrics = context.getResources().getDisplayMetrics();
+      WindowManager.LayoutParams params = window.getAttributes();
+      params.width  = (int)Math.min( 0.65f*metrics.heightPixels,0.98f*metrics.widthPixels );
+      params.height = (int)(0.77f*metrics.heightPixels);
+      window.setAttributes(params);
+      }
+    }
   }
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogSetName.java b/src/main/java/org/distorted/dialogs/RubikDialogSetName.java
index 47cbd90e..0d6e95cb 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogSetName.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogSetName.java
@@ -74,9 +74,10 @@ public class RubikDialogSetName extends AppCompatDialogFragment
 
     DisplayMetrics displaymetrics = new DisplayMetrics();
     act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
-    final float titleSize= displaymetrics.widthPixels * RubikActivity.BIG_TEXT_SIZE;
-    final float okSize   = displaymetrics.widthPixels * RubikActivity.DIALOG_BUTTON_SIZE;
-    final float textSize = displaymetrics.widthPixels * RubikActivity.SMALL_TEXT_SIZE;
+    int h = displaymetrics.heightPixels;
+    final float titleSize= h*0.032f;
+    final float okSize   = h*0.040f;
+    final float textSize = h*0.022f;
 
     Bundle args = getArguments();
     String name;
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogSolved.java b/src/main/java/org/distorted/dialogs/RubikDialogSolved.java
index 4587262a..b2f3998d 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogSolved.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogSolved.java
@@ -43,9 +43,10 @@ public class RubikDialogSolved extends AppCompatDialogFragment
 
     DisplayMetrics displaymetrics = new DisplayMetrics();
     act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
-    final float titleSize= displaymetrics.widthPixels * RubikActivity.BIG_TEXT_SIZE;
-    final float okSize   = displaymetrics.widthPixels * RubikActivity.DIALOG_BUTTON_SIZE;
-    final float textSize = displaymetrics.widthPixels * RubikActivity.BIG_TEXT_SIZE;
+    int h = displaymetrics.heightPixels;
+    final float titleSize= h*0.032f;
+    final float okSize   = h*0.040f;
+    final float textSize = h*0.022f;
 
     TextView tv = (TextView) inflater.inflate(R.layout.dialog_title, null);
     tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogSolverError.java b/src/main/java/org/distorted/dialogs/RubikDialogSolverError.java
index 18903c84..d37751b8 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogSolverError.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogSolverError.java
@@ -42,9 +42,10 @@ public class RubikDialogSolverError extends AppCompatDialogFragment
 
     DisplayMetrics displaymetrics = new DisplayMetrics();
     act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
-    final float titleSize= displaymetrics.widthPixels * RubikActivity.BIG_TEXT_SIZE;
-    final float okSize   = displaymetrics.widthPixels * RubikActivity.DIALOG_BUTTON_SIZE;
-    final float textSize = displaymetrics.widthPixels * RubikActivity.BIG_TEXT_SIZE;
+    int h = displaymetrics.heightPixels;
+    final float titleSize= h * 0.030f;
+    final float okSize   = h * 0.040f;
+    final float textSize = h * 0.033f;
 
     TextView tv = (TextView) inflater.inflate(R.layout.dialog_title, null);
     tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogStarsExplain.java b/src/main/java/org/distorted/dialogs/RubikDialogStarsExplain.java
index 16374c33..c4bc0d55 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogStarsExplain.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogStarsExplain.java
@@ -40,7 +40,7 @@ public class RubikDialogStarsExplain extends AppCompatDialogFragment
     AlertDialog.Builder builder = new AlertDialog.Builder(act);
     DisplayMetrics displaymetrics = new DisplayMetrics();
     act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
-    final float butSize = displaymetrics.widthPixels * RubikActivity.DIALOG_BUTTON_SIZE;
+    final float butSize = displaymetrics.heightPixels * 0.04f;
     final View view = inflater.inflate(R.layout.dialog_stars_explain, null);
 
     builder.setCancelable(true);
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogStarsStatus.java b/src/main/java/org/distorted/dialogs/RubikDialogStarsStatus.java
index c0e94b49..6fe39967 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogStarsStatus.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogStarsStatus.java
@@ -10,6 +10,7 @@
 package org.distorted.dialogs;
 
 import android.app.Dialog;
+import android.content.Context;
 import android.content.DialogInterface;
 import android.os.Bundle;
 import android.util.DisplayMetrics;
@@ -17,6 +18,7 @@ import android.util.TypedValue;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.Window;
+import android.view.WindowManager;
 import android.widget.Button;
 import android.widget.LinearLayout;
 import android.widget.TextView;
@@ -36,6 +38,7 @@ public class RubikDialogStarsStatus extends AppCompatDialogFragment
   {
   private static final float LAYOUT_HEIGHT = 0.110f;
   private static final float MARGIN        = 0.007f;
+  private static final float BUTTON_SIZE   = 0.040f;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -48,11 +51,12 @@ public class RubikDialogStarsStatus extends AppCompatDialogFragment
     AlertDialog.Builder builder = new AlertDialog.Builder(act);
     DisplayMetrics displaymetrics = new DisplayMetrics();
     act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
-    final float butSize = displaymetrics.widthPixels * RubikActivity.DIALOG_BUTTON_SIZE;
     final View view = inflater.inflate(R.layout.dialog_stars_status, null);
 
-    int height = (int)(displaymetrics.heightPixels*LAYOUT_HEIGHT);
-    int margin = (int)(displaymetrics.heightPixels*MARGIN);
+    int h = displaymetrics.heightPixels;
+    final float butSize = h * BUTTON_SIZE;
+    int height = (int)(h*LAYOUT_HEIGHT);
+    int margin = (int)(h*MARGIN);
 
     LinearLayout.LayoutParams params1 = new LinearLayout.LayoutParams(LinearLayout.LayoutParams.MATCH_PARENT,LinearLayout.LayoutParams.WRAP_CONTENT);
     params1.setMargins(margin, margin, margin, margin);
@@ -105,6 +109,25 @@ public class RubikDialogStarsStatus extends AppCompatDialogFragment
     return dialog;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  @Override
+  public void onResume()
+    {
+    super.onResume();
+
+    Window window = getDialog().getWindow();
+    Context context = getContext();
+
+    if( window!=null && context!=null )
+      {
+      DisplayMetrics metrics = context.getResources().getDisplayMetrics();
+      WindowManager.LayoutParams params = window.getAttributes();
+      params.width  = (int)Math.min( 0.65f*metrics.heightPixels,0.95f*metrics.widthPixels );
+      params.height = WindowManager.LayoutParams.WRAP_CONTENT;
+      window.setAttributes(params);
+      }
+    }
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   void fillUpNumberOfStars(View view)
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogTutorial.java b/src/main/java/org/distorted/dialogs/RubikDialogTutorial.java
index e5bac503..9c2326b8 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogTutorial.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogTutorial.java
@@ -146,8 +146,8 @@ public class RubikDialogTutorial extends AppCompatDialogFragment
       {
       DisplayMetrics metrics = context.getResources().getDisplayMetrics();
       WindowManager.LayoutParams params = window.getAttributes();
-      params.width  = WindowManager.LayoutParams.WRAP_CONTENT;
-      params.height = (int)Math.min( 0.85f*metrics.heightPixels,1.3f*metrics.widthPixels );
+      params.width  = (int)Math.min( 0.65f*metrics.heightPixels,0.98f*metrics.widthPixels );
+      params.height = (int)Math.min( 0.85f*metrics.heightPixels,1.30f*metrics.widthPixels );
       window.setAttributes(params);
       }
     }
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogTutorialView.java b/src/main/java/org/distorted/dialogs/RubikDialogTutorialView.java
index fef1bed6..0f84fad6 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogTutorialView.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogTutorialView.java
@@ -121,7 +121,7 @@ public class RubikDialogTutorialView extends FrameLayout
   private View createRow(final RubikActivity act, int countryID, final String desc, final String url,
                          final String auth, int size, final int obj, int colorB, int colorT)
     {
-    float textSize = 0.5f*size;
+    float textSize = 0.43f*size;
     View row = inflate( act, R.layout.dialog_tutorial_row, null);
 
     LinearLayout layout = row.findViewById(R.id.tutorialLayout);
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogUpdates.java b/src/main/java/org/distorted/dialogs/RubikDialogUpdates.java
index 85e9d928..a1cc72fa 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogUpdates.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogUpdates.java
@@ -75,10 +75,9 @@ public class RubikDialogUpdates extends AppCompatDialogFragment implements Rubik
 
     DisplayMetrics displaymetrics = new DisplayMetrics();
     act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
-    int w= displaymetrics.widthPixels;
     int h= displaymetrics.heightPixels;
-    final float titleSize= w*RubikActivity.BIG_TEXT_SIZE;
-    final float okSize   = w*RubikActivity.DIALOG_BUTTON_SIZE;
+    final float titleSize= h*0.032f;
+    final float okSize   = h*0.04f;
     mMargin   = (int)(h*0.01f);
     mSize     = (int)(h*0.14f);
     mFontSize = (int)(h*0.02f);
