commit a41e3c94e95946d231a82ad9ec4abb87e665e27b
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Thu Mar 31 23:51:06 2022 +0200

    Remember the list of locally created Bandaged 3x3s.

diff --git a/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java b/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java
index f3c0e642..9b85462a 100644
--- a/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java
+++ b/src/main/java/org/distorted/bandaged/BandagedCreatorActivity.java
@@ -19,9 +19,11 @@
 
 package org.distorted.bandaged;
 
+import android.content.SharedPreferences;
 import android.graphics.Bitmap;
 import android.os.Build;
 import android.os.Bundle;
+import android.preference.PreferenceManager;
 import android.util.DisplayMetrics;
 import android.view.View;
 import android.view.ViewGroup;
@@ -186,11 +188,11 @@ public class BandagedCreatorActivity extends AppCompatActivity
       DistortedLibrary.onResume(ACTIVITY_NUMBER);
       BandagedCreatorView view = findViewById(R.id.bandagedCreatorObjectView);
       view.onResume();
-      restorePreferences();
 
       if( mScreen==null ) mScreen = new BandagedCreatorScreen();
       mScreen.onAttachedToWindow(this);
 
+      restorePreferences();
       BandagedCreatorWorkerThread.create(this);
       }
 
@@ -215,27 +217,20 @@ public class BandagedCreatorActivity extends AppCompatActivity
 
     private void savePreferences()
       {
-      /*
       SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
       SharedPreferences.Editor editor = preferences.edit();
-
-      editor.putBoolean("policyAccepted", mPolicyAccepted);
-      editor.putString("appVersion", getAppVers() );
-
+      String objects = mScreen.generateObjectStrings();
+      editor.putString("bandagedObjects", objects );
       editor.apply();
-       */
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     private void restorePreferences()
       {
-      /*
       SharedPreferences preferences = PreferenceManager.getDefaultSharedPreferences(this);
-
-      mPolicyAccepted = preferences.getBoolean("policyAccepted", false);
-      String oldVersion = preferences.getString("appVersion","");
-       */
+      String objects = preferences.getString("bandagedObjects","");
+      mScreen.addObjects(this,objects);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -259,7 +254,10 @@ public class BandagedCreatorActivity extends AppCompatActivity
 
     public void addObject(String name)
       {
-      mScreen.addObject(this,name);
+      if( mScreen.objectDoesntExist(name) )
+        {
+        mScreen.addObject(this,name);
+        }
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/bandaged/BandagedCreatorRenderer.java b/src/main/java/org/distorted/bandaged/BandagedCreatorRenderer.java
index 0670c998..6098ad7f 100644
--- a/src/main/java/org/distorted/bandaged/BandagedCreatorRenderer.java
+++ b/src/main/java/org/distorted/bandaged/BandagedCreatorRenderer.java
@@ -178,6 +178,7 @@ public class BandagedCreatorRenderer implements GLSurfaceView.Renderer, Distorte
        if( !mCubits[c].isAttached() )
          {
          mCubits[c].attach();
+         mCubits[c].setTexture( COLOR_DEFAULT);
          mScreen.attach(mCubits[c].getNode());
          }
        if( mCubits[c].getPosition().length>3 )
diff --git a/src/main/java/org/distorted/bandaged/BandagedCreatorScreen.java b/src/main/java/org/distorted/bandaged/BandagedCreatorScreen.java
index a1b8447f..94871833 100644
--- a/src/main/java/org/distorted/bandaged/BandagedCreatorScreen.java
+++ b/src/main/java/org/distorted/bandaged/BandagedCreatorScreen.java
@@ -27,6 +27,7 @@ import android.view.View;
 import android.widget.ImageView;
 import android.widget.LinearLayout;
 
+import org.distorted.external.RubikFiles;
 import org.distorted.helpers.TransparentImageButton;
 import org.distorted.main.R;
 import org.distorted.main.RubikActivity;
@@ -137,6 +138,40 @@ public class BandagedCreatorScreen
     layout.addView(layoutRight);
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  boolean objectDoesntExist(String name)
+    {
+    for( BandagedCreatorObjectView view : mViews )
+      {
+      String viewName = view.getName();
+      if( viewName.equals(name) ) return false;
+      }
+
+    return true;
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  void addObjects(BandagedCreatorActivity act, String objectString)
+    {
+    if( objectString.length()>0 )
+      {
+      String[] objects = objectString.split(" ");
+      RubikFiles files = RubikFiles.getInstance();
+
+      for(String object : objects)
+        {
+        if( objectDoesntExist(object) )
+          {
+          addObject(act, object);
+          Bitmap bmp = files.getIcon(act, object + ".png");
+          iconCreationDone(act, bmp);
+          }
+        }
+      }
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   void addObject(BandagedCreatorActivity act, String name)
@@ -213,4 +248,23 @@ public class BandagedCreatorScreen
         }
       }
     }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  String generateObjectStrings()
+    {
+    String result = "";
+    int numViews = mViews.size();
+
+    for( int v=0; v<numViews; v++ )
+      {
+      BandagedCreatorObjectView view = mViews.get(v);
+      String name = view.getName();
+
+      if( v>0 ) result += " ";
+      result += name;
+      }
+
+    return result;
+    }
 }
