Objects can support or not changing colors of their stickers.
bugfix for a crash.
progress with new sorting methods.
Support Active and Inactive RubikObjects.
Next step toward separating TwistyObject metadata.
progress
Remove all old UI 1.0 classes
remove 'MESH_NICE'
Major progress to version 2.0.0.
separate ObjectSiguature into its own package and separate the BandagedSignatures out of it.
Remove the generic 'MINOR' object and extras versions from JsonWriter, and replace them with per-ObjectType values. This was the reason why objects which had their 'minor' (really: version) updated to '1' in the server then never updated the jsons with locally stored versions.
Unlock downloaded objects on download if we have everything in the app unlocked!
Purchase Pane: further progress.
Fix marking objects as free.
Minor
Changes to the initialization - initialize the 'bought objects'
All users who are upgrading from a version <1.11.4, where there was no concept of 'stars', get all their stars.
Reinstall the latest Android Studio, latest gradle; reconfigure all project to match and compile.
Switch off marking objects as free and bought in RubikObjectListUp compileSdkVerion to 32 (dependency forces us to do so)
Progress with Win effect + stars
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.
Progress with marking objects as free
IAP, part 1: Introduce the concept of a 'free' and 'not free' object to
- ObjectType- DownloadedObject- RubikObject- jsons
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.
objects,patterns: license.
correct the way we add new downloadeed objects.
Bugfix for downloading new objects (part2)
Bugfix for downloading new objects.
Bugfixes.
Progress with colors in the Menu Level Buttons
Mark the 'Free Play' with green or red dot.
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.
Bugfix: in addition to deleting the files from local storage, also delete mentions of downloadable-but-now-built-in objects from Shared Prefs.
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)
New, generic bandaged 3x3 class 'TwistyBandagedAbstract'.
Now, (almost!) any bandaged 3x3 can be created by extending this class and implementing one abstract method 'getPositions()'. Almost, because there's still one restriction: currently all cubits need to be one of the 5 allowed types: 1x1x1, 2x1x1, 3x1x1, 2x2x1, 2x2x2....
up the number of scrambles of the BAN2 and BAN4 objects to respectively 20 and 22.
solve the 'wasDownloadableButNowIsBuiltIn()' bug in 1.9.6 and 1.9.7.
Make it possible to automatically re-download EXTRAS file if it previously failed to download
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: bugfix
Downloaded Objects more or less work now.
Refactor RubikObject in preparation for creating RubikObjects from DownloadedObjects.
Beginnings of support for dynamically adding downloaded JSONs to the local RubikObjectList: SharedPrefs part.
Support for saving the downloaded JSONs in local data storage.
Progress downloading objects and extras.
Re-organize tutorial list so that we can pull this one from JSON files.
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.
Progress replacing the enum ObjetType with the class RubikObjectList.
Rename some classes.
Rename 'RubikMovement' to 'Movement'
1) correction for Dino4's isSolved() [ remember about the mirror! ]2) beginnings of support for the Skewb Diamond
Add the 4-color Dino.
Still one thing needs to be done about it: randomization of Moves (now sometimes in Level 1 the randomized move leads to an already solved position)
DMesh for the Helicopter.
Icons for the Helicopter.
Fix rotations of the Helicopter.
Beginnings of support for the Helicopter.
Skewb Mesh.
Icons for the Skewb.
Beginnings of support for the Skewb.
Make the ObjectPopup a 2D grid - corrections.
Make the ObjectPopup a 2D grid.
Rename Meshes.
Add the Dino dmesh file.
Introduce separate ROT_AXIS and FACE_AXIS ( step 2 )
Introduce separate ROT_AXIS and FACE_AXIS ( step 1 )
New Dino images.
Stop crashing when the last installed version has an Object remembered, then we install a new version without this Object in the RubikObjectList.
Beginnings of support for a new Object: the Dino.
Introduce HUGE ui version.
Introduce three sizes of UI images: small, medium, large.
Re-introduce possibility to dynamically create object mesh: part 2.
Object node: size of screenWidth.
Simplify dragging. Now there's only 1 Quat, rather than the old way with two (Accumulated, Current).
Read the meshes from .dmesh files (rather than compute them dynamically).This (along with single-mesh mode) hopefully makes the rendering much faster, while keeping the time needed for Object Change low.
The only downside: this increases the size of the release APK from 6 MB to 9.6 MB.
More progreess porting RubikCube.
Each object size now has its own number of levels (not always 18!)
Progress making the Solver state more abstract.
More support for the 3x3x3 Solver: more of the actual 3x3x3 solver mechanism.