I believe I found the UserInfo problem. Your method 'saveLevel' was getting an empty string for level, because the method 'getLevels' in your 'levelSelect' class was not saving any changes to the string. Below, you will see how line 9 changes the UserInfo object, so line 10 can save the change. Also, I changed line 7 to the appropriate check.
The same problem arises in the 'saveLevel' methods in all your 'map##' worlds.
Changeyour 'saveLevel' methods to the following (using the appropriate 'level' strings, of course):
This should fix it (after un-commenting the calls to these methods). Post back if any problems.
BTW, I did realized that there was no problem with what you were storing. That if a player re-did a previous level, no problems will arise.
public void getLevels() { if(UserInfo.isStorageAvailable()) { UserInfo myInfo = UserInfo.getMyInfo(); level = myInfo.getString(1); if(level == "") // UserInfo default for String value { myInfo.setString(1,level); // this changes the UserInfo object myInfo.store(); // this stores the changes } } else { level = "xxxxxxxxxxxxxxxxxxxx"; } }
public void saveLevel() { if(UserInfo.isStorageAvailable()) { UserInfo myInfo = UserInfo.getMyInfo(); String level = myInfo.getString(1); if (level.charAt(0) == 'o') { myInfo.setString(1, "xooooooooooooooooooo"); // key change myInfo.store(); } } }