commit 3c39a2a07ef689533ece9e2fd288004a56b3d7ef
Author: leszek <leszek@koltunski.pl>
Date:   Sat Dec 28 23:29:56 2024 +0100

    Launch the verifier first, and only then the solver selection dialog :)

diff --git a/src/main/java/org/distorted/solverui/ScreenSolver.java b/src/main/java/org/distorted/solverui/ScreenSolver.java
index 839c7d79..cab73fb7 100644
--- a/src/main/java/org/distorted/solverui/ScreenSolver.java
+++ b/src/main/java/org/distorted/solverui/ScreenSolver.java
@@ -288,40 +288,49 @@ public class ScreenSolver extends ScreenAbstract implements ResultScreen
 
     if( solverOrdinals!=null  )
       {
-      int len = solverOrdinals.length;
+      SolvingList slvList = SolvingList.getSolver(solverOrdinals[0]);
+      OperatingSystemInterface os = act.getInterface();
+      TwistyObject object = act.getObject();
+      SolverAbstract solver = slvList.create(os,object);
 
-      if( len==1 ) // just one solver - simply launch it and start finding the solution
+      if( solver!=null )
         {
-        SolvingList list = SolvingList.getSolver(solverOrdinals[0]);
-        OperatingSystemInterface os = act.getInterface();
-        TwistyObject object = act.getObject();
-        SolverAbstract solver = list.create(os,object);
+        int[] result = solver.validatePosition(object);
 
-        if( solver!=null )
+        if( result[0]>=0 )
           {
-          int[] result = solver.validatePosition(object);
-          if( result[0]>=0 ) solver.solve(this,result);
-          else displayImpossibleDialog(result,solver.getFaceColors());
+          if( solverOrdinals.length==1 ) // just one solver - simply launch it
+            {
+            solver.solve(this,result);
+            return true;
+            }
+          else // more than one solver - pop up a choosing dialog
+            {
+            ListObjects objList = ListObjects.getObject(mObjectOrdinal);
+            String upperName = objList.name();
+            Bundle bundle = new Bundle();
+            bundle.putString("argument", upperName );
+            RubikDialogSolvers solv = new RubikDialogSolvers();
+            solv.setArguments(bundle);
+            solv.show( act.getSupportFragmentManager(), RubikDialogSolvers.getDialogTag() );
+            return false;
+            }
+          }
+        else
+          {
+          displayImpossibleDialog(result,solver.getFaceColors());
+          return false;
           }
-        else displayErrorDialog(act.getString(R.string.solver_generic_not_implemented));
-
-        return true;
         }
-      else  // more than one solver - launch a choosing dialog
+      else
         {
-        ListObjects list = ListObjects.getObject(mObjectOrdinal);
-        String upperName = list.name();
-        Bundle bundle = new Bundle();
-        bundle.putString("argument", upperName );
-        RubikDialogSolvers solv = new RubikDialogSolvers();
-        solv.setArguments(bundle);
-        solv.show( act.getSupportFragmentManager(), RubikDialogSolvers.getDialogTag() );
+        displayErrorDialog(act.getString(R.string.solver_generic_not_implemented));
         return false;
         }
       }
     else  // no solvers? Impossible!
       {
-      android.util.Log.e("D", "No solvers found for object "+mObjectOrdinal);
+      displayErrorDialog("No solvers found for object "+mObjectOrdinal);
       return false;
       }
     }
