Dialog 'buy stars'
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.
Stars: introductory dialog explaining the concept of stars.
Changes to the initialization - initialize the 'bought objects'
Reinstall the latest Android Studio, latest gradle; reconfigure all project to match and compile.
bugfix
IAP, part 1: Introduce the concept of a 'free' and 'not free' object to
- ObjectType- DownloadedObject- RubikObject- jsons
Move the 'bandaged' button back to the main menu.
New way to store records, comopletely independent on the number of scrambles.Do away with the weird 'getDBLevel' thing.
Correct the MAX level in the leaderboard.
Correct the leaderboard. Still, the 'MAX' level does noot work!
dialogs: license.
Make the BandagedPlay use FastScramble. (static 500 times)
correct the way we add new downloadeed objects.
- we need to export the main activity- we need to detect if the downloaded JSON is corrupt and if yes, do not save it.
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.
Progress with central menu popup.
Stop giving different app names in different languages.Remove the licensing info from the About Dialog.
Improve setting the size of text on spinners.
New 'Free Play' screen.
Make the size of the text in the spinners in the bandaged activity look right on all screen sizes.
Improve the bandaged scramble settings dialog.
Improvements.
BandagedPlay: remove the conf dialog
BandagedPlay: configurable mode and scramble depth
BandagedPlay: dialog
Simplify the way we remember cubit quats, and delete those from SharedPrefs when we delete a bandaged object.
On OpenGL ES 3.0, some drivers are veeeery slow linking a program which includes transform feedback - and such program is needed to apply vertex effects to meshes - which is needed to round corners of puzzle cubits.
Thus on 3.0 we switch off rounding corners of the meshes in the Creator mode, otherwise we'd need to wait about 24 seconds for the screen to appear!
Improve the Updates dialog.
Bandaged 3x3: new dialog.
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)
Bandaged 3x3 UI: translations for the dialog
Bandaged 3x3: progress with saving.
Bandaged 3x3: saving dialog.
Make it possible to automatically re-download EXTRAS file if it previously failed to download
Make 'downloaded' debugs controlled by a single boolean.
Downloaded Objects: bugfix.
Downloaded Objects: bugfix
Downloaded Objects: bugfixes
Downloaded Objects more or less work now.
Refactor RubikObject in preparation for creating RubikObjects from DownloadedObjects.
Download the icons only once and save to local storage.
Support for saving the downloaded JSONs in local data storage.
Beginnings of support for saving the downloaded JSONs in local data storage.
Rename the 'network' package to 'external' since it will also deal with writing/reading files from local storage.
progress with the Updates: download the jsons.
Progress with Updates Dialog; improvement for the MIRR_4 icon.
Download Update icons.
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: dialog title.
Progress downloading updates: dialog.
Progress downloading objects and extras.
Re-organize tutorial list so that we can pull this one from JSON files.
Remove 3 out of 4 object icons.
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.
Simplify and spped up the tutorials dialog
Correct the style.
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.
Minor
Simplification
Remove the 'setupObject()' redundant API.
1. Remove 'db level' from objectlib (this belongs to the app!)2. change ScreenPlay's 'mObject' to be an ObjectType.
Move yet more code to objectlib.
Reename ObjectList to a more logical ObjectType.
Simplify ObjectList: now there's just one object per size.
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.
Remove class referencees from ObjectList.
Correct height of the tutorial dialog.
Make it impossible to launch more than one Tutorial screen at a time.
Add a 'give up' dialog - if one made at least 10 moves when solving and presses a 'back' button, one needs to confirm.
Separate the notion of maxLevel (in DB) [which has to stay backwards-compatible with previous versions of the app] and 'numScrambles' - the number of times an objects gets scrambled in the 'full scramble' mode. Now the second can be whatever we want without breaking backwards compatibility.
Correct the way we overlay our (possibly) better local (i.e. unsubmitted yet or submitted, but not picked up by the 'clean_db' cron job) records on top of the DB records ini the 'Scores' dialog.
Cube Control: step 2.
Rename 'state' to 'screen'
- report the Graphics driver's Renderer and Version.- new Diamond, Skewb2 and Skewb3 meshes.
Rename packages
Speedup: in the tutorial dialog, only create the current tab +-1.
Always use only (max) 10 levels - (max) 9 'initial' Levels + Full Scramble.
Disallow setting a name with spaces in it.
Improve the Ivy mesh.
Make the Tutorial Dialog look better
Report to Google Analytics that we're watching a tutorial.
Put new things to the StackFrame.