commit c651024fae46f130ba10c25e618140c90cdc962d
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Tue Jan 25 01:30:49 2022 +0100

    Downloading updates: dialog progress.

diff --git a/src/main/java/org/distorted/config/ConfigScreen.java b/src/main/java/org/distorted/config/ConfigScreen.java
index f241f7b8..dc999418 100644
--- a/src/main/java/org/distorted/config/ConfigScreen.java
+++ b/src/main/java/org/distorted/config/ConfigScreen.java
@@ -158,7 +158,7 @@ public class ConfigScreen
 
   private void setupObjectButton(final ConfigActivity act, final int width)
     {
-    final int margin= (int)(width*RubikActivity.MARGIN);
+    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);
     mObjectButton = new TransparentImageButton(act, icon, TransparentImageButton.GRAVITY_MIDDLE, params);
@@ -297,7 +297,7 @@ public class ConfigScreen
   private void setupTextView(final ConfigActivity act, final float width, int numObjects)
     {
     int padding = (int)(width*RubikActivity.PADDING);
-    int margin  = (int)(width*RubikActivity.MARGIN);
+    int margin  = (int)(width*RubikActivity.SMALL_MARGIN);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT,2.0f);
     params.topMargin    = margin;
     params.bottomMargin = margin;
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogUpdateView.java b/src/main/java/org/distorted/dialogs/RubikDialogUpdateView.java
index a6365bd4..3bfd2846 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogUpdateView.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogUpdateView.java
@@ -20,9 +20,11 @@
 package org.distorted.dialogs;
 
 import android.app.Activity;
+import android.util.TypedValue;
 import android.view.View;
 import android.widget.Button;
 import android.widget.ImageView;
+import android.widget.LinearLayout;
 import android.widget.TextView;
 
 import org.distorted.main.R;
@@ -44,13 +46,16 @@ public class RubikDialogUpdateView
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public View createView(Activity act, RubikUpdates.UpdateInfo info, boolean isNew)
+  public View createView(Activity act, RubikUpdates.UpdateInfo info, int fontSize, boolean isNew,
+                         LinearLayout.LayoutParams pImage, LinearLayout.LayoutParams pView,
+                         LinearLayout.LayoutParams pText, LinearLayout.LayoutParams pButt )
     {
     int layoutID = R.layout.dialog_updates_pane;
     mView = act.getLayoutInflater().inflate(layoutID, null);
-    Button install = mView.findViewById(R.id.updates_pane_button);
 
-    install.setOnClickListener( new View.OnClickListener()
+    Button button = mView.findViewById(R.id.updates_pane_button);
+
+    button.setOnClickListener( new View.OnClickListener()
       {
       @Override
       public void onClick(View v)
@@ -63,8 +68,8 @@ public class RubikDialogUpdateView
     title.setText(info.mObjectLongName);
     TextView version = mView.findViewById(R.id.updates_pane_version);
     String strVersion = info.mUpdateObject
-                        ? JsonWriter.VERSION_OBJECT_MAJOR+"."+info.mObjectMinorVersion
-                        : JsonWriter.VERSION_EXTRAS_MAJOR+"."+info.mExtrasMinorVersion;
+                        ? "v. "+JsonWriter.VERSION_OBJECT_MAJOR+"."+info.mObjectMinorVersion
+                        : "v. "+JsonWriter.VERSION_EXTRAS_MAJOR+"."+info.mExtrasMinorVersion;
     version.setText(strVersion);
     TextView description = mView.findViewById(R.id.updates_pane_description);
     description.setText(info.mDescription);
@@ -72,6 +77,19 @@ public class RubikDialogUpdateView
     ImageView image = mView.findViewById(R.id.updates_pane_image);
     image.setBackgroundResource(R.drawable.unknown_icon);
 
+    image.setLayoutParams(pImage);
+    mView.setLayoutParams(pView);
+
+    title.setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize);
+    version.setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize);
+    description.setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize);
+    button.setTextSize(TypedValue.COMPLEX_UNIT_PX, fontSize);
+
+    title.setLayoutParams(pText);
+    version.setLayoutParams(pText);
+    description.setLayoutParams(pText);
+    button.setLayoutParams(pButt);
+
     return mView;
     }
   }
