commit fb37b4246e9a18aae864c4e0b1aedff47e470aad
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sun Jun 21 00:35:45 2020 +0100

    Improvements to the UI - make it proportional regardless of the physical screen size. (Part 6 - next 5 Dialogs)

diff --git a/src/main/java/org/distorted/dialogs/RubikDialogError.java b/src/main/java/org/distorted/dialogs/RubikDialogError.java
index 625f1959..f959cf22 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogError.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogError.java
@@ -22,8 +22,11 @@ package org.distorted.dialogs;
 import android.app.Dialog;
 import android.content.DialogInterface;
 import android.os.Bundle;
+import android.util.DisplayMetrics;
+import android.util.TypedValue;
 import android.view.LayoutInflater;
 import android.view.View;
+import android.widget.Button;
 import android.widget.TextView;
 
 import androidx.annotation.NonNull;
@@ -32,6 +35,7 @@ import androidx.appcompat.app.AppCompatDialogFragment;
 import androidx.fragment.app.FragmentActivity;
 
 import org.distorted.main.R;
+import org.distorted.main.RubikActivity;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -45,6 +49,11 @@ public class RubikDialogError extends AppCompatDialogFragment
     LayoutInflater inflater = act.getLayoutInflater();
     AlertDialog.Builder builder = new AlertDialog.Builder(act);
 
+    DisplayMetrics displaymetrics = new DisplayMetrics();
+    act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
+    final float titleSize= displaymetrics.widthPixels * RubikActivity.MENU_BIG_TEXT_SIZE;
+    final float okSize   = displaymetrics.widthPixels * RubikActivity.MENU_MEDIUM_TEXT_SIZE;
+
     Bundle args = getArguments();
     String error;
 
@@ -58,6 +67,7 @@ public class RubikDialogError extends AppCompatDialogFragment
       }
 
     TextView tv = (TextView) inflater.inflate(R.layout.dialog_title, null);
+    tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
     tv.setText(R.string.opengl_error);
     builder.setCustomTitle(tv);
 
@@ -81,6 +91,16 @@ public class RubikDialogError extends AppCompatDialogFragment
     final Dialog dialog = builder.create();
     dialog.setCanceledOnTouchOutside(false);
 
+    dialog.setOnShowListener(new DialogInterface.OnShowListener()
+      {
+      @Override
+      public void onShow(DialogInterface dialog)
+        {
+        Button btnPositive = ((AlertDialog)dialog).getButton(Dialog.BUTTON_POSITIVE);
+        btnPositive.setTextSize(TypedValue.COMPLEX_UNIT_PX, okSize);
+        }
+      });
+
     return dialog;
     }
   }
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogNewRecord.java b/src/main/java/org/distorted/dialogs/RubikDialogNewRecord.java
index 74b5fc1f..ea161928 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogNewRecord.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogNewRecord.java
@@ -26,10 +26,14 @@ import androidx.annotation.NonNull;
 import androidx.fragment.app.FragmentActivity;
 import androidx.appcompat.app.AlertDialog;
 import androidx.appcompat.app.AppCompatDialogFragment;
+
+import android.util.DisplayMetrics;
+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.TextView;
 
 import org.distorted.main.R;
@@ -73,7 +77,14 @@ public class RubikDialogNewRecord extends AppCompatDialogFragment
     LayoutInflater inflater = act.getLayoutInflater();
     AlertDialog.Builder builder = new AlertDialog.Builder(act);
 
+    DisplayMetrics displaymetrics = new DisplayMetrics();
+    act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
+    final float titleSize= displaymetrics.widthPixels * RubikActivity.MENU_BIG_TEXT_SIZE;
+    final float okSize   = displaymetrics.widthPixels * RubikActivity.MENU_MEDIUM_TEXT_SIZE;
+    final float textSize = displaymetrics.widthPixels * RubikActivity.MENU_BIG_TEXT_SIZE;
+
     TextView tv = (TextView) inflater.inflate(R.layout.dialog_title, null);
+    tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
     tv.setText(R.string.new_record);
     builder.setCustomTitle(tv);
     builder.setCancelable(true);
@@ -138,9 +149,13 @@ public class RubikDialogNewRecord extends AppCompatDialogFragment
 
     final View view = inflater.inflate(R.layout.dialog_new_record, null);
     TextView text = view.findViewById(R.id.new_record_time);
