commit 62054004ac312db27b381fb18a4f1d437612b376
Author: leszek <leszek@koltunski.pl>
Date:   Sat Dec 30 23:58:20 2023 +0100

    Move signatures and ObjectConstants to Metadata.

diff --git a/src/main/java/org/distorted/solvers/ImplementedSolversList.java b/src/main/java/org/distorted/solvers/ImplementedSolversList.java
index 4e2816ac..06eff000 100644
--- a/src/main/java/org/distorted/solvers/ImplementedSolversList.java
+++ b/src/main/java/org/distorted/solvers/ImplementedSolversList.java
@@ -10,25 +10,37 @@
 package org.distorted.solvers;
 
 import org.distorted.main.R;
-import org.distorted.objectlib.signature.ObjectConstants;
+import org.distorted.objectlib.metadata.MetadataCUBE_2;
+import org.distorted.objectlib.metadata.MetadataCUBE_3;
+import org.distorted.objectlib.metadata.MetadataCU_232;
+import org.distorted.objectlib.metadata.MetadataCU_323;
+import org.distorted.objectlib.metadata.MetadataDIAM_2;
+import org.distorted.objectlib.metadata.MetadataDIN4_3;
+import org.distorted.objectlib.metadata.MetadataDINO_3;
+import org.distorted.objectlib.metadata.MetadataIVY_2;
+import org.distorted.objectlib.metadata.MetadataJING_2;
+import org.distorted.objectlib.metadata.MetadataPDIA_3;
+import org.distorted.objectlib.metadata.MetadataPDUO_2;
+import org.distorted.objectlib.metadata.MetadataPYRA_3;
+import org.distorted.objectlib.metadata.MetadataSKEW_2;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
 public enum ImplementedSolversList
 {
-  CUBE2          (ObjectConstants.CUBE_2, R.string.solver_cube2_title, R.string.solver_cube2_description, true),
-  CUBE3_KOCIEMBA (ObjectConstants.CUBE_3, R.string.solver_cube3_title, R.string.solver_cube3_description, true),
-  CU_232         (ObjectConstants.CU_232, R.string.solver_cu232_title, R.string.solver_cu232_description, true),
-  CU_323         (ObjectConstants.CU_323, R.string.solver_cu323_title, R.string.solver_cu323_description, true),
-  PYRAMINX       (ObjectConstants.PYRA_3, R.string.solver_pyra3_title, R.string.solver_pyra3_description, true),
-  SKEWB          (ObjectConstants.SKEW_2, R.string.solver_skew2_title, R.string.solver_skew2_description, true),
-  PYRAMINX_DUO   (ObjectConstants.PDUO_2, R.string.solver_pduo2_title, R.string.solver_pduo2_description, true),
-  IVY            (ObjectConstants.IVY_2 , R.string.solver_ivy_title, R.string.solver_ivy_description, true),
-  DIAMOND        (ObjectConstants.DIAM_2, R.string.solver_diam2_title, R.string.solver_diam2_description, true),
-  JING2          (ObjectConstants.JING_2, R.string.solver_jing2_title, R.string.solver_jing2_description, true),
-  DINO6          (ObjectConstants.DINO_3, R.string.solver_dino6_title, R.string.solver_dino6_description, true),
-  DINO4          (ObjectConstants.DIN4_3, R.string.solver_dino4_title, R.string.solver_dino4_description, true),
-  PDIA           (ObjectConstants.PDIA_3, R.string.solver_pdia_title, R.string.solver_pdia_description, true),
+  CUBE2          (MetadataCUBE_2.INDEX, R.string.solver_cube2_title, R.string.solver_cube2_description, true),
+  CUBE3_KOCIEMBA (MetadataCUBE_3.INDEX, R.string.solver_cube3_title, R.string.solver_cube3_description, true),
+  CU_232         (MetadataCU_232.INDEX, R.string.solver_cu232_title, R.string.solver_cu232_description, true),
+  CU_323         (MetadataCU_323.INDEX, R.string.solver_cu323_title, R.string.solver_cu323_description, true),
+  PYRAMINX       (MetadataPYRA_3.INDEX, R.string.solver_pyra3_title, R.string.solver_pyra3_description, true),
+  SKEWB          (MetadataSKEW_2.INDEX, R.string.solver_skew2_title, R.string.solver_skew2_description, true),
+  PYRAMINX_DUO   (MetadataPDUO_2.INDEX, R.string.solver_pduo2_title, R.string.solver_pduo2_description, true),
+  IVY            (MetadataIVY_2.INDEX , R.string.solver_ivy_title, R.string.solver_ivy_description, true),
+  DIAMOND        (MetadataDIAM_2.INDEX, R.string.solver_diam2_title, R.string.solver_diam2_description, true),
+  JING2          (MetadataJING_2.INDEX, R.string.solver_jing2_title, R.string.solver_jing2_description, true),
+  DINO6          (MetadataDINO_3.INDEX, R.string.solver_dino6_title, R.string.solver_dino6_description, true),
+  DINO4          (MetadataDIN4_3.INDEX, R.string.solver_dino4_title, R.string.solver_dino4_description, true),
+  PDIA           (MetadataPDIA_3.INDEX, R.string.solver_pdia_title, R.string.solver_pdia_description, true),
   ;
 
   public static final int NUM_OBJECTS = values().length;
diff --git a/src/main/java/org/distorted/solvers/SolverMain.java b/src/main/java/org/distorted/solvers/SolverMain.java
index 5504f818..4e7a1635 100644
--- a/src/main/java/org/distorted/solvers/SolverMain.java
+++ b/src/main/java/org/distorted/solvers/SolverMain.java
@@ -12,10 +12,22 @@ package org.distorted.solvers;
 import android.content.res.Resources;
 
 import org.distorted.objectlib.helpers.OperatingSystemInterface;
-import org.distorted.objectlib.signature.ObjectConstants;
 import org.distorted.objectlib.main.TwistyObject;
 
 import org.distorted.main.R;
+import org.distorted.objectlib.metadata.MetadataCUBE_2;
+import org.distorted.objectlib.metadata.MetadataCUBE_3;
+import org.distorted.objectlib.metadata.MetadataCU_232;
+import org.distorted.objectlib.metadata.MetadataCU_323;
+import org.distorted.objectlib.metadata.MetadataDIAM_2;
+import org.distorted.objectlib.metadata.MetadataDIN4_3;
+import org.distorted.objectlib.metadata.MetadataDINO_3;
+import org.distorted.objectlib.metadata.MetadataIVY_2;
+import org.distorted.objectlib.metadata.MetadataJING_2;
+import org.distorted.objectlib.metadata.MetadataPDIA_3;
+import org.distorted.objectlib.metadata.MetadataPDUO_2;
+import org.distorted.objectlib.metadata.MetadataPYRA_3;
+import org.distorted.objectlib.metadata.MetadataSKEW_2;
 import org.distorted.solverui.ScreenList;
 import org.distorted.solverui.ScreenSolver;
 
@@ -47,7 +59,7 @@ public class SolverMain implements Runnable
 
   public static int cubitIsLocked(int object, int cubit)
     {
-    if( object == ObjectConstants.CUBE_3 )
+    if( object == MetadataCUBE_3.INDEX )
       {
       if( cubit==20 ) return 0; // center of the right  face
       if( cubit==21 ) return 1; // center of the left   face
@@ -74,67 +86,67 @@ public class SolverMain implements Runnable
     {
     ScreenSolver screen = (ScreenSolver) ScreenList.SVER.getScreenClass();
 
-    if( mSignature==ObjectConstants.CUBE_3 )
+    if( mSignature == MetadataCUBE_3.INDEX )
       {
       SolverCube3 solver = new SolverCube3(mOS,mRes,mObject);
       solver.solve(screen);
       }
-    else if( mSignature==ObjectConstants.PDUO_2 )
+    else if( mSignature == MetadataPDUO_2.INDEX )
       {
       SolverTablebase solver = new SolverPyraminxDuo(mOS,mRes,mObject);
       solver.solve(screen);
       }
-    else if( mSignature==ObjectConstants.IVY_2 )
+    else if( mSignature == MetadataIVY_2.INDEX )
       {
       SolverTablebase solver = new SolverIvyCube(mOS,mRes,mObject);
       solver.solve(screen);
       }
-    else if( mSignature==ObjectConstants.CU_232 )
+    else if( mSignature == MetadataCU_232.INDEX )
       {
       SolverTablebase solver = new SolverCuboid232(mOS,mRes,mObject);
       solver.solve(screen);
       }
-    else if( mSignature==ObjectConstants.CU_323 )
+    else if( mSignature == MetadataCU_323.INDEX )
       {
       SolverTablebase solver = new SolverCuboid323(mOS,mRes,mObject);
       solver.solve(screen);
       }
-    else if( mSignature==ObjectConstants.PYRA_3 )
+    else if( mSignature == MetadataPYRA_3.INDEX )
       {
       SolverTablebase solver = new SolverPyraminx(mOS,mRes,mObject);
       solver.solve(screen);
       }
-    else if( mSignature==ObjectConstants.DIAM_2 )
+    else if( mSignature == MetadataDIAM_2.INDEX )
       {
       SolverTablebase solver = new SolverSkewbDiamond(mOS,mRes,mObject);
       solver.solve(screen);
       }
-    else if( mSignature==ObjectConstants.CUBE_2 )
+    else if( mSignature == MetadataCUBE_2.INDEX )
       {
       SolverTablebase solver = new SolverCube2(mOS,mRes,mObject);
       solver.solve(screen);
       }
-    else if( mSignature==ObjectConstants.JING_2 )
+    else if( mSignature == MetadataJING_2.INDEX )
       {
       SolverTablebase solver = new SolverJing(mOS,mRes,mObject);
       solver.solve(screen);
       }
-    else if( mSignature==ObjectConstants.SKEW_2 )
+    else if( mSignature == MetadataSKEW_2.INDEX )
       {
       SolverTablebase solver = new SolverSkewb(mOS,mRes,mObject);
       solver.solve(screen);
       }
-    else if( mSignature==ObjectConstants.DINO_3 )
+    else if( mSignature == MetadataDINO_3.INDEX )
       {
       SolverTablebase solver = new SolverDino6(mOS,mRes,mObject);
       solver.solve(screen);
       }
-    else if( mSignature==ObjectConstants.DIN4_3 )
+    else if( mSignature == MetadataDIN4_3.INDEX )
       {
       SolverTablebase solver = new SolverDino4(mOS,mRes,mObject);
       solver.solve(screen);
       }
-    else if( mSignature==ObjectConstants.PDIA_3 )
+    else if( mSignature == MetadataPDIA_3.INDEX )
       {
       SolverTablebase solver = new SolverPyraminxDiamond(mOS,mRes,mObject);
       solver.solve(screen);
diff --git a/src/main/java/org/distorted/solverui/ScreenSolver.java b/src/main/java/org/distorted/solverui/ScreenSolver.java
index 01115ec9..50b67e42 100644
--- a/src/main/java/org/distorted/solverui/ScreenSolver.java
+++ b/src/main/java/org/distorted/solverui/ScreenSolver.java
@@ -34,13 +34,36 @@ import org.distorted.main.MainActivity;
 import org.distorted.main.R;
 import org.distorted.objectlib.main.ObjectControl;
 import org.distorted.objectlib.main.TwistyObject;
+import org.distorted.objectlib.metadata.MetadataBALL_4;
+import org.distorted.objectlib.metadata.MetadataCRYS_3;
+import org.distorted.objectlib.metadata.MetadataDIAM_2;
+import org.distorted.objectlib.metadata.MetadataDIAM_3;
+import org.distorted.objectlib.metadata.MetadataDIAM_4;
+import org.distorted.objectlib.metadata.MetadataDIN4_3;
+import org.distorted.objectlib.metadata.MetadataICOS_2;
+import org.distorted.objectlib.metadata.MetadataJING_2;
+import org.distorted.objectlib.metadata.MetadataKILO_3;
+import org.distorted.objectlib.metadata.MetadataKILO_5;
+import org.distorted.objectlib.metadata.MetadataMEGA_3;
+import org.distorted.objectlib.metadata.MetadataMEGA_5;
+import org.distorted.objectlib.metadata.MetadataMORP_2;
+import org.distorted.objectlib.metadata.MetadataMORP_3;
+import org.distorted.objectlib.metadata.MetadataMORP_4;
+import org.distorted.objectlib.metadata.MetadataPDIA_3;
+import org.distorted.objectlib.metadata.MetadataPDUO_2;
+import org.distorted.objectlib.metadata.MetadataPENT_2;
+import org.distorted.objectlib.metadata.MetadataPYRA_3;
+import org.distorted.objectlib.metadata.MetadataPYRA_4;
+import org.distorted.objectlib.metadata.MetadataPYRA_5;
+import org.distorted.objectlib.metadata.MetadataSTAR_3;
+import org.distorted.objectlib.metadata.MetadataTRAJ_3;
+import org.distorted.objectlib.metadata.MetadataTRAJ_4;
 import org.distorted.objectlib.shape.ShapeDiamond;
 import org.distorted.objectlib.shape.ShapeDodecahedron;
 import org.distorted.objectlib.shape.ShapeHexahedron;
 import org.distorted.objectlib.shape.ShapeIcosahedron;
 import org.distorted.objectlib.shape.ShapeOctahedron;
 import org.distorted.objectlib.shape.ShapeTetrahedron;
-import org.distorted.objectlib.signature.ObjectConstants;
 import org.distorted.solvers.ImplementedSolversList;
 import org.distorted.solvers.SolverMain;
 
@@ -144,50 +167,50 @@ public class ScreenSolver extends ScreenAbstract
     {
     mColorMode = MODE_NORMAL;
 
-    if( object== ObjectConstants.PYRA_3 ||
-        object== ObjectConstants.PYRA_4 ||
-        object== ObjectConstants.PYRA_5 ||
-        object== ObjectConstants.PDUO_2 ||
-        object== ObjectConstants.JING_2 ||
-        object== ObjectConstants.MORP_2 ||
-        object== ObjectConstants.MORP_3 ||
-        object== ObjectConstants.MORP_4  )
+    if( object==MetadataPYRA_3.INDEX ||
+        object==MetadataPYRA_4.INDEX ||
+        object==MetadataPYRA_5.INDEX ||
+        object==MetadataPDUO_2.INDEX ||
+        object==MetadataJING_2.INDEX ||
+        object==MetadataMORP_2.INDEX ||
+        object==MetadataMORP_3.INDEX ||
+        object==MetadataMORP_4.INDEX  )
       {
       mNumColors  = ShapeTetrahedron.NUM_FACES;
       mFaceColors = ShapeTetrahedron.FACE_COLORS;
       }
-    else if( object== ObjectConstants.DIAM_2 ||
-             object== ObjectConstants.DIAM_3 ||
-             object== ObjectConstants.DIAM_4 ||
-             object== ObjectConstants.TRAJ_3 ||
-             object== ObjectConstants.TRAJ_4 ||
-             object== ObjectConstants.PDIA_3  )
+    else if( object==MetadataDIAM_2.INDEX ||
+             object==MetadataDIAM_3.INDEX ||
+             object==MetadataDIAM_4.INDEX ||
+             object==MetadataTRAJ_3.INDEX ||
+             object==MetadataTRAJ_4.INDEX ||
+             object==MetadataPDIA_3.INDEX  )
       {
       mNumColors  = ShapeOctahedron.NUM_FACES;
       mFaceColors = ShapeOctahedron.FACE_COLORS;
       }
-    else if( object== ObjectConstants.CRYS_3 ||
-             object== ObjectConstants.STAR_3 ||
-             object== ObjectConstants.PENT_2 ||
-             object== ObjectConstants.KILO_3 ||
-             object== ObjectConstants.KILO_5 ||
-             object== ObjectConstants.MEGA_3 ||
-             object== ObjectConstants.MEGA_5  )
+    else if( object==MetadataCRYS_3.INDEX ||
+             object==MetadataSTAR_3.INDEX ||
+             object==MetadataPENT_2.INDEX ||
+             object==MetadataKILO_3.INDEX ||
+             object==MetadataKILO_5.INDEX ||
+             object==MetadataMEGA_3.INDEX ||
+             object==MetadataMEGA_5.INDEX  )
       {
       mNumColors  = ShapeDodecahedron.NUM_FACES;
       mFaceColors = ShapeDodecahedron.FACE_COLORS;
       }
-    else if( object== ObjectConstants.BALL_4 )
+    else if( object==MetadataBALL_4.INDEX )
       {
       mNumColors  = ShapeDiamond.NUM_FACES;
       mFaceColors = ShapeDiamond.FACE_COLORS;
       }
-    else if( object== ObjectConstants.ICOS_2 )
+    else if( object==MetadataICOS_2.INDEX )
       {
       mNumColors  = ShapeIcosahedron.NUM_FACES;
       mFaceColors = ShapeIcosahedron.FACE_COLORS;
       }
-    else if( object== ObjectConstants.DIN4_3 )
+    else if( object==MetadataDIN4_3.INDEX )
       {
       mNumColors  = 4;
       mFaceColors = new int[] { COLOR_YELLOW, COLOR_RED, COLOR_BLUE, COLOR_WHITE };
