From 7d935749aa0a3a8d8cd13edac30e81877d616104 Mon Sep 17 00:00:00 2001 From: AsamK Date: Mon, 17 Jan 2022 18:26:08 +0100 Subject: [PATCH] Fix profile fetch with an invalid LANG variable --- .../org/asamk/signal/manager/RegistrationManagerImpl.java | 2 +- .../java/org/asamk/signal/manager/helper/ProfileHelper.java | 5 +++-- lib/src/main/java/org/asamk/signal/manager/util/Utils.java | 6 +++--- 3 files changed, 7 insertions(+), 6 deletions(-) diff --git a/lib/src/main/java/org/asamk/signal/manager/RegistrationManagerImpl.java b/lib/src/main/java/org/asamk/signal/manager/RegistrationManagerImpl.java index 74513c8a..b5f737e3 100644 --- a/lib/src/main/java/org/asamk/signal/manager/RegistrationManagerImpl.java +++ b/lib/src/main/java/org/asamk/signal/manager/RegistrationManagerImpl.java @@ -131,7 +131,7 @@ public class RegistrationManagerImpl implements RegistrationManager { } final ServiceResponse response; if (voiceVerification) { - response = accountManager.requestVoiceVerificationCode(Utils.getDefaultLocale(), + response = accountManager.requestVoiceVerificationCode(Utils.getDefaultLocale(null), Optional.fromNullable(captcha), Optional.absent(), Optional.absent()); diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/ProfileHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/ProfileHelper.java index de0c7b60..20a81f7f 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/ProfileHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/ProfileHelper.java @@ -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); diff --git a/lib/src/main/java/org/asamk/signal/manager/util/Utils.java b/lib/src/main/java/org/asamk/signal/manager/util/Utils.java index c255eb43..8cd114f8 100644 --- a/lib/src/main/java/org/asamk/signal/manager/util/Utils.java +++ b/lib/src/main/java/org/asamk/signal/manager/util/Utils.java @@ -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; -- 2.50.1