Do not allow more than 15 characters in the NAME.
Fix sa bug which showed itself only on Android API 21 and 22.
Bugfix in StateSolving upper text - before when we won, and NewRecord dialog was on the screen, and at tis moment we rotated the screen, the uppoer text would revert back to 'Ready?'
Bugfix in DialogSetName - before it would not dim the OK button initially
UII improvement in StatePattern
Fix clickable links in the About dialog.
Finally solve the bug on Samsung Android 9 and 10 phones that the Dialogs Main & patterns wouldn't be modeless: move the setting of this flag earlier, to the 'onCreateDialog()' function.
Minor.
Only 2 dialogs are modeless now: MAIN & PATTERNS
Lots of bugfixes.
Move to AndroidX, target API level 29.
Improve the Effects Dialog so it looks good on 'thin' screens ( 720x1440 )
1) Relax requirements as to OpenGL ES ( now only 3.0 required )2) fix a crash in Solving state
(Hopefully) make the Dialogs NOT disappear on clicks outside (previously this wasn't working on Android 9).Lower API requirements to 21.
Minor tweaks to the 'Prev' buton in Solving state;Relax requirements in the Manifest - now only 'android.hardware.faketouch' supporting device is required, i.e. something that supports basic point-click-drag-unclick. No need for full 'android.hardware.touchscreen' thing with its multitouch silliness.
Add a 'withdraw move' button to the Solving UI state.
Bugfix
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.
Bugfix.
Each object size now has its own number of levels (not always 18!)
Reorganize UI of the Play state.
The 3x3x3 Solver finished - here the last piece of work, locking the centers of the 3x3x3 cube in place so that RubikStateSolver's color picker cannot change them ( the CUBE3 solver assumes this )
Progress with the Solver - RubikCube.retObjectString() finished.
What remains to be done here: ban changing colors of the centers of 3x3x3 faces, this shouldn't be allowed!
Progress implementing RubikCube.retObjectString()
Progress making the Solver state more abstract.
Make the Solver state more abstract.
Formatting: remove tabs.
Progress with the 3x3x3 Solver.
Hopefully the only thing that remains to be done is to implement the RubikStateSolver.retCubeString().
More support for the 3x3x3 Solver: more of the actual 3x3x3 solver mechanism.
More support for the 3x3x3 Solver: add the actual 3x3x3 solver mechanism.
More support for the 3x3x3 Solver.
Beginnings of support for the 3x3x3 Solver.
Bugfixes.
Minor
Introduce RubikPatternsList. Now, if one wants to contribute patterns for a new object, all one has to be is give the list of strings describing the patterns and add them to the List.
Speed up displaying the Patterns Dialog - do not read the whole thing, but only one Category at a time as required.
Pretty Patterns: slight speedup.
Pretty Patterns: some patterns had 'empty' moves (i.e. angle 0). Correct the last 5 such patterns.
Pretty Patterns: some patterns had 'empty' moves (i.e. angle 0). Correct the next 6 such patterns.
Pretty Patterns: some patterns had 'empty' moves (i.e. angle 0). Protect the parser against such sequences and correct the first 12 such patterns.
Pretty Patterns Dialog: remember the positions of scrollbars.
Bugfixes for Pretty Patterns
Bugfixes - do more stuff 'post render'
Major progress with Prretty Patterns.
Two things remain:
1) looks like sometimes making/backing Moves in a Pattern gets stuck. ( Pattern.mCanRotate! )2) we need to add RubikPatternList!
Major progress with Prretty Patterns - hopefully only initializing the Object remains!
extend the RubikObject API to make it possible to add rotations of multiple rows simultaneously (all along the same axis of course!)
More support for actual patterns!
Beginnings of support for actual patterns!
Remember state of the dialog.
Improve the upper_text.
Prettier spinner.
Improve the Pattern data: unique names, more even splitting into categories.
Progress with Pretty Patterns.
Re-add the Pattern dialog, but attach it to the Pattern uistate this time.The idea to do away with the dialog proves impossible - we'd have to resize the top bar, which causes very unpleasant flashes.
Progress with Pretty Patterns - do away with the tabbed dialog!
Beginnings of the 3x3x3 Solver and Pretty Patterns.
Change the series of Object buttons in the Play state into a PopupWindow.
The SetName Dialog should be finished.
Progresswith the new Dialog, SetName.
Implement a new Dialog, SetName.
Implement computeHash()
Bugfix for downloading High Scores.
progress with submitting one's high scores.
Beginnings of submitting one's high scores.
Adjust rotation speed depending on the row (important in case of Pyraminx - there the top little tetrahedron must rotate much faster than the bottom big layer )
Add the 'New Record' dialog.
Add the 'Solved' dialog.
Progress with getting/setting Country and DeviceID.
Port the downloading into the new 'magic' server.
Incorporate myRecords into the Scores dialog.
Progress with saving number of runs, plays, name, verified status.
Still a fix for the previous fix - cubits lie on faces only if their RotationRow is very close to 0 or mSize-1, and not when their RotationRow rounded to the nearest integer is 0 or mSize-1 ! ( counterexample: the rotated tetrahedrons of Pyraminx )
Fix the way we detect if an Object is solved.Previous way would not detect situations when the object looks solved, but one of the cubits inside its faces - a non-corner and non-edge - is rotated and ends up on the same face.
Separate scores from StateSolving
Before scrambling, mark situation as 'not solved'
Make the records independent of arrangement of Objects and their sizes in RubikObjectList.
Major restructuring around making it possible to include different kinds of RubikObjects in the UI.
1. library: new API DistortedNode.setProjection()2. cube: adjustments for Pyraminx.