Pyraminx Duo solver: solutions (coming from unpacked DB recreated each time) seem to be working.
screens: license.
Downloading updates: dialog progress.
Add info pane: part 1.
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.
Hide most of the TwistyActivity methods inside objectlib.
Bugfix: we shouldn't be calling TwsityObject.solve() directly from the app, only through ObjectControl.solveOnly().
Simplifications
Move RubikControl to objectlib (as 'ObjectAutomator')Hide ObjectPreRender inside objectlib and move its APi to ObjectControl.
Move PreRender to objectlib.This code is now shared betweeen the Rubik and Tutorial activities.
Move more code to objectlib.
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.
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.
Backing moves: constant angle speed (part 2).
Make it possible for an object to have different 'basicAngles' along each of its axis.
Cube Control: step 2.
Rename 'state' to 'screen'