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.
Correct rotations of the Pyraminx - eliminate one cse when three consecutive rotations collapse into one.
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.
Preparation for 'smart scrambling' : introduce the total number of scrambles to the 'randomizeNewScramble' function.
Square-1: looks to be finished.
Make it possible for an object to have different 'basicAngles' along each of its axis.
Bugfix: make it impossible to rotate a cube when it is being scrambled in the Tutorial mode.
Fix the long-standing issue with the double 'READY' state which, as I now see, was causing some impossible records.
Refactor the automatic scrambling. From now on, it is not needed to care about single and double turns when randomizing a new turn.
Minor
Change the automatic scramble API in the TwistyObject - in preparation for automatic scrambles in the Bandaged Objects.
New 'tutorial' activity.
Rename some classes.
Adjust randomizing new rotations so that:
1) it works for basicAngle=5 (Megaminx) (so now basicAngle=2,3,4,5 supported)2) it leaves the decision as to what can be the next rotation to the Object class, as in case of certain Objects (the Dino, or the Helicopter, the Megaminx) the next rotation doesn't have to 'intersect' the old rotation always when oldRotAxis != newRotAxis (that's so simple only in case of the Cube and - only partly - the Pyraminx!)
Object node: size of screenWidth.
Convert the PostRender to a PreRender, called before we render.This makes more sense as this way things are prepared for the very first render.
Make chances to randimoze a given row when scrambling dependant on the type of Object.
The point: in case of the Cube, all rows should have equal chances. In case of the Pyraminx, the smaller the row, the smaller the chance should be. In particular the trivial 4 corners of the tetraherdon should have a very small chance to be selected.
More support for the 3x3x3 Solver: more of the actual 3x3x3 solver mechanism.