commit 36aa1f221cb4b2a231a8c2e83abb26fb1d003f86
Author: leszek <leszek@koltunski.pl>
Date:   Fri Jan 31 11:49:13 2025 +0100

    improvements to the API

diff --git a/src/main/java/org/distorted/config/ConfigObjectLibInterface.java b/src/main/java/org/distorted/config/ConfigObjectLibInterface.java
index 4caf4256..5c1ce1e2 100644
--- a/src/main/java/org/distorted/config/ConfigObjectLibInterface.java
+++ b/src/main/java/org/distorted/config/ConfigObjectLibInterface.java
@@ -38,7 +38,7 @@ public class ConfigObjectLibInterface implements ObjectLibInterface
   public void onBeginRotation() { }
   public void onSolved() { }
   public void onObjectCreated(long time) { }
-  public void onRemoveRotation(int axis, int row, int angle) { }
+  public void onRemoveRotation(int axis, int rowBitmap, int angle) { }
   public void failedToDrag() { }
   public void reportJSONError(String error, int ordinal) { }
 
diff --git a/src/main/java/org/distorted/helpers/MovesController.java b/src/main/java/org/distorted/helpers/MovesController.java
index bcc58a43..2061bfd7 100644
--- a/src/main/java/org/distorted/helpers/MovesController.java
+++ b/src/main/java/org/distorted/helpers/MovesController.java
@@ -96,10 +96,10 @@ public class MovesController implements MovesFinished
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public void addMove(Activity act, int axis, int row, int angle)
+  public void addMove(Activity act, int axis, int rowBitmap, int angle)
     {
     if( mMoves.isEmpty() ) changeBackMove(act,true);
-    mMoves.add(new ObjectMove(axis,1<<row,angle));
+    mMoves.add(new ObjectMove(axis,rowBitmap,angle));
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/info/InfoObjectLibInterface.java b/src/main/java/org/distorted/info/InfoObjectLibInterface.java
index 4c53733c..e8f025c9 100644
--- a/src/main/java/org/distorted/info/InfoObjectLibInterface.java
+++ b/src/main/java/org/distorted/info/InfoObjectLibInterface.java
@@ -27,7 +27,7 @@ public class InfoObjectLibInterface implements ObjectLibInterface
   public void onObjectCreated(long time) { }
   public void onStickerTouched(int cubit, int face) { }
   public void onStickerUntouched() { }
-  public void onRemoveRotation(int axis, int row, int angle) { }
+  public void onRemoveRotation(int axis, int rowBitmap, int angle) { }
   public void failedToDrag() { }
   public void reportJSONError(String error, int ordinal) { }
 
diff --git a/src/main/java/org/distorted/patterns/PatternObjectLibInterface.java b/src/main/java/org/distorted/patterns/PatternObjectLibInterface.java
index ef349fd7..11fb3bd4 100644
--- a/src/main/java/org/distorted/patterns/PatternObjectLibInterface.java
+++ b/src/main/java/org/distorted/patterns/PatternObjectLibInterface.java
@@ -24,7 +24,7 @@ public class PatternObjectLibInterface implements ObjectLibInterface
 {
   PatternObjectLibInterface(PatternActivity act) { }
   public void onScrambleEffectFinished() { }
-  public void onRemoveRotation(int axis, int row, int angle) { }
+  public void onRemoveRotation(int axis, int rowBitmap, int angle) { }
   public void onBeginRotation() { }
   public void failedToDrag() { }
   public void onSolved() { }
diff --git a/src/main/java/org/distorted/play/PlayLibInterface.java b/src/main/java/org/distorted/play/PlayLibInterface.java
index 5a34bc00..e1881e72 100644
--- a/src/main/java/org/distorted/play/PlayLibInterface.java
+++ b/src/main/java/org/distorted/play/PlayLibInterface.java
@@ -219,7 +219,7 @@ public class PlayLibInterface implements ObjectLibInterface
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public void onRemoveRotation(int axis, int row, int angle)
+  public void onRemoveRotation(int axis, int rowBitmap, int angle)
     {
     mNumRotations++;
     PlayActivity act = mAct.get();
@@ -229,7 +229,7 @@ public class PlayLibInterface implements ObjectLibInterface
       ScreenList screen = ScreenList.getCurrentScreen();
 
       if( screen==ScreenList.FREE ||
-          screen==ScreenList.SOLV  ) ((ScreenBase)screen.getScreenClass()).addMove(act,axis,row,angle);
+          screen==ScreenList.SOLV  ) ((ScreenBase)screen.getScreenClass()).addMove(act,axis,rowBitmap,angle);
       }
 
     if( mNumRotations==40 && !mReviewAsked )
diff --git a/src/main/java/org/distorted/play/ScreenBase.java b/src/main/java/org/distorted/play/ScreenBase.java
index d0cc5d71..47d26ffa 100644
--- a/src/main/java/org/distorted/play/ScreenBase.java
+++ b/src/main/java/org/distorted/play/ScreenBase.java
@@ -75,9 +75,9 @@ abstract class ScreenBase extends ScreenAbstract
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public void addMove(PlayActivity act, int axis, int row, int angle)
+  public void addMove(PlayActivity act, int axis, int rowBitmap, int angle)
     {
-    mMovesController.addMove(act,axis,row,angle);
+    mMovesController.addMove(act,axis,rowBitmap,angle);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/solvers/SolverObjectLibInterface.java b/src/main/java/org/distorted/solvers/SolverObjectLibInterface.java
index 6aa9714e..953035dc 100644
--- a/src/main/java/org/distorted/solvers/SolverObjectLibInterface.java
+++ b/src/main/java/org/distorted/solvers/SolverObjectLibInterface.java
@@ -40,7 +40,7 @@ public class SolverObjectLibInterface implements ObjectLibInterface
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
   public void onScrambleEffectFinished() { }
-  public void onRemoveRotation(int axis, int row, int angle) { }
+  public void onRemoveRotation(int axis, int rowBitmap, int angle) { }
   public void onBeginRotation() { }
   public void failedToDrag() { }
   public void onSolved() { }
diff --git a/src/main/java/org/distorted/tutorials/TutorialObjectLibInterface.java b/src/main/java/org/distorted/tutorials/TutorialObjectLibInterface.java
index 5a46597a..1043cac4 100644
--- a/src/main/java/org/distorted/tutorials/TutorialObjectLibInterface.java
+++ b/src/main/java/org/distorted/tutorials/TutorialObjectLibInterface.java
@@ -141,11 +141,11 @@ public class TutorialObjectLibInterface implements ObjectLibInterface
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  public void onRemoveRotation(int axis, int row, int angle)
+  public void onRemoveRotation(int axis, int rowBitmap, int angle)
      {
      TutorialActivity act = mAct.get();
      TutorialScreen state = act.getState();
-     if( state!=null ) state.addMove(act, axis, row, angle);
+     if( state!=null ) state.addMove(act, axis, rowBitmap, angle);
      }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
diff --git a/src/main/java/org/distorted/tutorials/TutorialScreen.java b/src/main/java/org/distorted/tutorials/TutorialScreen.java
index 348a1dbd..a6435fde 100644
--- a/src/main/java/org/distorted/tutorials/TutorialScreen.java
+++ b/src/main/java/org/distorted/tutorials/TutorialScreen.java
@@ -183,9 +183,9 @@ public class TutorialScreen
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
 
-  void addMove(Activity act, int axis, int row, int angle)
+  void addMove(Activity act, int axis, int rowBitmap, int angle)
     {
-    mMovesController.addMove(act, axis,row,angle);
+    mMovesController.addMove(act, axis,rowBitmap,angle);
     }
 
 ///////////////////////////////////////////////////////////////////////////////////////////////////
