We no longer distinglish between the different shapes on the basis of number of puzzle walls as there are now the Octahedron and the Barrel both with 8. Now we do it properly, on the basis of the 'shape' part of object's category.
various small improvements for the Barrels.
Objects can support or not changing colors of their stickers.
rename the 'Config' package to 'Info'
bugfix for a crash.
progress with shape icons.
progress
bugfix
progress with new sorting methods.
Progress with sorting the objects by various criteria.
Support Active and Inactive RubikObjects.
Next step toward separating TwistyObject metadata.
Big step toward separating TwistyObject metadata.
Remove all old UI 1.0 classes
Progress with PlayActivity
Make it possible to download objects with no extras file. Up VERSION_OBJECT_APP to 13.
remove 'MESH_NICE'
Major progress with version 2.0.0.
Major progress to version 2.0.0.
Seriously lower memory usage.
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.
Move patterns and Kociemba solver to objectlib.
Unlock downloaded objects on download if we have everything in the app unlocked!
Purchase Pane: further progress.
Fix marking objects as free.
Merge remote-tracking branch 'origin/master'
Minor
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.
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)
Switch off visible effects of IAP (all objects free, no 'stars' animation)
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
Move the 'bandaged' button back to the main menu.
Simplification for the new way of storing records.
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
Move 'bandaged' from the main menu to the object popup.
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()' )
Fix for a bug when in Turkey and Azerbaijan, the names of downloaded objects which contain the letter 'I' do not get transalted to upper case correctly.
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
Make sure we always display some icon in the Popup dialog, even if we fail to download one (improvement)
Make sure we always display some icon in the Popup dialog, even if we fail to download one.
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: bugfixes
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.
Remove 3 out of 4 object icons.
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.
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.
Important bugfix.
Remove redundant variable.
Do away with the last method in the object Movement classes. Remove the object Movement classes altogether.From now on the implementation of a TwistyPuzzle is 100% data, no code at all.Next step: make the implementation a (generated?) (XML?) file.
Next step on the way to completely do away with object Movement classes.
Correct the cuts of Mega/Kilominx.
Major abstraction - automatically compute the 'computeRowFromOffset()' function from CUTS.Still one thing left: it appears like the CUTS of Mega/Kilominxes are not correct.
Abstract the next function, computeRowFromOffset(), out of the individual Movement classes.Still two issues:
1) mysterious 1.5 multiplier in Movement122) in Movement8, moving the offset works only if the rotAxis are face-turning, i.e. they connect the centers of the opposing faces of the octahedron.
Remove class referencees from ObjectList.
MOve the FOV from ObjectList to individual object classes.