Show the same time format in the 'NewRecord' and 'Solved' dialogs as well.
Separate a OSInterface from LibInterface
remove all references to android.Context and android.Activity from distorted-objectlib
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)
Some improvements to blocking, mostly to the names of variables.
Continue unifying all the dialogs under one RubikDialogAbstract.
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)
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.
main,messaging: license.
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.
New 'Free Play' screen.
FigureOutVersion before calling debugs.cgi !
Downloaded Objects more or less work now.
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.
Minor.
Add debugging for the case when people submit suspicious records.
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.
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.
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.
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.
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.
Remove unneeded API.
Relax objectlib's requirements: it can be displayed not only on top of a DistortedScreen, but any DistortedFramebuffer.
Remove the concept of a 'TwistyActivity' altogether.