Unblock PreRender's scrambling & solving oonly AFTER we change screen to READ post-scrambling (otherwise it was possible to press the 'solve' button in the brief period between unblocking and switching screen because switching screen runs on the background UI thread)
What's New dialog: improvements.Remove the About dialog.
Progress with the Camouflage 3x3x3.
What's new dialogBump version to 1.12.0
UI iimprovements inthe Solver screen.
Progress with solvers dialog.
Some improvements to blocking, mostly to the names of variables.
Finally fix the 'impossible records' bug!
Thanks for a bug report from Jacob Powell - if one, during scrambling, minimized the app and re-entered it, the UI lock got removed (by a call to 'unblockEverything' from RubikActivity's onResume) and one could then keep solving the object mid-scramble....
Continue unifying all the dialogs under one RubikDialogAbstract.
More fixes for UI in case of extreme screen (w/h) ratios ( from 1.0 to 2.0 ).
Move the control of object scaling out the objectlib.Thee xact way the object is scaled needs to be decided in the app, as only the app knows that e.g. in the Rubik main screen, if it is a square, then obejct needs to be a bit smaller than in case of Config screen (if that one happens to be a square)
Further improvements for the UI.
Improve UI proportions on squarish screens.
Progress with 'Stars' dialog.
Released 1.11.6 version
Make it possible to decide about FastScramble duration fromo outside the ObjectControl.
Make several objects built-inoone fix for USE_IAP
Very important bugfix for an issue which probably has been the reason for many mysterious behaviours in the past: the JsonReader class cannot be a singleton! Convert it into a normal 'instanced' class.With it being a singleton there's a major issue: when we create a new TwistyObject from a JSON file (by, for example, going to PurchaseActivity) and then we come back to the old object (by, for example, going back to the main RubikActivity) - then the JsonReader inside the old object has read the new JSON file and thus many of the 'abstract' methods in the old TwistyObject (for example getShortName()) all of the sudden start returning new values!
Purchase Pane: post-purchase dialogs.
Bugfix: properly display number of stars on new installs.
fix showing the number of stars on app startup.
Stars: introductory dialog explaining the concept of stars.
Minor
Changes to the initialization - initialize the 'bought objects'
The 'stars earned' effect is done. Works only for newStars>0.Also, there is a crash in the graphics driver on my physical LG phone.
All users who are upgrading from a version <1.11.4, where there was no concept of 'stars', get all their stars.
inc num of stars on each first recordup version name to 1.11.4
Switch off visible effects of IAP (all objects free, no 'stars' animation)
Disable writing DEPTH and STENCIL to the Screen from both the TwistyObjectNode and the Overlay Node.
Beginnings of support for 'Overlays': first overlay will be the rotating star which little stars fly to when one solves a level for the first time.
Progress with marking objects as free.
IAP part 5: new 'Purchase' activity.
IAP, part 3: non-free objects appear in the popup with a lock icon: make the lock icon's size resolution-independent
Move the 'bandaged' button back to the main menu.
Correct the MAX level in the leaderboard.
main,messaging: license.
Add Firebase Cloud Messaging and Firebase In-App Messaging
Do not crash when something's wrong with the JSON file - handle this gracefully, do not change the object then, and report this to Firebase.
Request review after 3 and 6 runs.
Progress with central menu popup.What remains is the colors in the Menu Level Buttons
Progress with central menu popup.
Progress with FreePlay.
New 'Free Play' screen.
Correctly get the whole size fo the screen (along with thee top and bottom system bars) from the very beginning of the Activity.
Finally fix the bad bug where people could submit impossible records!
Generalize the max number of moving parts and max size of quat group.
Fix for a bug when in Turkey and Azerbaijan, the names of downloaded objects which contain the letter 'I' do not get translated to upper case correctly (part 2: fix 'toLowerCase()' )
If we're updating an object, and it is the current object, reload it immediatelly so that the new version appears by itself.
Bandaged 3x3: remember object state and move history.
Remember move history in the PLAY and SOLV screens.
delete icon, object and extras files from local storage when:
1) we delete a locally produced bandaged 3x32) it turns out that a downloaded object is already built-in (which can happen if we download an object and then upgrade to app version which builts it in)
Mode the 'iconMode' from static variable in ObjectControl to member varaible in TwistyObject (safer)
Bandaged 3x3: saving dialog.
Improve layout in the bandaged view.
Beginnings of support for UI used to create any bandaged 3x3.
new API to enable/disable face culling
FigureOutVersion before calling debugs.cgi !
Switch off debugging.
Make sure we always display some icon in the Popup dialog, even if we fail to download one (improvement)
Restore the list of objects before resotoring the list of records; otherwise we cannot restore records of downloaded objects.
Make 'downloaded' debugs controlled by a single boolean.
Downloaded Objects: subtle bugfix. We cannot use ObjectType in ObjectControl to check if two objects are the same because DownloadedObjects have ObjectType null !
Downloaded Objects: bugfixes
Downloaded Objects more or less work now.
Refactor RubikObject in preparation for creating RubikObjects from DownloadedObjects.
Rename the 'network' package to 'external' since it will also deal with writing/reading files from local storage.
Reorganize the Network so that concurrent network operattions are possible.Finally figure out and fix the bug which was causing users to multi-submit the same records over and over.
Downloading updates: dialog progress.
Progress downloading updates.
Re-organize tutorial list so that we can pull this one from JSON files.
Minor.
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.