Progress downloading updates.
Corrections for the UI.
Remove 3 out of 4 object icons.
Crash fix. Also a fix for the fact that if we started solving, went out of the app, and resumed solving - the record wasn't remembered.
Crash fix.
Important bugfix
Progress with Config UI.
Move the 'currObject' from RubikScreenPlay (WTF?) to RubikObjectList.
Minor.
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 with ConfigScreen.
Beginnings of the ConfigActivity.
progress with UI.
Add info pane: some progress2.
Add info pane: some progress.
Add info pane: part 1.
Convert TransparentButton to Material Design.
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.
Fix for a rare crash.
Standarize icon naming scheme.
Minor
Use the latest objectlib
Correct the 'solved' icons in the Play popup.
Correction
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!
Progress with cuboids.
'IconMode' finished.
Simplification
Remove the 'setupObject()' redundant API.
Remove the concept of a 'TwistyActivity' altogether.
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.
1. Remove 'db level' from objectlib (this belongs to the app!)2. change ScreenPlay's 'mObject' to be an ObjectType.
Remove from ObjectType info which row given object is supposed to be in. This belongs to the applcations.
Move ObjectControl, the next big chunk of code, to objectlib.
Move PreRender to objectlib.This code is now shared betweeen the Rubik and Tutorial activities.
Move 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.
Add Mirror Cube 2x2 and 3x3.
safety!
Improvements for the PopupWindows: now they work:
1) on Android 11, everywhere2) on Android 10,9,8.1,8.0 - in case of fullscreen and split-screen modes; pop-up mode still does not work.3) on Android <= 7.0 : there should be no pop-up mode, so they should be working in all cases
Fix play screen popups in case the whole app is in 'multi-window' or 'pop-up window' state.
Simplify Play Screen popups.
Make the 'Play' popup always fit within the window height.
Move the TwistyObject.retCubePosition() to the solver.
Again abandon RubikControl (after bumping into hard-to-solve issues)
add possible scrolling to the 'object' popup in case the grid of objects does not fit on the screen.
Lots of changes :)
Progress with RubikControl.
Fix the long-standing problem that putting app to the background would not stop the 'solving' counter.
Add a 'give up' dialog - if one made at least 10 moves when solving and presses a 'back' button, one needs to confirm.
Always set the back move icon when we clear moves
Give visual indication when dragging is locked.
Change the 'Cube Back' icon when there are no moves to back.
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.
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.
Fix the fact that in the last, 'Full Scramble' level, it wouldn't switch on the green light.
Backing moves: constant angle speed (part 2).
Backing moves: constant angle speed.
Make it possible for an object to have different 'basicAngles' along each of its axis.
Square-1: beginnings
Bugfixes for two issues with 1.8.0 seen in the field.
Switch Rubik Control off for the moment.
RubikControl: fixes; progress.
Make Dynamic's resetToBegin() done on the next frame.This is necessary if we want to reset many Dynamics at one go and have all of them start synchronized.Otherwise it can happen that when we reset, we do it when some objects which the Dynamics belong to are already rendered and others are not, and then some of the Dynamics will be delayed by one frame which is visible already.
Cube Control: step 2.
Rename 'state' to 'screen'