1) Beginnings of support for using the library from more than one activity2) rename DistortedLibrary.onCreate() to onSurfaceCreated()3) (rubik) add Cambodia's flag.
Remove all traces of tutorials from the new 1.5.4.This is a bigger job; tutorials will only come in 1.6.0.
New 'tutorial' activity.
Translations of the 'tutorial' string.
Progress with the Info Dialog
Lots of changes:
1) new 'info' button (not working yet)2) make all dialogs modal; rework the way the Pattern Dialog appears.
Preparation for the Object Info popup: add the name, inventor, complexity info to each object.
Catch exceptions when rotating.
Do not permit clicking on the 'play' button if we are currently scrambling an object.
New Ivy mesh.
Slight improvement for the Ivy Mesh.
Mesh for the Ivy.
Icons for the Ivy.
Progress with the Ivy.
Even more debugs for the 'failed to restore preferences' mystery.
Minor.
1) Progress with the Ivy2) further refine defense against failing to restore preferences.
Progress with the Ivy
Bugfix
Beginnings of the Ivy Cube.
Avoid cutouts in a new way
Avoid the possible cutouts at the top of the screen.
Missing meshes; fix the Solver.
New Meshes for all objects.
Icons for the Skewb Master.
More error reporting - this time in Scores.
Improve the Skewb; set max components to 110 in MeshBase so that all of Professor Skewb's components fit.
Make the texture multi-row: avoid the maximum texture size.
Report to Crashlytics if we fail to restore preferencees (2)
Report to Crashlytics if we fail to restore preferencees.
Report to Crashlytics if the fail to set texture due to it being too large.
Progress with Skewb familty; separate StickerFactory class.
Spearate the concept of number of layers of an object and its size.In case of the Skewb family, this is no longer the same (Master Skewb has 3 layers but it's twice bigger than the 2-layered Skewb)
Objects must explicitly provide a list of offsets specifying where the cut planes are (rather than just a BASIC_STEP - the width of the layer - which is insufficient in case of objects which have layers of vastly different width, like the Master Skewb)
Move computation of the rotation rows to the Object from Cubits.
Beginnings of support for any-sized Skewb.
New meshes.
CubitFactory: unify creating MeshPolygon bands.
Play State: Recreate all 3 PopupWindows.
More debugging for the case of suspicious submits.
Swap Redi with Helicopter.
More unification in CubitFactory.
New API for the library: add an empty texture component to a Mesh.Use this in thr Magic Cube to add empty texture components to some types of cubits.
Unification of the way we round the corners of various cubits.
Bugfix for a rare Firebase crash.
Improve Analytics reports
The Redi Cube should be finished now.
Redi icons.
Add the Redi Cube: part3.
Add the Redi Cube: part2.
Add the Redi Cube: part1.
Work around a rare crash on startup
Correct a bug computing Hash and immediatelly bump to 1.5.2
adjust requesting for review a bit more - now it will happen after a user has launched the app twice and played 7 times.
adjust the objects some more.
- after some time using it, request an App review- some tweaking for the way the objects look (set internal_color to something slightly lighter than pure black, round the corners of the stickers better)- set internal_node ratio to 1.42, this way the objects never get cut
Simplify OpenGL error dialog. Show it only once.
Simplify drawing textures.
Minor
Brighter background.
Bigger 'OK' button in Dialogs.
Transparent Buttons.
1) report all solved levels to Analytics2) automatically dismiss the NewRecord and Solved dialogs when one backs from the Done state.
Make the RubikScores class thread-safe.
New meshes for the Diamond and the Pyraminxes.
Icons for the Diamond.
Add a CubitFactory and convert all objects to use it. Biggest change is thr Pyramiinx which now uses a lattice of Octahedrons and Tetrahedrons, just like the Diamond.
Fix Diamond's isSolved()
Progress with the Diamond. Everything working except for the isSolved(): turns out the center cubits can end up rotated along the face by multitudes of 120 degrees.
Progress with the Diamond. Everything working, expect one thing: half of the faces are upside down, and computing offset doesn't work on those faces properly.
Make the top and bottom bars transparent, above the GLSurfaceView.
Progress with the Skewb Diamond.
Progress with the Skewb Diamond - it is rendered correctly now.
Rename some classes.
Rename 'RubikMovement' to 'Movement'
1) correction for Dino4's isSolved() [ remember about the mirror! ]2) beginnings of support for the Skewb Diamond
Fully support the 4-color Dino.
Add the 4-color Dino.
Still one thing needs to be done about it: randomization of Moves (now sometimes in Level 1 the randomized move leads to an already solved position)
Add lock button.
Slight correction for devices which have scrWidth>scrHeight ( Huawei Mate Xs! )
Do not forget the amount an Object has been changed in size when we switch between Objects.
Compute the size of the Solver icon correctly.
Apply a hack so that the App enters fullscreen modee on some Huawei devices.
Remove LAYOUT_STABLE from the UI flags since that was causing trembling of the Scores dialog in some platforms.
Progress with UI
Make the keyboard visible again
Rework the bottom pane
Remove Navigation Bar in the last case, when we were popping out a PopupWindow!Navigation Bar fully gone now!
Make it so that the Navigation Bar does not re-appear when we pop up a DialogFragment.
Now there's noly 1 case when it still reappears: it's when we pop up a PopupWindow.
Progress with Play state.