commit 302c76a06072643804a2bb2822a0febd82dbb56d
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sun Aug 14 19:04:51 2022 +0200

    IAP part 4: further progress with locks in the object popup screen.

diff --git a/src/main/java/org/distorted/config/ConfigScreen.java b/src/main/java/org/distorted/config/ConfigScreen.java
index a14cd46a..b81cb550 100644
--- a/src/main/java/org/distorted/config/ConfigScreen.java
+++ b/src/main/java/org/distorted/config/ConfigScreen.java
@@ -14,6 +14,7 @@ import android.util.TypedValue;
 import android.view.Gravity;
 import android.view.View;
 import android.widget.GridLayout;
+import android.widget.ImageButton;
 import android.widget.LinearLayout;
 import android.widget.PopupWindow;
 import android.widget.ScrollView;
@@ -25,6 +26,7 @@ import org.distorted.objectlib.main.ObjectControl;
 import org.distorted.helpers.TransparentImageButton;
 import org.distorted.main.R;
 import org.distorted.main.RubikActivity;
+import org.distorted.objects.RubikObject;
 import org.distorted.objects.RubikObjectList;
 
 import static android.view.View.inflate;
@@ -67,7 +69,9 @@ public class ConfigScreen
 
     for(int child=0; child<numObjects; child++)
       {
-      View button = objectGrid.getChildAt(child);
+      final RubikObject obj = RubikObjectList.getObject(child);
+      View v = objectGrid.getChildAt(child);
+      ImageButton button = PopupCreator.getButton(obj,v);
       final int ordinal = child;
 
       button.setOnClickListener( new View.OnClickListener()
diff --git a/src/main/java/org/distorted/helpers/PopupCreator.java b/src/main/java/org/distorted/helpers/PopupCreator.java
index 8660606f..0de4bf53 100644
--- a/src/main/java/org/distorted/helpers/PopupCreator.java
+++ b/src/main/java/org/distorted/helpers/PopupCreator.java
@@ -67,6 +67,13 @@ public class PopupCreator
       }
     }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+  public static ImageButton getButton(RubikObject object, View view)
+    {
+    return object!=null && object.isFree() ? (ImageButton)view : view.findViewById(R.id.non_free_button);
+    }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   private static View createView(Activity act, LayoutInflater inflater, int ordinal, int pad)
diff --git a/src/main/java/org/distorted/screens/RubikScreenPlay.java b/src/main/java/org/distorted/screens/RubikScreenPlay.java
index eeb590cf..7701f05c 100644
--- a/src/main/java/org/distorted/screens/RubikScreenPlay.java
+++ b/src/main/java/org/distorted/screens/RubikScreenPlay.java
@@ -191,7 +191,9 @@ public class RubikScreenPlay extends RubikScreenBase implements RubikNetwork.Upd
 
     for(int child=0; child<numObjects; child++)
       {
-      View button = objectGrid.getChildAt(child);
+      final RubikObject obj = RubikObjectList.getObject(child);
+      View v = objectGrid.getChildAt(child);
+      ImageButton button = PopupCreator.getButton(obj,v);
       final int ordinal = child;
 
       button.setOnClickListener( new View.OnClickListener()
