commit fc3c5170291693449a9c07cad0c6bf15034946ae
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Tue Oct 20 00:36:38 2020 +0100

    Even more debugs for the 'failed to restore preferences' mystery.

diff --git a/src/main/java/org/distorted/objects/Cubit.java b/src/main/java/org/distorted/objects/Cubit.java
index 0cfe6daf..899c4d7e 100644
--- a/src/main/java/org/distorted/objects/Cubit.java
+++ b/src/main/java/org/distorted/objects/Cubit.java
@@ -181,14 +181,7 @@ class Cubit
     {
     String number = mOrigPosition.get0()+"_"+mOrigPosition.get1()+"_"+mOrigPosition.get2();
     mQuatIndex = preferences.getInt("q_"+number, 0);
-
-    if( mQuatIndex < mParent.QUATS.length )
-      {
-      modifyCurrentPosition(mParent.QUATS[mQuatIndex]);
-      return mQuatIndex;
-      }
-
-    return -mQuatIndex;
+    return mQuatIndex;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/objects/TwistyObject.java b/src/main/java/org/distorted/objects/TwistyObject.java
index d81b5436..269ddd79 100644
--- a/src/main/java/org/distorted/objects/TwistyObject.java
+++ b/src/main/java/org/distorted/objects/TwistyObject.java
@@ -458,23 +458,31 @@ public abstract class TwistyObject extends DistortedNode
 
   public synchronized void restorePreferences(SharedPreferences preferences)
     {
+    boolean error = false;
+
     for(int i=0; i<NUM_CUBITS; i++)
       {
       mQuatDebug[i] = CUBITS[i].restorePreferences(preferences);
 
-      if( mQuatDebug[i]<0 )
+      if( mQuatDebug[i]>=0 && mQuatDebug[i]<QUATS.length)
         {
-        for(int j=0; j<NUM_CUBITS; j++)
-          {
-          CUBITS[j].solve();
-          mMesh.setEffectAssociation(j, CUBITS[j].computeAssociation(),0);
-          }
-        recordQuatsState("Failed to restorePreferences");
-
-        break;
+        CUBITS[i].modifyCurrentPosition(QUATS[mQuatDebug[i]]);
+        mMesh.setEffectAssociation(i, CUBITS[i].computeAssociation(),mQuatDebug[i]);
+        }
+      else
+        {
+        error = true;
         }
+      }
 
-      mMesh.setEffectAssociation(i, CUBITS[i].computeAssociation(),mQuatDebug[i]);
+    if( error )
+      {
+      for(int i=0; i<NUM_CUBITS; i++)
+        {
+        CUBITS[i].solve();
+        mMesh.setEffectAssociation(i, CUBITS[i].computeAssociation(),0);
+        }
+      recordQuatsState("Failed to restorePreferences");
       }
     }
 
