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.