commit 41a5dd89e18eba78e126bd49f4210cfc177132e1
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sun Apr 24 16:54:01 2022 +0200

    If we're updating an object, and it is the current object, reload it immediatelly so that the new version appears by itself.

diff --git a/src/main/java/org/distorted/main/RubikActivity.java b/src/main/java/org/distorted/main/RubikActivity.java
index cd81fd05..9d64e8bc 100644
--- a/src/main/java/org/distorted/main/RubikActivity.java
+++ b/src/main/java/org/distorted/main/RubikActivity.java
@@ -661,4 +661,27 @@ public class RubikActivity extends AppCompatActivity
       Intent intent = new Intent(this, BandagedCreatorActivity.class);
       startActivity(intent);
       }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    public void reloadObject(String shortName)
+      {
+      TwistyObject currObject = getObject();
+      String name = currObject.getShortName();
+
+      if( name.toLowerCase().equals(shortName) )
+        {
+        RubikObject object = RubikObjectList.getObject(name);
+
+        if( object!=null )
+          {
+          int meshState = object.getMeshState();
+          int iconMode  = TwistyObject.MODE_NORM;
+          InputStream jsonStream = object.getObjectStream(this);
+          InputStream meshStream = object.getMeshStream(this);
+          ObjectControl control = getControl();
+          control.changeObject(-1,meshState,iconMode,jsonStream,meshStream);
+          }
+        }
+      }
 }
diff --git a/src/main/java/org/distorted/objects/RubikObjectList.java b/src/main/java/org/distorted/objects/RubikObjectList.java
index 5dd0c23c..740c3990 100644
--- a/src/main/java/org/distorted/objects/RubikObjectList.java
+++ b/src/main/java/org/distorted/objects/RubikObjectList.java
@@ -219,6 +219,16 @@ public class RubikObjectList
 
         if( SHOW_DOWNLOADED_DEBUG ) android.util.Log.e("D", "Updating downloaded object "+shortName+" icon="+obj.icon+" object="+obj.object+" extras="+obj.extras);
 
+        try
+          {
+          RubikActivity ract = (RubikActivity)context;
+          ract.reloadObject(shortName);
+          }
+        catch(Exception ex)
+          {
+          android.util.Log.e("D", "exception trying to reload object: "+ex.getMessage() );
+          }
+
         return;
         }
       }
@@ -412,6 +422,24 @@ public class RubikObjectList
     return ordinal>=0 && ordinal<mNumObjects ? mObjects.get(ordinal) : null;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public static RubikObject getObject(String shortUpperName)
+    {
+    if( mThis==null ) mThis = new RubikObjectList();
+
+    for(int i=0; i<mNumObjects; i++)
+      {
+      RubikObject object = mObjects.get(i);
+      if( object.getUpperName().equals(shortUpperName) )
+        {
+        return object;
+        }
+      }
+
+    return null;
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   public static int getNumObjects()
