commit 903c7bbce751bc197b633a75ab1058ef5ad57487
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sun Jan 23 01:32:30 2022 +0100

    Progress downloading updates: dialog.

diff --git a/src/main/java/org/distorted/dialogs/RubikDialogUpdates.java b/src/main/java/org/distorted/dialogs/RubikDialogUpdates.java
index 8e87ffa5..678526c8 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogUpdates.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogUpdates.java
@@ -90,6 +90,9 @@ public class RubikDialogUpdates extends AppCompatDialogFragment implements Rubik
         }
       });
 
+    RubikNetwork network = RubikNetwork.getInstance();
+    network.signUpForUpdates(this);
+
     return dialog;
     }
 
diff --git a/src/main/java/org/distorted/network/RubikNetwork.java b/src/main/java/org/distorted/network/RubikNetwork.java
index d8c240b0..532d25c9 100644
--- a/src/main/java/org/distorted/network/RubikNetwork.java
+++ b/src/main/java/org/distorted/network/RubikNetwork.java
@@ -743,4 +743,11 @@ public class RubikNetwork implements Runnable
     else if( mDebugState==DEBUG_FAILURE ) updatee.errorUpdate();
     else mUpdatee = updatee;
     }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public void updateDone(String shortName)
+    {
+    mUpdates.updateDone(shortName);
+    }
 }
\ No newline at end of file
diff --git a/src/main/java/org/distorted/network/RubikUpdates.java b/src/main/java/org/distorted/network/RubikUpdates.java
index e6b32fc3..624e2982 100644
--- a/src/main/java/org/distorted/network/RubikUpdates.java
+++ b/src/main/java/org/distorted/network/RubikUpdates.java
@@ -49,7 +49,6 @@ public class RubikUpdates
       }
     }
 
-  private int mNumberOfUpdates;
   private String mUrl;
   private final ArrayList<UpdateInfo> mNew, mUpd;
 
@@ -80,7 +79,6 @@ public class RubikUpdates
 
   private void parseLine(String[] elements)
     {
-    boolean added = false;
     String shortName   = elements[0];
     String objMinor    = elements[1];
     String extMinor    = elements[2];
@@ -108,18 +106,14 @@ public class RubikUpdates
           {
           UpdateInfo info = new UpdateInfo(shortName,longName,description,oMinor,eMinor,updateO,updateE);
           mUpd.add(info);
-          added = true;
           }
         }
       else
         {
         UpdateInfo info = new UpdateInfo(shortName,longName,description,oMinor,eMinor,true,true);
         mNew.add(info);
-        added = true;
         }
       }
-
-    if( added ) mNumberOfUpdates++;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -128,8 +122,6 @@ public class RubikUpdates
     {
     android.util.Log.e("D", updates);
 
-    mNumberOfUpdates = 0;
-
     mNew.clear();
     mUpd.clear();
 
@@ -147,11 +139,34 @@ public class RubikUpdates
       }
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public void updateDone(String shortName)
+    {
+    for( UpdateInfo info : mNew)
+      {
+      if( info.mObjectShortName.equals(shortName) )
+        {
+        mNew.remove(info);
+        return;
+        }
+      }
+
+    for( UpdateInfo info : mUpd)
+      {
+      if( info.mObjectShortName.equals(shortName) )
+        {
+        mUpd.remove(info);
+        return;
+        }
+      }
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   public int getNumberOfUpdates()
     {
-    return mNumberOfUpdates;
+    return mNew.size()+mUpd.size();
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/screens/RubikScreenPlay.java b/src/main/java/org/distorted/screens/RubikScreenPlay.java
index 688926a7..99e512d0 100644
--- a/src/main/java/org/distorted/screens/RubikScreenPlay.java
+++ b/src/main/java/org/distorted/screens/RubikScreenPlay.java
@@ -716,6 +716,10 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
       mBubbleUpdates.setText(shownNum);
       mBubbleUpdates.setVisibility(View.VISIBLE);
       }
+    else
+      {
+      mBubbleUpdates.setVisibility(View.INVISIBLE);
+      }
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