+    text.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
     text.setText(getString(R.string.ti_placeholder, (time/100)/10.0f));
     builder.setView(view);
 
+    TextView submit = view.findViewById(R.id.new_record_submit);
+    submit.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
+
     Dialog dialog = builder.create();
 
     dialog.setCanceledOnTouchOutside(false);
@@ -152,6 +167,18 @@ public class RubikDialogNewRecord extends AppCompatDialogFragment
       window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
       }
 
+    dialog.setOnShowListener(new DialogInterface.OnShowListener()
+      {
+      @Override
+      public void onShow(DialogInterface dialog)
+        {
+        Button btnPositive = ((AlertDialog)dialog).getButton(Dialog.BUTTON_POSITIVE);
+        btnPositive.setTextSize(TypedValue.COMPLEX_UNIT_PX, okSize);
+        Button btnNegative = ((AlertDialog)dialog).getButton(Dialog.BUTTON_NEGATIVE);
+        btnNegative.setTextSize(TypedValue.COMPLEX_UNIT_PX, okSize);
+        }
+      });
+
     return dialog;
     }
   }
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogSetName.java b/src/main/java/org/distorted/dialogs/RubikDialogSetName.java
index 7d995d66..8d0944f7 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogSetName.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogSetName.java
@@ -28,6 +28,8 @@ import androidx.appcompat.app.AlertDialog;
 import androidx.appcompat.app.AppCompatDialogFragment;
 import android.text.Editable;
 import android.text.TextWatcher;
+import android.util.DisplayMetrics;
+import android.util.TypedValue;
 import android.view.LayoutInflater;
 import android.view.View;
 import android.view.Window;
@@ -81,6 +83,12 @@ public class RubikDialogSetName extends AppCompatDialogFragment
     LayoutInflater inflater = act.getLayoutInflater();
     AlertDialog.Builder builder = new AlertDialog.Builder(act);
 
+    DisplayMetrics displaymetrics = new DisplayMetrics();
+    act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
+    final float titleSize= displaymetrics.widthPixels * RubikActivity.MENU_BIG_TEXT_SIZE;
+    final float okSize   = displaymetrics.widthPixels * RubikActivity.MENU_MEDIUM_TEXT_SIZE;
+    final float textSize = displaymetrics.widthPixels * RubikActivity.MENU_SMALL_TEXT_SIZE;
+
     Bundle args = getArguments();
     String name;
 
@@ -96,12 +104,16 @@ public class RubikDialogSetName extends AppCompatDialogFragment
     boolean first = name.length()==0;
 
     TextView tv = (TextView) inflater.inflate(R.layout.dialog_title, null);
+    tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
     tv.setText( first ? R.string.choose_name : R.string.name_taken);
     builder.setCustomTitle(tv);
 
     final View view = inflater.inflate(R.layout.dialog_set_name, null);
     TextView text = view.findViewById(R.id.set_name_message);
+    text.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
     mEdit = view.findViewById(R.id.set_name);
+    mEdit.setHeight( (int)(2*titleSize) );
+    mEdit.setTextSize(TypedValue.COMPLEX_UNIT_PX, 1.5f*titleSize);
 
     if( first )
       {
@@ -179,6 +191,16 @@ public class RubikDialogSetName extends AppCompatDialogFragment
       window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
       }
 
+    dialog.setOnShowListener(new DialogInterface.OnShowListener()
+      {
+      @Override
+      public void onShow(DialogInterface dialog)
+        {
+        Button btnPositive = ((AlertDialog)dialog).getButton(Dialog.BUTTON_POSITIVE);
+        btnPositive.setTextSize(TypedValue.COMPLEX_UNIT_PX, okSize);
+        }
+      });
+
     return dialog;
     }
   }
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogSolved.java b/src/main/java/org/distorted/dialogs/RubikDialogSolved.java
index 26b901e9..be49b08b 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogSolved.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogSolved.java
@@ -26,10 +26,14 @@ import androidx.annotation.NonNull;
 import androidx.fragment.app.FragmentActivity;
 import androidx.appcompat.app.AlertDialog;
 import androidx.appcompat.app.AppCompatDialogFragment;
