commit 10373dc797006783ecbff6b9424ba83560add585
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Fri Jan 21 23:54:35 2022 +0100

    Progress downloading updates.

diff --git a/src/main/java/org/distorted/network/RubikUpdates.java b/src/main/java/org/distorted/network/RubikUpdates.java
index 3d3b2d36..4b4fcd9a 100644
--- a/src/main/java/org/distorted/network/RubikUpdates.java
+++ b/src/main/java/org/distorted/network/RubikUpdates.java
@@ -142,6 +142,18 @@ public class RubikUpdates
       }
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public int getNumberOfUpdates()
+    {
+    int newO = mNewObjects.size();
+    int newE = mNewExtras.size();
+    int updO = mUpdObjects.size();
+    int updE = mUpdExtras.size();
+
+    return newO+newE+updO+updE;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   public void showDebug()
diff --git a/src/main/java/org/distorted/screens/RubikScreenPlay.java b/src/main/java/org/distorted/screens/RubikScreenPlay.java
index 52766c75..b906427d 100644
--- a/src/main/java/org/distorted/screens/RubikScreenPlay.java
+++ b/src/main/java/org/distorted/screens/RubikScreenPlay.java
@@ -35,6 +35,7 @@ import android.widget.ImageButton;
 import android.widget.LinearLayout;
 import android.widget.PopupWindow;
 import android.widget.RelativeLayout;
+import android.widget.TextView;
 
 import org.distorted.network.RubikNetwork;
 import org.distorted.network.RubikUpdates;
@@ -75,6 +76,7 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
   private TransparentButton mPlayButton;
   private PopupWindow mObjectPopup, mMenuPopup, mPlayPopup;
   private LinearLayout mPlayLayout;
+  private TextView mBubbleUpdates;
   private int mObjectSize, mMenuLayoutWidth, mMenuLayoutHeight, mPlayLayoutWidth;
   private int mLevelValue;
   private float mButtonSize, mMenuItemSize, mMenuTextSize;
@@ -360,6 +362,9 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
         }
       });
 
+    mBubbleUpdates = layout.findViewById(R.id.bubbleUpdates);
+    mBubbleUpdates.setVisibility(View.INVISIBLE);
+
     RubikNetwork network = RubikNetwork.getInstance();
     network.signUpForUpdates(this);
     }
@@ -696,7 +701,14 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
 
   public void receiveUpdate(RubikUpdates updates)
     {
-    updates.showDebug();
+    int num = updates.getNumberOfUpdates();
+
+    if( num>0 )
+      {
+      String shownNum = String.valueOf(num);
+      mBubbleUpdates.setText(shownNum);
+      mBubbleUpdates.setVisibility(View.VISIBLE);
+      }
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/res/layout/popup_object.xml b/src/main/res/layout/popup_object.xml
index 29656e0c..383631a2 100644
--- a/src/main/res/layout/popup_object.xml
+++ b/src/main/res/layout/popup_object.xml
@@ -43,7 +43,6 @@
            android:layout_height="wrap_content"
            android:layout_alignTop="@+id/buttonDow"
            android:layout_alignEnd="@+id/buttonDow"
-           android:text="4"
            android:textColor="#FFF"
            android:textSize="16sp"
            android:textStyle="bold"
