From ef2ba0b8e0f7e9bf3ccebf18a5ddf35f3c7d03c3 Mon Sep 17 00:00:00 2001 From: AsamK Date: Sat, 27 Feb 2021 10:30:38 +0100 Subject: [PATCH 1/5] Create FUNDING.yml --- FUNDING.yml | 1 + 1 file changed, 1 insertion(+) create mode 100644 FUNDING.yml diff --git a/FUNDING.yml b/FUNDING.yml new file mode 100644 index 00000000..d109a964 --- /dev/null +++ b/FUNDING.yml @@ -0,0 +1 @@ +liberapay: asamk From 17d6b256e86223f356d6d73916bc0798c9c52214 Mon Sep 17 00:00:00 2001 From: AsamK Date: Sat, 27 Feb 2021 10:42:56 +0100 Subject: [PATCH 2/5] Create CONTRIBUTING.md --- CONTRIBUTING.md | 8 ++++++++ 1 file changed, 8 insertions(+) create mode 100644 CONTRIBUTING.md diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..0bc3167a --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,8 @@ +# Question +If you have a question you can ask it in the [GitHub discussions page](https://github.com/AsamK/signal-cli/discussions) + +# Report a bug +- Search [existing issues](https://github.com/AsamK/signal-cli/issues?q=is%3Aissue) if it has been reported already +- If you're unable to find an open issue addressing the problem, [open a new one](https://github.com/AsamK/signal-cli/issues/new). + - Be sure to include a **title and clear description**, as much relevant information as possible. + - Run the failing command with `--verbose` flag to get a more detailed log output and include that in the bug report From 86711b0e5c37c7d202151c7d05b00e5bdeb7836b Mon Sep 17 00:00:00 2001 From: AsamK Date: Sat, 27 Feb 2021 17:43:19 +0100 Subject: [PATCH 3/5] Print exception name when failing to load state fiel --- src/main/java/org/asamk/signal/App.java | 14 ++++++++++++-- 1 file changed, 12 insertions(+), 2 deletions(-) diff --git a/src/main/java/org/asamk/signal/App.java b/src/main/java/org/asamk/signal/App.java index 5b2c91c6..75ac5280 100644 --- a/src/main/java/org/asamk/signal/App.java +++ b/src/main/java/org/asamk/signal/App.java @@ -181,7 +181,11 @@ public class App { try { manager = RegistrationManager.init(username, dataPath, serviceEnvironment, BaseConfig.USER_AGENT); } catch (Throwable e) { - throw new UnexpectedErrorException("Error loading or creating state file: " + e.getMessage()); + throw new UnexpectedErrorException("Error loading or creating state file: " + + e.getMessage() + + " (" + + e.getClass().getSimpleName() + + ")"); } try (var m = manager) { command.handleCommand(ns, m); @@ -234,7 +238,13 @@ public class App { } catch (NotRegisteredException e) { throw new UserErrorException("User " + username + " is not registered."); } catch (Throwable e) { - throw new UnexpectedErrorException("Error loading state file for user " + username + ": " + e.getMessage()); + throw new UnexpectedErrorException("Error loading state file for user " + + username + + ": " + + e.getMessage() + + " (" + + e.getClass().getSimpleName() + + ")"); } try { From 9ca89b3dfaf4f25b0c3d1b831abe7d190c623634 Mon Sep 17 00:00:00 2001 From: AsamK Date: Sun, 28 Feb 2021 09:49:02 +0100 Subject: [PATCH 4/5] Catch all exceptions when loading cached message --- .../signal/manager/storage/messageCache/CachedMessage.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/messageCache/CachedMessage.java b/lib/src/main/java/org/asamk/signal/manager/storage/messageCache/CachedMessage.java index 8ea723cc..404153b3 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/messageCache/CachedMessage.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/messageCache/CachedMessage.java @@ -22,7 +22,7 @@ public final class CachedMessage { public SignalServiceEnvelope loadEnvelope() { try { return MessageCacheUtils.loadEnvelope(file); - } catch (IOException e) { + } catch (Exception e) { logger.error("Failed to load cached message envelope “{}”: {}", file, e.getMessage()); return null; } From 8d0de675302fa4f3e0ea953cbb473c7a018e2bae Mon Sep 17 00:00:00 2001 From: AsamK Date: Sun, 28 Feb 2021 10:19:40 +0100 Subject: [PATCH 5/5] Add getDisplayName to SignalProfile --- lib/src/main/java/org/asamk/signal/manager/Manager.java | 2 +- .../java/org/asamk/signal/manager/helper/GroupHelper.java | 2 +- .../asamk/signal/manager/storage/profiles/SignalProfile.java | 5 +++++ 3 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/src/main/java/org/asamk/signal/manager/Manager.java b/lib/src/main/java/org/asamk/signal/manager/Manager.java index 88335916..d34f4e08 100644 --- a/lib/src/main/java/org/asamk/signal/manager/Manager.java +++ b/lib/src/main/java/org/asamk/signal/manager/Manager.java @@ -2365,7 +2365,7 @@ public class Manager implements Closeable { final var profileEntry = account.getProfileStore().getProfileEntry(address); if (profileEntry != null && profileEntry.getProfile() != null) { - return profileEntry.getProfile().getName(); + return profileEntry.getProfile().getDisplayName(); } return null; diff --git a/lib/src/main/java/org/asamk/signal/manager/helper/GroupHelper.java b/lib/src/main/java/org/asamk/signal/manager/helper/GroupHelper.java index 2efc18ad..c76075be 100644 --- a/lib/src/main/java/org/asamk/signal/manager/helper/GroupHelper.java +++ b/lib/src/main/java/org/asamk/signal/manager/helper/GroupHelper.java @@ -183,7 +183,7 @@ public class GroupHelper { .collect(Collectors.toSet()); if (noGv2Capability.size() > 0) { logger.warn("Cannot create a V2 group as some members don't support Groups V2: {}", - noGv2Capability.stream().map(SignalProfile::getName).collect(Collectors.joining(", "))); + noGv2Capability.stream().map(SignalProfile::getDisplayName).collect(Collectors.joining(", "))); return false; } diff --git a/lib/src/main/java/org/asamk/signal/manager/storage/profiles/SignalProfile.java b/lib/src/main/java/org/asamk/signal/manager/storage/profiles/SignalProfile.java index 6a761c29..9e5add98 100644 --- a/lib/src/main/java/org/asamk/signal/manager/storage/profiles/SignalProfile.java +++ b/lib/src/main/java/org/asamk/signal/manager/storage/profiles/SignalProfile.java @@ -75,6 +75,11 @@ public class SignalProfile { return name; } + public String getDisplayName() { + // First name and last name (if set) are separated by a NULL char + return name == null ? null : name.replace("\0", " "); + } + public String getAbout() { return about; }