commit 5e048300ec410d26022164ae5d6a250260962bb6
Author: Leszek Koltunski <leszek@koltunski.pl>
Date:   Mon May 2 23:50:22 2022 +0200

    Fix for a bug when in Turkey and Azerbaijan, the names of downloaded objects which contain the letter 'I' do not get translated to upper case correctly (part 2: fix 'toLowerCase()' )

diff --git a/src/main/java/org/distorted/external/RubikFiles.java b/src/main/java/org/distorted/external/RubikFiles.java
index d2c036f9..ed88fc99 100644
--- a/src/main/java/org/distorted/external/RubikFiles.java
+++ b/src/main/java/org/distorted/external/RubikFiles.java
@@ -26,6 +26,7 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
+import java.util.Locale;
 
 import android.content.Context;
 import android.graphics.Bitmap;
@@ -138,7 +139,7 @@ public class RubikFiles
 
   public void deleteIcon(Context context, String name)
     {
-    String filename = name.toLowerCase() + ".png";
+    String filename = name.toLowerCase(Locale.ENGLISH) + ".png";
     boolean success = context.deleteFile(filename);
     if( !success ) android.util.Log.e("D", "failed to delete "+filename);
     else android.util.Log.e("D", "successfully deleted "+filename);
@@ -148,7 +149,7 @@ public class RubikFiles
 
   public void deleteJsonObject(Context context, String name)
     {
-    String filename = name.toLowerCase() + "_object.json";
+    String filename = name.toLowerCase(Locale.ENGLISH) + "_object.json";
     boolean success = context.deleteFile(filename);
     if( !success ) android.util.Log.e("D", "failed to delete "+filename);
     else android.util.Log.e("D", "successfully deleted "+filename);
@@ -158,7 +159,7 @@ public class RubikFiles
 
   public void deleteJsonExtras(Context context, String name)
     {
-    String filename = name.toLowerCase() + "_extras.json";
+    String filename = name.toLowerCase(Locale.ENGLISH) + "_extras.json";
     boolean success = context.deleteFile(filename);
     if( !success ) android.util.Log.e("D", "failed to delete "+filename);
     else android.util.Log.e("D", "successfully deleted "+filename);
diff --git a/src/main/java/org/distorted/external/RubikUpdates.java b/src/main/java/org/distorted/external/RubikUpdates.java
index 691b6090..1c468149 100644
--- a/src/main/java/org/distorted/external/RubikUpdates.java
+++ b/src/main/java/org/distorted/external/RubikUpdates.java
@@ -21,6 +21,7 @@ package org.distorted.external;
 
 import java.io.InputStream;
 import java.util.ArrayList;
+import java.util.Locale;
 
 import android.content.Context;
 import android.graphics.Bitmap;
@@ -117,7 +118,8 @@ public class RubikUpdates
 
     if( oMinor>=0 && eMinor>=0 && oPercent>=0 )
       {
-      int objOrdinal = RubikObjectList.getOrdinal(shortName.toUpperCase());
+      String upperName = shortName.toUpperCase(Locale.ENGLISH);
+      int objOrdinal = RubikObjectList.getOrdinal(upperName);
       boolean updateO=true, updateE=true;
 
       if( SHOW_DOWNLOADED_DEBUG ) android.util.Log.e("D", "downloaded object "+shortName+" oMinor="+oMinor+" eMinor="+eMinor);
diff --git a/src/main/java/org/distorted/main/RubikActivity.java b/src/main/java/org/distorted/main/RubikActivity.java
index 9d64e8bc..85e6bc0a 100644
--- a/src/main/java/org/distorted/main/RubikActivity.java
+++ b/src/main/java/org/distorted/main/RubikActivity.java
@@ -669,7 +669,7 @@ public class RubikActivity extends AppCompatActivity
       TwistyObject currObject = getObject();
       String name = currObject.getShortName();
 
-      if( name.toLowerCase().equals(shortName) )
+      if( name.toLowerCase(Locale.ENGLISH).equals(shortName) )
         {
         RubikObject object = RubikObjectList.getObject(name);
 
diff --git a/src/main/java/org/distorted/objects/RubikObject.java b/src/main/java/org/distorted/objects/RubikObject.java
index 5a6abfb3..5738a8a5 100644
--- a/src/main/java/org/distorted/objects/RubikObject.java
+++ b/src/main/java/org/distorted/objects/RubikObject.java
@@ -63,7 +63,7 @@ public class RubikObject
     int ordinal= type.ordinal();
 
     mUpperName   = type.name();
-    mLowerName   = type.name().toLowerCase();
+    mLowerName   = type.name().toLowerCase(Locale.ENGLISH);
     mNumScramble = type.getNumScramble();
 
     mIconID      = type.getIconID();
diff --git a/src/main/java/org/distorted/objects/RubikObjectList.java b/src/main/java/org/distorted/objects/RubikObjectList.java
index 740c3990..3475e6df 100644
--- a/src/main/java/org/distorted/objects/RubikObjectList.java
+++ b/src/main/java/org/distorted/objects/RubikObjectList.java
@@ -20,6 +20,7 @@
 package org.distorted.objects;
 
 import java.util.ArrayList;
+import java.util.Locale;
 
 import android.content.Context;
 import android.content.SharedPreferences;
@@ -454,7 +455,7 @@ public class RubikObjectList
     {
     if( mThis==null ) mThis = new RubikObjectList();
 
-    String lowerName = name.toLowerCase();
+    String lowerName = name.toLowerCase(Locale.ENGLISH);
 
     for(int i=0; i<mNumObjects; i++)
       {
