Move the TwistyObject.retCubePosition() to the solver.
Again abandon RubikControl (after bumping into hard-to-solve issues)
add possible scrolling to the 'object' popup in case the grid of objects does not fit on the screen.
Lots of changes :)
Progress with RubikControl.
Fix the long-standing problem that putting app to the background would not stop the 'solving' counter.
Add a 'give up' dialog - if one made at least 10 moves when solving and presses a 'back' button, one needs to confirm.
Always set the back move icon when we clear moves
Give visual indication when dragging is locked.
Change the 'Cube Back' icon when there are no moves to back.
Abstract the part that controls the 'Locked' and 'Back Moves' buttons from the two activities: the main one and the tutorial one.This code had been duplicated there.
Separate the notion of maxLevel (in DB) [which has to stay backwards-compatible with previous versions of the app] and 'numScrambles' - the number of times an objects gets scrambled in the 'full scramble' mode. Now the second can be whatever we want without breaking backwards compatibility.
Fix the fact that in the last, 'Full Scramble' level, it wouldn't switch on the green light.
Backing moves: constant angle speed (part 2).
Backing moves: constant angle speed.
Make it possible for an object to have different 'basicAngles' along each of its axis.
Square-1: beginnings
Bugfixes for two issues with 1.8.0 seen in the field.
Switch Rubik Control off for the moment.
RubikControl: fixes; progress.
Make Dynamic's resetToBegin() done on the next frame.This is necessary if we want to reset many Dynamics at one go and have all of them start synchronized.Otherwise it can happen that when we reset, we do it when some objects which the Dynamics belong to are already rendered and others are not, and then some of the Dynamics will be delayed by one frame which is visible already.
Cube Control: step 2.
Rename 'state' to 'screen'