Improvements to the UI - make it proportional regardless of the physical screen size. (Part 1)
Minor tweak.
Make the top three controls in the Play state reach all the way from the left to the right edge of the screen.
Move the 'Effects' thing to a button in the Play state.
Report to Firebase exceptions with dismissing the Main Dialog.
On object change, report FPS to Firebase
Two-fingered object rotation seems to be finished.
Progress with dragging.
Simplify dragging. Now there's only 1 Quat, rather than the old way with two (Accumulated, Current).
Progress with improvements for cube manipulation.
Initial attempt at two-finger rotation.Mostly works; still, one corner case doesnt:
- put two fingers down, start rotating- lift one of them up- put it back down
depending if we lifted the first or second finger, weird things may happen.
Lock screen orientation to portrait.
Further improve rotations of a Object layer - make them independent of physical screen size (now it depends on the angle of rotation and, if that's 0, on the speed (in inches of second) of the finger swipe done by the user.
Make the rotations and drag be independent of physical screen dimensions - take into account pixel density.
Split up the onTouch() part of the View.
Improvements for the way we rotate layers of Objects: make it possible to begin a rotation during a WIN effect.
Improvements for the way we rotate layers of Objects. (take the speed into account - so even if we rotated a layer of a Cube to less than 45 degrees, but we did it fast, do a 90 degree rotation!)
Only compile the Full, Normal & OIT programs when they are actually needed.
Take advantage of recent improvements to the library and stop allocating a queue of 4 FBOs - even if we are running on a Mali r12.
Smaller (and of better quality!) meshes.
Read the meshes from .dmesh files (rather than compute them dynamically).This (along with single-mesh mode) hopefully makes the rendering much faster, while keeping the time needed for Object Change low.
The only downside: this increases the size of the release APK from 6 MB to 9.6 MB.
Speedup for rendering: cubes 2,3 contain better quality cubit faces (more vertices) than cubes 4,5.
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.
Bugfixes.
Minor speedup
Bump version to 1.2.2
More progreess porting RubikCube. Rotation mostly working now.
More progreess porting RubikCube.
Progreess porting RubikCube to the new SingleMesh mode.
Begin porting RubikCube to the new SingleMesh library. This will make rendering much faster - e.g. in case of Cube 5, instead of 98 renders of individual Cubits, there will be one render of the whole Mesh.
Add flag of Ghana.
Port RubikCube to the new library.
Update Myanmar flag.
Add Ethiopian flag.
Add Kenyan flag.
Correct the Libian flag.
Add flags of Congo, Malawi, and update the Libian flag.
Minor
Add of flag of Tanzania!
Only show the OpenGL Error dialog when the underlying hardwarre does not support OpenGL ES 3.0.
Add OpenGL Error dialog.
Progress making it possible to apply Vertex Effects only to some Components of a Mesh.
Correct a crasher introduced in 1.2.0
Switch off showing FPS.
Report an Analytics event when a user changes State or Object.
Report a Crashlytics non-fatal if we fail to compile some shaders.
Hopefully get rid of the most common crash in the field right now by changing the States to always create all their Views from scratch.
1) Cube: convert it to the latest library. Main difference: objects are rendered better, individual cubits have rounded corners.2) Examples: some adjustments to MeshJoin & Predeform3) Library: fix a bug in main_vertex_shader's 'degree' function, which didn't work proprely in case of a vertex which was exactly at the center (i.e. vector PS was zero)
In library: allow a mixture of a deep and shallow copy of a Mesh ( mVertAttribs1 might be copied deeply or shallowly, mVertAttribs2 are always copied deeeply).Port RubikCube to the new library.
correct Qatar flag & add Trynidad flag.
Fix a nasty logic error that let people submit bogus results.
Fix for the next crash seen in the field.
Fix for a crasher seen in the field.
Minor.
Improve the way we fill up the Scores tab - now it follows what user's doing, so if he changes tabs when the dialog is filling up, he won't have to wait so long.
Add Ivory Coast flag.
Smaller halo.
New Traditional and Simplified Chinese translations.
Fix for another crasher from the field.
Change the Postprocessing effects: separate the radius and the halo.Reason: we needed a way to specify the size of the halo around a postprocessed object; before it was automatically (and not very correctly) computed from the radius - before we knew the size of the object's bounding box, so this automatic computation was possible. Now we're removing the MashBase.getBounding(0 API, so the size of the halo has to be explicitly given by the user. This way is more correct anyway and gives the user more control (as the Multiblur app proves!)...
Fix for the next crasher from the field.
Adjust the app to match the changes in library.
Looks like we'll have to add 1 dim to the GLOW effect.
Remove the 'touchscreen required = false' from the manifest (because or a bug in Samsung App Store - it marks such apps as incompatible with any device)
One more fix for the latest bug from the field with Play state Spinner.
- bump version to 1.1.2- fix one crasher observed in the field ( we need to adjust the Levels Spinner in Play state if Object changed in Pattern or Solver states )
Fix clicking on the 'Distorted.org' link; get app version from build.gradle (and not from strings.xml)
Add Crashlytics logs
Fix for the previous fix :)
Fix a potential crasher ( do not set up a callback for end of rotation effect on the very first cubit that belongs to a rotation if all belonging cubits have not been set up yet )
Bump version to 1.1.1
Fixes for the fact that one could easily cheat - just pause the app while solving and come back to it, the time would reset to 0 and the object to unscrambled :(
Fix the Solver broken by the change of move notation when importing Pyraminx Patterns :(
Switch off Crashlytics in DEBUG builds.
Add two new UI States: Ready and Done.
Change Werner to Walter.
Correct the last 6 patterns of the Pyra5.
Do not crash if we are running on device which does not support OpenGL ES 3.0
Remove app_version from translated strings.xml so that the version always stays in sync.
Bump version to 1.1.0 since there are 9 translations, 2 bug fixes & Pretty Patterns for Pyraminx 3,4 and 5.
Minor corrections for the translations.
9 Translations.
Fix for another crash from the field.
There's a real crash from the field in Firebase Crashlytics which must mean that Cubit.returnRotationAngle() returned null.Leave some message in case this happens again.
Add Pyraminx5 Pretty Patterns.
Add Pyraminx4 Pretty Patterns.
Add Pyraminx3 Pretty Patterns.
Change the format of moves in Pretty Patterns to more terse, so that patterns of objects with 4 axis of rotation ( Pyraminx!) fit into 3 digits.
PYRAMINX: swap the red and blue face colors so that the whole thing matches randelshofer.ch
Allow the server to correct our notion of country (improvement)
Allow the server to correct our notion of country.
Give credit to Werner Randelshofer.
Improve logging in case the Distorted Library returned an error - add Crashlytics custom keys.
Do not allow more than 15 characters in the NAME.