+
+import android.util.DisplayMetrics;
+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.TextView;
 
 import org.distorted.main.R;
@@ -48,7 +52,14 @@ public class RubikDialogSolved extends AppCompatDialogFragment
     LayoutInflater inflater = act.getLayoutInflater();
     AlertDialog.Builder builder = new AlertDialog.Builder(act);
 
+    DisplayMetrics displaymetrics = new DisplayMetrics();
+    act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
+    final float titleSize= displaymetrics.widthPixels * RubikActivity.MENU_BIG_TEXT_SIZE;
+    final float okSize   = displaymetrics.widthPixels * RubikActivity.MENU_MEDIUM_TEXT_SIZE;
+    final float textSize = displaymetrics.widthPixels * RubikActivity.MENU_BIG_TEXT_SIZE;
+
     TextView tv = (TextView) inflater.inflate(R.layout.dialog_title, null);
+    tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
     tv.setText(R.string.solved);
     builder.setCustomTitle(tv);
 
@@ -77,6 +88,7 @@ public class RubikDialogSolved extends AppCompatDialogFragment
 
     final View view = inflater.inflate(R.layout.dialog_solved, null);
     TextView text = view.findViewById(R.id.solved_time);
+    text.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
     text.setText(getString(R.string.ti_placeholder, (time/100)/10.0f));
     builder.setView(view);
 
@@ -91,6 +103,16 @@ public class RubikDialogSolved extends AppCompatDialogFragment
       window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
       }
 
+    dialog.setOnShowListener(new DialogInterface.OnShowListener()
+      {
+      @Override
+      public void onShow(DialogInterface dialog)
+        {
+        Button btnPositive = ((AlertDialog)dialog).getButton(Dialog.BUTTON_POSITIVE);
+        btnPositive.setTextSize(TypedValue.COMPLEX_UNIT_PX, okSize);
+        }
+      });
+
     return dialog;
     }
   }
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogSolverError.java b/src/main/java/org/distorted/dialogs/RubikDialogSolverError.java
index f7cc3368..7a03e1f3 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogSolverError.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogSolverError.java
@@ -26,13 +26,18 @@ import androidx.annotation.NonNull;
 import androidx.fragment.app.FragmentActivity;
 import androidx.appcompat.app.AlertDialog;
 import androidx.appcompat.app.AppCompatDialogFragment;
+
+import android.util.DisplayMetrics;
+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.TextView;
 
 import org.distorted.main.R;
+import org.distorted.main.RubikActivity;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -46,7 +51,14 @@ public class RubikDialogSolverError extends AppCompatDialogFragment
     LayoutInflater inflater = act.getLayoutInflater();
     AlertDialog.Builder builder = new AlertDialog.Builder(act);
 
+    DisplayMetrics displaymetrics = new DisplayMetrics();
+    act.getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
+    final float titleSize= displaymetrics.widthPixels * RubikActivity.MENU_BIG_TEXT_SIZE;
+    final float okSize   = displaymetrics.widthPixels * RubikActivity.MENU_MEDIUM_TEXT_SIZE;
+    final float textSize = displaymetrics.widthPixels * RubikActivity.MENU_BIG_TEXT_SIZE;
+
     TextView tv = (TextView) inflater.inflate(R.layout.dialog_title, null);
+    tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
     tv.setText(R.string.error);
     builder.setCustomTitle(tv);
 
@@ -74,6 +86,7 @@ public class RubikDialogSolverError extends AppCompatDialogFragment
 
     final View view = inflater.inflate(R.layout.dialog_solver_error, null);
     TextView text = view.findViewById(R.id.solver_error);
+    text.setTextSize(TypedValue.COMPLEX_UNIT_PX, textSize);
     text.setText(errorStr);
     builder.setView(view);
 
@@ -88,6 +101,16 @@ public class RubikDialogSolverError extends AppCompatDialogFragment
       window.clearFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
       }
 
+    dialog.setOnShowListener(new DialogInterface.OnShowListener()
+      {
+      @Override
+      public void onShow(DialogInterface dialog)
+        {
+        Button btnPositive = ((AlertDialog)dialog).getButton(Dialog.BUTTON_POSITIVE);
+        btnPositive.setTextSize(TypedValue.COMPLEX_UNIT_PX, okSize);
+        }
+      });
+
     return dialog;
     }
   }
