Revision 00fcfefa
Added by Leszek Koltunski almost 3 years ago
| src/main/java/org/distorted/external/RubikScores.java | ||
|---|---|---|
| 24 | 24 |
import org.distorted.screens.RubikScreenPlay; |
| 25 | 25 |
|
| 26 | 26 |
import static org.distorted.objectlib.main.ObjectType.MAX_SCRAMBLES; |
| 27 |
import static org.distorted.screens.RubikScreenPlay.LEVELS_SHOWN; |
|
| 27 | 28 |
|
| 28 | 29 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 29 | 30 |
// hold my own scores, and some other statistics. |
| ... | ... | |
| 249 | 250 |
return mNumStars; |
| 250 | 251 |
} |
| 251 | 252 |
|
| 253 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 254 |
|
|
| 255 |
public void correctNumStars() |
|
| 256 |
{
|
|
| 257 |
int numObjects = RubikObjectList.getNumObjects(); |
|
| 258 |
|
|
| 259 |
for(int obj=0; obj<numObjects; obj++) |
|
| 260 |
{
|
|
| 261 |
for(int level=0; level<=RubikScreenPlay.LEVELS_SHOWN; level++) |
|
| 262 |
{
|
|
| 263 |
if( isSolved(obj,level) ) |
|
| 264 |
{
|
|
| 265 |
int numStars = computeNumStars(level+1); |
|
| 266 |
mNumStars += numStars; |
|
| 267 |
} |
|
| 268 |
} |
|
| 269 |
} |
|
| 270 |
} |
|
| 271 |
|
|
| 272 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 273 |
|
|
| 274 |
public int computeNumStars(int level) |
|
| 275 |
{
|
|
| 276 |
return level>=LEVELS_SHOWN ? 50 : level; |
|
| 277 |
} |
|
| 278 |
|
|
| 252 | 279 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 253 | 280 |
|
| 254 | 281 |
public void setName(String newName) |
| src/main/java/org/distorted/main/RubikActivity.java | ||
|---|---|---|
| 390 | 390 |
FirebaseAnalytics analytics = getAnalytics(); |
| 391 | 391 |
analytics.setUserId(scores.getName()); |
| 392 | 392 |
} |
| 393 |
|
|
| 394 |
// all old users upgrading from version <1.11.4, where there was no concept of 'stars', |
|
| 395 |
// get all the stars they have earned |
|
| 396 |
int numStars = scores.getNumStars(); |
|
| 397 |
|
|
| 398 |
if( numStars==0 && upgradingFromVersionWithNoStars(oldVersion) ) |
|
| 399 |
{
|
|
| 400 |
scores.correctNumStars(); |
|
| 401 |
} |
|
| 402 |
} |
|
| 403 |
|
|
| 404 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 405 |
|
|
| 406 |
private boolean upgradingFromVersionWithNoStars(String version) |
|
| 407 |
{
|
|
| 408 |
if( version!=null ) |
|
| 409 |
{
|
|
| 410 |
try |
|
| 411 |
{
|
|
| 412 |
int dot = version.indexOf('.',2);
|
|
| 413 |
|
|
| 414 |
if( dot>2 ) |
|
| 415 |
{
|
|
| 416 |
String middle = version.substring(2,dot); |
|
| 417 |
int middleInt = Integer.parseInt(middle); |
|
| 418 |
|
|
| 419 |
if( middleInt<11 ) return true; |
|
| 420 |
if( middleInt==11 ) |
|
| 421 |
{
|
|
| 422 |
String end = version.substring(dot+1); |
|
| 423 |
int endInt = Integer.parseInt(end); |
|
| 424 |
return endInt<4; |
|
| 425 |
} |
|
| 426 |
} |
|
| 427 |
} |
|
| 428 |
catch(Exception ignored) {}
|
|
| 429 |
} |
|
| 430 |
|
|
| 431 |
return false; |
|
| 393 | 432 |
} |
| 394 | 433 |
|
| 395 | 434 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| src/main/java/org/distorted/main/RubikObjectLibInterface.java | ||
|---|---|---|
| 450 | 450 |
case RECORD_FIRST : RubikScreenPlay play = (RubikScreenPlay) ScreenList.PLAY.getScreenClass(); |
| 451 | 451 |
int level = play.getLevel(); |
| 452 | 452 |
RubikScores scores = RubikScores.getInstance(); |
| 453 |
int newStars = RubikObjectList.computeNumStars(level);
|
|
| 453 |
int newStars = scores.computeNumStars(level);
|
|
| 454 | 454 |
scores.changeNumStars(newStars); |
| 455 | 455 |
RubikDialogNewRecord d1 = new RubikDialogNewRecord(); |
| 456 | 456 |
d1.setArguments(bundle); |
| src/main/java/org/distorted/objects/RubikObjectList.java | ||
|---|---|---|
| 147 | 147 |
return true; |
| 148 | 148 |
} |
| 149 | 149 |
|
| 150 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
|
| 151 |
|
|
| 152 |
public static int computeNumStars(int level) |
|
| 153 |
{
|
|
| 154 |
return level>=LEVELS_SHOWN ? 50 : level; |
|
| 155 |
} |
|
| 156 |
|
|
| 157 | 150 |
/////////////////////////////////////////////////////////////////////////////////////////////////// |
| 158 | 151 |
|
| 159 | 152 |
private static void restoreFreedObjects(SharedPreferences preferences) |
Also available in: Unified diff
All users who are upgrading from a version <1.11.4, where there was no concept of 'stars', get all their stars.