commit 3979a11d7bd402f3fd37e5c75e8c594604f05e95
Author: leszek <leszek@koltunski.pl>
Date:   Wed Mar 6 14:27:39 2024 +0100

    progress with configurable stickers

diff --git a/src/main/java/org/distorted/config/ConfigScreenPane.java b/src/main/java/org/distorted/config/ConfigScreenPane.java
index adc9a63a..144392b8 100644
--- a/src/main/java/org/distorted/config/ConfigScreenPane.java
+++ b/src/main/java/org/distorted/config/ConfigScreenPane.java
@@ -15,10 +15,13 @@ import android.view.View;
 import android.view.ViewGroup;
 import android.widget.GridLayout;
 import android.widget.ImageButton;
+import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.SeekBar;
 import android.widget.TextView;
 
+import androidx.appcompat.widget.AppCompatImageButton;
+
 import org.distorted.main.MainActivity;
 import org.distorted.main.R;
 
@@ -72,6 +75,7 @@ public class ConfigScreenPane
   private final SeekBar mSeekBarBorders, mSeekBarCorners;
   private int mCurrentBorders, mCurrentCorners;
   private GridLayout mGrid;
+  private int mRow, mCol;
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
@@ -80,7 +84,7 @@ public class ConfigScreenPane
     mSeekBarBorders.setProgress(DEFAULT_BORDERS);
     mSeekBarCorners.setProgress(DEFAULT_CORNERS);
 
-    // reset color grid
+    markButton(0,0);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -124,21 +128,62 @@ public class ConfigScreenPane
 
         mGrid.addView(v,params);
         }
+
+    markButton(mRow,mCol);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  private View createView(Activity act, int row, int col)
+  private View createView(final Activity act, final int row, final int col)
     {
-    ImageButton button = new ImageButton(act);
-    button.setBackgroundColor( COLORS[row][col] );
+    AppCompatImageButton button = new AppCompatImageButton(act);
+
+    int p = 10;
+    button.setPadding(p,p,p,p);
+    button.setScaleType(ImageView.ScaleType.FIT_CENTER);
+    button.setBackgroundColor(COLORS[row][col]);
+
+    button.setOnClickListener( new View.OnClickListener()
+      {
+      @Override
+      public void onClick(View v)
+        {
+        markButton(row,col);
+        }
+      });
+
     return button;
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  private void markButton(int row, int col)
+    {
+    int index = mRow*COLORS[0].length + mCol;
+    ImageButton button = (ImageButton)mGrid.getChildAt(index);
+    button.setImageResource(0);
+
+    mRow = row;
+    mCol = col;
+
+    index = mRow*COLORS[0].length + mCol;
+    button = (ImageButton)mGrid.getChildAt(index);
+    button.setImageResource(R.drawable.check);
+    }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  int getCurrentColor()
+    {
+    return COLORS[mRow][mCol];
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   ConfigScreenPane(final ConfigActivity act, int objectOrdinal)
     {
+    mRow = 0;
+    mCol = 0;
     int width = act.getScreenWidthInPixels();
     int height = act.getScreenHeightInPixels();
     float textSize = height*TEXT_RATIO;
diff --git a/src/main/res/drawable/check.png b/src/main/res/drawable/check.png
new file mode 100644
index 00000000..704c281c
Binary files /dev/null and b/src/main/res/drawable/check.png differ