diff --git a/src/main/java/org/distorted/dialogs/RubikDialogUpdates.java b/src/main/java/org/distorted/dialogs/RubikDialogUpdates.java
index 5545dcba..51bc9344 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogUpdates.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogUpdates.java
@@ -51,6 +51,7 @@ public class RubikDialogUpdates extends AppCompatDialogFragment implements Rubik
   private TextView mText;
   private ScrollView mScroll;
   private LinearLayout mLayout;
+  private int mMargin, mSize, mFontSize;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -79,8 +80,13 @@ public class RubikDialogUpdates extends AppCompatDialogFragment implements Rubik
 
     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.DIALOG_BUTTON_SIZE;
+    int w= displaymetrics.widthPixels;
+    int h= displaymetrics.heightPixels;
+    final float titleSize= w*RubikActivity.MENU_BIG_TEXT_SIZE;
+    final float okSize   = w*RubikActivity.DIALOG_BUTTON_SIZE;
+    mMargin              = (int)(w*RubikActivity.MEDIUM_MARGIN);
+    mSize                = (int)(h*0.19f);
+    mFontSize            = (int)(h*0.02f);
 
     TextView title = (TextView) inflater.inflate(R.layout.dialog_title, null);
     title.setTextSize(TypedValue.COMPLEX_UNIT_PX, titleSize);
@@ -119,6 +125,9 @@ public class RubikDialogUpdates extends AppCompatDialogFragment implements Rubik
         }
       });
 
+    RubikNetwork network = RubikNetwork.getInstance();
+    network.signUpForUpdates(this);
+
     return dialog;
     }
 
@@ -129,9 +138,6 @@ public class RubikDialogUpdates extends AppCompatDialogFragment implements Rubik
     {
     super.onResume();
 
-    RubikNetwork network = RubikNetwork.getInstance();
-    network.signUpForUpdates(this);
-
     Window window = getDialog().getWindow();
     Context context = getContext();
 
@@ -145,8 +151,9 @@ public class RubikDialogUpdates extends AppCompatDialogFragment implements Rubik
       params.height = (int)(0.75f*height);
       window.setAttributes(params);
 
-      int textHeight = (int)(0.8f*params.height);
+      int textHeight = (int)(0.75f*params.height);
       mText.setHeight(textHeight);
+      mLayout.setMinimumHeight(textHeight);
       }
     }
 
@@ -166,6 +173,20 @@ public class RubikDialogUpdates extends AppCompatDialogFragment implements Rubik
       }
     else
       {
+      //mScroll.setVerticalScrollBarEnabled(false);
+      //mText.setText(act.getString(R.string.no_updates));
+
+      int imagH = (int)(mSize*0.52f);
+      int textH = (int)(mSize*0.20f);
+      int buttH = (int)(mSize*0.35f);
+
+      LinearLayout.LayoutParams pI = new LinearLayout.LayoutParams( imagH,imagH );
+      pI.setMargins(mMargin/2, mMargin/2, mMargin/2, mMargin/2 );
+      LinearLayout.LayoutParams pV = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, mSize );
+      pV.setMargins(mMargin, mMargin, mMargin, 0);
+      LinearLayout.LayoutParams pT = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, textH );
+      LinearLayout.LayoutParams pB = new LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, buttH );
+
       mText.setVisibility(View.GONE);
 
       if( mLayout!=null )
@@ -174,14 +195,14 @@ public class RubikDialogUpdates extends AppCompatDialogFragment implements Rubik
           {
           RubikUpdates.UpdateInfo info = updates.getNewUpdate(i);
           RubikDialogUpdateView rubikView = new RubikDialogUpdateView();
-          View pane = rubikView.createView(act,info,true);
+          View pane = rubikView.createView(act,info,mFontSize,true,pI,pV,pT,pB);
           mLayout.addView(pane);
           }
         for(int i=0; i<numU; i++)
           {
           RubikUpdates.UpdateInfo info = updates.getUpdUpdate(i);
           RubikDialogUpdateView rubikView = new RubikDialogUpdateView();
-          View pane = rubikView.createView(act,info,false);
+          View pane = rubikView.createView(act,info,mFontSize,false,pI,pV,pT,pB);
           mLayout.addView(pane);
           }
         }
