commit 5d8a1d514d7f8de3a7d759ae8bf32603e67d9581
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Tue Apr 9 15:42:37 2019 +0100

    Rubk App: changes in the UI

diff --git a/src/main/java/org/distorted/examples/rubik/RubikActivity.java b/src/main/java/org/distorted/examples/rubik/RubikActivity.java
index 8c94acf..8fb7f01 100644
--- a/src/main/java/org/distorted/examples/rubik/RubikActivity.java
+++ b/src/main/java/org/distorted/examples/rubik/RubikActivity.java
@@ -20,9 +20,12 @@
 package org.distorted.examples.rubik;
 
 import android.app.Activity;
+import android.graphics.PorterDuff;
 import android.opengl.GLSurfaceView;
 import android.os.Bundle;
+import android.support.v4.content.ContextCompat;
 import android.view.View;
+import android.widget.ImageButton;
 
 import org.distorted.examples.R;
 import org.distorted.library.main.Distorted;
@@ -31,11 +34,19 @@ import org.distorted.library.main.Distorted;
 
 public class RubikActivity extends Activity
 {
+    static final int DEFAULT_CUBE_SIZE = 3;
+    private static final int STARTING_SIZE = 2;
+    private static final int[] button_ids = {R.id.rubikSize2, R.id.rubikSize3, R.id.rubikSize4};
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
     @Override
     protected void onCreate(Bundle icicle)
       {
       super.onCreate(icicle);
       setContentView(R.layout.rubiklayout);
+
+      markButton(DEFAULT_CUBE_SIZE);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -72,7 +83,8 @@ public class RubikActivity extends Activity
 
     public void Scramble(View v)
       {
-      android.util.Log.e("rubik", "scrambling...");
+      RubikSurfaceView view = findViewById(R.id.rubikSurfaceView);
+      view.scrambleCube();
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
@@ -86,15 +98,35 @@ public class RubikActivity extends Activity
 
     public void setSize(View v)
       {
-      int size=0,id = v.getId();
+      int size=0;
+      int id = v.getId();
+      int numButtons = button_ids.length;
+
+      for(int b=0; b<numButtons; b++)
+        if( button_ids[b] == id )
+          {
+          size = b+STARTING_SIZE;
+          break;
+          }
 
-      switch(id)
-        {
-        case R.id.rubikSize2: size=2; break;
-        case R.id.rubikSize3: size=3; break;
-        case R.id.rubikSize4: size=4; break;
-        }
+      markButton(size);
 
-      android.util.Log.e("rubik", "setting size to "+size);
+      RubikSurfaceView view = findViewById(R.id.rubikSurfaceView);
+      view.setNewCubeSize(size);
       }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+   private void markButton(int size)
+     {
+     int color, numButtons = button_ids.length;
+     ImageButton[] button = new ImageButton[numButtons];
+
+     for(int b=0; b<numButtons; b++)
+       {
+       button[b] = findViewById(button_ids[b]);
+       color = (b==size-STARTING_SIZE ? R.color.red : R.color.gray);
+       button[b].getBackground().setColorFilter(ContextCompat.getColor(this,color), PorterDuff.Mode.MULTIPLY);
+       }
+     }
 }
diff --git a/src/main/java/org/distorted/examples/rubik/RubikRenderer.java b/src/main/java/org/distorted/examples/rubik/RubikRenderer.java
index e3702d4..525ba9f 100644
--- a/src/main/java/org/distorted/examples/rubik/RubikRenderer.java
+++ b/src/main/java/org/distorted/examples/rubik/RubikRenderer.java
@@ -36,7 +36,6 @@ import javax.microedition.khronos.opengles.GL10;
 
 class RubikRenderer implements GLSurfaceView.Renderer, EffectListener
 {
-    private static final int NUM_CUBES = 4;
     private static final float CUBE_SCREEN_RATIO = 0.5f;
     private static final float CAMERA_DISTANCE   = 0.6f;  // 0.6 of the length of max(scrHeight,scrWidth)
 
@@ -73,7 +72,7 @@ class RubikRenderer implements GLSurfaceView.Renderer, EffectListener
 
       mCanRotate = true;
 
-      mCube = new RubikCube(NUM_CUBES, mMove, mScale, mQuatCurrent, mQuatAccumulated);
+      mCube = new RubikCube( RubikActivity.DEFAULT_CUBE_SIZE, mMove, mScale, mQuatCurrent, mQuatAccumulated);
       }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/examples/rubik/RubikSurfaceView.java b/src/main/java/org/distorted/examples/rubik/RubikSurfaceView.java
index 3ba0c9a..23664ba 100644
--- a/src/main/java/org/distorted/examples/rubik/RubikSurfaceView.java
+++ b/src/main/java/org/distorted/examples/rubik/RubikSurfaceView.java
@@ -164,6 +164,20 @@ class RubikSurfaceView extends GLSurfaceView
       return true;
       }
 
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    void setNewCubeSize(int newCubeSize)
+      {
+      android.util.Log.e("view", "new size="+newCubeSize);
+      }
+
+///////////////////////////////////////////////////////////////////////////////////////////////////
+
+    void scrambleCube()
+      {
+      android.util.Log.e("view", "scrambling...");
+      }
+
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
     void setScreenSize(int width, int height)
diff --git a/src/main/res/values/colors.xml b/src/main/res/values/colors.xml
index a0c6348..6481a23 100644
--- a/src/main/res/values/colors.xml
+++ b/src/main/res/values/colors.xml
@@ -1,6 +1,7 @@
 <?xml version="1.0" encoding="utf-8"?>
 <resources>
     <color name="blue">#ff0000ff</color>
+    <color name="gray">#ffaaaaaa</color>
     <color name="black">#ff000000</color>
     <color name="red">#ffff0000</color>
     <color name="yellow">#ffffff00</color>
