commit 2dfe43d3e584cfe9b28eebe5235851ce75fd7b46
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Sun Mar 22 23:25:59 2020 +0000

    Bugfix for downloading High Scores.

diff --git a/src/main/java/org/distorted/dialog/RubikDialogScoresView.java b/src/main/java/org/distorted/dialog/RubikDialogScoresView.java
index b07079e5..215f817a 100644
--- a/src/main/java/org/distorted/dialog/RubikDialogScoresView.java
+++ b/src/main/java/org/distorted/dialog/RubikDialogScoresView.java
@@ -94,6 +94,7 @@ public class RubikDialogScoresView extends FrameLayout
 
     int white = res.getColor(R.color.white);
     int red   = res.getColor(R.color.red);
+    boolean equals;
 
     for(int j=0; j<MAX_PLACES-1; j++)
       {
@@ -106,10 +107,16 @@ public class RubikDialogScoresView extends FrameLayout
           level.addView(row);
           }
 
-        theirCountryID = res.getIdentifier( country[j], "drawable", packageName);
-        theirTime = Float.toString(time[j]);
-        View row = createRow(act, theirCountryID, name[j], theirTime, name[j].equals(myName) ? red:white);
-        level.addView(row);
+        equals = name[j].equals(myName);
+
+        if( !inserted || !equals )
+          {
+          if( equals ) inserted=true;
+          theirCountryID = res.getIdentifier( country[j], "drawable", packageName);
+          theirTime = Float.toString(time[j]);
+          View row = createRow(act, theirCountryID, name[j], theirTime, equals ? red:white);
+          level.addView(row);
+          }
         }
       }
 
diff --git a/src/main/java/org/distorted/scores/RubikScoresDownloader.java b/src/main/java/org/distorted/scores/RubikScoresDownloader.java
index c3fce4c4..12e072ce 100644
--- a/src/main/java/org/distorted/scores/RubikScoresDownloader.java
+++ b/src/main/java/org/distorted/scores/RubikScoresDownloader.java
@@ -165,19 +165,19 @@ public class RubikScoresDownloader implements Runnable
 
       if( object>=0 && object<mTotal )
         {
-        int level      = Integer.parseInt( row.substring(s1+1,s2) );
+        int scramble   = Integer.parseInt( row.substring(s1+1,s2) );
         String name    = row.substring(s2+1, s3);
         int time       = Integer.parseInt( row.substring(s3+1,s4) );
         String country = row.substring(s4+1, s5);
 
-        if(level>0 && level<=MAX_SCRAMBLE)
+        if(scramble>=0 && scramble<MAX_SCRAMBLE)
           {
-          int p = mPlaces[object][level];
-          mPlaces[object][level]++;
+          int p = mPlaces[object][scramble];
+          mPlaces[object][scramble]++;
 
-          mCountry[object][level-1][p] = country;
-          mName   [object][level-1][p] = name;
-          mTime   [object][level-1][p] = ((float)(time/100))/10.0f;
+          mCountry[object][scramble][p] = country;
+          mName   [object][scramble][p] = name;
+          mTime   [object][scramble][p] = ((float)(time/100))/10.0f;
           }
         }
       }
