commit 0651572f8bcc096e076ae6c396956bb998fec092
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sun Nov 9 23:25:18 2025 +0100

    Improve DialogUpdates

diff --git a/src/main/java/org/distorted/dialogs/DialogUpdates.java b/src/main/java/org/distorted/dialogs/DialogUpdates.java
index 9431baac..562a2ad9 100644
--- a/src/main/java/org/distorted/dialogs/DialogUpdates.java
+++ b/src/main/java/org/distorted/dialogs/DialogUpdates.java
@@ -13,6 +13,7 @@ import java.util.ArrayList;
 
 import android.app.Dialog;
 import android.graphics.Bitmap;
+import android.util.DisplayMetrics;
 import android.util.TypedValue;
 import android.view.View;
 import android.view.Window;
@@ -42,13 +43,34 @@ public class DialogUpdates extends DialogAbstract implements RubikNetwork.IconRe
     {
     super.onResume();
 
-    Window window = getDialog().getWindow();
+    Dialog dialog = getDialog();
 
-    if( window!=null )
+    if( dialog!=null )
       {
-      WindowManager.LayoutParams params = window.getAttributes();
-      params.width  = (int)Math.min( mHeight*0.65f,mWidth*0.98f );
-      window.setAttributes(params);
+      Window window = dialog.getWindow();
+
+      if( window!=null )
+        {
+        WindowManager.LayoutParams params = window.getAttributes();
+        params.width  = (int)Math.min( mHeight*0.65f,mWidth*0.98f );
+
+        DisplayMetrics displayMetrics = getResources().getDisplayMetrics();
+        int maxHeight = (int) (displayMetrics.heightPixels * 0.80);
+
+        View contentView = dialog.findViewById(android.R.id.content);
+
+        if (contentView != null)
+          {
+          int widthSpec = View.MeasureSpec.makeMeasureSpec(displayMetrics.widthPixels, View.MeasureSpec.AT_MOST);
+          int heightSpec = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED);
+          contentView.measure(widthSpec, heightSpec);
+          int desiredHeight = contentView.getMeasuredHeight();
+          params.height = Math.min(desiredHeight, maxHeight);
+          }
+        else params.height = maxHeight;
+
+        window.setAttributes(params);
+        }
       }
     }
 
@@ -79,10 +101,7 @@ public class DialogUpdates extends DialogAbstract implements RubikNetwork.IconRe
     mText  = view.findViewById(R.id.dialog_scrollable_message);
     mText.setTextSize(TypedValue.COMPLEX_UNIT_PX, size);
     mText.setText( act.getString(R.string.downloading) );
-
-    mLayout.setMinimumHeight(minH);
     mText.setMinimumHeight(minH);
-    view.setMinimumHeight(minH);
 
     RubikNetwork network = RubikNetwork.getInstance();
     network.signUpForUpdates(this);
