Add debugging for the case when people submit suspicious records.
Corrections for the UI.
Remove 3 out of 4 object icons.
Crash fix. Also a fix for the fact that if we started solving, went out of the app, and resumed solving - the record wasn't remembered.
Introduce 'Simple' and 'Nice' meshes.
Progress with Config UI.
Move the 'currObject' from RubikScreenPlay (WTF?) to RubikObjectList.
In the 'magic' app, ObjectType is now only used in RubikObject and RubikObjectList classes and nowhere else.This is a major step towards being able to download objects from an online repository.
Improve initial detection of screenHeight.
Beginnings of the ConfigActivity.
Better error reporting.
Make the ShapeChanging the default TouchControl during MODE_REPLACE.
Convert the theme to be a MaterialTheme and the TransparentImageButton to be a MaterialButton - the first forced by the second, and the second because a MaterialButton gives us control over the location of the icon in top of it. We need that because of the new 'solve/scramble' split-button in the lower right of the Play screen.
Move the main app to the 'J1M1' object creation mode, i.e. create them from the Json files and using the Dmesh fiels as well.
Make it possible for any app descending from the 'objectlib' to use any of the J0M0, J0M1, J1M0, J1M1 modes.
Remove ObjectType from a few moree places.
Remove dependancies on Firebase from objectlib.Report such errors to the application via the Interface.
Progress with PuzzleTester app.
new API to make is possible to adjust default scale factor in each TwistyObjectNode.(and use it in Tutorials, where the object needs to be smaller)
Major change: separate the notion of a TwistyObject and its Node. Now,
1) the Node stays when we change objects (this makes transitions faster)2) it's possible to just create an Object without adding it to the Screen (now app needs to explicitly create the Node and add it to its Screen itself)
Correct the 'solved' icons in the Play popup.
1. Do not restore object scrambling if we freshly upgraded from some version older than 1.9.02. Bugfix for a recently introduced crasher in the Play screen.
Create the 3 Popups only on first button click - this time we can have the final screen dimensions (and also it starts faster ) Before we weree getting the screen size from before hiding navigation bars, which made the height smaller, which made the number of obejcts and levels in the popups sometimes too small!
Remove unneeded API.
Relax objectlib's requirements: it can be displayed not only on top of a DistortedScreen, but any DistortedFramebuffer.
Remove the 'setupObject()' redundant API.
Minor
Further simplifications.
Remove the concept of a 'TwistyActivity' altogether.
Hide most of the TwistyActivity methods inside objectlib.
Simplifications
Move RubikControl to objectlib (as 'ObjectAutomator')Hide ObjectPreRender inside objectlib and move its APi to ObjectControl.
1. Remove 'db level' from objectlib (this belongs to the app!)2. change ScreenPlay's 'mObject' to be an ObjectType.
Move ObjectControl, the next big chunk of code, to objectlib.
Move PreRender to objectlib.This code is now shared betweeen the Rubik and Tutorial activities.
Move yet more code to objectlib.It's almost possible to move the PreRender to objectlib now.
Move yet more code to objectlib.
Move more code to objectlib.
Simplify TwistyObject's API.
Reename ObjectList to a more logical ObjectType.
Simplify ObjectList: now there's just one object per size.
Simplify objectlib's API.Correct a recently introduced bug with resetting texture maps.
Move QuatHelpeer to distorted-library
Remove all files that have been separated into a new library 'objectlib'
Prepare the 'objectlib' package to be separated into a library module
Refactoring: split the 'objects' package into two, 'objects' and 'objectlib'.The point: we're going to need to move the 'objectlib' stuff into its own library module, and that's because we're going to create a new app module which needs access to it.
Major abstraction - automatically compute the 'computeRowFromOffset()' function from CUTS.Still one thing left: it appears like the CUTS of Mega/Kilominxes are not correct.
Move the Movement class from ObjectList to individual object classes.
Move actual solving the object to PreRender.
(before we had a 'solveObejct()' in preRender already, but that one just starts the Solve Effect!)
Fix the problem reported by Samsung -
1. Fire off the app2. minimize it, select 'Multi window'3. put some other app in the lower half of the screen4. close the lower app5. our app used to fail to display the upper and lower menu bars.
TwistyObject's ObejctScreenRatio and InitScreenRatio shouldn't be static. Make them non-static.Otherwise, if the current object is, say, a cube (initSR=0.5), we fire up tutorials and start a tutorial for something with vastly different ObjectScreenRatio (Jing- initSR=1.64), then come back to the Main Activity - so there's a cube on the screen again - the ratios stay at their Jing values, which screws up detection of rotations.
Improve debugging in BlockController.
add possible scrolling to the 'object' popup in case the grid of objects does not fit on the screen.
Progress with RubikControl.
Lots of changes :)
Fix the reddening the Lock icon.
Fix a rare crash.
Introduce a BlockController - a watchdog which makes sure the Touch and UI blocks do not take too long.If it detecs a long block, it unblocks and reports the situation to Crashylytics.
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.
Important bugfix: no we cannot unblock touch when WIN effect finishes, because
1) starting the WIN effect does not block touch in the first place2) it can happen that this unblocking happens when we have started finishing the rotation but haven't removed it yet...
Improve scrambling of the Minx'es and the Redi, which in full scramble mode were frequently leaving large corners unscrambled.
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.
improvements for FactorySticker
Square-1: beginnings
RubikControl: rotate the cube 2.
RubikControl: rotate the cube.
Simplify RubikSurfaceView and the touchscreen control.
RubikControl: fixes; progress.
Attach the control nodes directly to the screen, not to the Object Node.
Cube Control: step 2.
Rename 'state' to 'screen'
Minor.
- report the Graphics driver's Renderer and Version.- new Diamond, Skewb2 and Skewb3 meshes.
Rename packages
Fix the 6fad862b commit and remove the UI block in a proper way (i.e. the problem was that popping up the Object, Play or Menu windows was impossible while the 'WIN' glow was active)
Properly solve the issue with Qualcomm driver V@331 having buggy UBO size.
Comment eexplaining the recent 'gigaminx ban' on some platforms.
Relax the conditions when we do not support Gigaminx - looks like Adreno 30x has nothing to do with it, just driver version 331.
Another attempt at fixing tthings on early Qualcomm OpenGL ES 3.0 drivers.
The previous version does not work on Adreno 405 driver V@100, present for example in a Asus ZenPad 8.Revert the packed 'ivec2' UBO in the vertex shader back to a 'std140' ivec4. This comes at a price if bumping into the bug on Qualcomm driver version 331 on Adreno 308 - i.e. Samsung Galaxy J4+ again....
Bugfix for a crasher
Fix movements of objects - before it really worked only when an object's FOV was about 60 degrees.
Do not block the UI if, for some reason, some of the effects failed to get added to the Queue. Just fail to rotate.
Bugfixes as a result of the Samsung Galaxy J4+ investigation:
1) By default, switch off transform feedback in the main program. Create a new API 'needTransformFeedback()' to call if someone still needs TF in the main program.2) lower the default max number of vertex effects to 30....
Beginnings of Megaminx & Gigaminx
We now have much more effects possible, 100 by default - it is no longer needed to call setMax().
Do use 61 vertex effects (with the advent of Kilominx)
Progress with the Kilominx - rotations.
if a user has a verified name, set it as a GoogleAnalytics UserId
Fixes for the Rex Cube (still doesn't work)
Make the Tutorial Dialog look better
Change the way we request for reviews.
Progress creating the Tutorial Dialog.