]> nmode's Git Repositories - signal-cli/commitdiff
Fix profile fetch with an invalid LANG variable
authorAsamK <asamk@gmx.de>
Mon, 17 Jan 2022 17:26:08 +0000 (18:26 +0100)
committerAsamK <asamk@gmx.de>
Mon, 17 Jan 2022 17:26:08 +0000 (18:26 +0100)
lib/src/main/java/org/asamk/signal/manager/RegistrationManagerImpl.java
lib/src/main/java/org/asamk/signal/manager/helper/ProfileHelper.java
lib/src/main/java/org/asamk/signal/manager/util/Utils.java

index 74513c8ae62d07ae08bc758bef69aebaa1b30efc..b5f737e32a7aa2dd0e3237dae264529d0e2cd79b 100644 (file)
@@ -131,7 +131,7 @@ public class RegistrationManagerImpl implements RegistrationManager {
         }
         final ServiceResponse<RequestVerificationCodeResponse> response;
         if (voiceVerification) {
-            response = accountManager.requestVoiceVerificationCode(Utils.getDefaultLocale(),
+            response = accountManager.requestVoiceVerificationCode(Utils.getDefaultLocale(null),
                     Optional.fromNullable(captcha),
                     Optional.absent(),
                     Optional.absent());
index de0c7b600f491e7de27415c3d5c89b00c1880c95..20a81f7f66fc1b630a6455e884e35f03ee9c81e3 100644 (file)
@@ -30,6 +30,7 @@ import java.nio.file.Files;
 import java.util.Base64;
 import java.util.Date;
 import java.util.List;
+import java.util.Locale;
 import java.util.Objects;
 import java.util.Set;
 
@@ -199,7 +200,7 @@ public final class ProfileHelper {
     }
 
     private SignalServiceProfile retrieveProfileSync(String username) throws IOException {
-        final var locale = Utils.getDefaultLocale();
+        final var locale = Utils.getDefaultLocale(Locale.US);
         return dependencies.getMessageReceiver().retrieveProfileByUsername(username, Optional.absent(), locale);
     }
 
@@ -319,7 +320,7 @@ public final class ProfileHelper {
             SignalServiceProfile.RequestType requestType
     ) {
         final var profileService = dependencies.getProfileService();
-        final var locale = Utils.getDefaultLocale();
+        final var locale = Utils.getDefaultLocale(Locale.US);
 
         return profileService.getProfile(address, profileKey, unidentifiedAccess, requestType, locale).map(pair -> {
             var processor = new ProfileService.ProfileResponseProcessor(pair);
index c255eb436989ad44a1f5e48880c182a09b8b0b65..8cd114f82a098975e20f583a105c3c2a95787016 100644 (file)
@@ -84,16 +84,16 @@ public class Utils {
                 theirIdentityKey);
     }
 
-    public static Locale getDefaultLocale() {
+    public static Locale getDefaultLocale(Locale fallback) {
         final var locale = Locale.getDefault();
         if (locale == null) {
-            return null;
+            return fallback;
         }
         try {
             Locale.LanguageRange.parse(locale.getLanguage() + "-" + locale.getCountry());
         } catch (IllegalArgumentException e) {
             logger.debug("Invalid locale, ignoring: {}", locale);
-            return null;
+            return fallback;
         }
 
         return locale;