Progress with marking objects as free.
IAP part 5: new 'Purchase' activity.
IAP, part 3: non-free objects appear in the popup with a lock icon: make the lock icon's size resolution-independent
Move the 'bandaged' button back to the main menu.
Correct the MAX level in the leaderboard.
main,messaging: license.
Add Firebase Cloud Messaging and Firebase In-App Messaging
Progress with central menu popup.What remains is the colors in the Menu Level Buttons
Progress with central menu popup.
Progress with FreePlay.
Correctly get the whole size fo the screen (along with thee top and bottom system bars) from the very beginning of the Activity.
Finally fix the bad bug where people could submit impossible records!
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.
Bandaged 3x3: remember object state and move history.
Remember move history in the PLAY and SOLV screens.
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)
Mode the 'iconMode' from static variable in ObjectControl to member varaible in TwistyObject (safer)
Bandaged 3x3: saving dialog.
Improve layout in the bandaged view.
Beginnings of support for UI used to create any bandaged 3x3.
Switch off debugging.
Make sure we always display some icon in the Popup dialog, even if we fail to download one (improvement)
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: subtle bugfix. We cannot use ObjectType in ObjectControl to check if two objects are the same because DownloadedObjects have ObjectType null !
Downloaded Objects: bugfixes
Downloaded Objects more or less work now.
Refactor RubikObject in preparation for creating RubikObjects from DownloadedObjects.
Rename the 'network' package to 'external' since it will also deal with writing/reading files from local storage.
Downloading updates: dialog progress.
Re-organize tutorial list so that we can pull this one from JSON files.
Corrections for the UI.
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.
Improve initial detection of screenHeight.
Beginnings of the ConfigActivity.
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.
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.
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)
1. Do not restore object scrambling if we freshly upgraded from some version older than 1.9.02. Bugfix for a recently introduced crasher in the Play screen.
Create the 3 Popups only on first button click - this time we can have the final screen dimensions (and also it starts faster ) Before we weree getting the screen size from before hiding navigation bars, which made the height smaller, which made the number of obejcts and levels in the popups sometimes too small!
Remove the 'setupObject()' redundant API.
Further simplifications.
Remove the concept of a 'TwistyActivity' altogether.
Hide most of the TwistyActivity methods inside objectlib.
Simplifications
Move RubikControl to objectlib (as 'ObjectAutomator')Hide ObjectPreRender inside objectlib and move its APi to ObjectControl.
1. Remove 'db level' from objectlib (this belongs to the app!)2. change ScreenPlay's 'mObject' to be an ObjectType.
Move PreRender to objectlib.This code is now shared betweeen the Rubik and Tutorial activities.
Move yet more code to objectlib.
Move more code to objectlib.
Simplify TwistyObject's API.
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.
Fix the problem reported by Samsung -
1. Fire off the app2. minimize it, select 'Multi window'3. put some other app in the lower half of the screen4. close the lower app5. our app used to fail to display the upper and lower menu bars.
add possible scrolling to the 'object' popup in case the grid of objects does not fit on the screen.
Progress with RubikControl.
Fix a rare crash.
Introduce a BlockController - a watchdog which makes sure the Touch and UI blocks do not take too long.If it detecs a long block, it unblocks and reports the situation to Crashylytics.
Abstract the part that controls the 'Locked' and 'Back Moves' buttons from the two activities: the main one and the tutorial one.This code had been duplicated there.
RubikControl: rotate the cube.
RubikControl: fixes; progress.
Attach the control nodes directly to the screen, not to the Object Node.
Cube Control: step 2.
Rename 'state' to 'screen'
- report the Graphics driver's Renderer and Version.- new Diamond, Skewb2 and Skewb3 meshes.
Rename packages
if a user has a verified name, set it as a GoogleAnalytics UserId
Make the Tutorial Dialog look better
Progress creating the Tutorial Dialog.
Progress creating the Tutorial Activity.
More support for using the library from more than one activity
Progress with using the Library in a second Activity.
Avoid cutouts in a new way
Avoid the possible cutouts at the top of the screen.
Spearate the concept of number of layers of an object and its size.In case of the Skewb family, this is no longer the same (Master Skewb has 3 layers but it's twice bigger than the 2-layered Skewb)
Simplify OpenGL error dialog. Show it only once.
Minor
Bigger 'OK' button in Dialogs.
Make the top and bottom bars transparent, above the GLSurfaceView.
Rename some classes.
Add lock button.
Compute the size of the Solver icon correctly.
Apply a hack so that the App enters fullscreen modee on some Huawei devices.
Remove LAYOUT_STABLE from the UI flags since that was causing trembling of the Scores dialog in some platforms.
Progress with UI