diff --git a/src/main/java/org/distorted/main/RubikActivity.java b/src/main/java/org/distorted/main/RubikActivity.java
index a0956eed..c81af715 100644
--- a/src/main/java/org/distorted/main/RubikActivity.java
+++ b/src/main/java/org/distorted/main/RubikActivity.java
@@ -68,7 +68,8 @@ import static org.distorted.objectlib.main.TwistyObject.MESH_NICE;
 public class RubikActivity extends AppCompatActivity
 {
     public static final float PADDING             = 0.01f;
-    public static final float MARGIN              = 0.004f;
+    public static final float SMALL_MARGIN        = 0.004f;
+    public static final float MEDIUM_MARGIN       = 0.015f;
     public static final float LARGE_MARGIN        = 0.025f;
     public static final float BUTTON_TEXT_SIZE    = 0.05f;
     public static final float TITLE_TEXT_SIZE     = 0.06f;
diff --git a/src/main/java/org/distorted/screens/RubikScreenPattern.java b/src/main/java/org/distorted/screens/RubikScreenPattern.java
index f5af2207..422dbc6b 100644
--- a/src/main/java/org/distorted/screens/RubikScreenPattern.java
+++ b/src/main/java/org/distorted/screens/RubikScreenPattern.java
@@ -207,7 +207,7 @@ public class RubikScreenPattern extends RubikScreenAbstract
   private void setupTextView(final RubikActivity act, final float width)
     {
     int padding = (int)(width*RubikActivity.PADDING);
-    int margin  = (int)(width*RubikActivity.MARGIN);
+    int margin  = (int)(width*RubikActivity.SMALL_MARGIN);
 
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT,2.0f);
     params.topMargin    = margin;
diff --git a/src/main/java/org/distorted/screens/RubikScreenPlay.java b/src/main/java/org/distorted/screens/RubikScreenPlay.java
index 9db9d092..86765e1b 100644
--- a/src/main/java/org/distorted/screens/RubikScreenPlay.java
+++ b/src/main/java/org/distorted/screens/RubikScreenPlay.java
@@ -131,7 +131,7 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
 
   private void setupObjectButton(final RubikActivity act, final float width)
     {
-    final int margin  = (int)(width*RubikActivity.MARGIN);
+    final int margin  = (int)(width*RubikActivity.SMALL_MARGIN);
     final int lMargin = (int)(width*RubikActivity.LARGE_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);
@@ -164,7 +164,7 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
 
   private void setupPlayButton(final RubikActivity act, final float width)
     {
-    final int margin = (int)(width*RubikActivity.MARGIN);
+    final int margin = (int)(width*RubikActivity.SMALL_MARGIN);
 
     mPlayButton = new TransparentButton(act, R.string.play, mButtonSize);
 
@@ -201,7 +201,7 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
 
   private void setupMenuButton(final RubikActivity act, final float width)
     {
-    final int margin = (int)(width*RubikActivity.MARGIN);
+    final int margin = (int)(width*RubikActivity.SMALL_MARGIN);
     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);
@@ -384,7 +384,7 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
     mMenuPopup = new PopupWindow(act);
     mMenuPopup.setContentView(layout);
     mMenuPopup.setFocusable(true);
-    int margin  = (int)(width*RubikActivity.MARGIN);
+    int margin  = (int)(width*RubikActivity.SMALL_MARGIN);
     int padding = (int)(width*RubikActivity.PADDING);
 
     mMenuLayoutWidth = (int)(width/2);
@@ -637,7 +637,7 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
       }
 
     float width  = act.getScreenWidthInPixels();
-    int margin   = (int)(width*RubikActivity.MARGIN);
+    int margin   = (int)(width*RubikActivity.SMALL_MARGIN);
     int padding  = (int)(width*RubikActivity.PADDING);
     int butWidth = mPlayLayoutWidth - 2*padding;
     int butHeight= (int)mMenuItemSize;
diff --git a/src/main/java/org/distorted/screens/RubikScreenSolution.java b/src/main/java/org/distorted/screens/RubikScreenSolution.java
index 69fbe9ed..f8cb743a 100644
--- a/src/main/java/org/distorted/screens/RubikScreenSolution.java
+++ b/src/main/java/org/distorted/screens/RubikScreenSolution.java
@@ -152,7 +152,7 @@ public class RubikScreenSolution extends RubikScreenAbstract implements MovesFin
   private void setupTextView(final RubikActivity act, final float width)
     {
     int padding = (int)(width*RubikActivity.PADDING);
-    int margin  = (int)(width*RubikActivity.MARGIN);
+    int margin  = (int)(width*RubikActivity.SMALL_MARGIN);
     LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(0,LinearLayout.LayoutParams.MATCH_PARENT,2.0f);
     params.topMargin    = margin;
     params.bottomMargin = margin;
diff --git a/src/main/java/org/distorted/screens/RubikScreenSolver.java b/src/main/java/org/distorted/screens/RubikScreenSolver.java
index c8f60024..8781a53f 100644
--- a/src/main/java/org/distorted/screens/RubikScreenSolver.java
+++ b/src/main/java/org/distorted/screens/RubikScreenSolver.java
@@ -178,7 +178,7 @@ public class RubikScreenSolver extends RubikScreenAbstract
     {
     mColorButton = new ImageButton[mNumFaces];
     int padding = (int)(width*RubikActivity.PADDING);
-    int margin  = (int)(width*RubikActivity.MARGIN);
+    int margin  = (int)(width*RubikActivity.SMALL_MARGIN);
 
     for(int i=0; i<mNumFaces; i++)
       {
diff --git a/src/main/res/layout/dialog_updates.xml b/src/main/res/layout/dialog_updates.xml
index 5b50a2a8..09438aa4 100644
--- a/src/main/res/layout/dialog_updates.xml
+++ b/src/main/res/layout/dialog_updates.xml
@@ -10,11 +10,7 @@
         android:id="@+id/updates_main_layout"
         android:layout_width="match_parent"
         android:layout_height="wrap_content"
-        android:gravity="center|fill_horizontal"
         android:background="@color/black"
-        android:paddingLeft="10dp"
-        android:paddingRight="10dp"
-        android:paddingTop="10dp"
         android:paddingBottom="10dp"
         android:orientation="vertical">
 
diff --git a/src/main/res/layout/dialog_updates_pane.xml b/src/main/res/layout/dialog_updates_pane.xml
index 8ddb9600..c4831375 100644
--- a/src/main/res/layout/dialog_updates_pane.xml
+++ b/src/main/res/layout/dialog_updates_pane.xml
@@ -3,42 +3,49 @@
 	xmlns:android="http://schemas.android.com/apk/res/android"
 	android:layout_width="match_parent"
 	android:layout_height="wrap_content"
-	android:layout_margin="10dp"
 	android:background="@color/grey"
+	android:padding="8dp"
 	android:orientation="horizontal">
 
    	<ImageView
-   		android:id="@+id/updates_pane_image"
+   	    android:id="@+id/updates_pane_image"
+   	    android:scaleType="fitCenter"
    		android:layout_width="wrap_content"
-   		android:layout_height="wrap_content"
-   		android:layout_margin="10dp"/>
+   		android:layout_height="wrap_content"/>
 
    	<LinearLayout
    		android:layout_width="match_parent"
- 		android:layout_height="wrap_content"
+ 		android:layout_height="match_parent"
  		android:orientation="vertical"
+ 		android:layout_marginStart="8dp"
+
  		android:layout_gravity="center_vertical">
 
 		<TextView
     		android:id="@+id/updates_pane_title"
+    		android:gravity="center_vertical"
     		android:layout_width="match_parent"
     		android:layout_height="wrap_content"
     		android:textStyle="bold"/>
    		<TextView
     		android:id="@+id/updates_pane_version"
+    		android:gravity="center_vertical"
     		android:layout_width="wrap_content"
     		android:layout_height="wrap_content"/>
-    	<TextView
+
+        <TextView
     		android:id="@+id/updates_pane_description"
+    		android:gravity="center_vertical"
     		android:layout_width="wrap_content"
     		android:layout_height="wrap_content"/>
+
     	<Button
              android:id="@+id/updates_pane_button"
              android:layout_width="match_parent"
              android:layout_height="wrap_content"
              android:backgroundTint="@color/black"
-             android:layout_marginEnd="10dp"
              android:text="@string/install"
-             android:gravity="center_vertical"/>
+             android:gravity="center"/>
+
  	</LinearLayout>
 </LinearLayout>
\ No newline at end of file
