commit 121f1ba95e9b1bf82601ce1fbad02be763e2f18a
Author: leszek <leszek@koltunski.pl>
Date:   Sun Jan 21 17:16:18 2024 +0100

    progress with shape icons.

diff --git a/src/main/java/org/distorted/objects/RubikObjectCategories.java b/src/main/java/org/distorted/objects/RubikObjectCategories.java
index 3298291c..e9919db1 100644
--- a/src/main/java/org/distorted/objects/RubikObjectCategories.java
+++ b/src/main/java/org/distorted/objects/RubikObjectCategories.java
@@ -35,15 +35,6 @@ public abstract class RubikObjectCategories
     R.drawable.difficulty5,
     };
 
-  public static final int[] CATEGORY_IMAGES =
-    {
-    R.drawable.difficulty1,
-    R.drawable.difficulty2,
-    R.drawable.difficulty3,
-    R.drawable.difficulty4,
-    R.drawable.difficulty5,
-    };
-
   protected final int mNumCategories;
   protected int[] mIconIDs;
   protected String[] mTitles;
diff --git a/src/main/java/org/distorted/objects/RubikObjectCategoriesShape.java b/src/main/java/org/distorted/objects/RubikObjectCategoriesShape.java
index 3905eedd..205bb0d5 100644
--- a/src/main/java/org/distorted/objects/RubikObjectCategoriesShape.java
+++ b/src/main/java/org/distorted/objects/RubikObjectCategoriesShape.java
@@ -9,6 +9,10 @@
 
 package org.distorted.objects;
 
+import static org.distorted.objectlib.metadata.Metadata.*;
+
+import org.distorted.main.R;
+
 import java.util.Arrays;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -64,8 +68,47 @@ public class RubikObjectCategoriesShape extends RubikObjectCategories
   private int digestCategory(int cat)
     {
     int shape = (cat & 0x7);
-    int axis  = (cat & 0x1f) >> 3;
-    return (shape<<2) + axis;   // only shape and axis sorted by shape
+
+    switch(shape)
+      {
+      case CATEGORY_SHAPE_HEX: int axis  = (cat & 0x1f) >> 3;
+                               return (shape<<2) + axis;
+      case CATEGORY_SHAPE_BAL: return (CATEGORY_SHAPE_OTH<<2);
+      case CATEGORY_SHAPE_TET:
+      case CATEGORY_SHAPE_OCT:
+      case CATEGORY_SHAPE_DOD:
+      case CATEGORY_SHAPE_ICO:
+      case CATEGORY_SHAPE_OTH: return (shape<<2);
+      }
+
+    android.util.Log.e("D", "digestCategory: unknown shape "+shape);
+    return 0;
+    }
+
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  private int getImage(int cat)
+    {
+    int shape = (cat & 0x1f) >> 2;
+
+    switch(shape)
+      {
+      case CATEGORY_SHAPE_HEX: int axis  = (cat & 0x3);
+                                    if( axis==CATEGORY_AXIS_FACE>>3 ) return R.drawable.shape_hex_face;
+                               else if( axis==CATEGORY_AXIS_CORN>>3 ) return R.drawable.shape_hex_corn;
+                               else if( axis==CATEGORY_AXIS_EDGE>>3 ) return R.drawable.shape_hex_edge;
+                               else                                   return R.drawable.shape_hex_other;
+      case CATEGORY_SHAPE_BAL:
+      case CATEGORY_SHAPE_TET:
+      case CATEGORY_SHAPE_OCT:
+      case CATEGORY_SHAPE_DOD:
+      case CATEGORY_SHAPE_ICO:
+      case CATEGORY_SHAPE_OTH: return R.drawable.shape_hex_other;
+      }
+
+    android.util.Log.e("D", "getImage: unknown shape "+shape);
+    return 0;
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -97,7 +140,7 @@ public class RubikObjectCategoriesShape extends RubikObjectCategories
       RubikObject object = RubikObjectList.getObject(obj);
       int cat = object==null ? 0 : object.getCategory();
       int category = digestCategory(cat);
-      mIconIDs[t] = CATEGORY_IMAGES[category%5];  //TODO
+      mIconIDs[t] = getImage(category);
       }
     }
 }
diff --git a/src/main/res/drawable-nodpi/shape_hex_corn.png b/src/main/res/drawable-nodpi/shape_hex_corn.png
new file mode 100644
index 00000000..21a4456b
Binary files /dev/null and b/src/main/res/drawable-nodpi/shape_hex_corn.png differ
diff --git a/src/main/res/drawable-nodpi/shape_hex_edge.png b/src/main/res/drawable-nodpi/shape_hex_edge.png
new file mode 100644
index 00000000..9190b9a9
Binary files /dev/null and b/src/main/res/drawable-nodpi/shape_hex_edge.png differ
diff --git a/src/main/res/drawable-nodpi/shape_hex_face.png b/src/main/res/drawable-nodpi/shape_hex_face.png
new file mode 100644
index 00000000..9bf3d3b9
Binary files /dev/null and b/src/main/res/drawable-nodpi/shape_hex_face.png differ
diff --git a/src/main/res/drawable-nodpi/shape_hex_other.png b/src/main/res/drawable-nodpi/shape_hex_other.png
new file mode 100644
index 00000000..3f803907
Binary files /dev/null and b/src/main/res/drawable-nodpi/shape_hex_other.png differ
