progress with colors in styles
common code from all activities to one BaseActivity
call setTheme before super() on all activities onCreate()
3 message dialogs.
Objects can support or not changing colors of their stickers.
New TwistyObject API to only restore the stickers, and not the object positions.
Color unification complete: 24 standard colors.
Beginnings of color unification
Restore the colors and sticker properties from Preferences.
Save the colors and sticker properties to Preferences.
progress with configurable stickers
some more corrections for the adjustable stickers.
More support for configuring the stickers.
Initial support for configuring the stickers.
rename the 'Config' package to 'Info'
improve the object popup in Config Activity.
progress with new sorting methods.
Progress with sorting the objects by various criteria.
change complexity from int to float.
UI improvement to the Config Pane.
clean up TwistyObject's API
Remove all old UI 1.0 classes
Activity numbers.
remove 'MESH_NICE'
Major progress with version 2.0.0.
Major progress to version 2.0.0.
Cleanups in the Activities.
LTR UI elements; rename some of them.
Unify the (small,medium,big,huge) UI graphics.
Support Jing3 and Jing4 ( aka 4x4 Pyramind and 5x5 Pyramid).
Progress with 6x6 Pyramid.
Create Tablebase in a separate thread.
Change OperatingSystemInterface
Move the OSInterface to a separate module
Separate a OSInterface from LibInterface
remove all references to android.Context and android.Activity from distorted-objectlib
Decouple (to a large degree) the OpenGL Library from Android.
Tablebase-based scrambling.
Introduce InitAssets. We'll use this later to pass on references to the tablebase file to the TwistyObject (so that it can use this for perfect scrambling)
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....
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)
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!
IAP: finish the 'Purschase' activity.
IAP part 5: new 'Purchase' activity (cont'd)
IAP part 5: new 'Purchase' activity.
IAP part 4: further progress with locks in the object popup screen.
IAP, part 3: non-free objects appear in the popup with a lock icon: make the lock icon's size resolution-independent
IAP, part 2: unify the way we create object popups in ScreenPlay and ConfigActivity.
difficulty icons.
config: 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.
Correctly get the whole size fo the screen (along with thee top and bottom system bars) from the very beginning of the Activity.
A few code improvements.
Generalize the max number of moving parts and max size of quat group.
Fix for a crasher
Mode the 'iconMode' from static variable in ObjectControl to member varaible in TwistyObject (safer)
Cleanups.
Downloaded Objects: subtle bugfix. We cannot use ObjectType in ObjectControl to check if two objects are the same because DownloadedObjects have ObjectType null !
Refactor RubikObject in preparation for creating RubikObjects from DownloadedObjects.
Downloading updates: dialog progress.
Re-organize tutorial list so that we can pull this one from JSON files.
Add debugging for the case when people submit suspicious records.
Corrections for the UI.
Remove 3 out of 4 object icons.
Improve the behaviour of the Config and Tutorial activities when in the 'PopUpMode'. Also, remember the current object in the COnfig activity so that when we put it to the background and resume - the object stays.
Do not show FPS in the Config screen.
Fix setDefaultRotation() when changing an object; do it at exactly the right time when the 'old' object has already disappeared, but the new hasn't been attached to the Nodee yet.
Include the info about 'numFaces' of a puzzle in the jsons.Based on this, and the recently introduced 'DEFAULT_ROTs' to the basic Shape classes, rotate each object in the Config so it looks attractive.
Add info about FPS.
Introduce 'Simple' and 'Nice' meshes.
Progress with Config UI.
Progress with Object Config UI.
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.
Progress replacing the enum ObjetType with the class RubikObjectList.
Progress with ConfigPane.
Progress with ConfigScreen.
Beginnings of the ConfigActivity.