commit c89c3b1bca725e732bd718b21a04004f44a2e367
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Wed Feb 2 17:41:40 2022 +0100

    Make it possible to automatically re-download EXTRAS file if it previously failed to download

diff --git a/src/main/java/org/distorted/dialogs/RubikDialogUpdateView.java b/src/main/java/org/distorted/dialogs/RubikDialogUpdateView.java
index b9e4171e..a54b94ea 100644
--- a/src/main/java/org/distorted/dialogs/RubikDialogUpdateView.java
+++ b/src/main/java/org/distorted/dialogs/RubikDialogUpdateView.java
@@ -129,6 +129,10 @@ public class RubikDialogUpdateView implements RubikNetwork.Downloadee
 
       if( SHOW_DOWNLOADED_DEBUG ) android.util.Log.e("D", "Saving icon "+name+" to a file "+mIconSaved);
       }
+    else
+      {
+      mIconSaved = true;
+      }
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -187,7 +191,7 @@ public class RubikDialogUpdateView implements RubikNetwork.Downloadee
       {
       makeProgress(50,R.string.installing);
       RubikFiles files = RubikFiles.getInstance();
-      boolean oSuccess=true, eSuccess=true;
+      boolean oSuccess=false, eSuccess=false;
 
       if( mInfo.mObjectStream!=null )
         {
diff --git a/src/main/java/org/distorted/objects/RubikObjectList.java b/src/main/java/org/distorted/objects/RubikObjectList.java
index 0bdcfe6a..2539c843 100644
--- a/src/main/java/org/distorted/objects/RubikObjectList.java
+++ b/src/main/java/org/distorted/objects/RubikObjectList.java
@@ -187,6 +187,8 @@ public class RubikObjectList
   public static void addDownloadedObject(String shortName, int numScrambles, int objectMinor, int extrasMinor,
                                          boolean icon, boolean object, boolean extras)
     {
+    if( SHOW_DOWNLOADED_DEBUG ) android.util.Log.e("D", "New downloaded object "+shortName+" icon="+icon+" object="+object+" extras="+extras);
+
     for( DownloadedObject obj : mDownloadedObjects )
       {
       if( obj.shortName.equals(shortName) )
@@ -195,17 +197,26 @@ public class RubikObjectList
         obj.object|= object;
         obj.extras|= extras;
 
-        if( SHOW_DOWNLOADED_DEBUG ) android.util.Log.e("D", "Updating downloaded object "+shortName);
+        if( !obj.object ) objectMinor=-1;
+        if( !obj.extras ) extrasMinor=-1;
+
+        obj.objectMinor = objectMinor;
+        obj.extrasMinor = extrasMinor;
+
+        if( SHOW_DOWNLOADED_DEBUG ) android.util.Log.e("D", "Updating downloaded object "+shortName+" icon="+obj.icon+" object="+obj.object+" extras="+obj.extras);
 
         return;
         }
       }
 
-    DownloadedObject extra = new DownloadedObject(shortName,numScrambles,objectMinor,extrasMinor,icon,object,extras);
-    if ( internalAddDownloadedObject(extra) )
+    if( !object ) objectMinor=-1;
+    if( !extras ) extrasMinor=-1;
+
+    DownloadedObject obj = new DownloadedObject(shortName,numScrambles,objectMinor,extrasMinor,icon,object,extras);
+    if ( internalAddDownloadedObject(obj) )
       {
-      if( SHOW_DOWNLOADED_DEBUG ) android.util.Log.e("D", "Adding new downloaded object "+shortName);
-      mDownloadedObjects.add(extra);
+      if( SHOW_DOWNLOADED_DEBUG ) android.util.Log.e("D", "Adding new downloaded object "+shortName+" icon="+obj.icon+" object="+obj.object+" extras="+obj.extras);
+      mDownloadedObjects.add(obj);
       }
     }
 
