]> nmode's Git Repositories - signal-cli/commitdiff
Use var instead of explicit types
authorAsamK <asamk@gmx.de>
Sun, 21 Feb 2021 14:01:41 +0000 (15:01 +0100)
committerAsamK <asamk@gmx.de>
Sun, 21 Feb 2021 14:01:41 +0000 (15:01 +0100)
77 files changed:
lib/src/main/java/org/asamk/signal/manager/AvatarStore.java
lib/src/main/java/org/asamk/signal/manager/DeviceLinkInfo.java
lib/src/main/java/org/asamk/signal/manager/HandleAction.java
lib/src/main/java/org/asamk/signal/manager/LibSignalLogger.java
lib/src/main/java/org/asamk/signal/manager/Manager.java
lib/src/main/java/org/asamk/signal/manager/ProvisioningManager.java
lib/src/main/java/org/asamk/signal/manager/RegistrationManager.java
lib/src/main/java/org/asamk/signal/manager/config/ServiceConfig.java
lib/src/main/java/org/asamk/signal/manager/groups/GroupId.java
lib/src/main/java/org/asamk/signal/manager/groups/GroupInviteLinkUrl.java
lib/src/main/java/org/asamk/signal/manager/groups/GroupUtils.java
lib/src/main/java/org/asamk/signal/manager/helper/GroupHelper.java
lib/src/main/java/org/asamk/signal/manager/helper/PinHelper.java
lib/src/main/java/org/asamk/signal/manager/helper/ProfileHelper.java
lib/src/main/java/org/asamk/signal/manager/helper/UnidentifiedAccessHelper.java
lib/src/main/java/org/asamk/signal/manager/storage/SignalAccount.java
lib/src/main/java/org/asamk/signal/manager/storage/contacts/JsonContactsStore.java
lib/src/main/java/org/asamk/signal/manager/storage/groups/GroupInfo.java
lib/src/main/java/org/asamk/signal/manager/storage/groups/GroupInfoV1.java
lib/src/main/java/org/asamk/signal/manager/storage/groups/JsonGroupStore.java
lib/src/main/java/org/asamk/signal/manager/storage/messageCache/MessageCache.java
lib/src/main/java/org/asamk/signal/manager/storage/profiles/ProfileStore.java
lib/src/main/java/org/asamk/signal/manager/storage/protocol/JsonIdentityKeyStore.java
lib/src/main/java/org/asamk/signal/manager/storage/protocol/JsonPreKeyStore.java
lib/src/main/java/org/asamk/signal/manager/storage/protocol/JsonSessionStore.java
lib/src/main/java/org/asamk/signal/manager/storage/protocol/JsonSignedPreKeyStore.java
lib/src/main/java/org/asamk/signal/manager/storage/protocol/RecipientStore.java
lib/src/main/java/org/asamk/signal/manager/storage/stickers/StickerStore.java
lib/src/main/java/org/asamk/signal/manager/storage/threads/LegacyJsonThreadStore.java
lib/src/main/java/org/asamk/signal/manager/util/AttachmentUtils.java
lib/src/main/java/org/asamk/signal/manager/util/IOUtils.java
lib/src/main/java/org/asamk/signal/manager/util/KeyUtils.java
lib/src/main/java/org/asamk/signal/manager/util/MessageCacheUtils.java
lib/src/main/java/org/asamk/signal/manager/util/PinHashing.java
lib/src/main/java/org/asamk/signal/manager/util/ProfileUtils.java
lib/src/main/java/org/asamk/signal/manager/util/StickerUtils.java
lib/src/main/java/org/asamk/signal/manager/util/Utils.java
src/main/java/org/asamk/signal/App.java
src/main/java/org/asamk/signal/JsonDbusReceiveMessageHandler.java
src/main/java/org/asamk/signal/JsonReceiveMessageHandler.java
src/main/java/org/asamk/signal/Main.java
src/main/java/org/asamk/signal/PlainTextWriterImpl.java
src/main/java/org/asamk/signal/ReceiveMessageHandler.java
src/main/java/org/asamk/signal/commands/BlockCommand.java
src/main/java/org/asamk/signal/commands/DaemonCommand.java
src/main/java/org/asamk/signal/commands/GetUserStatusCommand.java
src/main/java/org/asamk/signal/commands/JoinGroupCommand.java
src/main/java/org/asamk/signal/commands/LinkCommand.java
src/main/java/org/asamk/signal/commands/ListContactsCommand.java
src/main/java/org/asamk/signal/commands/ListDevicesCommand.java
src/main/java/org/asamk/signal/commands/ListGroupsCommand.java
src/main/java/org/asamk/signal/commands/ListIdentitiesCommand.java
src/main/java/org/asamk/signal/commands/QuitGroupCommand.java
src/main/java/org/asamk/signal/commands/ReceiveCommand.java
src/main/java/org/asamk/signal/commands/RegisterCommand.java
src/main/java/org/asamk/signal/commands/SendCommand.java
src/main/java/org/asamk/signal/commands/SendReactionCommand.java
src/main/java/org/asamk/signal/commands/SetPinCommand.java
src/main/java/org/asamk/signal/commands/TrustCommand.java
src/main/java/org/asamk/signal/commands/UnblockCommand.java
src/main/java/org/asamk/signal/commands/UpdateContactCommand.java
src/main/java/org/asamk/signal/commands/UpdateGroupCommand.java
src/main/java/org/asamk/signal/commands/UpdateProfileCommand.java
src/main/java/org/asamk/signal/commands/UploadStickerPackCommand.java
src/main/java/org/asamk/signal/commands/VerifyCommand.java
src/main/java/org/asamk/signal/dbus/DbusSignalImpl.java
src/main/java/org/asamk/signal/json/JsonAttachment.java
src/main/java/org/asamk/signal/json/JsonDataMessage.java
src/main/java/org/asamk/signal/json/JsonMessageEnvelope.java
src/main/java/org/asamk/signal/json/JsonSyncMessage.java
src/main/java/org/asamk/signal/json/JsonTypingMessage.java
src/main/java/org/asamk/signal/util/DateUtils.java
src/main/java/org/asamk/signal/util/ErrorUtils.java
src/main/java/org/asamk/signal/util/Hex.java
src/main/java/org/asamk/signal/util/IOUtils.java
src/main/java/org/asamk/signal/util/RandomUtils.java
src/main/java/org/asamk/signal/util/Util.java

index 712e982cadc9c86a6d886a0c477b08ad19091413..de59f2aff598d04aad34ce603ff75bbd70578a03 100644 (file)
@@ -29,7 +29,7 @@ public class AvatarStore {
     }
 
     public StreamDetails retrieveGroupAvatar(GroupId groupId) throws IOException {
-        final File groupAvatarFile = getGroupAvatarFile(groupId);
+        final var groupAvatarFile = getGroupAvatarFile(groupId);
         return retrieveAvatar(groupAvatarFile);
     }
 
index b8b27eaa60240759736654c88a8715f112a57a08..82d8a37fb9722978d0a6de57d3c395c638133c71 100644 (file)
@@ -20,14 +20,14 @@ public class DeviceLinkInfo {
     final ECPublicKey deviceKey;
 
     public static DeviceLinkInfo parseDeviceLinkUri(URI linkUri) throws InvalidKeyException {
-        final String rawQuery = linkUri.getRawQuery();
+        final var rawQuery = linkUri.getRawQuery();
         if (isEmpty(rawQuery)) {
             throw new RuntimeException("Invalid device link uri");
         }
 
-        Map<String, String> query = getQueryMap(rawQuery);
-        String deviceIdentifier = query.get("uuid");
-        String publicKeyEncoded = query.get("pub_key");
+        var query = getQueryMap(rawQuery);
+        var deviceIdentifier = query.get("uuid");
+        var publicKeyEncoded = query.get("pub_key");
 
         if (isEmpty(deviceIdentifier) || isEmpty(publicKeyEncoded)) {
             throw new RuntimeException("Invalid device link uri");
@@ -39,18 +39,18 @@ public class DeviceLinkInfo {
         } catch (IllegalArgumentException e) {
             throw new RuntimeException("Invalid device link uri", e);
         }
-        ECPublicKey deviceKey = Curve.decodePoint(publicKeyBytes, 0);
+        var deviceKey = Curve.decodePoint(publicKeyBytes, 0);
 
         return new DeviceLinkInfo(deviceIdentifier, deviceKey);
     }
 
     private static Map<String, String> getQueryMap(String query) {
-        String[] params = query.split("&");
-        Map<String, String> map = new HashMap<>();
-        for (String param : params) {
-            final String[] paramParts = param.split("=");
-            String name = URLDecoder.decode(paramParts[0], StandardCharsets.UTF_8);
-            String value = URLDecoder.decode(paramParts[1], StandardCharsets.UTF_8);
+        var params = query.split("&");
+        var map = new HashMap<String, String>();
+        for (var param : params) {
+            final var paramParts = param.split("=");
+            var name = URLDecoder.decode(paramParts[0], StandardCharsets.UTF_8);
+            var value = URLDecoder.decode(paramParts[1], StandardCharsets.UTF_8);
             map.put(name, value);
         }
         return map;
@@ -62,7 +62,7 @@ public class DeviceLinkInfo {
     }
 
     public String createDeviceLinkUri() {
-        final String deviceKeyString = Base64.getEncoder().encodeToString(deviceKey.serialize()).replace("=", "");
+        final var deviceKeyString = Base64.getEncoder().encodeToString(deviceKey.serialize()).replace("=", "");
         return "tsdevice:/?uuid="
                 + URLEncoder.encode(deviceIdentifier, StandardCharsets.UTF_8)
                 + "&pub_key="
index 8338e4e67a05e6b9e2a8cfa312422a1473415bcf..9d119c11be650410c295f5698d89d2b2bd007248 100644 (file)
@@ -29,7 +29,7 @@ class SendReceiptAction implements HandleAction {
     public boolean equals(final Object o) {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
-        final SendReceiptAction that = (SendReceiptAction) o;
+        final var that = (SendReceiptAction) o;
         return timestamp == that.timestamp && address.equals(that.address);
     }
 
@@ -110,7 +110,7 @@ class SendGroupInfoRequestAction implements HandleAction {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
 
-        final SendGroupInfoRequestAction that = (SendGroupInfoRequestAction) o;
+        final var that = (SendGroupInfoRequestAction) o;
 
         if (!address.equals(that.address)) return false;
         return groupId.equals(that.groupId);
@@ -118,7 +118,7 @@ class SendGroupInfoRequestAction implements HandleAction {
 
     @Override
     public int hashCode() {
-        int result = address.hashCode();
+        var result = address.hashCode();
         result = 31 * result + groupId.hashCode();
         return result;
     }
@@ -144,7 +144,7 @@ class SendGroupInfoAction implements HandleAction {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
 
-        final SendGroupInfoAction that = (SendGroupInfoAction) o;
+        final var that = (SendGroupInfoAction) o;
 
         if (!address.equals(that.address)) return false;
         return groupId.equals(that.groupId);
@@ -152,7 +152,7 @@ class SendGroupInfoAction implements HandleAction {
 
     @Override
     public int hashCode() {
-        int result = address.hashCode();
+        var result = address.hashCode();
         result = 31 * result + groupId.hashCode();
         return result;
     }
index 9118846da9539a3347a21bab3e2cbb2fd46ea05f..3be4d7e9617ad853e19d35c63b17aa12b12c284d 100644 (file)
@@ -18,7 +18,7 @@ public class LibSignalLogger implements SignalProtocolLogger {
 
     @Override
     public void log(final int priority, final String tag, final String message) {
-        final String logMessage = String.format("[%s]: %s", tag, message);
+        final var logMessage = String.format("[%s]: %s", tag, message);
         switch (priority) {
             case SignalProtocolLogger.VERBOSE:
                 logger.trace(logMessage);
index 80ff4e71f622bf8d4b6a69b70dba028a5b8d96a7..caedf2f1589e8f6c548cbb8c00e7106f6f4f34c7 100644 (file)
@@ -21,7 +21,6 @@ import org.asamk.signal.manager.config.ServiceEnvironment;
 import org.asamk.signal.manager.config.ServiceEnvironmentConfig;
 import org.asamk.signal.manager.groups.GroupId;
 import org.asamk.signal.manager.groups.GroupIdV1;
-import org.asamk.signal.manager.groups.GroupIdV2;
 import org.asamk.signal.manager.groups.GroupInviteLinkUrl;
 import org.asamk.signal.manager.groups.GroupNotFoundException;
 import org.asamk.signal.manager.groups.GroupUtils;
@@ -37,7 +36,6 @@ import org.asamk.signal.manager.storage.groups.GroupInfoV1;
 import org.asamk.signal.manager.storage.groups.GroupInfoV2;
 import org.asamk.signal.manager.storage.messageCache.CachedMessage;
 import org.asamk.signal.manager.storage.profiles.SignalProfile;
-import org.asamk.signal.manager.storage.profiles.SignalProfileEntry;
 import org.asamk.signal.manager.storage.protocol.IdentityInfo;
 import org.asamk.signal.manager.storage.stickers.Sticker;
 import org.asamk.signal.manager.util.AttachmentUtils;
@@ -60,11 +58,8 @@ import org.signal.libsignal.metadata.SelfSendException;
 import org.signal.libsignal.metadata.certificate.CertificateValidator;
 import org.signal.storageservice.protos.groups.GroupChange;
 import org.signal.storageservice.protos.groups.local.DecryptedGroup;
-import org.signal.storageservice.protos.groups.local.DecryptedGroupJoinInfo;
-import org.signal.storageservice.protos.groups.local.DecryptedMember;
 import org.signal.zkgroup.InvalidInputException;
 import org.signal.zkgroup.VerificationFailedException;
-import org.signal.zkgroup.auth.AuthCredentialResponse;
 import org.signal.zkgroup.groups.GroupMasterKey;
 import org.signal.zkgroup.groups.GroupSecretParams;
 import org.signal.zkgroup.profiles.ClientZkProfileOperations;
@@ -81,20 +76,17 @@ import org.whispersystems.libsignal.state.PreKeyRecord;
 import org.whispersystems.libsignal.state.SignedPreKeyRecord;
 import org.whispersystems.libsignal.util.Pair;
 import org.whispersystems.libsignal.util.guava.Optional;
-import org.whispersystems.signalservice.api.KeyBackupService;
 import org.whispersystems.signalservice.api.SignalServiceAccountManager;
 import org.whispersystems.signalservice.api.SignalServiceMessagePipe;
 import org.whispersystems.signalservice.api.SignalServiceMessageReceiver;
 import org.whispersystems.signalservice.api.SignalServiceMessageSender;
 import org.whispersystems.signalservice.api.crypto.SignalServiceCipher;
-import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair;
 import org.whispersystems.signalservice.api.crypto.UntrustedIdentityException;
 import org.whispersystems.signalservice.api.groupsv2.ClientZkOperations;
 import org.whispersystems.signalservice.api.groupsv2.GroupLinkNotActiveException;
 import org.whispersystems.signalservice.api.groupsv2.GroupsV2Api;
 import org.whispersystems.signalservice.api.groupsv2.GroupsV2AuthorizationString;
 import org.whispersystems.signalservice.api.groupsv2.GroupsV2Operations;
-import org.whispersystems.signalservice.api.kbs.MasterKey;
 import org.whispersystems.signalservice.api.messages.SendMessageResult;
 import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
 import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer;
@@ -106,7 +98,6 @@ import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
 import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
 import org.whispersystems.signalservice.api.messages.SignalServiceGroupV2;
 import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage;
-import org.whispersystems.signalservice.api.messages.SignalServiceStickerManifestUpload;
 import org.whispersystems.signalservice.api.messages.multidevice.BlockedListMessage;
 import org.whispersystems.signalservice.api.messages.multidevice.ContactsMessage;
 import org.whispersystems.signalservice.api.messages.multidevice.DeviceContact;
@@ -116,22 +107,18 @@ import org.whispersystems.signalservice.api.messages.multidevice.DeviceGroup;
 import org.whispersystems.signalservice.api.messages.multidevice.DeviceGroupsInputStream;
 import org.whispersystems.signalservice.api.messages.multidevice.DeviceGroupsOutputStream;
 import org.whispersystems.signalservice.api.messages.multidevice.DeviceInfo;
-import org.whispersystems.signalservice.api.messages.multidevice.KeysMessage;
 import org.whispersystems.signalservice.api.messages.multidevice.RequestMessage;
 import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptMessage;
 import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage;
 import org.whispersystems.signalservice.api.messages.multidevice.StickerPackOperationMessage;
 import org.whispersystems.signalservice.api.messages.multidevice.VerifiedMessage;
-import org.whispersystems.signalservice.api.messages.shared.SharedContact;
 import org.whispersystems.signalservice.api.profiles.ProfileAndCredential;
 import org.whispersystems.signalservice.api.profiles.SignalServiceProfile;
 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
 import org.whispersystems.signalservice.api.push.exceptions.MissingConfigurationException;
-import org.whispersystems.signalservice.api.storage.StorageKey;
 import org.whispersystems.signalservice.api.util.InvalidNumberException;
 import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
 import org.whispersystems.signalservice.api.util.SleepTimer;
-import org.whispersystems.signalservice.api.util.StreamDetails;
 import org.whispersystems.signalservice.api.util.UptimeSleepTimer;
 import org.whispersystems.signalservice.api.util.UuidUtil;
 import org.whispersystems.signalservice.internal.contacts.crypto.Quote;
@@ -160,7 +147,6 @@ import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Collection;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.HashSet;
 import java.util.List;
 import java.util.Map;
@@ -225,7 +211,7 @@ public class Manager implements Closeable {
                 ServiceConfig.AUTOMATIC_NETWORK_RETRY,
                 timer);
         this.groupsV2Api = accountManager.getGroupsV2Api();
-        final KeyBackupService keyBackupService = accountManager.getKeyBackupService(ServiceConfig.getIasKeyStore(),
+        final var keyBackupService = accountManager.getKeyBackupService(ServiceConfig.getIasKeyStore(),
                 serviceEnvironmentConfig.getKeyBackupConfig().getEnclaveName(),
                 serviceEnvironmentConfig.getKeyBackupConfig().getServiceId(),
                 serviceEnvironmentConfig.getKeyBackupConfig().getMrenclave(),
@@ -286,29 +272,27 @@ public class Manager implements Closeable {
     public static Manager init(
             String username, File settingsPath, ServiceEnvironment serviceEnvironment, String userAgent
     ) throws IOException, NotRegisteredException {
-        PathConfig pathConfig = PathConfig.createDefault(settingsPath);
+        var pathConfig = PathConfig.createDefault(settingsPath);
 
         if (!SignalAccount.userExists(pathConfig.getDataPath(), username)) {
             throw new NotRegisteredException();
         }
 
-        SignalAccount account = SignalAccount.load(pathConfig.getDataPath(), username);
+        var account = SignalAccount.load(pathConfig.getDataPath(), username);
 
         if (!account.isRegistered()) {
             throw new NotRegisteredException();
         }
 
-        final ServiceEnvironmentConfig serviceEnvironmentConfig = ServiceConfig.getServiceEnvironmentConfig(
-                serviceEnvironment,
-                userAgent);
+        final var serviceEnvironmentConfig = ServiceConfig.getServiceEnvironmentConfig(serviceEnvironment, userAgent);
 
         return new Manager(account, pathConfig, serviceEnvironmentConfig, userAgent);
     }
 
     public static List<String> getAllLocalUsernames(File settingsPath) {
-        PathConfig pathConfig = PathConfig.createDefault(settingsPath);
-        final File dataPath = pathConfig.getDataPath();
-        final File[] files = dataPath.listFiles();
+        var pathConfig = PathConfig.createDefault(settingsPath);
+        final var dataPath = pathConfig.getDataPath();
+        final var files = dataPath.listFiles();
 
         if (files == null) {
             return List.of();
@@ -342,9 +326,9 @@ public class Manager implements Closeable {
      */
     public Map<String, Boolean> areUsersRegistered(Set<String> numbers) throws IOException {
         // Note "contactDetails" has no optionals. It only gives us info on users who are registered
-        Map<String, UUID> contactDetails = getRegisteredUsers(numbers);
+        var contactDetails = getRegisteredUsers(numbers);
 
-        Set<String> registeredUsers = contactDetails.keySet();
+        var registeredUsers = contactDetails.keySet();
 
         return numbers.stream().collect(Collectors.toMap(x -> x, registeredUsers::contains));
     }
@@ -370,9 +354,9 @@ public class Manager implements Closeable {
      *                   if it's Optional.absent(), the avatar will be removed
      */
     public void setProfile(String name, String about, String aboutEmoji, Optional<File> avatar) throws IOException {
-        SignalProfileEntry profileEntry = account.getProfileStore().getProfileEntry(getSelfAddress());
-        SignalProfile profile = profileEntry == null ? null : profileEntry.getProfile();
-        SignalProfile newProfile = new SignalProfile(profile == null ? null : profile.getIdentityKey(),
+        var profileEntry = account.getProfileStore().getProfileEntry(getSelfAddress());
+        var profile = profileEntry == null ? null : profileEntry.getProfile();
+        var newProfile = new SignalProfile(profile == null ? null : profile.getIdentityKey(),
                 name != null ? name : profile == null || profile.getName() == null ? "" : profile.getName(),
                 about != null ? about : profile == null || profile.getAbout() == null ? "" : profile.getAbout(),
                 aboutEmoji != null
@@ -382,7 +366,7 @@ public class Manager implements Closeable {
                 account.isUnrestrictedUnidentifiedAccess(),
                 profile == null ? null : profile.getCapabilities());
 
-        try (final StreamDetails streamDetails = avatar == null
+        try (final var streamDetails = avatar == null
                 ? avatarStore.retrieveProfileAvatar(getSelfAddress())
                 : avatar.isPresent() ? Utils.createStreamDetailsFromFile(avatar.get()) : null) {
             accountManager.setVersionedProfile(account.getUuid(),
@@ -426,7 +410,7 @@ public class Manager implements Closeable {
     }
 
     public List<DeviceInfo> getLinkedDevices() throws IOException {
-        List<DeviceInfo> devices = accountManager.getDevices();
+        var devices = accountManager.getDevices();
         account.setMultiDevice(devices.size() > 1);
         account.save();
         return devices;
@@ -434,20 +418,20 @@ public class Manager implements Closeable {
 
     public void removeLinkedDevices(int deviceId) throws IOException {
         accountManager.removeDevice(deviceId);
-        List<DeviceInfo> devices = accountManager.getDevices();
+        var devices = accountManager.getDevices();
         account.setMultiDevice(devices.size() > 1);
         account.save();
     }
 
     public void addDeviceLink(URI linkUri) throws IOException, InvalidKeyException {
-        DeviceLinkInfo info = DeviceLinkInfo.parseDeviceLinkUri(linkUri);
+        var info = DeviceLinkInfo.parseDeviceLinkUri(linkUri);
 
         addDevice(info.deviceIdentifier, info.deviceKey);
     }
 
     private void addDevice(String deviceIdentifier, ECPublicKey deviceKey) throws IOException, InvalidKeyException {
-        IdentityKeyPair identityKeyPair = getIdentityKeyPair();
-        String verificationCode = accountManager.getNewDeviceVerificationCode();
+        var identityKeyPair = getIdentityKeyPair();
+        var verificationCode = accountManager.getNewDeviceVerificationCode();
 
         accountManager.addDevice(deviceIdentifier,
                 deviceKey,
@@ -463,7 +447,7 @@ public class Manager implements Closeable {
             throw new RuntimeException("Only master device can set a PIN");
         }
         if (pin.isPresent()) {
-            final MasterKey masterKey = account.getPinMasterKey() != null
+            final var masterKey = account.getPinMasterKey() != null
                     ? account.getPinMasterKey()
                     : KeyUtils.createMasterKey();
 
@@ -485,17 +469,17 @@ public class Manager implements Closeable {
     }
 
     void refreshPreKeys() throws IOException {
-        List<PreKeyRecord> oneTimePreKeys = generatePreKeys();
-        final IdentityKeyPair identityKeyPair = getIdentityKeyPair();
-        SignedPreKeyRecord signedPreKeyRecord = generateSignedPreKey(identityKeyPair);
+        var oneTimePreKeys = generatePreKeys();
+        final var identityKeyPair = getIdentityKeyPair();
+        var signedPreKeyRecord = generateSignedPreKey(identityKeyPair);
 
         accountManager.setPreKeys(identityKeyPair.getPublicKey(), signedPreKeyRecord, oneTimePreKeys);
     }
 
     private List<PreKeyRecord> generatePreKeys() {
-        final int offset = account.getPreKeyIdOffset();
+        final var offset = account.getPreKeyIdOffset();
 
-        List<PreKeyRecord> records = KeyUtils.generatePreKeyRecords(offset, ServiceConfig.PREKEY_BATCH_SIZE);
+        var records = KeyUtils.generatePreKeyRecords(offset, ServiceConfig.PREKEY_BATCH_SIZE);
         account.addPreKeys(records);
         account.save();
 
@@ -503,9 +487,9 @@ public class Manager implements Closeable {
     }
 
     private SignedPreKeyRecord generateSignedPreKey(IdentityKeyPair identityKeyPair) {
-        final int signedPreKeyId = account.getNextSignedPreKeyId();
+        final var signedPreKeyId = account.getNextSignedPreKeyId();
 
-        SignedPreKeyRecord record = KeyUtils.generateSignedPreKeyRecord(identityKeyPair, signedPreKeyId);
+        var record = KeyUtils.generateSignedPreKeyRecord(identityKeyPair, signedPreKeyId);
         account.addSignedPreKey(record);
         account.save();
 
@@ -553,11 +537,11 @@ public class Manager implements Closeable {
     private SignalProfile getRecipientProfile(
             SignalServiceAddress address, boolean force
     ) {
-        SignalProfileEntry profileEntry = account.getProfileStore().getProfileEntry(address);
+        var profileEntry = account.getProfileStore().getProfileEntry(address);
         if (profileEntry == null) {
             return null;
         }
-        long now = new Date().getTime();
+        var now = new Date().getTime();
         // Profiles are cached for 24h before retrieving them again
         if (!profileEntry.isRequestPending() && (
                 force
@@ -576,8 +560,8 @@ public class Manager implements Closeable {
                 profileEntry.setRequestPending(false);
             }
 
-            final ProfileKey profileKey = profileEntry.getProfileKey();
-            final SignalProfile profile = decryptProfileAndDownloadAvatar(address, profileKey, encryptedProfile);
+            final var profileKey = profileEntry.getProfileKey();
+            final var profile = decryptProfileAndDownloadAvatar(address, profileKey, encryptedProfile);
             account.getProfileStore()
                     .updateProfile(address, profileKey, now, profile, profileEntry.getProfileKeyCredential());
             return profile;
@@ -586,7 +570,7 @@ public class Manager implements Closeable {
     }
 
     private ProfileKeyCredential getRecipientProfileKeyCredential(SignalServiceAddress address) {
-        SignalProfileEntry profileEntry = account.getProfileStore().getProfileEntry(address);
+        var profileEntry = account.getProfileStore().getProfileEntry(address);
         if (profileEntry == null) {
             return null;
         }
@@ -600,9 +584,9 @@ public class Manager implements Closeable {
                 return null;
             }
 
-            long now = new Date().getTime();
-            final ProfileKeyCredential profileKeyCredential = profileAndCredential.getProfileKeyCredential().orNull();
-            final SignalProfile profile = decryptProfileAndDownloadAvatar(address,
+            var now = new Date().getTime();
+            final var profileKeyCredential = profileAndCredential.getProfileKeyCredential().orNull();
+            final var profile = decryptProfileAndDownloadAvatar(address,
                     profileEntry.getProfileKey(),
                     profileAndCredential.getProfile());
             account.getProfileStore()
@@ -623,7 +607,7 @@ public class Manager implements Closeable {
     }
 
     private Optional<SignalServiceAttachmentStream> createGroupAvatarAttachment(GroupId groupId) throws IOException {
-        final StreamDetails streamDetails = avatarStore.retrieveGroupAvatar(groupId);
+        final var streamDetails = avatarStore.retrieveGroupAvatar(groupId);
         if (streamDetails == null) {
             return Optional.absent();
         }
@@ -632,7 +616,7 @@ public class Manager implements Closeable {
     }
 
     private Optional<SignalServiceAttachmentStream> createContactAvatarAttachment(SignalServiceAddress address) throws IOException {
-        final StreamDetails streamDetails = avatarStore.retrieveContactAvatar(address);
+        final var streamDetails = avatarStore.retrieveContactAvatar(address);
         if (streamDetails == null) {
             return Optional.absent();
         }
@@ -641,7 +625,7 @@ public class Manager implements Closeable {
     }
 
     private GroupInfo getGroupForSending(GroupId groupId) throws GroupNotFoundException, NotAGroupMemberException {
-        GroupInfo g = getGroup(groupId);
+        var g = getGroup(groupId);
         if (g == null) {
             throw new GroupNotFoundException(groupId);
         }
@@ -652,7 +636,7 @@ public class Manager implements Closeable {
     }
 
     private GroupInfo getGroupForUpdating(GroupId groupId) throws GroupNotFoundException, NotAGroupMemberException {
-        GroupInfo g = getGroup(groupId);
+        var g = getGroup(groupId);
         if (g == null) {
             throw new GroupNotFoundException(groupId);
         }
@@ -669,8 +653,7 @@ public class Manager implements Closeable {
     public Pair<Long, List<SendMessageResult>> sendGroupMessage(
             String messageText, List<String> attachments, GroupId groupId
     ) throws IOException, GroupNotFoundException, AttachmentInvalidException, NotAGroupMemberException {
-        final SignalServiceDataMessage.Builder messageBuilder = SignalServiceDataMessage.newBuilder()
-                .withBody(messageText);
+        final var messageBuilder = SignalServiceDataMessage.newBuilder().withBody(messageText);
         if (attachments != null) {
             messageBuilder.withAttachments(AttachmentUtils.getSignalServiceAttachments(attachments));
         }
@@ -681,12 +664,11 @@ public class Manager implements Closeable {
     public Pair<Long, List<SendMessageResult>> sendGroupMessageReaction(
             String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, GroupId groupId
     ) throws IOException, InvalidNumberException, NotAGroupMemberException, GroupNotFoundException {
-        SignalServiceDataMessage.Reaction reaction = new SignalServiceDataMessage.Reaction(emoji,
+        var reaction = new SignalServiceDataMessage.Reaction(emoji,
                 remove,
                 canonicalizeAndResolveSignalServiceAddress(targetAuthor),
                 targetSentTimestamp);
-        final SignalServiceDataMessage.Builder messageBuilder = SignalServiceDataMessage.newBuilder()
-                .withReaction(reaction);
+        final var messageBuilder = SignalServiceDataMessage.newBuilder().withReaction(reaction);
 
         return sendGroupMessage(messageBuilder, groupId);
     }
@@ -694,7 +676,7 @@ public class Manager implements Closeable {
     public Pair<Long, List<SendMessageResult>> sendGroupMessage(
             SignalServiceDataMessage.Builder messageBuilder, GroupId groupId
     ) throws IOException, GroupNotFoundException, NotAGroupMemberException {
-        final GroupInfo g = getGroupForSending(groupId);
+        final var g = getGroupForSending(groupId);
 
         GroupUtils.setGroupContext(messageBuilder, g);
         messageBuilder.withExpiration(g.getMessageExpirationTime());
@@ -705,18 +687,16 @@ public class Manager implements Closeable {
     public Pair<Long, List<SendMessageResult>> sendQuitGroupMessage(GroupId groupId) throws GroupNotFoundException, IOException, NotAGroupMemberException {
         SignalServiceDataMessage.Builder messageBuilder;
 
-        final GroupInfo g = getGroupForUpdating(groupId);
+        final var g = getGroupForUpdating(groupId);
         if (g instanceof GroupInfoV1) {
-            GroupInfoV1 groupInfoV1 = (GroupInfoV1) g;
-            SignalServiceGroup group = SignalServiceGroup.newBuilder(SignalServiceGroup.Type.QUIT)
-                    .withId(groupId.serialize())
-                    .build();
+            var groupInfoV1 = (GroupInfoV1) g;
+            var group = SignalServiceGroup.newBuilder(SignalServiceGroup.Type.QUIT).withId(groupId.serialize()).build();
             messageBuilder = SignalServiceDataMessage.newBuilder().asGroupMessage(group);
             groupInfoV1.removeMember(account.getSelfAddress());
             account.getGroupStore().updateGroup(groupInfoV1);
         } else {
-            final GroupInfoV2 groupInfoV2 = (GroupInfoV2) g;
-            final Pair<DecryptedGroup, GroupChange> groupGroupChangePair = groupHelper.leaveGroup(groupInfoV2);
+            final var groupInfoV2 = (GroupInfoV2) g;
+            final var groupGroupChangePair = groupHelper.leaveGroup(groupInfoV2);
             groupInfoV2.setGroup(groupGroupChangePair.first());
             messageBuilder = getGroupUpdateMessageBuilder(groupInfoV2, groupGroupChangePair.second().toByteArray());
             account.getGroupStore().updateGroup(groupInfoV2);
@@ -741,11 +721,11 @@ public class Manager implements Closeable {
         SignalServiceDataMessage.Builder messageBuilder;
         if (groupId == null) {
             // Create new group
-            GroupInfoV2 gv2 = groupHelper.createGroupV2(name == null ? "" : name,
+            var gv2 = groupHelper.createGroupV2(name == null ? "" : name,
                     members == null ? List.of() : members,
                     avatarFile);
             if (gv2 == null) {
-                GroupInfoV1 gv1 = new GroupInfoV1(GroupIdV1.createRandom());
+                var gv1 = new GroupInfoV1(GroupIdV1.createRandom());
                 gv1.addMembers(List.of(account.getSelfAddress()));
                 updateGroupV1(gv1, name, members, avatarFile);
                 messageBuilder = getGroupUpdateMessageBuilder(gv1);
@@ -759,36 +739,33 @@ public class Manager implements Closeable {
                 g = gv2;
             }
         } else {
-            GroupInfo group = getGroupForUpdating(groupId);
+            var group = getGroupForUpdating(groupId);
             if (group instanceof GroupInfoV2) {
-                final GroupInfoV2 groupInfoV2 = (GroupInfoV2) group;
+                final var groupInfoV2 = (GroupInfoV2) group;
 
                 Pair<Long, List<SendMessageResult>> result = null;
                 if (groupInfoV2.isPendingMember(getSelfAddress())) {
-                    Pair<DecryptedGroup, GroupChange> groupGroupChangePair = groupHelper.acceptInvite(groupInfoV2);
+                    var groupGroupChangePair = groupHelper.acceptInvite(groupInfoV2);
                     result = sendUpdateGroupMessage(groupInfoV2,
                             groupGroupChangePair.first(),
                             groupGroupChangePair.second());
                 }
 
                 if (members != null) {
-                    final Set<SignalServiceAddress> newMembers = new HashSet<>(members);
+                    final var newMembers = new HashSet<>(members);
                     newMembers.removeAll(group.getMembers()
                             .stream()
                             .map(this::resolveSignalServiceAddress)
                             .collect(Collectors.toSet()));
                     if (newMembers.size() > 0) {
-                        Pair<DecryptedGroup, GroupChange> groupGroupChangePair = groupHelper.updateGroupV2(groupInfoV2,
-                                newMembers);
+                        var groupGroupChangePair = groupHelper.updateGroupV2(groupInfoV2, newMembers);
                         result = sendUpdateGroupMessage(groupInfoV2,
                                 groupGroupChangePair.first(),
                                 groupGroupChangePair.second());
                     }
                 }
                 if (result == null || name != null || avatarFile != null) {
-                    Pair<DecryptedGroup, GroupChange> groupGroupChangePair = groupHelper.updateGroupV2(groupInfoV2,
-                            name,
-                            avatarFile);
+                    var groupGroupChangePair = groupHelper.updateGroupV2(groupInfoV2, name, avatarFile);
                     if (avatarFile != null) {
                         avatarStore.storeGroupAvatar(groupInfoV2.getGroupId(),
                                 outputStream -> IOUtils.copyFileToStream(avatarFile, outputStream));
@@ -800,7 +777,7 @@ public class Manager implements Closeable {
 
                 return new Pair<>(group.getGroupId(), result.second());
             } else {
-                GroupInfoV1 gv1 = (GroupInfoV1) group;
+                var gv1 = (GroupInfoV1) group;
                 updateGroupV1(gv1, name, members, avatarFile);
                 messageBuilder = getGroupUpdateMessageBuilder(gv1);
                 g = gv1;
@@ -809,8 +786,7 @@ public class Manager implements Closeable {
 
         account.getGroupStore().updateGroup(g);
 
-        final Pair<Long, List<SendMessageResult>> result = sendMessage(messageBuilder,
-                g.getMembersIncludingPendingWithout(account.getSelfAddress()));
+        final var result = sendMessage(messageBuilder, g.getMembersIncludingPendingWithout(account.getSelfAddress()));
         return new Pair<>(g.getGroupId(), result.second());
     }
 
@@ -825,15 +801,15 @@ public class Manager implements Closeable {
         }
 
         if (members != null) {
-            final Set<String> newE164Members = new HashSet<>();
-            for (SignalServiceAddress member : members) {
+            final var newE164Members = new HashSet<String>();
+            for (var member : members) {
                 if (g.isMember(member) || !member.getNumber().isPresent()) {
                     continue;
                 }
                 newE164Members.add(member.getNumber().get());
             }
 
-            final Map<String, UUID> registeredUsers = getRegisteredUsers(newE164Members);
+            final var registeredUsers = getRegisteredUsers(newE164Members);
             if (registeredUsers.size() != newE164Members.size()) {
                 // Some of the new members are not registered on Signal
                 newE164Members.removeAll(registeredUsers.keySet());
@@ -860,12 +836,12 @@ public class Manager implements Closeable {
     private Pair<GroupId, List<SendMessageResult>> sendJoinGroupMessage(
             GroupInviteLinkUrl inviteLinkUrl
     ) throws IOException, GroupLinkNotActiveException {
-        final DecryptedGroupJoinInfo groupJoinInfo = groupHelper.getDecryptedGroupJoinInfo(inviteLinkUrl.getGroupMasterKey(),
+        final var groupJoinInfo = groupHelper.getDecryptedGroupJoinInfo(inviteLinkUrl.getGroupMasterKey(),
                 inviteLinkUrl.getPassword());
-        final GroupChange groupChange = groupHelper.joinGroup(inviteLinkUrl.getGroupMasterKey(),
+        final var groupChange = groupHelper.joinGroup(inviteLinkUrl.getGroupMasterKey(),
                 inviteLinkUrl.getPassword(),
                 groupJoinInfo);
-        final GroupInfoV2 group = getOrMigrateGroup(inviteLinkUrl.getGroupMasterKey(),
+        final var group = getOrMigrateGroup(inviteLinkUrl.getGroupMasterKey(),
                 groupJoinInfo.getRevision() + 1,
                 groupChange.toByteArray());
 
@@ -874,7 +850,7 @@ public class Manager implements Closeable {
             return new Pair<>(group.getGroupId(), List.of());
         }
 
-        final Pair<Long, List<SendMessageResult>> result = sendUpdateGroupMessage(group, group.getGroup(), groupChange);
+        final var result = sendUpdateGroupMessage(group, group.getGroup(), groupChange);
 
         return new Pair<>(group.getGroupId(), result.second());
     }
@@ -886,11 +862,11 @@ public class Manager implements Closeable {
     private GroupsV2AuthorizationString getGroupAuthForToday(
             final GroupSecretParams groupSecretParams
     ) throws IOException {
-        final int today = currentTimeDays();
+        final var today = currentTimeDays();
         // Returns credentials for the next 7 days
-        final HashMap<Integer, AuthCredentialResponse> credentials = groupsV2Api.getCredentials(today);
+        final var credentials = groupsV2Api.getCredentials(today);
         // TODO cache credentials until they expire
-        AuthCredentialResponse authCredentialResponse = credentials.get(today);
+        var authCredentialResponse = credentials.get(today);
         try {
             return groupsV2Api.getGroupsV2AuthorizationString(account.getUuid(),
                     today,
@@ -905,8 +881,7 @@ public class Manager implements Closeable {
             GroupInfoV2 group, DecryptedGroup newDecryptedGroup, GroupChange groupChange
     ) throws IOException {
         group.setGroup(newDecryptedGroup);
-        final SignalServiceDataMessage.Builder messageBuilder = getGroupUpdateMessageBuilder(group,
-                groupChange.toByteArray());
+        final var messageBuilder = getGroupUpdateMessageBuilder(group, groupChange.toByteArray());
         account.getGroupStore().updateGroup(group);
         return sendMessage(messageBuilder, group.getMembersIncludingPendingWithout(account.getSelfAddress()));
     }
@@ -915,7 +890,7 @@ public class Manager implements Closeable {
             GroupIdV1 groupId, SignalServiceAddress recipient
     ) throws IOException, NotAGroupMemberException, GroupNotFoundException, AttachmentInvalidException {
         GroupInfoV1 g;
-        GroupInfo group = getGroupForSending(groupId);
+        var group = getGroupForSending(groupId);
         if (!(group instanceof GroupInfoV1)) {
             throw new RuntimeException("Received an invalid group request for a v2 group!");
         }
@@ -925,20 +900,20 @@ public class Manager implements Closeable {
             throw new NotAGroupMemberException(groupId, g.name);
         }
 
-        SignalServiceDataMessage.Builder messageBuilder = getGroupUpdateMessageBuilder(g);
+        var messageBuilder = getGroupUpdateMessageBuilder(g);
 
         // Send group message only to the recipient who requested it
         return sendMessage(messageBuilder, List.of(recipient));
     }
 
     private SignalServiceDataMessage.Builder getGroupUpdateMessageBuilder(GroupInfoV1 g) throws AttachmentInvalidException {
-        SignalServiceGroup.Builder group = SignalServiceGroup.newBuilder(SignalServiceGroup.Type.UPDATE)
+        var group = SignalServiceGroup.newBuilder(SignalServiceGroup.Type.UPDATE)
                 .withId(g.getGroupId().serialize())
                 .withName(g.name)
                 .withMembers(new ArrayList<>(g.getMembers()));
 
         try {
-            final Optional<SignalServiceAttachmentStream> attachment = createGroupAvatarAttachment(g.getGroupId());
+            final var attachment = createGroupAvatarAttachment(g.getGroupId());
             if (attachment.isPresent()) {
                 group.withAvatar(attachment.get());
             }
@@ -952,7 +927,7 @@ public class Manager implements Closeable {
     }
 
     private SignalServiceDataMessage.Builder getGroupUpdateMessageBuilder(GroupInfoV2 g, byte[] signedGroupChange) {
-        SignalServiceGroupV2.Builder group = SignalServiceGroupV2.newBuilder(g.getMasterKey())
+        var group = SignalServiceGroupV2.newBuilder(g.getMasterKey())
                 .withRevision(g.getGroup().getRevision())
                 .withSignedGroupChange(signedGroupChange);
         return SignalServiceDataMessage.newBuilder()
@@ -963,11 +938,9 @@ public class Manager implements Closeable {
     Pair<Long, List<SendMessageResult>> sendGroupInfoRequest(
             GroupIdV1 groupId, SignalServiceAddress recipient
     ) throws IOException {
-        SignalServiceGroup.Builder group = SignalServiceGroup.newBuilder(SignalServiceGroup.Type.REQUEST_INFO)
-                .withId(groupId.serialize());
+        var group = SignalServiceGroup.newBuilder(SignalServiceGroup.Type.REQUEST_INFO).withId(groupId.serialize());
 
-        SignalServiceDataMessage.Builder messageBuilder = SignalServiceDataMessage.newBuilder()
-                .asGroupMessage(group.build());
+        var messageBuilder = SignalServiceDataMessage.newBuilder().asGroupMessage(group.build());
 
         // Send group info request message to the recipient who sent us a message with this groupId
         return sendMessage(messageBuilder, List.of(recipient));
@@ -976,7 +949,7 @@ public class Manager implements Closeable {
     void sendReceipt(
             SignalServiceAddress remoteAddress, long messageId
     ) throws IOException, UntrustedIdentityException {
-        SignalServiceReceiptMessage receiptMessage = new SignalServiceReceiptMessage(SignalServiceReceiptMessage.Type.DELIVERY,
+        var receiptMessage = new SignalServiceReceiptMessage(SignalServiceReceiptMessage.Type.DELIVERY,
                 List.of(messageId),
                 System.currentTimeMillis());
 
@@ -988,15 +961,14 @@ public class Manager implements Closeable {
     public Pair<Long, List<SendMessageResult>> sendMessage(
             String messageText, List<String> attachments, List<String> recipients
     ) throws IOException, AttachmentInvalidException, InvalidNumberException {
-        final SignalServiceDataMessage.Builder messageBuilder = SignalServiceDataMessage.newBuilder()
-                .withBody(messageText);
+        final var messageBuilder = SignalServiceDataMessage.newBuilder().withBody(messageText);
         if (attachments != null) {
-            List<SignalServiceAttachment> attachmentStreams = AttachmentUtils.getSignalServiceAttachments(attachments);
+            var attachmentStreams = AttachmentUtils.getSignalServiceAttachments(attachments);
 
             // Upload attachments here, so we only upload once even for multiple recipients
-            SignalServiceMessageSender messageSender = createMessageSender();
-            List<SignalServiceAttachment> attachmentPointers = new ArrayList<>(attachmentStreams.size());
-            for (SignalServiceAttachment attachment : attachmentStreams) {
+            var messageSender = createMessageSender();
+            var attachmentPointers = new ArrayList<SignalServiceAttachment>(attachmentStreams.size());
+            for (var attachment : attachmentStreams) {
                 if (attachment.isStream()) {
                     attachmentPointers.add(messageSender.uploadAttachment(attachment.asStream()));
                 } else if (attachment.isPointer()) {
@@ -1012,8 +984,7 @@ public class Manager implements Closeable {
     public Pair<Long, SendMessageResult> sendSelfMessage(
             String messageText, List<String> attachments
     ) throws IOException, AttachmentInvalidException {
-        final SignalServiceDataMessage.Builder messageBuilder = SignalServiceDataMessage.newBuilder()
-                .withBody(messageText);
+        final var messageBuilder = SignalServiceDataMessage.newBuilder().withBody(messageText);
         if (attachments != null) {
             messageBuilder.withAttachments(AttachmentUtils.getSignalServiceAttachments(attachments));
         }
@@ -1023,23 +994,22 @@ public class Manager implements Closeable {
     public Pair<Long, List<SendMessageResult>> sendMessageReaction(
             String emoji, boolean remove, String targetAuthor, long targetSentTimestamp, List<String> recipients
     ) throws IOException, InvalidNumberException {
-        SignalServiceDataMessage.Reaction reaction = new SignalServiceDataMessage.Reaction(emoji,
+        var reaction = new SignalServiceDataMessage.Reaction(emoji,
                 remove,
                 canonicalizeAndResolveSignalServiceAddress(targetAuthor),
                 targetSentTimestamp);
-        final SignalServiceDataMessage.Builder messageBuilder = SignalServiceDataMessage.newBuilder()
-                .withReaction(reaction);
+        final var messageBuilder = SignalServiceDataMessage.newBuilder().withReaction(reaction);
         return sendMessage(messageBuilder, getSignalServiceAddresses(recipients));
     }
 
     public Pair<Long, List<SendMessageResult>> sendEndSessionMessage(List<String> recipients) throws IOException, InvalidNumberException {
-        SignalServiceDataMessage.Builder messageBuilder = SignalServiceDataMessage.newBuilder().asEndSessionMessage();
+        var messageBuilder = SignalServiceDataMessage.newBuilder().asEndSessionMessage();
 
-        final Collection<SignalServiceAddress> signalServiceAddresses = getSignalServiceAddresses(recipients);
+        final var signalServiceAddresses = getSignalServiceAddresses(recipients);
         try {
             return sendMessage(messageBuilder, signalServiceAddresses);
         } catch (Exception e) {
-            for (SignalServiceAddress address : signalServiceAddresses) {
+            for (var address : signalServiceAddresses) {
                 handleEndSession(address);
             }
             account.save();
@@ -1048,7 +1018,7 @@ public class Manager implements Closeable {
     }
 
     public String getContactName(String number) throws InvalidNumberException {
-        ContactInfo contact = account.getContactStore().getContact(canonicalizeAndResolveSignalServiceAddress(number));
+        var contact = account.getContactStore().getContact(canonicalizeAndResolveSignalServiceAddress(number));
         if (contact == null) {
             return "";
         } else {
@@ -1057,8 +1027,8 @@ public class Manager implements Closeable {
     }
 
     public void setContactName(String number, String name) throws InvalidNumberException {
-        final SignalServiceAddress address = canonicalizeAndResolveSignalServiceAddress(number);
-        ContactInfo contact = account.getContactStore().getContact(address);
+        final var address = canonicalizeAndResolveSignalServiceAddress(number);
+        var contact = account.getContactStore().getContact(address);
         if (contact == null) {
             contact = new ContactInfo(address);
         }
@@ -1072,7 +1042,7 @@ public class Manager implements Closeable {
     }
 
     private void setContactBlocked(SignalServiceAddress address, boolean blocked) {
-        ContactInfo contact = account.getContactStore().getContact(address);
+        var contact = account.getContactStore().getContact(address);
         if (contact == null) {
             contact = new ContactInfo(address);
         }
@@ -1082,7 +1052,7 @@ public class Manager implements Closeable {
     }
 
     public void setGroupBlocked(final GroupId groupId, final boolean blocked) throws GroupNotFoundException {
-        GroupInfo group = getGroup(groupId);
+        var group = getGroup(groupId);
         if (group == null) {
             throw new GroupNotFoundException(groupId);
         }
@@ -1096,7 +1066,7 @@ public class Manager implements Closeable {
      * Change the expiration timer for a contact
      */
     public void setExpirationTimer(SignalServiceAddress address, int messageExpirationTimer) throws IOException {
-        ContactInfo contact = account.getContactStore().getContact(address);
+        var contact = account.getContactStore().getContact(address);
         contact.messageExpirationTime = messageExpirationTimer;
         account.getContactStore().updateContact(contact);
         sendExpirationTimerUpdate(address);
@@ -1104,8 +1074,7 @@ public class Manager implements Closeable {
     }
 
     private void sendExpirationTimerUpdate(SignalServiceAddress address) throws IOException {
-        final SignalServiceDataMessage.Builder messageBuilder = SignalServiceDataMessage.newBuilder()
-                .asExpirationUpdate();
+        final var messageBuilder = SignalServiceDataMessage.newBuilder().asExpirationUpdate();
         sendMessage(messageBuilder, List.of(address));
     }
 
@@ -1115,7 +1084,7 @@ public class Manager implements Closeable {
     public void setExpirationTimer(
             String number, int messageExpirationTimer
     ) throws IOException, InvalidNumberException {
-        SignalServiceAddress address = canonicalizeAndResolveSignalServiceAddress(number);
+        var address = canonicalizeAndResolveSignalServiceAddress(number);
         setExpirationTimer(address, messageExpirationTimer);
     }
 
@@ -1123,9 +1092,9 @@ public class Manager implements Closeable {
      * Change the expiration timer for a group
      */
     public void setExpirationTimer(GroupId groupId, int messageExpirationTimer) {
-        GroupInfo g = getGroup(groupId);
+        var g = getGroup(groupId);
         if (g instanceof GroupInfoV1) {
-            GroupInfoV1 groupInfoV1 = (GroupInfoV1) g;
+            var groupInfoV1 = (GroupInfoV1) g;
             groupInfoV1.messageExpirationTime = messageExpirationTimer;
             account.getGroupStore().updateGroup(groupInfoV1);
         } else {
@@ -1140,14 +1109,14 @@ public class Manager implements Closeable {
      * @return if successful, returns the URL to install the sticker pack in the signal app
      */
     public String uploadStickerPack(File path) throws IOException, StickerPackInvalidException {
-        SignalServiceStickerManifestUpload manifest = StickerUtils.getSignalServiceStickerManifestUpload(path);
+        var manifest = StickerUtils.getSignalServiceStickerManifestUpload(path);
 
-        SignalServiceMessageSender messageSender = createMessageSender();
+        var messageSender = createMessageSender();
 
-        byte[] packKey = KeyUtils.createStickerUploadKey();
-        String packId = messageSender.uploadStickerManifest(manifest, packKey);
+        var packKey = KeyUtils.createStickerUploadKey();
+        var packId = messageSender.uploadStickerManifest(manifest, packKey);
 
-        Sticker sticker = new Sticker(Hex.fromStringCondensed(packId), packKey);
+        var sticker = new Sticker(Hex.fromStringCondensed(packId), packKey);
         account.getStickerStore().updateSticker(sticker);
         account.save();
 
@@ -1164,10 +1133,10 @@ public class Manager implements Closeable {
     }
 
     void requestSyncGroups() throws IOException {
-        SignalServiceProtos.SyncMessage.Request r = SignalServiceProtos.SyncMessage.Request.newBuilder()
+        var r = SignalServiceProtos.SyncMessage.Request.newBuilder()
                 .setType(SignalServiceProtos.SyncMessage.Request.Type.GROUPS)
                 .build();
-        SignalServiceSyncMessage message = SignalServiceSyncMessage.forRequest(new RequestMessage(r));
+        var message = SignalServiceSyncMessage.forRequest(new RequestMessage(r));
         try {
             sendSyncMessage(message);
         } catch (UntrustedIdentityException e) {
@@ -1176,10 +1145,10 @@ public class Manager implements Closeable {
     }
 
     void requestSyncContacts() throws IOException {
-        SignalServiceProtos.SyncMessage.Request r = SignalServiceProtos.SyncMessage.Request.newBuilder()
+        var r = SignalServiceProtos.SyncMessage.Request.newBuilder()
                 .setType(SignalServiceProtos.SyncMessage.Request.Type.CONTACTS)
                 .build();
-        SignalServiceSyncMessage message = SignalServiceSyncMessage.forRequest(new RequestMessage(r));
+        var message = SignalServiceSyncMessage.forRequest(new RequestMessage(r));
         try {
             sendSyncMessage(message);
         } catch (UntrustedIdentityException e) {
@@ -1188,10 +1157,10 @@ public class Manager implements Closeable {
     }
 
     void requestSyncBlocked() throws IOException {
-        SignalServiceProtos.SyncMessage.Request r = SignalServiceProtos.SyncMessage.Request.newBuilder()
+        var r = SignalServiceProtos.SyncMessage.Request.newBuilder()
                 .setType(SignalServiceProtos.SyncMessage.Request.Type.BLOCKED)
                 .build();
-        SignalServiceSyncMessage message = SignalServiceSyncMessage.forRequest(new RequestMessage(r));
+        var message = SignalServiceSyncMessage.forRequest(new RequestMessage(r));
         try {
             sendSyncMessage(message);
         } catch (UntrustedIdentityException e) {
@@ -1200,10 +1169,10 @@ public class Manager implements Closeable {
     }
 
     void requestSyncConfiguration() throws IOException {
-        SignalServiceProtos.SyncMessage.Request r = SignalServiceProtos.SyncMessage.Request.newBuilder()
+        var r = SignalServiceProtos.SyncMessage.Request.newBuilder()
                 .setType(SignalServiceProtos.SyncMessage.Request.Type.CONFIGURATION)
                 .build();
-        SignalServiceSyncMessage message = SignalServiceSyncMessage.forRequest(new RequestMessage(r));
+        var message = SignalServiceSyncMessage.forRequest(new RequestMessage(r));
         try {
             sendSyncMessage(message);
         } catch (UntrustedIdentityException e) {
@@ -1212,10 +1181,10 @@ public class Manager implements Closeable {
     }
 
     void requestSyncKeys() throws IOException {
-        SignalServiceProtos.SyncMessage.Request r = SignalServiceProtos.SyncMessage.Request.newBuilder()
+        var r = SignalServiceProtos.SyncMessage.Request.newBuilder()
                 .setType(SignalServiceProtos.SyncMessage.Request.Type.KEYS)
                 .build();
-        SignalServiceSyncMessage message = SignalServiceSyncMessage.forRequest(new RequestMessage(r));
+        var message = SignalServiceSyncMessage.forRequest(new RequestMessage(r));
         try {
             sendSyncMessage(message);
         } catch (UntrustedIdentityException e) {
@@ -1238,7 +1207,7 @@ public class Manager implements Closeable {
     }
 
     private void sendSyncMessage(SignalServiceSyncMessage message) throws IOException, UntrustedIdentityException {
-        SignalServiceMessageSender messageSender = createMessageSender();
+        var messageSender = createMessageSender();
         try {
             messageSender.sendMessage(message, unidentifiedAccessHelper.getAccessForSync());
         } catch (UntrustedIdentityException e) {
@@ -1251,11 +1220,11 @@ public class Manager implements Closeable {
     }
 
     private Collection<SignalServiceAddress> getSignalServiceAddresses(Collection<String> numbers) throws InvalidNumberException {
-        final Set<SignalServiceAddress> signalServiceAddresses = new HashSet<>(numbers.size());
-        final Set<SignalServiceAddress> addressesMissingUuid = new HashSet<>();
+        final var signalServiceAddresses = new HashSet<SignalServiceAddress>(numbers.size());
+        final var addressesMissingUuid = new HashSet<SignalServiceAddress>();
 
-        for (String number : numbers) {
-            final SignalServiceAddress resolvedAddress = canonicalizeAndResolveSignalServiceAddress(number);
+        for (var number : numbers) {
+            final var resolvedAddress = canonicalizeAndResolveSignalServiceAddress(number);
             if (resolvedAddress.getUuid().isPresent()) {
                 signalServiceAddresses.add(resolvedAddress);
             } else {
@@ -1263,7 +1232,7 @@ public class Manager implements Closeable {
             }
         }
 
-        final Set<String> numbersMissingUuid = addressesMissingUuid.stream()
+        final var numbersMissingUuid = addressesMissingUuid.stream()
                 .map(a -> a.getNumber().get())
                 .collect(Collectors.toSet());
         Map<String, UUID> registeredUsers;
@@ -1274,11 +1243,10 @@ public class Manager implements Closeable {
             registeredUsers = Map.of();
         }
 
-        for (SignalServiceAddress address : addressesMissingUuid) {
-            final String number = address.getNumber().get();
+        for (var address : addressesMissingUuid) {
+            final var number = address.getNumber().get();
             if (registeredUsers.containsKey(number)) {
-                final SignalServiceAddress newAddress = resolveSignalServiceAddress(new SignalServiceAddress(
-                        registeredUsers.get(number),
+                final var newAddress = resolveSignalServiceAddress(new SignalServiceAddress(registeredUsers.get(number),
                         number));
                 signalServiceAddresses.add(newAddress);
             } else {
@@ -1303,7 +1271,7 @@ public class Manager implements Closeable {
             SignalServiceDataMessage.Builder messageBuilder, Collection<SignalServiceAddress> recipients
     ) throws IOException {
         recipients = recipients.stream().map(this::resolveSignalServiceAddress).collect(Collectors.toSet());
-        final long timestamp = System.currentTimeMillis();
+        final var timestamp = System.currentTimeMillis();
         messageBuilder.withTimestamp(timestamp);
         getOrCreateMessagePipe();
         getOrCreateUnidentifiedMessagePipe();
@@ -1312,13 +1280,13 @@ public class Manager implements Closeable {
             message = messageBuilder.build();
             if (message.getGroupContext().isPresent()) {
                 try {
-                    SignalServiceMessageSender messageSender = createMessageSender();
-                    final boolean isRecipientUpdate = false;
-                    List<SendMessageResult> result = messageSender.sendMessage(new ArrayList<>(recipients),
+                    var messageSender = createMessageSender();
+                    final var isRecipientUpdate = false;
+                    var result = messageSender.sendMessage(new ArrayList<>(recipients),
                             unidentifiedAccessHelper.getAccessFor(recipients),
                             isRecipientUpdate,
                             message);
-                    for (SendMessageResult r : result) {
+                    for (var r : result) {
                         if (r.getIdentityFailure() != null) {
                             account.getSignalProtocolStore()
                                     .saveIdentity(r.getAddress(),
@@ -1337,10 +1305,10 @@ public class Manager implements Closeable {
             } else {
                 // Send to all individually, so sync messages are sent correctly
                 messageBuilder.withProfileKey(account.getProfileKey().serialize());
-                List<SendMessageResult> results = new ArrayList<>(recipients.size());
-                for (SignalServiceAddress address : recipients) {
-                    final ContactInfo contact = account.getContactStore().getContact(address);
-                    final int expirationTime = contact != null ? contact.messageExpirationTime : 0;
+                var results = new ArrayList<SendMessageResult>(recipients.size());
+                for (var address : recipients) {
+                    final var contact = account.getContactStore().getContact(address);
+                    final var expirationTime = contact != null ? contact.messageExpirationTime : 0;
                     messageBuilder.withExpiration(expirationTime);
                     message = messageBuilder.build();
                     results.add(sendMessage(address, message));
@@ -1349,7 +1317,7 @@ public class Manager implements Closeable {
             }
         } finally {
             if (message != null && message.isEndSession()) {
-                for (SignalServiceAddress recipient : recipients) {
+                for (var recipient : recipients) {
                     handleEndSession(recipient);
                 }
             }
@@ -1360,19 +1328,19 @@ public class Manager implements Closeable {
     private Pair<Long, SendMessageResult> sendSelfMessage(
             SignalServiceDataMessage.Builder messageBuilder
     ) throws IOException {
-        final long timestamp = System.currentTimeMillis();
+        final var timestamp = System.currentTimeMillis();
         messageBuilder.withTimestamp(timestamp);
         getOrCreateMessagePipe();
         getOrCreateUnidentifiedMessagePipe();
         try {
-            final SignalServiceAddress address = getSelfAddress();
+            final var address = getSelfAddress();
 
-            final ContactInfo contact = account.getContactStore().getContact(address);
-            final int expirationTime = contact != null ? contact.messageExpirationTime : 0;
+            final var contact = account.getContactStore().getContact(address);
+            final var expirationTime = contact != null ? contact.messageExpirationTime : 0;
             messageBuilder.withExpiration(expirationTime);
 
-            SignalServiceDataMessage message = messageBuilder.build();
-            final SendMessageResult result = sendSelfMessage(message);
+            var message = messageBuilder.build();
+            final var result = sendSelfMessage(message);
             return new Pair<>(timestamp, result);
         } finally {
             account.save();
@@ -1380,21 +1348,21 @@ public class Manager implements Closeable {
     }
 
     private SendMessageResult sendSelfMessage(SignalServiceDataMessage message) throws IOException {
-        SignalServiceMessageSender messageSender = createMessageSender();
+        var messageSender = createMessageSender();
 
-        SignalServiceAddress recipient = account.getSelfAddress();
+        var recipient = account.getSelfAddress();
 
-        final Optional<UnidentifiedAccessPair> unidentifiedAccess = unidentifiedAccessHelper.getAccessFor(recipient);
-        SentTranscriptMessage transcript = new SentTranscriptMessage(Optional.of(recipient),
+        final var unidentifiedAccess = unidentifiedAccessHelper.getAccessFor(recipient);
+        var transcript = new SentTranscriptMessage(Optional.of(recipient),
                 message.getTimestamp(),
                 message,
                 message.getExpiresInSeconds(),
                 Map.of(recipient, unidentifiedAccess.isPresent()),
                 false);
-        SignalServiceSyncMessage syncMessage = SignalServiceSyncMessage.forSentTranscript(transcript);
+        var syncMessage = SignalServiceSyncMessage.forSentTranscript(transcript);
 
         try {
-            long startTime = System.currentTimeMillis();
+            var startTime = System.currentTimeMillis();
             messageSender.sendMessage(syncMessage, unidentifiedAccess);
             return SendMessageResult.success(recipient,
                     unidentifiedAccess.isPresent(),
@@ -1412,7 +1380,7 @@ public class Manager implements Closeable {
     private SendMessageResult sendMessage(
             SignalServiceAddress address, SignalServiceDataMessage message
     ) throws IOException {
-        SignalServiceMessageSender messageSender = createMessageSender();
+        var messageSender = createMessageSender();
 
         try {
             return messageSender.sendMessage(address, unidentifiedAccessHelper.getAccessFor(address), message);
@@ -1426,16 +1394,15 @@ public class Manager implements Closeable {
     }
 
     private SignalServiceContent decryptMessage(SignalServiceEnvelope envelope) throws InvalidMetadataMessageException, ProtocolInvalidMessageException, ProtocolDuplicateMessageException, ProtocolLegacyMessageException, ProtocolInvalidKeyIdException, InvalidMetadataVersionException, ProtocolInvalidVersionException, ProtocolNoSessionException, ProtocolInvalidKeyException, SelfSendException, UnsupportedDataMessageException, org.whispersystems.libsignal.UntrustedIdentityException {
-        SignalServiceCipher cipher = new SignalServiceCipher(account.getSelfAddress(),
+        var cipher = new SignalServiceCipher(account.getSelfAddress(),
                 account.getSignalProtocolStore(),
                 certificateValidator);
         try {
             return cipher.decrypt(envelope);
         } catch (ProtocolUntrustedIdentityException e) {
             if (e.getCause() instanceof org.whispersystems.libsignal.UntrustedIdentityException) {
-                org.whispersystems.libsignal.UntrustedIdentityException identityException = (org.whispersystems.libsignal.UntrustedIdentityException) e
-                        .getCause();
-                final IdentityKey untrustedIdentity = identityException.getUntrustedIdentity();
+                var identityException = (org.whispersystems.libsignal.UntrustedIdentityException) e.getCause();
+                final var untrustedIdentity = identityException.getUntrustedIdentity();
                 if (untrustedIdentity != null) {
                     account.getSignalProtocolStore()
                             .saveIdentity(resolveSignalServiceAddress(identityException.getName()),
@@ -1459,14 +1426,14 @@ public class Manager implements Closeable {
             SignalServiceAddress destination,
             boolean ignoreAttachments
     ) {
-        List<HandleAction> actions = new ArrayList<>();
+        var actions = new ArrayList<HandleAction>();
         if (message.getGroupContext().isPresent()) {
             if (message.getGroupContext().get().getGroupV1().isPresent()) {
-                SignalServiceGroup groupInfo = message.getGroupContext().get().getGroupV1().get();
-                GroupIdV1 groupId = GroupId.v1(groupInfo.getGroupId());
-                GroupInfo group = getGroup(groupId);
+                var groupInfo = message.getGroupContext().get().getGroupV1().get();
+                var groupId = GroupId.v1(groupInfo.getGroupId());
+                var group = getGroup(groupId);
                 if (group == null || group instanceof GroupInfoV1) {
-                    GroupInfoV1 groupV1 = (GroupInfoV1) group;
+                    var groupV1 = (GroupInfoV1) group;
                     switch (groupInfo.getType()) {
                         case UPDATE: {
                             if (groupV1 == null) {
@@ -1474,7 +1441,7 @@ public class Manager implements Closeable {
                             }
 
                             if (groupInfo.getAvatar().isPresent()) {
-                                SignalServiceAttachment avatar = groupInfo.getAvatar().get();
+                                var avatar = groupInfo.getAvatar().get();
                                 downloadGroupAvatar(avatar, groupV1.getGroupId());
                             }
 
@@ -1516,8 +1483,8 @@ public class Manager implements Closeable {
                 }
             }
             if (message.getGroupContext().get().getGroupV2().isPresent()) {
-                final SignalServiceGroupV2 groupContext = message.getGroupContext().get().getGroupV2().get();
-                final GroupMasterKey groupMasterKey = groupContext.getMasterKey();
+                final var groupContext = message.getGroupContext().get().getGroupV2().get();
+                final var groupMasterKey = groupContext.getMasterKey();
 
                 getOrMigrateGroup(groupMasterKey,
                         groupContext.getRevision(),
@@ -1525,15 +1492,15 @@ public class Manager implements Closeable {
             }
         }
 
-        final SignalServiceAddress conversationPartnerAddress = isSync ? destination : source;
+        final var conversationPartnerAddress = isSync ? destination : source;
         if (conversationPartnerAddress != null && message.isEndSession()) {
             handleEndSession(conversationPartnerAddress);
         }
         if (message.isExpirationUpdate() || message.getBody().isPresent()) {
             if (message.getGroupContext().isPresent()) {
                 if (message.getGroupContext().get().getGroupV1().isPresent()) {
-                    SignalServiceGroup groupInfo = message.getGroupContext().get().getGroupV1().get();
-                    GroupInfoV1 group = account.getGroupStore().getOrCreateGroupV1(GroupId.v1(groupInfo.getGroupId()));
+                    var groupInfo = message.getGroupContext().get().getGroupV1().get();
+                    var group = account.getGroupStore().getOrCreateGroupV1(GroupId.v1(groupInfo.getGroupId()));
                     if (group != null) {
                         if (group.messageExpirationTime != message.getExpiresInSeconds()) {
                             group.messageExpirationTime = message.getExpiresInSeconds();
@@ -1544,7 +1511,7 @@ public class Manager implements Closeable {
                     // disappearing message timer already stored in the DecryptedGroup
                 }
             } else if (conversationPartnerAddress != null) {
-                ContactInfo contact = account.getContactStore().getContact(conversationPartnerAddress);
+                var contact = account.getContactStore().getContact(conversationPartnerAddress);
                 if (contact == null) {
                     contact = new ContactInfo(conversationPartnerAddress);
                 }
@@ -1556,12 +1523,12 @@ public class Manager implements Closeable {
         }
         if (!ignoreAttachments) {
             if (message.getAttachments().isPresent()) {
-                for (SignalServiceAttachment attachment : message.getAttachments().get()) {
+                for (var attachment : message.getAttachments().get()) {
                     downloadAttachment(attachment);
                 }
             }
             if (message.getSharedContacts().isPresent()) {
-                for (SharedContact contact : message.getSharedContacts().get()) {
+                for (var contact : message.getSharedContacts().get()) {
                     if (contact.getAvatar().isPresent()) {
                         downloadAttachment(contact.getAvatar().get().getAttachment());
                     }
@@ -1581,26 +1548,26 @@ public class Manager implements Closeable {
             this.account.getProfileStore().storeProfileKey(source, profileKey);
         }
         if (message.getPreviews().isPresent()) {
-            final List<SignalServiceDataMessage.Preview> previews = message.getPreviews().get();
-            for (SignalServiceDataMessage.Preview preview : previews) {
+            final var previews = message.getPreviews().get();
+            for (var preview : previews) {
                 if (preview.getImage().isPresent()) {
                     downloadAttachment(preview.getImage().get());
                 }
             }
         }
         if (message.getQuote().isPresent()) {
-            final SignalServiceDataMessage.Quote quote = message.getQuote().get();
+            final var quote = message.getQuote().get();
 
-            for (SignalServiceDataMessage.Quote.QuotedAttachment quotedAttachment : quote.getAttachments()) {
-                final SignalServiceAttachment thumbnail = quotedAttachment.getThumbnail();
+            for (var quotedAttachment : quote.getAttachments()) {
+                final var thumbnail = quotedAttachment.getThumbnail();
                 if (thumbnail != null) {
                     downloadAttachment(thumbnail);
                 }
             }
         }
         if (message.getSticker().isPresent()) {
-            final SignalServiceDataMessage.Sticker messageSticker = message.getSticker().get();
-            Sticker sticker = account.getStickerStore().getSticker(messageSticker.getPackId());
+            final var messageSticker = message.getSticker().get();
+            var sticker = account.getStickerStore().getSticker(messageSticker.getPackId());
             if (sticker == null) {
                 sticker = new Sticker(messageSticker.getPackId(), messageSticker.getPackKey());
                 account.getStickerStore().updateSticker(sticker);
@@ -1612,10 +1579,10 @@ public class Manager implements Closeable {
     private GroupInfoV2 getOrMigrateGroup(
             final GroupMasterKey groupMasterKey, final int revision, final byte[] signedGroupChange
     ) {
-        final GroupSecretParams groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupMasterKey);
+        final var groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupMasterKey);
 
-        GroupIdV2 groupId = GroupUtils.getGroupIdV2(groupSecretParams);
-        GroupInfo groupInfo = getGroup(groupId);
+        var groupId = GroupUtils.getGroupIdV2(groupSecretParams);
+        var groupInfo = getGroup(groupId);
         final GroupInfoV2 groupInfoV2;
         if (groupInfo instanceof GroupInfoV1) {
             // Received a v2 group message for a v1 group, we need to locally migrate the group
@@ -1642,7 +1609,7 @@ public class Manager implements Closeable {
             }
             if (group != null) {
                 storeProfileKeysFromMembers(group);
-                final String avatar = group.getAvatar();
+                final var avatar = group.getAvatar();
                 if (avatar != null && !avatar.isEmpty()) {
                     downloadGroupAvatar(groupId, groupSecretParams, avatar);
                 }
@@ -1655,9 +1622,9 @@ public class Manager implements Closeable {
     }
 
     private void storeProfileKeysFromMembers(final DecryptedGroup group) {
-        for (DecryptedMember member : group.getMembersList()) {
-            final SignalServiceAddress address = resolveSignalServiceAddress(new SignalServiceAddress(UuidUtil.parseOrThrow(
-                    member.getUuid().toByteArray()), null));
+        for (var member : group.getMembersList()) {
+            final var address = resolveSignalServiceAddress(new SignalServiceAddress(UuidUtil.parseOrThrow(member.getUuid()
+                    .toByteArray()), null));
             try {
                 account.getProfileStore()
                         .storeProfileKey(address, new ProfileKey(member.getProfileKey().toByteArray()));
@@ -1667,7 +1634,7 @@ public class Manager implements Closeable {
     }
 
     private void retryFailedReceivedMessages(ReceiveMessageHandler handler, boolean ignoreAttachments) {
-        for (CachedMessage cachedMessage : account.getMessageCache().getCachedMessages()) {
+        for (var cachedMessage : account.getMessageCache().getCachedMessages()) {
             retryFailedReceivedMessage(handler, ignoreAttachments, cachedMessage);
         }
     }
@@ -1675,7 +1642,7 @@ public class Manager implements Closeable {
     private void retryFailedReceivedMessage(
             final ReceiveMessageHandler handler, final boolean ignoreAttachments, final CachedMessage cachedMessage
     ) {
-        SignalServiceEnvelope envelope = cachedMessage.loadEnvelope();
+        var envelope = cachedMessage.loadEnvelope();
         if (envelope == null) {
             return;
         }
@@ -1690,8 +1657,8 @@ public class Manager implements Closeable {
                 cachedMessage.delete();
                 return;
             }
-            List<HandleAction> actions = handleMessage(envelope, content, ignoreAttachments);
-            for (HandleAction action : actions) {
+            var actions = handleMessage(envelope, content, ignoreAttachments);
+            for (var action : actions) {
                 try {
                     action.execute(this);
                 } catch (Throwable e) {
@@ -1715,9 +1682,9 @@ public class Manager implements Closeable {
 
         Set<HandleAction> queuedActions = null;
 
-        final SignalServiceMessagePipe messagePipe = getOrCreateMessagePipe();
+        final var messagePipe = getOrCreateMessagePipe();
 
-        boolean hasCaughtUpWithOldMessages = false;
+        var hasCaughtUpWithOldMessages = false;
 
         while (true) {
             SignalServiceEnvelope envelope;
@@ -1725,7 +1692,7 @@ public class Manager implements Closeable {
             Exception exception = null;
             final CachedMessage[] cachedMessage = {null};
             try {
-                Optional<SignalServiceEnvelope> result = messagePipe.readOrEmpty(timeout, unit, envelope1 -> {
+                var result = messagePipe.readOrEmpty(timeout, unit, envelope1 -> {
                     // store message on disk, before acknowledging receipt to the server
                     cachedMessage[0] = account.getMessageCache().cacheMessage(envelope1);
                 });
@@ -1736,7 +1703,7 @@ public class Manager implements Closeable {
                     hasCaughtUpWithOldMessages = true;
 
                     if (queuedActions != null) {
-                        for (HandleAction action : queuedActions) {
+                        for (var action : queuedActions) {
                             try {
                                 action.execute(this);
                             } catch (Throwable e) {
@@ -1758,7 +1725,7 @@ public class Manager implements Closeable {
 
             if (envelope.hasSource()) {
                 // Store uuid if we don't have it already
-                SignalServiceAddress source = envelope.getSourceAddress();
+                var source = envelope.getSourceAddress();
                 resolveSignalServiceAddress(source);
             }
             if (!envelope.isReceipt()) {
@@ -1767,9 +1734,9 @@ public class Manager implements Closeable {
                 } catch (Exception e) {
                     exception = e;
                 }
-                List<HandleAction> actions = handleMessage(envelope, content, ignoreAttachments);
+                var actions = handleMessage(envelope, content, ignoreAttachments);
                 if (hasCaughtUpWithOldMessages) {
-                    for (HandleAction action : actions) {
+                    for (var action : actions) {
                         try {
                             action.execute(this);
                         } catch (Throwable e) {
@@ -1810,16 +1777,16 @@ public class Manager implements Closeable {
         } else {
             return false;
         }
-        ContactInfo sourceContact = account.getContactStore().getContact(source);
+        var sourceContact = account.getContactStore().getContact(source);
         if (sourceContact != null && sourceContact.blocked) {
             return true;
         }
 
         if (content != null && content.getDataMessage().isPresent()) {
-            SignalServiceDataMessage message = content.getDataMessage().get();
+            var message = content.getDataMessage().get();
             if (message.getGroupContext().isPresent()) {
-                GroupId groupId = GroupUtils.getGroupId(message.getGroupContext().get());
-                GroupInfo group = getGroup(groupId);
+                var groupId = GroupUtils.getGroupId(message.getGroupContext().get());
+                var group = getGroup(groupId);
                 if (group != null && group.isBlocked()) {
                     return true;
                 }
@@ -1841,16 +1808,16 @@ public class Manager implements Closeable {
         }
 
         if (content != null && content.getDataMessage().isPresent()) {
-            SignalServiceDataMessage message = content.getDataMessage().get();
+            var message = content.getDataMessage().get();
             if (message.getGroupContext().isPresent()) {
                 if (message.getGroupContext().get().getGroupV1().isPresent()) {
-                    SignalServiceGroup groupInfo = message.getGroupContext().get().getGroupV1().get();
+                    var groupInfo = message.getGroupContext().get().getGroupV1().get();
                     if (groupInfo.getType() == SignalServiceGroup.Type.QUIT) {
                         return false;
                     }
                 }
-                GroupId groupId = GroupUtils.getGroupId(message.getGroupContext().get());
-                GroupInfo group = getGroup(groupId);
+                var groupId = GroupUtils.getGroupId(message.getGroupContext().get());
+                var group = getGroup(groupId);
                 if (group != null && !group.isMember(source)) {
                     return true;
                 }
@@ -1862,7 +1829,7 @@ public class Manager implements Closeable {
     private List<HandleAction> handleMessage(
             SignalServiceEnvelope envelope, SignalServiceContent content, boolean ignoreAttachments
     ) {
-        List<HandleAction> actions = new ArrayList<>();
+        var actions = new ArrayList<HandleAction>();
         if (content != null) {
             final SignalServiceAddress sender;
             if (!envelope.isUnidentifiedSender() && envelope.hasSource()) {
@@ -1874,7 +1841,7 @@ public class Manager implements Closeable {
             resolveSignalServiceAddress(sender);
 
             if (content.getDataMessage().isPresent()) {
-                SignalServiceDataMessage message = content.getDataMessage().get();
+                var message = content.getDataMessage().get();
 
                 if (content.isNeedsReceipt()) {
                     actions.add(new SendReceiptAction(sender, message.getTimestamp()));
@@ -1888,10 +1855,10 @@ public class Manager implements Closeable {
             }
             if (content.getSyncMessage().isPresent()) {
                 account.setMultiDevice(true);
-                SignalServiceSyncMessage syncMessage = content.getSyncMessage().get();
+                var syncMessage = content.getSyncMessage().get();
                 if (syncMessage.getSent().isPresent()) {
-                    SentTranscriptMessage message = syncMessage.getSent().get();
-                    final SignalServiceAddress destination = message.getDestination().orNull();
+                    var message = syncMessage.getSent().get();
+                    final var destination = message.getDestination().orNull();
                     actions.addAll(handleSignalServiceDataMessage(message.getMessage(),
                             true,
                             sender,
@@ -1899,7 +1866,7 @@ public class Manager implements Closeable {
                             ignoreAttachments));
                 }
                 if (syncMessage.getRequest().isPresent()) {
-                    RequestMessage rm = syncMessage.getRequest().get();
+                    var rm = syncMessage.getRequest().get();
                     if (rm.isContactsRequest()) {
                         actions.add(SendSyncContactsAction.create());
                     }
@@ -1915,14 +1882,12 @@ public class Manager implements Closeable {
                     File tmpFile = null;
                     try {
                         tmpFile = IOUtils.createTempFile();
-                        final SignalServiceAttachment groupsMessage = syncMessage.getGroups().get();
-                        try (InputStream attachmentAsStream = retrieveAttachmentAsStream(groupsMessage.asPointer(),
-                                tmpFile)) {
-                            DeviceGroupsInputStream s = new DeviceGroupsInputStream(attachmentAsStream);
+                        final var groupsMessage = syncMessage.getGroups().get();
+                        try (var attachmentAsStream = retrieveAttachmentAsStream(groupsMessage.asPointer(), tmpFile)) {
+                            var s = new DeviceGroupsInputStream(attachmentAsStream);
                             DeviceGroup g;
                             while ((g = s.read()) != null) {
-                                GroupInfoV1 syncGroup = account.getGroupStore()
-                                        .getOrCreateGroupV1(GroupId.v1(g.getId()));
+                                var syncGroup = account.getGroupStore().getOrCreateGroupV1(GroupId.v1(g.getId()));
                                 if (syncGroup != null) {
                                     if (g.getName().isPresent()) {
                                         syncGroup.name = g.getName().get();
@@ -1968,11 +1933,11 @@ public class Manager implements Closeable {
                     }
                 }
                 if (syncMessage.getBlockedList().isPresent()) {
-                    final BlockedListMessage blockedListMessage = syncMessage.getBlockedList().get();
-                    for (SignalServiceAddress address : blockedListMessage.getAddresses()) {
+                    final var blockedListMessage = syncMessage.getBlockedList().get();
+                    for (var address : blockedListMessage.getAddresses()) {
                         setContactBlocked(resolveSignalServiceAddress(address), true);
                     }
-                    for (GroupId groupId : blockedListMessage.getGroupIds()
+                    for (var groupId : blockedListMessage.getGroupIds()
                             .stream()
                             .map(GroupId::unknownVersion)
                             .collect(Collectors.toSet())) {
@@ -1988,10 +1953,10 @@ public class Manager implements Closeable {
                     File tmpFile = null;
                     try {
                         tmpFile = IOUtils.createTempFile();
-                        final ContactsMessage contactsMessage = syncMessage.getContacts().get();
-                        try (InputStream attachmentAsStream = retrieveAttachmentAsStream(contactsMessage.getContactsStream()
+                        final var contactsMessage = syncMessage.getContacts().get();
+                        try (var attachmentAsStream = retrieveAttachmentAsStream(contactsMessage.getContactsStream()
                                 .asPointer(), tmpFile)) {
-                            DeviceContactsInputStream s = new DeviceContactsInputStream(attachmentAsStream);
+                            var s = new DeviceContactsInputStream(attachmentAsStream);
                             if (contactsMessage.isComplete()) {
                                 account.getContactStore().clear();
                             }
@@ -2000,8 +1965,8 @@ public class Manager implements Closeable {
                                 if (c.getAddress().matches(account.getSelfAddress()) && c.getProfileKey().isPresent()) {
                                     account.setProfileKey(c.getProfileKey().get());
                                 }
-                                final SignalServiceAddress address = resolveSignalServiceAddress(c.getAddress());
-                                ContactInfo contact = account.getContactStore().getContact(address);
+                                final var address = resolveSignalServiceAddress(c.getAddress());
+                                var contact = account.getContactStore().getContact(address);
                                 if (contact == null) {
                                     contact = new ContactInfo(address);
                                 }
@@ -2015,7 +1980,7 @@ public class Manager implements Closeable {
                                     account.getProfileStore().storeProfileKey(address, c.getProfileKey().get());
                                 }
                                 if (c.getVerified().isPresent()) {
-                                    final VerifiedMessage verifiedMessage = c.getVerified().get();
+                                    final var verifiedMessage = c.getVerified().get();
                                     account.getSignalProtocolStore()
                                             .setIdentityTrustLevel(verifiedMessage.getDestination(),
                                                     verifiedMessage.getIdentityKey(),
@@ -2051,20 +2016,19 @@ public class Manager implements Closeable {
                     }
                 }
                 if (syncMessage.getVerified().isPresent()) {
-                    final VerifiedMessage verifiedMessage = syncMessage.getVerified().get();
+                    final var verifiedMessage = syncMessage.getVerified().get();
                     account.getSignalProtocolStore()
                             .setIdentityTrustLevel(resolveSignalServiceAddress(verifiedMessage.getDestination()),
                                     verifiedMessage.getIdentityKey(),
                                     TrustLevel.fromVerifiedState(verifiedMessage.getVerified()));
                 }
                 if (syncMessage.getStickerPackOperations().isPresent()) {
-                    final List<StickerPackOperationMessage> stickerPackOperationMessages = syncMessage.getStickerPackOperations()
-                            .get();
-                    for (StickerPackOperationMessage m : stickerPackOperationMessages) {
+                    final var stickerPackOperationMessages = syncMessage.getStickerPackOperations().get();
+                    for (var m : stickerPackOperationMessages) {
                         if (!m.getPackId().isPresent()) {
                             continue;
                         }
-                        Sticker sticker = account.getStickerStore().getSticker(m.getPackId().get());
+                        var sticker = account.getStickerStore().getSticker(m.getPackId().get());
                         if (sticker == null) {
                             if (!m.getPackKey().isPresent()) {
                                 continue;
@@ -2085,9 +2049,9 @@ public class Manager implements Closeable {
                     }
                 }
                 if (syncMessage.getKeys().isPresent()) {
-                    final KeysMessage keysMessage = syncMessage.getKeys().get();
+                    final var keysMessage = syncMessage.getKeys().get();
                     if (keysMessage.getStorageService().isPresent()) {
-                        final StorageKey storageKey = keysMessage.getStorageService().get();
+                        final var storageKey = keysMessage.getStorageService().get();
                         account.setStorageKey(storageKey);
                     }
                 }
@@ -2144,9 +2108,9 @@ public class Manager implements Closeable {
             logger.warn("Invalid state, can't store an attachment stream.");
         }
 
-        SignalServiceAttachmentPointer pointer = attachment.asPointer();
+        var pointer = attachment.asPointer();
         if (pointer.getPreview().isPresent()) {
-            final byte[] preview = pointer.getPreview().get();
+            final var preview = pointer.getPreview().get();
             try {
                 attachmentStore.storeAttachmentPreview(pointer.getRemoteId(),
                         outputStream -> outputStream.write(preview, 0, preview.length));
@@ -2166,15 +2130,15 @@ public class Manager implements Closeable {
     private void retrieveGroupV2Avatar(
             GroupSecretParams groupSecretParams, String cdnKey, OutputStream outputStream
     ) throws IOException {
-        GroupsV2Operations.GroupOperations groupOperations = groupsV2Operations.forGroup(groupSecretParams);
+        var groupOperations = groupsV2Operations.forGroup(groupSecretParams);
 
-        File tmpFile = IOUtils.createTempFile();
+        var tmpFile = IOUtils.createTempFile();
         try (InputStream input = messageReceiver.retrieveGroupsV2ProfileAvatar(cdnKey,
                 tmpFile,
                 ServiceConfig.AVATAR_DOWNLOAD_FAILSAFE_MAX_SIZE)) {
-            byte[] encryptedData = IOUtils.readFully(input);
+            var encryptedData = IOUtils.readFully(input);
 
-            byte[] decryptedData = groupOperations.decryptAvatar(encryptedData);
+            var decryptedData = groupOperations.decryptAvatar(encryptedData);
             outputStream.write(decryptedData);
         } finally {
             try {
@@ -2190,8 +2154,8 @@ public class Manager implements Closeable {
     private void retrieveProfileAvatar(
             String avatarPath, ProfileKey profileKey, OutputStream outputStream
     ) throws IOException {
-        File tmpFile = IOUtils.createTempFile();
-        try (InputStream input = messageReceiver.retrieveProfileAvatar(avatarPath,
+        var tmpFile = IOUtils.createTempFile();
+        try (var input = messageReceiver.retrieveProfileAvatar(avatarPath,
                 tmpFile,
                 profileKey,
                 ServiceConfig.AVATAR_DOWNLOAD_FAILSAFE_MAX_SIZE)) {
@@ -2212,10 +2176,10 @@ public class Manager implements Closeable {
             final SignalServiceAttachment attachment, final OutputStream outputStream
     ) throws IOException {
         if (attachment.isPointer()) {
-            SignalServiceAttachmentPointer pointer = attachment.asPointer();
+            var pointer = attachment.asPointer();
             retrieveAttachmentPointer(pointer, outputStream);
         } else {
-            SignalServiceAttachmentStream stream = attachment.asStream();
+            var stream = attachment.asStream();
             IOUtils.copyStream(stream.getInputStream(), outputStream);
         }
     }
@@ -2223,8 +2187,8 @@ public class Manager implements Closeable {
     private void retrieveAttachmentPointer(
             SignalServiceAttachmentPointer pointer, OutputStream outputStream
     ) throws IOException {
-        File tmpFile = IOUtils.createTempFile();
-        try (InputStream input = retrieveAttachmentAsStream(pointer, tmpFile)) {
+        var tmpFile = IOUtils.createTempFile();
+        try (var input = retrieveAttachmentAsStream(pointer, tmpFile)) {
             IOUtils.copyStream(input, outputStream);
         } catch (MissingConfigurationException | InvalidMessageException e) {
             throw new IOException(e);
@@ -2246,14 +2210,14 @@ public class Manager implements Closeable {
     }
 
     void sendGroups() throws IOException, UntrustedIdentityException {
-        File groupsFile = IOUtils.createTempFile();
+        var groupsFile = IOUtils.createTempFile();
 
         try {
             try (OutputStream fos = new FileOutputStream(groupsFile)) {
-                DeviceGroupsOutputStream out = new DeviceGroupsOutputStream(fos);
-                for (GroupInfo record : getGroups()) {
+                var out = new DeviceGroupsOutputStream(fos);
+                for (var record : getGroups()) {
                     if (record instanceof GroupInfoV1) {
-                        GroupInfoV1 groupInfo = (GroupInfoV1) record;
+                        var groupInfo = (GroupInfoV1) record;
                         out.write(new DeviceGroup(groupInfo.getGroupId().serialize(),
                                 Optional.fromNullable(groupInfo.name),
                                 new ArrayList<>(groupInfo.getMembers()),
@@ -2269,8 +2233,8 @@ public class Manager implements Closeable {
             }
 
             if (groupsFile.exists() && groupsFile.length() > 0) {
-                try (FileInputStream groupsFileStream = new FileInputStream(groupsFile)) {
-                    SignalServiceAttachmentStream attachmentStream = SignalServiceAttachment.newStreamBuilder()
+                try (var groupsFileStream = new FileInputStream(groupsFile)) {
+                    var attachmentStream = SignalServiceAttachment.newStreamBuilder()
                             .withStream(groupsFileStream)
                             .withContentType("application/octet-stream")
                             .withLength(groupsFile.length())
@@ -2289,14 +2253,14 @@ public class Manager implements Closeable {
     }
 
     public void sendContacts() throws IOException, UntrustedIdentityException {
-        File contactsFile = IOUtils.createTempFile();
+        var contactsFile = IOUtils.createTempFile();
 
         try {
             try (OutputStream fos = new FileOutputStream(contactsFile)) {
-                DeviceContactsOutputStream out = new DeviceContactsOutputStream(fos);
-                for (ContactInfo record : account.getContactStore().getContacts()) {
+                var out = new DeviceContactsOutputStream(fos);
+                for (var record : account.getContactStore().getContacts()) {
                     VerifiedMessage verifiedMessage = null;
-                    IdentityInfo currentIdentity = account.getSignalProtocolStore().getIdentity(record.getAddress());
+                    var currentIdentity = account.getSignalProtocolStore().getIdentity(record.getAddress());
                     if (currentIdentity != null) {
                         verifiedMessage = new VerifiedMessage(record.getAddress(),
                                 currentIdentity.getIdentityKey(),
@@ -2304,7 +2268,7 @@ public class Manager implements Closeable {
                                 currentIdentity.getDateAdded().getTime());
                     }
 
-                    ProfileKey profileKey = account.getProfileStore().getProfileKey(record.getAddress());
+                    var profileKey = account.getProfileStore().getProfileKey(record.getAddress());
                     out.write(new DeviceContact(record.getAddress(),
                             Optional.fromNullable(record.name),
                             createContactAvatarAttachment(record.getAddress()),
@@ -2333,8 +2297,8 @@ public class Manager implements Closeable {
             }
 
             if (contactsFile.exists() && contactsFile.length() > 0) {
-                try (FileInputStream contactsFileStream = new FileInputStream(contactsFile)) {
-                    SignalServiceAttachmentStream attachmentStream = SignalServiceAttachment.newStreamBuilder()
+                try (var contactsFileStream = new FileInputStream(contactsFile)) {
+                    var attachmentStream = SignalServiceAttachment.newStreamBuilder()
                             .withStream(contactsFileStream)
                             .withContentType("application/octet-stream")
                             .withLength(contactsFile.length())
@@ -2353,14 +2317,14 @@ public class Manager implements Closeable {
     }
 
     void sendBlockedList() throws IOException, UntrustedIdentityException {
-        List<SignalServiceAddress> addresses = new ArrayList<>();
-        for (ContactInfo record : account.getContactStore().getContacts()) {
+        var addresses = new ArrayList<SignalServiceAddress>();
+        for (var record : account.getContactStore().getContacts()) {
             if (record.blocked) {
                 addresses.add(record.getAddress());
             }
         }
-        List<byte[]> groupIds = new ArrayList<>();
-        for (GroupInfo record : getGroups()) {
+        var groupIds = new ArrayList<byte[]>();
+        for (var record : getGroups()) {
             if (record.isBlocked()) {
                 groupIds.add(record.getGroupId().serialize());
             }
@@ -2371,7 +2335,7 @@ public class Manager implements Closeable {
     private void sendVerifiedMessage(
             SignalServiceAddress destination, IdentityKey identityKey, TrustLevel trustLevel
     ) throws IOException, UntrustedIdentityException {
-        VerifiedMessage verifiedMessage = new VerifiedMessage(destination,
+        var verifiedMessage = new VerifiedMessage(destination,
                 identityKey,
                 trustLevel.toVerifiedState(),
                 System.currentTimeMillis());
@@ -2383,14 +2347,14 @@ public class Manager implements Closeable {
     }
 
     public String getContactOrProfileName(String number) {
-        final SignalServiceAddress address = Utils.getSignalServiceAddressFromIdentifier(number);
+        final var address = Utils.getSignalServiceAddressFromIdentifier(number);
 
-        final ContactInfo contact = account.getContactStore().getContact(address);
+        final var contact = account.getContactStore().getContact(address);
         if (contact != null && !Util.isEmpty(contact.name)) {
             return contact.name;
         }
 
-        final SignalProfileEntry profileEntry = account.getProfileStore().getProfileEntry(address);
+        final var profileEntry = account.getProfileStore().getProfileEntry(address);
         if (profileEntry != null && profileEntry.getProfile() != null) {
             return profileEntry.getProfile().getName();
         }
@@ -2399,9 +2363,9 @@ public class Manager implements Closeable {
     }
 
     public GroupInfo getGroup(GroupId groupId) {
-        final GroupInfo group = account.getGroupStore().getGroup(groupId);
+        final var group = account.getGroupStore().getGroup(groupId);
         if (group instanceof GroupInfoV2 && ((GroupInfoV2) group).getGroup() == null) {
-            final GroupSecretParams groupSecretParams = GroupSecretParams.deriveFromMasterKey(((GroupInfoV2) group).getMasterKey());
+            final var groupSecretParams = GroupSecretParams.deriveFromMasterKey(((GroupInfoV2) group).getMasterKey());
             ((GroupInfoV2) group).setGroup(groupHelper.getDecryptedGroup(groupSecretParams));
             account.getGroupStore().updateGroup(group);
         }
@@ -2423,12 +2387,12 @@ public class Manager implements Closeable {
      * @param fingerprint Fingerprint
      */
     public boolean trustIdentityVerified(String name, byte[] fingerprint) throws InvalidNumberException {
-        SignalServiceAddress address = canonicalizeAndResolveSignalServiceAddress(name);
-        List<IdentityInfo> ids = account.getSignalProtocolStore().getIdentities(address);
+        var address = canonicalizeAndResolveSignalServiceAddress(name);
+        var ids = account.getSignalProtocolStore().getIdentities(address);
         if (ids == null) {
             return false;
         }
-        for (IdentityInfo id : ids) {
+        for (var id : ids) {
             if (!Arrays.equals(id.getIdentityKey().serialize(), fingerprint)) {
                 continue;
             }
@@ -2453,12 +2417,12 @@ public class Manager implements Closeable {
      * @param safetyNumber Safety number
      */
     public boolean trustIdentityVerifiedSafetyNumber(String name, String safetyNumber) throws InvalidNumberException {
-        SignalServiceAddress address = canonicalizeAndResolveSignalServiceAddress(name);
-        List<IdentityInfo> ids = account.getSignalProtocolStore().getIdentities(address);
+        var address = canonicalizeAndResolveSignalServiceAddress(name);
+        var ids = account.getSignalProtocolStore().getIdentities(address);
         if (ids == null) {
             return false;
         }
-        for (IdentityInfo id : ids) {
+        for (var id : ids) {
             if (!safetyNumber.equals(computeSafetyNumber(address, id.getIdentityKey()))) {
                 continue;
             }
@@ -2482,12 +2446,12 @@ public class Manager implements Closeable {
      * @param name username of the identity
      */
     public boolean trustIdentityAllKeys(String name) {
-        SignalServiceAddress address = resolveSignalServiceAddress(name);
-        List<IdentityInfo> ids = account.getSignalProtocolStore().getIdentities(address);
+        var address = resolveSignalServiceAddress(name);
+        var ids = account.getSignalProtocolStore().getIdentities(address);
         if (ids == null) {
             return false;
         }
-        for (IdentityInfo id : ids) {
+        for (var id : ids) {
             if (id.getTrustLevel() == TrustLevel.UNTRUSTED) {
                 account.getSignalProtocolStore()
                         .setIdentityTrustLevel(address, id.getIdentityKey(), TrustLevel.TRUSTED_UNVERIFIED);
@@ -2513,14 +2477,14 @@ public class Manager implements Closeable {
     }
 
     public SignalServiceAddress canonicalizeAndResolveSignalServiceAddress(String identifier) throws InvalidNumberException {
-        String canonicalizedNumber = UuidUtil.isUuid(identifier)
+        var canonicalizedNumber = UuidUtil.isUuid(identifier)
                 ? identifier
                 : PhoneNumberFormatter.formatNumber(identifier, account.getUsername());
         return resolveSignalServiceAddress(canonicalizedNumber);
     }
 
     public SignalServiceAddress resolveSignalServiceAddress(String identifier) {
-        SignalServiceAddress address = Utils.getSignalServiceAddressFromIdentifier(identifier);
+        var address = Utils.getSignalServiceAddressFromIdentifier(identifier);
 
         return resolveSignalServiceAddress(address);
     }
index f48ade7c4711454b5be0eee4310773f5cb17dd00..0ce43bb9c0a0c9058a7018fd3ccf7b84178dbc58 100644 (file)
@@ -79,37 +79,30 @@ public class ProvisioningManager {
     public static ProvisioningManager init(
             File settingsPath, ServiceEnvironment serviceEnvironment, String userAgent
     ) {
-        PathConfig pathConfig = PathConfig.createDefault(settingsPath);
+        var pathConfig = PathConfig.createDefault(settingsPath);
 
-        final ServiceEnvironmentConfig serviceConfiguration = ServiceConfig.getServiceEnvironmentConfig(
-                serviceEnvironment,
-                userAgent);
+        final var serviceConfiguration = ServiceConfig.getServiceEnvironmentConfig(serviceEnvironment, userAgent);
 
         return new ProvisioningManager(pathConfig, serviceConfiguration, userAgent);
     }
 
     public String getDeviceLinkUri() throws TimeoutException, IOException {
-        String deviceUuid = accountManager.getNewDeviceUuid();
+        var deviceUuid = accountManager.getNewDeviceUuid();
 
         return new DeviceLinkInfo(deviceUuid, identityKey.getPublicKey().getPublicKey()).createDeviceLinkUri();
     }
 
     public String finishDeviceLink(String deviceName) throws IOException, InvalidKeyException, TimeoutException, UserAlreadyExists {
-        SignalServiceAccountManager.NewDeviceRegistrationReturn ret = accountManager.finishNewDeviceRegistration(
-                identityKey,
-                false,
-                true,
-                registrationId,
-                deviceName);
+        var ret = accountManager.finishNewDeviceRegistration(identityKey, false, true, registrationId, deviceName);
 
-        String username = ret.getNumber();
+        var username = ret.getNumber();
         // TODO do this check before actually registering
         if (SignalAccount.userExists(pathConfig.getDataPath(), username)) {
             throw new UserAlreadyExists(username, SignalAccount.getFileName(pathConfig.getDataPath(), username));
         }
 
         // Create new account with the synced identity
-        byte[] profileKeyBytes = ret.getProfileKey();
+        var profileKeyBytes = ret.getProfileKey();
         ProfileKey profileKey;
         if (profileKeyBytes == null) {
             profileKey = KeyUtils.createProfileKey();
@@ -121,7 +114,7 @@ public class ProvisioningManager {
             }
         }
 
-        try (SignalAccount account = SignalAccount.createLinkedAccount(pathConfig.getDataPath(),
+        try (var account = SignalAccount.createLinkedAccount(pathConfig.getDataPath(),
                 username,
                 ret.getUuid(),
                 password,
@@ -131,7 +124,7 @@ public class ProvisioningManager {
                 profileKey)) {
             account.save();
 
-            try (Manager m = new Manager(account, pathConfig, serviceEnvironmentConfig, userAgent)) {
+            try (var m = new Manager(account, pathConfig, serviceEnvironmentConfig, userAgent)) {
 
                 try {
                     m.refreshPreKeys();
index baff204743d7457fe59a8ff22bbecdacdc2b73c4..6ded4d0bb550ae0e8abdabe91270135df6634193 100644 (file)
@@ -22,12 +22,8 @@ import org.asamk.signal.manager.config.ServiceEnvironmentConfig;
 import org.asamk.signal.manager.helper.PinHelper;
 import org.asamk.signal.manager.storage.SignalAccount;
 import org.asamk.signal.manager.util.KeyUtils;
-import org.signal.zkgroup.profiles.ProfileKey;
-import org.whispersystems.libsignal.IdentityKeyPair;
 import org.whispersystems.libsignal.util.KeyHelper;
 import org.whispersystems.libsignal.util.guava.Optional;
-import org.whispersystems.signalservice.api.KbsPinData;
-import org.whispersystems.signalservice.api.KeyBackupService;
 import org.whispersystems.signalservice.api.KeyBackupServicePinException;
 import org.whispersystems.signalservice.api.KeyBackupSystemNoDataException;
 import org.whispersystems.signalservice.api.SignalServiceAccountManager;
@@ -82,7 +78,7 @@ public class RegistrationManager implements Closeable {
                 groupsV2Operations,
                 ServiceConfig.AUTOMATIC_NETWORK_RETRY,
                 timer);
-        final KeyBackupService keyBackupService = accountManager.getKeyBackupService(ServiceConfig.getIasKeyStore(),
+        final var keyBackupService = accountManager.getKeyBackupService(ServiceConfig.getIasKeyStore(),
                 serviceEnvironmentConfig.getKeyBackupConfig().getEnclaveName(),
                 serviceEnvironmentConfig.getKeyBackupConfig().getServiceId(),
                 serviceEnvironmentConfig.getKeyBackupConfig().getMrenclave(),
@@ -93,17 +89,15 @@ public class RegistrationManager implements Closeable {
     public static RegistrationManager init(
             String username, File settingsPath, ServiceEnvironment serviceEnvironment, String userAgent
     ) throws IOException {
-        PathConfig pathConfig = PathConfig.createDefault(settingsPath);
+        var pathConfig = PathConfig.createDefault(settingsPath);
 
-        final ServiceEnvironmentConfig serviceConfiguration = ServiceConfig.getServiceEnvironmentConfig(
-                serviceEnvironment,
-                userAgent);
+        final var serviceConfiguration = ServiceConfig.getServiceEnvironmentConfig(serviceEnvironment, userAgent);
         if (!SignalAccount.userExists(pathConfig.getDataPath(), username)) {
-            IdentityKeyPair identityKey = KeyUtils.generateIdentityKeyPair();
-            int registrationId = KeyHelper.generateRegistrationId(false);
+            var identityKey = KeyUtils.generateIdentityKeyPair();
+            var registrationId = KeyHelper.generateRegistrationId(false);
 
-            ProfileKey profileKey = KeyUtils.createProfileKey();
-            SignalAccount account = SignalAccount.create(pathConfig.getDataPath(),
+            var profileKey = KeyUtils.createProfileKey();
+            var account = SignalAccount.create(pathConfig.getDataPath(),
                     username,
                     identityKey,
                     registrationId,
@@ -113,7 +107,7 @@ public class RegistrationManager implements Closeable {
             return new RegistrationManager(account, pathConfig, serviceConfiguration, userAgent);
         }
 
-        SignalAccount account = SignalAccount.load(pathConfig.getDataPath(), username);
+        var account = SignalAccount.load(pathConfig.getDataPath(), username);
 
         return new RegistrationManager(account, pathConfig, serviceConfiguration, userAgent);
     }
@@ -147,12 +141,12 @@ public class RegistrationManager implements Closeable {
                 throw e;
             }
 
-            KbsPinData registrationLockData = pinHelper.getRegistrationLockData(pin, e);
+            var registrationLockData = pinHelper.getRegistrationLockData(pin, e);
             if (registrationLockData == null) {
                 throw e;
             }
 
-            String registrationLock = registrationLockData.getMasterKey().deriveRegistrationLock();
+            var registrationLock = registrationLockData.getMasterKey().deriveRegistrationLock();
             try {
                 response = verifyAccountWithCode(verificationCode, null, registrationLock);
             } catch (LockedException _e) {
@@ -175,7 +169,7 @@ public class RegistrationManager implements Closeable {
                         account.getSignalProtocolStore().getIdentityKeyPair().getPublicKey(),
                         TrustLevel.TRUSTED_VERIFIED);
 
-        try (Manager m = new Manager(account, pathConfig, serviceEnvironmentConfig, userAgent)) {
+        try (var m = new Manager(account, pathConfig, serviceEnvironmentConfig, userAgent)) {
 
             m.refreshPreKeys();
 
index 0b83f53e753edd8493153f83959983b22cb15473..4cf8653786ca024bc7301f93499ab46fd31d36d9 100644 (file)
@@ -39,7 +39,7 @@ public class ServiceConfig {
         try {
             TrustStore contactTrustStore = new IasTrustStore();
 
-            KeyStore keyStore = KeyStore.getInstance("BKS");
+            var keyStore = KeyStore.getInstance("BKS");
             keyStore.load(contactTrustStore.getKeyStoreInputStream(),
                     contactTrustStore.getKeyStorePassword().toCharArray());
 
@@ -74,7 +74,7 @@ public class ServiceConfig {
                 .header("User-Agent", userAgent)
                 .build());
 
-        final List<Interceptor> interceptors = List.of(userAgentInterceptor);
+        final var interceptors = List.of(userAgentInterceptor);
 
         switch (serviceEnvironment) {
             case LIVE:
index 5c5d639ccd0f21a6441db6053cf674b0ef6bb873..9ecb963092dba37fc4c05aab9ec892ab2f05bdb5 100644 (file)
@@ -50,7 +50,7 @@ public abstract class GroupId {
         if (this == o) return true;
         if (o == null || getClass() != o.getClass()) return false;
 
-        final GroupId groupId = (GroupId) o;
+        final var groupId = (GroupId) o;
 
         return Arrays.equals(id, groupId.id);
     }
index bf9e0e55c633c56454f3fffa44607c0cc9237ad3..dd9dd2d265434ff639ed53b55196f1ee0c2de2ae 100644 (file)
@@ -35,7 +35,7 @@ public final class GroupInviteLinkUrl {
      * @throws InvalidGroupLinkException If group url, but cannot be parsed.
      */
     public static GroupInviteLinkUrl fromUri(String urlString) throws InvalidGroupLinkException, UnknownGroupLinkVersionException {
-        URI uri = getGroupUrl(urlString);
+        var uri = getGroupUrl(urlString);
 
         if (uri == null) {
             return null;
@@ -46,21 +46,21 @@ public final class GroupInviteLinkUrl {
                 throw new InvalidGroupLinkException("No path was expected in uri");
             }
 
-            String encoding = uri.getFragment();
+            var encoding = uri.getFragment();
 
             if (encoding == null || encoding.length() == 0) {
                 throw new InvalidGroupLinkException("No reference was in the uri");
             }
 
-            byte[] bytes = Base64UrlSafe.decodePaddingAgnostic(encoding);
-            GroupInviteLink groupInviteLink = GroupInviteLink.parseFrom(bytes);
+            var bytes = Base64UrlSafe.decodePaddingAgnostic(encoding);
+            var groupInviteLink = GroupInviteLink.parseFrom(bytes);
 
             switch (groupInviteLink.getContentsCase()) {
                 case V1CONTENTS: {
-                    GroupInviteLink.GroupInviteLinkContentsV1 groupInviteLinkContentsV1 = groupInviteLink.getV1Contents();
-                    GroupMasterKey groupMasterKey = new GroupMasterKey(groupInviteLinkContentsV1.getGroupMasterKey()
+                    var groupInviteLinkContentsV1 = groupInviteLink.getV1Contents();
+                    var groupMasterKey = new GroupMasterKey(groupInviteLinkContentsV1.getGroupMasterKey()
                             .toByteArray());
-                    GroupLinkPassword password = GroupLinkPassword.fromBytes(groupInviteLinkContentsV1.getInviteLinkPassword()
+                    var password = GroupLinkPassword.fromBytes(groupInviteLinkContentsV1.getInviteLinkPassword()
                             .toByteArray());
 
                     return new GroupInviteLinkUrl(groupMasterKey, password);
@@ -78,7 +78,7 @@ public final class GroupInviteLinkUrl {
      */
     private static URI getGroupUrl(String urlString) {
         try {
-            URI url = new URI(urlString);
+            var url = new URI(urlString);
 
             if (!"https".equalsIgnoreCase(url.getScheme()) && !"sgnl".equalsIgnoreCase(url.getScheme())) {
                 return null;
@@ -97,13 +97,13 @@ public final class GroupInviteLinkUrl {
     }
 
     protected static String createUrl(GroupMasterKey groupMasterKey, GroupLinkPassword password) {
-        GroupInviteLink groupInviteLink = GroupInviteLink.newBuilder()
+        var groupInviteLink = GroupInviteLink.newBuilder()
                 .setV1Contents(GroupInviteLink.GroupInviteLinkContentsV1.newBuilder()
                         .setGroupMasterKey(ByteString.copyFrom(groupMasterKey.serialize()))
                         .setInviteLinkPassword(ByteString.copyFrom(password.serialize())))
                 .build();
 
-        String encoding = Base64UrlSafe.encodeBytesWithoutPadding(groupInviteLink.toByteArray());
+        var encoding = Base64UrlSafe.encodeBytesWithoutPadding(groupInviteLink.toByteArray());
 
         return GROUP_URL_PREFIX + encoding;
     }
index f56639e319ba28e9f7029fd05aecd9bcb56a8f6a..c1db77bfd25ae4e1b6ad162e74efd20c89d23d11 100644 (file)
@@ -18,13 +18,13 @@ public class GroupUtils {
             final SignalServiceDataMessage.Builder messageBuilder, final GroupInfo groupInfo
     ) {
         if (groupInfo instanceof GroupInfoV1) {
-            SignalServiceGroup group = SignalServiceGroup.newBuilder(SignalServiceGroup.Type.DELIVER)
+            var group = SignalServiceGroup.newBuilder(SignalServiceGroup.Type.DELIVER)
                     .withId(groupInfo.getGroupId().serialize())
                     .build();
             messageBuilder.asGroupMessage(group);
         } else {
-            final GroupInfoV2 groupInfoV2 = (GroupInfoV2) groupInfo;
-            SignalServiceGroupV2 group = SignalServiceGroupV2.newBuilder(groupInfoV2.getMasterKey())
+            final var groupInfoV2 = (GroupInfoV2) groupInfo;
+            var group = SignalServiceGroupV2.newBuilder(groupInfoV2.getMasterKey())
                     .withRevision(groupInfoV2.getGroup() == null ? 0 : groupInfoV2.getGroup().getRevision())
                     .build();
             messageBuilder.asGroupMessage(group);
@@ -46,13 +46,12 @@ public class GroupUtils {
     }
 
     public static GroupIdV2 getGroupIdV2(GroupMasterKey groupMasterKey) {
-        final GroupSecretParams groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupMasterKey);
+        final var groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupMasterKey);
         return getGroupIdV2(groupSecretParams);
     }
 
     public static GroupIdV2 getGroupIdV2(GroupIdV1 groupIdV1) {
-        final GroupSecretParams groupSecretParams = GroupSecretParams.deriveFromMasterKey(deriveV2MigrationMasterKey(
-                groupIdV1));
+        final var groupSecretParams = GroupSecretParams.deriveFromMasterKey(deriveV2MigrationMasterKey(groupIdV1));
         return getGroupIdV2(groupSecretParams);
     }
 
index d39da8a3fa20b10cbaaf8dc8bb269b8e7706d746..2efc18adbc13daf7a660f32c3e7e1807263d95a2 100644 (file)
@@ -2,7 +2,6 @@ package org.asamk.signal.manager.helper;
 
 import com.google.protobuf.InvalidProtocolBufferException;
 
-import org.asamk.signal.manager.groups.GroupIdV2;
 import org.asamk.signal.manager.groups.GroupLinkPassword;
 import org.asamk.signal.manager.groups.GroupUtils;
 import org.asamk.signal.manager.storage.groups.GroupInfoV2;
@@ -20,7 +19,6 @@ import org.signal.zkgroup.VerificationFailedException;
 import org.signal.zkgroup.groups.GroupMasterKey;
 import org.signal.zkgroup.groups.GroupSecretParams;
 import org.signal.zkgroup.groups.UuidCiphertext;
-import org.signal.zkgroup.profiles.ProfileKeyCredential;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.whispersystems.libsignal.util.Pair;
@@ -41,7 +39,6 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.Collection;
-import java.util.List;
 import java.util.Set;
 import java.util.UUID;
 import java.util.stream.Collectors;
@@ -80,7 +77,7 @@ public class GroupHelper {
 
     public DecryptedGroup getDecryptedGroup(final GroupSecretParams groupSecretParams) {
         try {
-            final GroupsV2AuthorizationString groupsV2AuthorizationString = groupAuthorizationProvider.getAuthorizationForToday(
+            final var groupsV2AuthorizationString = groupAuthorizationProvider.getAuthorizationForToday(
                     groupSecretParams);
             return groupsV2Api.getGroup(groupSecretParams, groupsV2AuthorizationString);
         } catch (IOException | VerificationFailedException | InvalidGroupStateException e) {
@@ -92,7 +89,7 @@ public class GroupHelper {
     public DecryptedGroupJoinInfo getDecryptedGroupJoinInfo(
             GroupMasterKey groupMasterKey, GroupLinkPassword password
     ) throws IOException, GroupLinkNotActiveException {
-        GroupSecretParams groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupMasterKey);
+        var groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupMasterKey);
 
         return groupsV2Api.getGroupJoinInfo(groupSecretParams,
                 Optional.fromNullable(password).transform(GroupLinkPassword::serialize),
@@ -102,13 +99,13 @@ public class GroupHelper {
     public GroupInfoV2 createGroupV2(
             String name, Collection<SignalServiceAddress> members, File avatarFile
     ) throws IOException {
-        final byte[] avatarBytes = readAvatarBytes(avatarFile);
-        final GroupsV2Operations.NewGroup newGroup = buildNewGroupV2(name, members, avatarBytes);
+        final var avatarBytes = readAvatarBytes(avatarFile);
+        final var newGroup = buildNewGroupV2(name, members, avatarBytes);
         if (newGroup == null) {
             return null;
         }
 
-        final GroupSecretParams groupSecretParams = newGroup.getGroupSecretParams();
+        final var groupSecretParams = newGroup.getGroupSecretParams();
 
         final GroupsV2AuthorizationString groupAuthForToday;
         final DecryptedGroup decryptedGroup;
@@ -125,9 +122,9 @@ public class GroupHelper {
             return null;
         }
 
-        final GroupIdV2 groupId = GroupUtils.getGroupIdV2(groupSecretParams);
-        final GroupMasterKey masterKey = groupSecretParams.getMasterKey();
-        GroupInfoV2 g = new GroupInfoV2(groupId, masterKey);
+        final var groupId = GroupUtils.getGroupIdV2(groupSecretParams);
+        final var masterKey = groupSecretParams.getMasterKey();
+        var g = new GroupInfoV2(groupId, masterKey);
         g.setGroup(decryptedGroup);
 
         return g;
@@ -144,8 +141,7 @@ public class GroupHelper {
     private GroupsV2Operations.NewGroup buildNewGroupV2(
             String name, Collection<SignalServiceAddress> members, byte[] avatar
     ) {
-        final ProfileKeyCredential profileKeyCredential = profileKeyCredentialProvider.getProfileKeyCredential(
-                selfAddressProvider.getSelfAddress());
+        final var profileKeyCredential = profileKeyCredentialProvider.getProfileKeyCredential(selfAddressProvider.getSelfAddress());
         if (profileKeyCredential == null) {
             logger.warn("Cannot create a V2 group as self does not have a versioned profile");
             return null;
@@ -153,14 +149,14 @@ public class GroupHelper {
 
         if (!areMembersValid(members)) return null;
 
-        GroupCandidate self = new GroupCandidate(selfAddressProvider.getSelfAddress().getUuid().orNull(),
+        var self = new GroupCandidate(selfAddressProvider.getSelfAddress().getUuid().orNull(),
                 Optional.fromNullable(profileKeyCredential));
-        Set<GroupCandidate> candidates = members.stream()
+        var candidates = members.stream()
                 .map(member -> new GroupCandidate(member.getUuid().get(),
                         Optional.fromNullable(profileKeyCredentialProvider.getProfileKeyCredential(member))))
                 .collect(Collectors.toSet());
 
-        final GroupSecretParams groupSecretParams = GroupSecretParams.generate();
+        final var groupSecretParams = GroupSecretParams.generate();
         return groupsV2Operations.createNewGroup(groupSecretParams,
                 name,
                 Optional.fromNullable(avatar),
@@ -171,7 +167,7 @@ public class GroupHelper {
     }
 
     private boolean areMembersValid(final Collection<SignalServiceAddress> members) {
-        final Set<String> noUuidCapability = members.stream()
+        final var noUuidCapability = members.stream()
                 .filter(address -> !address.getUuid().isPresent())
                 .map(SignalServiceAddress::getLegacyIdentifier)
                 .collect(Collectors.toSet());
@@ -181,7 +177,7 @@ public class GroupHelper {
             return false;
         }
 
-        final Set<SignalProfile> noGv2Capability = members.stream()
+        final var noGv2Capability = members.stream()
                 .map(profileProvider::getProfile)
                 .filter(profile -> profile != null && !profile.getCapabilities().gv2)
                 .collect(Collectors.toSet());
@@ -197,22 +193,20 @@ public class GroupHelper {
     public Pair<DecryptedGroup, GroupChange> updateGroupV2(
             GroupInfoV2 groupInfoV2, String name, File avatarFile
     ) throws IOException {
-        final GroupSecretParams groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupInfoV2.getMasterKey());
-        GroupsV2Operations.GroupOperations groupOperations = groupsV2Operations.forGroup(groupSecretParams);
+        final var groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupInfoV2.getMasterKey());
+        var groupOperations = groupsV2Operations.forGroup(groupSecretParams);
 
-        GroupChange.Actions.Builder change = name != null
-                ? groupOperations.createModifyGroupTitle(name)
-                : GroupChange.Actions.newBuilder();
+        var change = name != null ? groupOperations.createModifyGroupTitle(name) : GroupChange.Actions.newBuilder();
 
         if (avatarFile != null) {
-            final byte[] avatarBytes = readAvatarBytes(avatarFile);
-            String avatarCdnKey = groupsV2Api.uploadAvatar(avatarBytes,
+            final var avatarBytes = readAvatarBytes(avatarFile);
+            var avatarCdnKey = groupsV2Api.uploadAvatar(avatarBytes,
                     groupSecretParams,
                     groupAuthorizationProvider.getAuthorizationForToday(groupSecretParams));
             change.setModifyAvatar(GroupChange.Actions.ModifyAvatarAction.newBuilder().setAvatar(avatarCdnKey));
         }
 
-        final Optional<UUID> uuid = this.selfAddressProvider.getSelfAddress().getUuid();
+        final var uuid = this.selfAddressProvider.getSelfAddress().getUuid();
         if (uuid.isPresent()) {
             change.setSourceUuid(UuidUtil.toByteString(uuid.get()));
         }
@@ -223,22 +217,22 @@ public class GroupHelper {
     public Pair<DecryptedGroup, GroupChange> updateGroupV2(
             GroupInfoV2 groupInfoV2, Set<SignalServiceAddress> newMembers
     ) throws IOException {
-        final GroupSecretParams groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupInfoV2.getMasterKey());
-        GroupsV2Operations.GroupOperations groupOperations = groupsV2Operations.forGroup(groupSecretParams);
+        final var groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupInfoV2.getMasterKey());
+        var groupOperations = groupsV2Operations.forGroup(groupSecretParams);
 
         if (!areMembersValid(newMembers)) {
             throw new IOException("Failed to update group");
         }
 
-        Set<GroupCandidate> candidates = newMembers.stream()
+        var candidates = newMembers.stream()
                 .map(member -> new GroupCandidate(member.getUuid().get(),
                         Optional.fromNullable(profileKeyCredentialProvider.getProfileKeyCredential(member))))
                 .collect(Collectors.toSet());
 
-        final GroupChange.Actions.Builder change = groupOperations.createModifyGroupMembershipChange(candidates,
+        final var change = groupOperations.createModifyGroupMembershipChange(candidates,
                 selfAddressProvider.getSelfAddress().getUuid().get());
 
-        final Optional<UUID> uuid = this.selfAddressProvider.getSelfAddress().getUuid();
+        final var uuid = this.selfAddressProvider.getSelfAddress().getUuid();
         if (uuid.isPresent()) {
             change.setSourceUuid(UuidUtil.toByteString(uuid.get()));
         }
@@ -247,10 +241,9 @@ public class GroupHelper {
     }
 
     public Pair<DecryptedGroup, GroupChange> leaveGroup(GroupInfoV2 groupInfoV2) throws IOException {
-        List<DecryptedPendingMember> pendingMembersList = groupInfoV2.getGroup().getPendingMembersList();
-        final UUID selfUuid = selfAddressProvider.getSelfAddress().getUuid().get();
-        Optional<DecryptedPendingMember> selfPendingMember = DecryptedGroupUtil.findPendingByUuid(pendingMembersList,
-                selfUuid);
+        var pendingMembersList = groupInfoV2.getGroup().getPendingMembersList();
+        final var selfUuid = selfAddressProvider.getSelfAddress().getUuid().get();
+        var selfPendingMember = DecryptedGroupUtil.findPendingByUuid(pendingMembersList, selfUuid);
 
         if (selfPendingMember.isPresent()) {
             return revokeInvites(groupInfoV2, Set.of(selfPendingMember.get()));
@@ -264,19 +257,17 @@ public class GroupHelper {
             GroupLinkPassword groupLinkPassword,
             DecryptedGroupJoinInfo decryptedGroupJoinInfo
     ) throws IOException {
-        final GroupSecretParams groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupMasterKey);
-        final GroupsV2Operations.GroupOperations groupOperations = groupsV2Operations.forGroup(groupSecretParams);
+        final var groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupMasterKey);
+        final var groupOperations = groupsV2Operations.forGroup(groupSecretParams);
 
-        final SignalServiceAddress selfAddress = this.selfAddressProvider.getSelfAddress();
-        final ProfileKeyCredential profileKeyCredential = profileKeyCredentialProvider.getProfileKeyCredential(
-                selfAddress);
+        final var selfAddress = this.selfAddressProvider.getSelfAddress();
+        final var profileKeyCredential = profileKeyCredentialProvider.getProfileKeyCredential(selfAddress);
         if (profileKeyCredential == null) {
             throw new IOException("Cannot join a V2 group as self does not have a versioned profile");
         }
 
-        boolean requestToJoin = decryptedGroupJoinInfo.getAddFromInviteLink()
-                == AccessControl.AccessRequired.ADMINISTRATOR;
-        GroupChange.Actions.Builder change = requestToJoin
+        var requestToJoin = decryptedGroupJoinInfo.getAddFromInviteLink() == AccessControl.AccessRequired.ADMINISTRATOR;
+        var change = requestToJoin
                 ? groupOperations.createGroupJoinRequest(profileKeyCredential)
                 : groupOperations.createGroupJoinDirect(profileKeyCredential);
 
@@ -286,19 +277,18 @@ public class GroupHelper {
     }
 
     public Pair<DecryptedGroup, GroupChange> acceptInvite(GroupInfoV2 groupInfoV2) throws IOException {
-        final GroupSecretParams groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupInfoV2.getMasterKey());
-        final GroupsV2Operations.GroupOperations groupOperations = groupsV2Operations.forGroup(groupSecretParams);
+        final var groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupInfoV2.getMasterKey());
+        final var groupOperations = groupsV2Operations.forGroup(groupSecretParams);
 
-        final SignalServiceAddress selfAddress = this.selfAddressProvider.getSelfAddress();
-        final ProfileKeyCredential profileKeyCredential = profileKeyCredentialProvider.getProfileKeyCredential(
-                selfAddress);
+        final var selfAddress = this.selfAddressProvider.getSelfAddress();
+        final var profileKeyCredential = profileKeyCredentialProvider.getProfileKeyCredential(selfAddress);
         if (profileKeyCredential == null) {
             throw new IOException("Cannot join a V2 group as self does not have a versioned profile");
         }
 
-        final GroupChange.Actions.Builder change = groupOperations.createAcceptInviteChange(profileKeyCredential);
+        final var change = groupOperations.createAcceptInviteChange(profileKeyCredential);
 
-        final Optional<UUID> uuid = selfAddress.getUuid();
+        final var uuid = selfAddress.getUuid();
         if (uuid.isPresent()) {
             change.setSourceUuid(UuidUtil.toByteString(uuid.get()));
         }
@@ -309,9 +299,9 @@ public class GroupHelper {
     public Pair<DecryptedGroup, GroupChange> revokeInvites(
             GroupInfoV2 groupInfoV2, Set<DecryptedPendingMember> pendingMembers
     ) throws IOException {
-        final GroupSecretParams groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupInfoV2.getMasterKey());
-        final GroupsV2Operations.GroupOperations groupOperations = groupsV2Operations.forGroup(groupSecretParams);
-        final Set<UuidCiphertext> uuidCipherTexts = pendingMembers.stream().map(member -> {
+        final var groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupInfoV2.getMasterKey());
+        final var groupOperations = groupsV2Operations.forGroup(groupSecretParams);
+        final var uuidCipherTexts = pendingMembers.stream().map(member -> {
             try {
                 return new UuidCiphertext(member.getUuidCipherText().toByteArray());
             } catch (InvalidInputException e) {
@@ -322,19 +312,19 @@ public class GroupHelper {
     }
 
     public Pair<DecryptedGroup, GroupChange> ejectMembers(GroupInfoV2 groupInfoV2, Set<UUID> uuids) throws IOException {
-        final GroupSecretParams groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupInfoV2.getMasterKey());
-        final GroupsV2Operations.GroupOperations groupOperations = groupsV2Operations.forGroup(groupSecretParams);
+        final var groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupInfoV2.getMasterKey());
+        final var groupOperations = groupsV2Operations.forGroup(groupSecretParams);
         return commitChange(groupInfoV2, groupOperations.createRemoveMembersChange(uuids));
     }
 
     private Pair<DecryptedGroup, GroupChange> commitChange(
             GroupInfoV2 groupInfoV2, GroupChange.Actions.Builder change
     ) throws IOException {
-        final GroupSecretParams groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupInfoV2.getMasterKey());
-        final GroupsV2Operations.GroupOperations groupOperations = groupsV2Operations.forGroup(groupSecretParams);
-        final DecryptedGroup previousGroupState = groupInfoV2.getGroup();
-        final int nextRevision = previousGroupState.getRevision() + 1;
-        final GroupChange.Actions changeActions = change.setRevision(nextRevision).build();
+        final var groupSecretParams = GroupSecretParams.deriveFromMasterKey(groupInfoV2.getMasterKey());
+        final var groupOperations = groupsV2Operations.forGroup(groupSecretParams);
+        final var previousGroupState = groupInfoV2.getGroup();
+        final var nextRevision = previousGroupState.getRevision() + 1;
+        final var changeActions = change.setRevision(nextRevision).build();
         final DecryptedGroupChange decryptedChange;
         final DecryptedGroup decryptedGroupState;
 
@@ -346,7 +336,7 @@ public class GroupHelper {
             throw new IOException(e);
         }
 
-        GroupChange signedGroupChange = groupsV2Api.patchGroup(changeActions,
+        var signedGroupChange = groupsV2Api.patchGroup(changeActions,
                 groupAuthorizationProvider.getAuthorizationForToday(groupSecretParams),
                 Optional.absent());
 
@@ -359,8 +349,8 @@ public class GroupHelper {
             GroupChange.Actions.Builder change,
             GroupLinkPassword password
     ) throws IOException {
-        final int nextRevision = currentRevision + 1;
-        final GroupChange.Actions changeActions = change.setRevision(nextRevision).build();
+        final var nextRevision = currentRevision + 1;
+        final var changeActions = change.setRevision(nextRevision).build();
 
         return groupsV2Api.patchGroup(changeActions,
                 groupAuthorizationProvider.getAuthorizationForToday(groupSecretParams),
@@ -371,8 +361,7 @@ public class GroupHelper {
             DecryptedGroup group, byte[] signedGroupChange, GroupMasterKey groupMasterKey
     ) {
         try {
-            final DecryptedGroupChange decryptedGroupChange = getDecryptedGroupChange(signedGroupChange,
-                    groupMasterKey);
+            final var decryptedGroupChange = getDecryptedGroupChange(signedGroupChange, groupMasterKey);
             if (decryptedGroupChange == null) {
                 return null;
             }
@@ -384,8 +373,7 @@ public class GroupHelper {
 
     private DecryptedGroupChange getDecryptedGroupChange(byte[] signedGroupChange, GroupMasterKey groupMasterKey) {
         if (signedGroupChange != null) {
-            GroupsV2Operations.GroupOperations groupOperations = groupsV2Operations.forGroup(GroupSecretParams.deriveFromMasterKey(
-                    groupMasterKey));
+            var groupOperations = groupsV2Operations.forGroup(GroupSecretParams.deriveFromMasterKey(groupMasterKey));
 
             try {
                 return groupOperations.decryptChange(GroupChange.parseFrom(signedGroupChange), true).orNull();
index 090b20b63e914f97b920215a53db8e7dc2579c01..cf98c4c91463941bd7132c8dce77af42521c4057 100644 (file)
@@ -6,7 +6,6 @@ import org.whispersystems.signalservice.api.KbsPinData;
 import org.whispersystems.signalservice.api.KeyBackupService;
 import org.whispersystems.signalservice.api.KeyBackupServicePinException;
 import org.whispersystems.signalservice.api.KeyBackupSystemNoDataException;
-import org.whispersystems.signalservice.api.kbs.HashedPin;
 import org.whispersystems.signalservice.api.kbs.MasterKey;
 import org.whispersystems.signalservice.internal.contacts.crypto.UnauthenticatedResponseException;
 import org.whispersystems.signalservice.internal.contacts.entities.TokenResponse;
@@ -25,15 +24,15 @@ public class PinHelper {
     public void setRegistrationLockPin(
             String pin, MasterKey masterKey
     ) throws IOException, UnauthenticatedResponseException {
-        final KeyBackupService.PinChangeSession pinChangeSession = keyBackupService.newPinChangeSession();
-        final HashedPin hashedPin = PinHashing.hashPin(pin, pinChangeSession);
+        final var pinChangeSession = keyBackupService.newPinChangeSession();
+        final var hashedPin = PinHashing.hashPin(pin, pinChangeSession);
 
         pinChangeSession.setPin(hashedPin, masterKey);
         pinChangeSession.enableRegistrationLock(masterKey);
     }
 
     public void removeRegistrationLockPin() throws IOException, UnauthenticatedResponseException {
-        final KeyBackupService.PinChangeSession pinChangeSession = keyBackupService.newPinChangeSession();
+        final var pinChangeSession = keyBackupService.newPinChangeSession();
         pinChangeSession.disableRegistrationLock();
         pinChangeSession.removePin();
     }
@@ -41,7 +40,7 @@ public class PinHelper {
     public KbsPinData getRegistrationLockData(
             String pin, LockedException e
     ) throws IOException, KeyBackupSystemNoDataException, KeyBackupServicePinException {
-        String basicStorageCredentials = e.getBasicStorageCredentials();
+        var basicStorageCredentials = e.getBasicStorageCredentials();
         if (basicStorageCredentials == null) {
             return null;
         }
@@ -52,12 +51,12 @@ public class PinHelper {
     private KbsPinData getRegistrationLockData(
             String pin, String basicStorageCredentials
     ) throws IOException, KeyBackupSystemNoDataException, KeyBackupServicePinException {
-        TokenResponse tokenResponse = keyBackupService.getToken(basicStorageCredentials);
+        var tokenResponse = keyBackupService.getToken(basicStorageCredentials);
         if (tokenResponse == null || tokenResponse.getTries() == 0) {
             throw new IOException("KBS Account locked");
         }
 
-        KbsPinData registrationLockData = restoreMasterKey(pin, basicStorageCredentials, tokenResponse);
+        var registrationLockData = restoreMasterKey(pin, basicStorageCredentials, tokenResponse);
         if (registrationLockData == null) {
             throw new AssertionError("Failed to restore master key");
         }
@@ -73,12 +72,11 @@ public class PinHelper {
             throw new AssertionError("Cannot restore KBS key, no storage credentials supplied");
         }
 
-        KeyBackupService.RestoreSession session = keyBackupService.newRegistrationSession(basicStorageCredentials,
-                tokenResponse);
+        var session = keyBackupService.newRegistrationSession(basicStorageCredentials, tokenResponse);
 
         try {
-            HashedPin hashedPin = PinHashing.hashPin(pin, session);
-            KbsPinData kbsData = session.restorePin(hashedPin);
+            var hashedPin = PinHashing.hashPin(pin, session);
+            var kbsData = session.restorePin(hashedPin);
             if (kbsData == null) {
                 throw new AssertionError("Null not expected");
             }
index 60c47d8b93a060f6aece2d97c600907dcf306415..5411bb06549a7b7d89107ac34081211bee7b3a21 100644 (file)
@@ -2,10 +2,7 @@ package org.asamk.signal.manager.helper;
 
 import org.signal.zkgroup.profiles.ProfileKey;
 import org.whispersystems.libsignal.util.guava.Optional;
-import org.whispersystems.signalservice.api.SignalServiceMessagePipe;
-import org.whispersystems.signalservice.api.SignalServiceMessageReceiver;
 import org.whispersystems.signalservice.api.crypto.UnidentifiedAccess;
-import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair;
 import org.whispersystems.signalservice.api.profiles.ProfileAndCredential;
 import org.whispersystems.signalservice.api.profiles.SignalServiceProfile;
 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
@@ -63,8 +60,8 @@ public final class ProfileHelper {
     public ListenableFuture<ProfileAndCredential> retrieveProfile(
             SignalServiceAddress address, SignalServiceProfile.RequestType requestType
     ) {
-        Optional<UnidentifiedAccess> unidentifiedAccess = getUnidentifiedAccess(address);
-        Optional<ProfileKey> profileKey = Optional.fromNullable(profileKeyProvider.getProfileKey(address));
+        var unidentifiedAccess = getUnidentifiedAccess(address);
+        var profileKey = Optional.fromNullable(profileKeyProvider.getProfileKey(address));
 
         if (unidentifiedAccess.isPresent()) {
             return new CascadingFuture<>(Arrays.asList(() -> getPipeRetrievalFuture(address,
@@ -90,8 +87,8 @@ public final class ProfileHelper {
             Optional<UnidentifiedAccess> unidentifiedAccess,
             SignalServiceProfile.RequestType requestType
     ) throws IOException {
-        SignalServiceMessagePipe unidentifiedPipe = messagePipeProvider.getMessagePipe(true);
-        SignalServiceMessagePipe pipe = unidentifiedPipe != null && unidentifiedAccess.isPresent()
+        var unidentifiedPipe = messagePipeProvider.getMessagePipe(true);
+        var pipe = unidentifiedPipe != null && unidentifiedAccess.isPresent()
                 ? unidentifiedPipe
                 : messagePipeProvider.getMessagePipe(false);
         if (pipe != null) {
@@ -102,8 +99,7 @@ public final class ProfileHelper {
                 if (!address.getNumber().isPresent()) {
                     throw new NotFoundException("Can't request profile without number");
                 }
-                SignalServiceAddress addressWithoutUuid = new SignalServiceAddress(Optional.absent(),
-                        address.getNumber());
+                var addressWithoutUuid = new SignalServiceAddress(Optional.absent(), address.getNumber());
                 return pipe.getProfile(addressWithoutUuid, profileKey, unidentifiedAccess, requestType);
             }
         }
@@ -117,7 +113,7 @@ public final class ProfileHelper {
             Optional<UnidentifiedAccess> unidentifiedAccess,
             SignalServiceProfile.RequestType requestType
     ) throws NotFoundException {
-        SignalServiceMessageReceiver receiver = messageReceiverProvider.getMessageReceiver();
+        var receiver = messageReceiverProvider.getMessageReceiver();
         try {
             return receiver.retrieveProfile(address, profileKey, unidentifiedAccess, requestType);
         } catch (NoClassDefFoundError e) {
@@ -125,13 +121,13 @@ public final class ProfileHelper {
             if (!address.getNumber().isPresent()) {
                 throw new NotFoundException("Can't request profile without number");
             }
-            SignalServiceAddress addressWithoutUuid = new SignalServiceAddress(Optional.absent(), address.getNumber());
+            var addressWithoutUuid = new SignalServiceAddress(Optional.absent(), address.getNumber());
             return receiver.retrieveProfile(addressWithoutUuid, profileKey, unidentifiedAccess, requestType);
         }
     }
 
     private Optional<UnidentifiedAccess> getUnidentifiedAccess(SignalServiceAddress recipient) {
-        Optional<UnidentifiedAccessPair> unidentifiedAccess = unidentifiedAccessProvider.getAccessFor(recipient);
+        var unidentifiedAccess = unidentifiedAccessProvider.getAccessFor(recipient);
 
         if (unidentifiedAccess.isPresent()) {
             return unidentifiedAccess.get().getTargetUnidentifiedAccess();
index 3930154cf0ba4c43d8527f6996c8448a09e89b21..a3b8e3b556dcd1e5529de412934c7b7948228928 100644 (file)
@@ -1,8 +1,6 @@
 package org.asamk.signal.manager.helper;
 
-import org.asamk.signal.manager.storage.profiles.SignalProfile;
 import org.signal.libsignal.metadata.certificate.InvalidCertificateException;
-import org.signal.zkgroup.profiles.ProfileKey;
 import org.whispersystems.libsignal.util.guava.Optional;
 import org.whispersystems.signalservice.api.crypto.UnidentifiedAccess;
 import org.whispersystems.signalservice.api.crypto.UnidentifiedAccessPair;
@@ -41,12 +39,12 @@ public class UnidentifiedAccessHelper {
     }
 
     public byte[] getTargetUnidentifiedAccessKey(SignalServiceAddress recipient) {
-        ProfileKey theirProfileKey = profileKeyProvider.getProfileKey(recipient);
+        var theirProfileKey = profileKeyProvider.getProfileKey(recipient);
         if (theirProfileKey == null) {
             return null;
         }
 
-        SignalProfile targetProfile = profileProvider.getProfile(recipient);
+        var targetProfile = profileProvider.getProfile(recipient);
         if (targetProfile == null || targetProfile.getUnidentifiedAccess() == null) {
             return null;
         }
@@ -59,8 +57,8 @@ public class UnidentifiedAccessHelper {
     }
 
     public Optional<UnidentifiedAccessPair> getAccessForSync() {
-        byte[] selfUnidentifiedAccessKey = getSelfUnidentifiedAccessKey();
-        byte[] selfUnidentifiedAccessCertificate = senderCertificateProvider.getSenderCertificate();
+        var selfUnidentifiedAccessKey = getSelfUnidentifiedAccessKey();
+        var selfUnidentifiedAccessCertificate = senderCertificateProvider.getSenderCertificate();
 
         if (selfUnidentifiedAccessKey == null || selfUnidentifiedAccessCertificate == null) {
             return Optional.absent();
@@ -80,9 +78,9 @@ public class UnidentifiedAccessHelper {
     }
 
     public Optional<UnidentifiedAccessPair> getAccessFor(SignalServiceAddress recipient) {
-        byte[] recipientUnidentifiedAccessKey = getTargetUnidentifiedAccessKey(recipient);
-        byte[] selfUnidentifiedAccessKey = getSelfUnidentifiedAccessKey();
-        byte[] selfUnidentifiedAccessCertificate = senderCertificateProvider.getSenderCertificate();
+        var recipientUnidentifiedAccessKey = getTargetUnidentifiedAccessKey(recipient);
+        var selfUnidentifiedAccessKey = getSelfUnidentifiedAccessKey();
+        var selfUnidentifiedAccessCertificate = senderCertificateProvider.getSenderCertificate();
 
         if (recipientUnidentifiedAccessKey == null
                 || selfUnidentifiedAccessKey == null
index bac427338a60b26d72f9fcf42f791bf0c6296f3a..d4e2a253a717499b68f252fcaf523c08c99ec693 100644 (file)
@@ -8,24 +8,18 @@ import com.fasterxml.jackson.databind.DeserializationFeature;
 import com.fasterxml.jackson.databind.JsonNode;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.fasterxml.jackson.databind.SerializationFeature;
-import com.fasterxml.jackson.databind.node.ObjectNode;
 
 import org.asamk.signal.manager.groups.GroupId;
-import org.asamk.signal.manager.storage.contacts.ContactInfo;
 import org.asamk.signal.manager.storage.contacts.JsonContactsStore;
-import org.asamk.signal.manager.storage.groups.GroupInfo;
 import org.asamk.signal.manager.storage.groups.GroupInfoV1;
 import org.asamk.signal.manager.storage.groups.JsonGroupStore;
 import org.asamk.signal.manager.storage.messageCache.MessageCache;
 import org.asamk.signal.manager.storage.profiles.ProfileStore;
-import org.asamk.signal.manager.storage.protocol.IdentityInfo;
 import org.asamk.signal.manager.storage.protocol.JsonSignalProtocolStore;
 import org.asamk.signal.manager.storage.protocol.RecipientStore;
-import org.asamk.signal.manager.storage.protocol.SessionInfo;
 import org.asamk.signal.manager.storage.protocol.SignalServiceAddressResolver;
 import org.asamk.signal.manager.storage.stickers.StickerStore;
 import org.asamk.signal.manager.storage.threads.LegacyJsonThreadStore;
-import org.asamk.signal.manager.storage.threads.ThreadInfo;
 import org.asamk.signal.manager.util.IOUtils;
 import org.asamk.signal.manager.util.KeyUtils;
 import org.asamk.signal.manager.util.Utils;
@@ -99,10 +93,10 @@ public class SignalAccount implements Closeable {
     }
 
     public static SignalAccount load(File dataPath, String username) throws IOException {
-        final File fileName = getFileName(dataPath, username);
-        final Pair<FileChannel, FileLock> pair = openFileChannel(fileName);
+        final var fileName = getFileName(dataPath, username);
+        final var pair = openFileChannel(fileName);
         try {
-            SignalAccount account = new SignalAccount(pair.first(), pair.second());
+            var account = new SignalAccount(pair.first(), pair.second());
             account.load(dataPath);
             account.migrateLegacyConfigs();
 
@@ -118,13 +112,13 @@ public class SignalAccount implements Closeable {
             File dataPath, String username, IdentityKeyPair identityKey, int registrationId, ProfileKey profileKey
     ) throws IOException {
         IOUtils.createPrivateDirectories(dataPath);
-        File fileName = getFileName(dataPath, username);
+        var fileName = getFileName(dataPath, username);
         if (!fileName.exists()) {
             IOUtils.createPrivateFile(fileName);
         }
 
-        final Pair<FileChannel, FileLock> pair = openFileChannel(fileName);
-        SignalAccount account = new SignalAccount(pair.first(), pair.second());
+        final var pair = openFileChannel(fileName);
+        var account = new SignalAccount(pair.first(), pair.second());
 
         account.username = username;
         account.profileKey = profileKey;
@@ -155,13 +149,13 @@ public class SignalAccount implements Closeable {
             ProfileKey profileKey
     ) throws IOException {
         IOUtils.createPrivateDirectories(dataPath);
-        File fileName = getFileName(dataPath, username);
+        var fileName = getFileName(dataPath, username);
         if (!fileName.exists()) {
             IOUtils.createPrivateFile(fileName);
         }
 
-        final Pair<FileChannel, FileLock> pair = openFileChannel(fileName);
-        SignalAccount account = new SignalAccount(pair.first(), pair.second());
+        final var pair = openFileChannel(fileName);
+        var account = new SignalAccount(pair.first(), pair.second());
 
         account.username = username;
         account.uuid = uuid;
@@ -192,8 +186,8 @@ public class SignalAccount implements Closeable {
             save();
         }
         // Store profile keys only in profile store
-        for (ContactInfo contact : getContactStore().getContacts()) {
-            String profileKeyString = contact.profileKey;
+        for (var contact : getContactStore().getContacts()) {
+            var profileKeyString = contact.profileKey;
             if (profileKeyString == null) {
                 continue;
             }
@@ -230,7 +224,7 @@ public class SignalAccount implements Closeable {
         if (username == null) {
             return false;
         }
-        File f = getFileName(dataPath, username);
+        var f = getFileName(dataPath, username);
         return !(!f.exists() || f.isDirectory());
     }
 
@@ -288,7 +282,7 @@ public class SignalAccount implements Closeable {
         signalProtocolStore = jsonProcessor.convertValue(Utils.getNotNullNode(rootNode, "axolotlStore"),
                 JsonSignalProtocolStore.class);
         registered = Utils.getNotNullNode(rootNode, "registered").asBoolean();
-        JsonNode groupStoreNode = rootNode.get("groupStore");
+        var groupStoreNode = rootNode.get("groupStore");
         if (groupStoreNode != null) {
             groupStore = jsonProcessor.convertValue(groupStoreNode, JsonGroupStore.class);
             groupStore.groupCachePath = getGroupCachePath(dataPath, username);
@@ -297,7 +291,7 @@ public class SignalAccount implements Closeable {
             groupStore = new JsonGroupStore(getGroupCachePath(dataPath, username));
         }
 
-        JsonNode contactStoreNode = rootNode.get("contactStore");
+        var contactStoreNode = rootNode.get("contactStore");
         if (contactStoreNode != null) {
             contactStore = jsonProcessor.convertValue(contactStoreNode, JsonContactsStore.class);
         }
@@ -305,7 +299,7 @@ public class SignalAccount implements Closeable {
             contactStore = new JsonContactsStore();
         }
 
-        JsonNode recipientStoreNode = rootNode.get("recipientStore");
+        var recipientStoreNode = rootNode.get("recipientStore");
         if (recipientStoreNode != null) {
             recipientStore = jsonProcessor.convertValue(recipientStoreNode, RecipientStore.class);
         }
@@ -314,29 +308,29 @@ public class SignalAccount implements Closeable {
 
             recipientStore.resolveServiceAddress(getSelfAddress());
 
-            for (ContactInfo contact : contactStore.getContacts()) {
+            for (var contact : contactStore.getContacts()) {
                 recipientStore.resolveServiceAddress(contact.getAddress());
             }
 
-            for (GroupInfo group : groupStore.getGroups()) {
+            for (var group : groupStore.getGroups()) {
                 if (group instanceof GroupInfoV1) {
-                    GroupInfoV1 groupInfoV1 = (GroupInfoV1) group;
+                    var groupInfoV1 = (GroupInfoV1) group;
                     groupInfoV1.members = groupInfoV1.members.stream()
                             .map(m -> recipientStore.resolveServiceAddress(m))
                             .collect(Collectors.toSet());
                 }
             }
 
-            for (SessionInfo session : signalProtocolStore.getSessions()) {
+            for (var session : signalProtocolStore.getSessions()) {
                 session.address = recipientStore.resolveServiceAddress(session.address);
             }
 
-            for (IdentityInfo identity : signalProtocolStore.getIdentities()) {
+            for (var identity : signalProtocolStore.getIdentities()) {
                 identity.setAddress(recipientStore.resolveServiceAddress(identity.getAddress()));
             }
         }
 
-        JsonNode profileStoreNode = rootNode.get("profileStore");
+        var profileStoreNode = rootNode.get("profileStore");
         if (profileStoreNode != null) {
             profileStore = jsonProcessor.convertValue(profileStoreNode, ProfileStore.class);
         }
@@ -344,7 +338,7 @@ public class SignalAccount implements Closeable {
             profileStore = new ProfileStore();
         }
 
-        JsonNode stickerStoreNode = rootNode.get("stickerStore");
+        var stickerStoreNode = rootNode.get("stickerStore");
         if (stickerStoreNode != null) {
             stickerStore = jsonProcessor.convertValue(stickerStoreNode, StickerStore.class);
         }
@@ -354,22 +348,21 @@ public class SignalAccount implements Closeable {
 
         messageCache = new MessageCache(getMessageCachePath(dataPath, username));
 
-        JsonNode threadStoreNode = rootNode.get("threadStore");
+        var threadStoreNode = rootNode.get("threadStore");
         if (threadStoreNode != null && !threadStoreNode.isNull()) {
-            LegacyJsonThreadStore threadStore = jsonProcessor.convertValue(threadStoreNode,
-                    LegacyJsonThreadStore.class);
+            var threadStore = jsonProcessor.convertValue(threadStoreNode, LegacyJsonThreadStore.class);
             // Migrate thread info to group and contact store
-            for (ThreadInfo thread : threadStore.getThreads()) {
+            for (var thread : threadStore.getThreads()) {
                 if (thread.id == null || thread.id.isEmpty()) {
                     continue;
                 }
                 try {
-                    ContactInfo contactInfo = contactStore.getContact(new SignalServiceAddress(null, thread.id));
+                    var contactInfo = contactStore.getContact(new SignalServiceAddress(null, thread.id));
                     if (contactInfo != null) {
                         contactInfo.messageExpirationTime = thread.messageExpirationTime;
                         contactStore.updateContact(contactInfo);
                     } else {
-                        GroupInfo groupInfo = groupStore.getGroup(GroupId.fromBase64(thread.id));
+                        var groupInfo = groupStore.getGroup(GroupId.fromBase64(thread.id));
                         if (groupInfo instanceof GroupInfoV1) {
                             ((GroupInfoV1) groupInfo).messageExpirationTime = thread.messageExpirationTime;
                             groupStore.updateGroup(groupInfo);
@@ -385,7 +378,7 @@ public class SignalAccount implements Closeable {
         if (fileChannel == null) {
             return;
         }
-        ObjectNode rootNode = jsonProcessor.createObjectNode();
+        var rootNode = jsonProcessor.createObjectNode();
         rootNode.put("username", username)
                 .put("uuid", uuid == null ? null : uuid.toString())
                 .put("deviceId", deviceId)
@@ -407,10 +400,10 @@ public class SignalAccount implements Closeable {
                 .putPOJO("profileStore", profileStore)
                 .putPOJO("stickerStore", stickerStore);
         try {
-            try (ByteArrayOutputStream output = new ByteArrayOutputStream()) {
+            try (var output = new ByteArrayOutputStream()) {
                 // Write to memory first to prevent corrupting the file in case of serialization errors
                 jsonProcessor.writeValue(output, rootNode);
-                ByteArrayInputStream input = new ByteArrayInputStream(output.toByteArray());
+                var input = new ByteArrayInputStream(output.toByteArray());
                 synchronized (fileChannel) {
                     fileChannel.position(0);
                     input.transferTo(Channels.newOutputStream(fileChannel));
@@ -424,8 +417,8 @@ public class SignalAccount implements Closeable {
     }
 
     private static Pair<FileChannel, FileLock> openFileChannel(File fileName) throws IOException {
-        FileChannel fileChannel = new RandomAccessFile(fileName, "rw").getChannel();
-        FileLock lock = fileChannel.tryLock();
+        var fileChannel = new RandomAccessFile(fileName, "rw").getChannel();
+        var lock = fileChannel.tryLock();
         if (lock == null) {
             logger.info("Config file is in use by another instance, waiting…");
             lock = fileChannel.lock();
@@ -439,7 +432,7 @@ public class SignalAccount implements Closeable {
     }
 
     public void addPreKeys(Collection<PreKeyRecord> records) {
-        for (PreKeyRecord record : records) {
+        for (var record : records) {
             signalProtocolStore.storePreKey(record.getId(), record);
         }
         preKeyIdOffset = (preKeyIdOffset + records.size()) % Medium.MAX_VALUE;
index d2859f3f837a38e17aa8488498295e00bbbc61c8..b80dfe95549a3a6afe0bba29ed58a6f5b97fc00c 100644 (file)
@@ -13,8 +13,8 @@ public class JsonContactsStore {
     private List<ContactInfo> contacts = new ArrayList<>();
 
     public void updateContact(ContactInfo contact) {
-        final SignalServiceAddress contactAddress = contact.getAddress();
-        for (int i = 0; i < contacts.size(); i++) {
+        final var contactAddress = contact.getAddress();
+        for (var i = 0; i < contacts.size(); i++) {
             if (contacts.get(i).getAddress().matches(contactAddress)) {
                 contacts.set(i, contact);
                 return;
@@ -25,7 +25,7 @@ public class JsonContactsStore {
     }
 
     public ContactInfo getContact(SignalServiceAddress address) {
-        for (ContactInfo contact : contacts) {
+        for (var contact : contacts) {
             if (contact.getAddress().matches(address)) {
                 if (contact.uuid == null) {
                     contact.uuid = address.getUuid().orNull();
index a644b6209b8bbdcc6203b42bf531afc32121543e..68af2b808c83078bdbfbd9cba43c5e21a0b0f46b 100644 (file)
@@ -57,7 +57,7 @@ public abstract class GroupInfo {
 
     @JsonIgnore
     public boolean isMember(SignalServiceAddress address) {
-        for (SignalServiceAddress member : getMembers()) {
+        for (var member : getMembers()) {
             if (member.matches(address)) {
                 return true;
             }
@@ -67,7 +67,7 @@ public abstract class GroupInfo {
 
     @JsonIgnore
     public boolean isPendingMember(SignalServiceAddress address) {
-        for (SignalServiceAddress member : getPendingMembers()) {
+        for (var member : getPendingMembers()) {
             if (member.matches(address)) {
                 return true;
             }
index d1230b278257e0e14d86cd07e48d925de6ffddea..970ec5c39ddc0a384ed05cdd68d5bf0ea4213925 100644 (file)
@@ -135,7 +135,7 @@ public class GroupInfoV1 extends GroupInfo {
     }
 
     public void addMembers(Collection<SignalServiceAddress> addresses) {
-        for (SignalServiceAddress address : addresses) {
+        for (var address : addresses) {
             if (this.members.contains(address)) {
                 continue;
             }
@@ -178,7 +178,7 @@ public class GroupInfoV1 extends GroupInfo {
                 final Set<SignalServiceAddress> value, final JsonGenerator jgen, final SerializerProvider provider
         ) throws IOException {
             jgen.writeStartArray(value.size());
-            for (SignalServiceAddress address : value) {
+            for (var address : value) {
                 if (address.getUuid().isPresent()) {
                     jgen.writeObject(new JsonSignalServiceAddress(address));
                 } else {
@@ -195,13 +195,13 @@ public class GroupInfoV1 extends GroupInfo {
         public Set<SignalServiceAddress> deserialize(
                 JsonParser jsonParser, DeserializationContext deserializationContext
         ) throws IOException {
-            Set<SignalServiceAddress> addresses = new HashSet<>();
+            var addresses = new HashSet<SignalServiceAddress>();
             JsonNode node = jsonParser.getCodec().readTree(jsonParser);
-            for (JsonNode n : node) {
+            for (var n : node) {
                 if (n.isTextual()) {
                     addresses.add(new SignalServiceAddress(null, n.textValue()));
                 } else {
-                    JsonSignalServiceAddress address = jsonProcessor.treeToValue(n, JsonSignalServiceAddress.class);
+                    var address = jsonProcessor.treeToValue(n, JsonSignalServiceAddress.class);
                     addresses.add(address.toSignalServiceAddress());
                 }
             }
index 52b789c783caff104263cfab53313c3ba019c85f..8e37895a679fb4cefe5c1b5e36f656e68f482de7 100644 (file)
@@ -30,7 +30,6 @@ import java.io.FileOutputStream;
 import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Base64;
-import java.util.Collection;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -59,10 +58,10 @@ public class JsonGroupStore {
         if (group instanceof GroupInfoV2 && ((GroupInfoV2) group).getGroup() != null) {
             try {
                 IOUtils.createPrivateDirectories(groupCachePath);
-                try (FileOutputStream stream = new FileOutputStream(getGroupFile(group.getGroupId()))) {
+                try (var stream = new FileOutputStream(getGroupFile(group.getGroupId()))) {
                     ((GroupInfoV2) group).getGroup().writeTo(stream);
                 }
-                final File groupFileLegacy = getGroupFileLegacy(group.getGroupId());
+                final var groupFileLegacy = getGroupFileLegacy(group.getGroupId());
                 if (groupFileLegacy.exists()) {
                     groupFileLegacy.delete();
                 }
@@ -77,7 +76,7 @@ public class JsonGroupStore {
     }
 
     public GroupInfo getGroup(GroupId groupId) {
-        GroupInfo group = groups.get(groupId);
+        var group = groups.get(groupId);
         if (group == null) {
             if (groupId instanceof GroupIdV1) {
                 group = groups.get(GroupUtils.getGroupIdV2((GroupIdV1) groupId));
@@ -90,9 +89,9 @@ public class JsonGroupStore {
     }
 
     private GroupInfoV1 getGroupV1ByV2Id(GroupIdV2 groupIdV2) {
-        for (GroupInfo g : groups.values()) {
+        for (var g : groups.values()) {
             if (g instanceof GroupInfoV1) {
-                final GroupInfoV1 gv1 = (GroupInfoV1) g;
+                final var gv1 = (GroupInfoV1) g;
                 if (groupIdV2.equals(gv1.getExpectedV2Id())) {
                     return gv1;
                 }
@@ -103,14 +102,14 @@ public class JsonGroupStore {
 
     private void loadDecryptedGroup(final GroupInfo group) {
         if (group instanceof GroupInfoV2 && ((GroupInfoV2) group).getGroup() == null) {
-            File groupFile = getGroupFile(group.getGroupId());
+            var groupFile = getGroupFile(group.getGroupId());
             if (!groupFile.exists()) {
                 groupFile = getGroupFileLegacy(group.getGroupId());
             }
             if (!groupFile.exists()) {
                 return;
             }
-            try (FileInputStream stream = new FileInputStream(groupFile)) {
+            try (var stream = new FileInputStream(groupFile)) {
                 ((GroupInfoV2) group).setGroup(DecryptedGroup.parseFrom(stream));
             } catch (IOException ignored) {
             }
@@ -126,7 +125,7 @@ public class JsonGroupStore {
     }
 
     public GroupInfoV1 getOrCreateGroupV1(GroupIdV1 groupId) {
-        GroupInfo group = getGroup(groupId);
+        var group = getGroup(groupId);
         if (group instanceof GroupInfoV1) {
             return (GroupInfoV1) group;
         }
@@ -139,8 +138,8 @@ public class JsonGroupStore {
     }
 
     public List<GroupInfo> getGroups() {
-        final Collection<GroupInfo> groups = this.groups.values();
-        for (GroupInfo group : groups) {
+        final var groups = this.groups.values();
+        for (var group : groups) {
             loadDecryptedGroup(group);
         }
         return new ArrayList<>(groups);
@@ -152,13 +151,13 @@ public class JsonGroupStore {
         public void serialize(
                 final Map<String, GroupInfo> value, final JsonGenerator jgen, final SerializerProvider provider
         ) throws IOException {
-            final Collection<GroupInfo> groups = value.values();
+            final var groups = value.values();
             jgen.writeStartArray(groups.size());
-            for (GroupInfo group : groups) {
+            for (var group : groups) {
                 if (group instanceof GroupInfoV1) {
                     jgen.writeObject(group);
                 } else if (group instanceof GroupInfoV2) {
-                    final GroupInfoV2 groupV2 = (GroupInfoV2) group;
+                    final var groupV2 = (GroupInfoV2) group;
                     jgen.writeStartObject();
                     jgen.writeStringField("groupId", groupV2.getGroupId().toBase64());
                     jgen.writeStringField("masterKey",
@@ -179,16 +178,15 @@ public class JsonGroupStore {
         public Map<GroupId, GroupInfo> deserialize(
                 JsonParser jsonParser, DeserializationContext deserializationContext
         ) throws IOException {
-            Map<GroupId, GroupInfo> groups = new HashMap<>();
+            var groups = new HashMap<GroupId, GroupInfo>();
             JsonNode node = jsonParser.getCodec().readTree(jsonParser);
-            for (JsonNode n : node) {
+            for (var n : node) {
                 GroupInfo g;
                 if (n.hasNonNull("masterKey")) {
                     // a v2 group
-                    GroupIdV2 groupId = GroupIdV2.fromBase64(n.get("groupId").asText());
+                    var groupId = GroupIdV2.fromBase64(n.get("groupId").asText());
                     try {
-                        GroupMasterKey masterKey = new GroupMasterKey(Base64.getDecoder()
-                                .decode(n.get("masterKey").asText()));
+                        var masterKey = new GroupMasterKey(Base64.getDecoder().decode(n.get("masterKey").asText()));
                         g = new GroupInfoV2(groupId, masterKey);
                     } catch (InvalidInputException | IllegalArgumentException e) {
                         throw new AssertionError("Invalid master key for group " + groupId.toBase64());
index 3e728c2877efdf7efa105a17281b8277d8ce9d38..6d604300ca21dcc47a50f14744353266d3f84730 100644 (file)
@@ -36,7 +36,7 @@ public class MessageCache {
                 return Stream.of(dir);
             }
 
-            final File[] files = Objects.requireNonNull(dir.listFiles());
+            final var files = Objects.requireNonNull(dir.listFiles());
             if (files.length == 0) {
                 try {
                     Files.delete(dir.toPath());
@@ -50,11 +50,11 @@ public class MessageCache {
     }
 
     public CachedMessage cacheMessage(SignalServiceEnvelope envelope) {
-        final long now = new Date().getTime();
-        final String source = envelope.hasSource() ? envelope.getSourceAddress().getLegacyIdentifier() : "";
+        final var now = new Date().getTime();
+        final var source = envelope.hasSource() ? envelope.getSourceAddress().getLegacyIdentifier() : "";
 
         try {
-            File cacheFile = getMessageCacheFile(source, now, envelope.getTimestamp());
+            var cacheFile = getMessageCacheFile(source, now, envelope.getTimestamp());
             MessageCacheUtils.storeEnvelope(envelope, cacheFile);
             return new CachedMessage(cacheFile);
         } catch (IOException e) {
@@ -72,7 +72,7 @@ public class MessageCache {
     }
 
     private File getMessageCacheFile(String sender, long now, long timestamp) throws IOException {
-        File cachePath = getMessageCachePath(sender);
+        var cachePath = getMessageCachePath(sender);
         IOUtils.createPrivateDirectories(cachePath);
         return new File(cachePath, now + "_" + timestamp);
     }
index 516b57dc4004d4c8d346c13af94d7f1e689f66e1..dc69a7ee72bd1a5c10d97df461095b207e4db71a 100644 (file)
@@ -22,7 +22,6 @@ import java.io.IOException;
 import java.util.ArrayList;
 import java.util.Base64;
 import java.util.List;
-import java.util.UUID;
 
 public class ProfileStore {
 
@@ -34,7 +33,7 @@ public class ProfileStore {
     private final List<SignalProfileEntry> profiles = new ArrayList<>();
 
     public SignalProfileEntry getProfileEntry(SignalServiceAddress serviceAddress) {
-        for (SignalProfileEntry entry : profiles) {
+        for (var entry : profiles) {
             if (entry.getServiceAddress().matches(serviceAddress)) {
                 return entry;
             }
@@ -43,7 +42,7 @@ public class ProfileStore {
     }
 
     public ProfileKey getProfileKey(SignalServiceAddress serviceAddress) {
-        for (SignalProfileEntry entry : profiles) {
+        for (var entry : profiles) {
             if (entry.getServiceAddress().matches(serviceAddress)) {
                 return entry.getProfileKey();
             }
@@ -58,12 +57,8 @@ public class ProfileStore {
             SignalProfile profile,
             ProfileKeyCredential profileKeyCredential
     ) {
-        SignalProfileEntry newEntry = new SignalProfileEntry(serviceAddress,
-                profileKey,
-                now,
-                profile,
-                profileKeyCredential);
-        for (int i = 0; i < profiles.size(); i++) {
+        var newEntry = new SignalProfileEntry(serviceAddress, profileKey, now, profile, profileKeyCredential);
+        for (var i = 0; i < profiles.size(); i++) {
             if (profiles.get(i).getServiceAddress().matches(serviceAddress)) {
                 profiles.set(i, newEntry);
                 return;
@@ -74,8 +69,8 @@ public class ProfileStore {
     }
 
     public void storeProfileKey(SignalServiceAddress serviceAddress, ProfileKey profileKey) {
-        SignalProfileEntry newEntry = new SignalProfileEntry(serviceAddress, profileKey, 0, null, null);
-        for (int i = 0; i < profiles.size(); i++) {
+        var newEntry = new SignalProfileEntry(serviceAddress, profileKey, 0, null, null);
+        for (var i = 0; i < profiles.size(); i++) {
             if (profiles.get(i).getServiceAddress().matches(serviceAddress)) {
                 if (!profiles.get(i).getProfileKey().equals(profileKey)) {
                     profiles.set(i, newEntry);
@@ -95,13 +90,13 @@ public class ProfileStore {
         ) throws IOException {
             JsonNode node = jsonParser.getCodec().readTree(jsonParser);
 
-            List<SignalProfileEntry> addresses = new ArrayList<>();
+            var addresses = new ArrayList<SignalProfileEntry>();
 
             if (node.isArray()) {
-                for (JsonNode entry : node) {
-                    String name = entry.hasNonNull("name") ? entry.get("name").asText() : null;
-                    UUID uuid = entry.hasNonNull("uuid") ? UuidUtil.parseOrNull(entry.get("uuid").asText()) : null;
-                    final SignalServiceAddress serviceAddress = new SignalServiceAddress(uuid, name);
+                for (var entry : node) {
+                    var name = entry.hasNonNull("name") ? entry.get("name").asText() : null;
+                    var uuid = entry.hasNonNull("uuid") ? UuidUtil.parseOrNull(entry.get("uuid").asText()) : null;
+                    final var serviceAddress = new SignalServiceAddress(uuid, name);
                     ProfileKey profileKey = null;
                     try {
                         profileKey = new ProfileKey(Base64.getDecoder().decode(entry.get("profileKey").asText()));
@@ -115,8 +110,8 @@ public class ProfileStore {
                         } catch (Throwable ignored) {
                         }
                     }
-                    long lastUpdateTimestamp = entry.get("lastUpdateTimestamp").asLong();
-                    SignalProfile profile = jsonProcessor.treeToValue(entry.get("profile"), SignalProfile.class);
+                    var lastUpdateTimestamp = entry.get("lastUpdateTimestamp").asLong();
+                    var profile = jsonProcessor.treeToValue(entry.get("profile"), SignalProfile.class);
                     addresses.add(new SignalProfileEntry(serviceAddress,
                             profileKey,
                             lastUpdateTimestamp,
@@ -136,8 +131,8 @@ public class ProfileStore {
                 List<SignalProfileEntry> profiles, JsonGenerator json, SerializerProvider serializerProvider
         ) throws IOException {
             json.writeStartArray();
-            for (SignalProfileEntry profileEntry : profiles) {
-                final SignalServiceAddress address = profileEntry.getServiceAddress();
+            for (var profileEntry : profiles) {
+                final var address = profileEntry.getServiceAddress();
                 json.writeStartObject();
                 if (address.getNumber().isPresent()) {
                     json.writeStringField("name", address.getNumber().get());
index 9f01b719f8f72ef74df86eb6973249e4d7f9c5e8..ed04e5562bf48c8b12db881da303c941726af300 100644 (file)
@@ -25,7 +25,6 @@ import java.util.ArrayList;
 import java.util.Base64;
 import java.util.Date;
 import java.util.List;
-import java.util.UUID;
 
 public class JsonIdentityKeyStore implements IdentityKeyStore {
 
@@ -85,7 +84,7 @@ public class JsonIdentityKeyStore implements IdentityKeyStore {
     public boolean saveIdentity(
             SignalServiceAddress serviceAddress, IdentityKey identityKey, TrustLevel trustLevel, Date added
     ) {
-        for (IdentityInfo id : identities) {
+        for (var id : identities) {
             if (!id.address.matches(serviceAddress) || !id.identityKey.equals(identityKey)) {
                 continue;
             }
@@ -111,7 +110,7 @@ public class JsonIdentityKeyStore implements IdentityKeyStore {
     public void setIdentityTrustLevel(
             SignalServiceAddress serviceAddress, IdentityKey identityKey, TrustLevel trustLevel
     ) {
-        for (IdentityInfo id : identities) {
+        for (var id : identities) {
             if (!id.address.matches(serviceAddress) || !id.identityKey.equals(identityKey)) {
                 continue;
             }
@@ -129,10 +128,10 @@ public class JsonIdentityKeyStore implements IdentityKeyStore {
     @Override
     public boolean isTrustedIdentity(SignalProtocolAddress address, IdentityKey identityKey, Direction direction) {
         // TODO implement possibility for different handling of incoming/outgoing trust decisions
-        SignalServiceAddress serviceAddress = resolveSignalServiceAddress(address.getName());
-        boolean trustOnFirstUse = true;
+        var serviceAddress = resolveSignalServiceAddress(address.getName());
+        var trustOnFirstUse = true;
 
-        for (IdentityInfo id : identities) {
+        for (var id : identities) {
             if (!id.address.matches(serviceAddress)) {
                 continue;
             }
@@ -149,20 +148,20 @@ public class JsonIdentityKeyStore implements IdentityKeyStore {
 
     @Override
     public IdentityKey getIdentity(SignalProtocolAddress address) {
-        SignalServiceAddress serviceAddress = resolveSignalServiceAddress(address.getName());
-        IdentityInfo identity = getIdentity(serviceAddress);
+        var serviceAddress = resolveSignalServiceAddress(address.getName());
+        var identity = getIdentity(serviceAddress);
         return identity == null ? null : identity.getIdentityKey();
     }
 
     public IdentityInfo getIdentity(SignalServiceAddress serviceAddress) {
         long maxDate = 0;
         IdentityInfo maxIdentity = null;
-        for (IdentityInfo id : this.identities) {
+        for (var id : this.identities) {
             if (!id.address.matches(serviceAddress)) {
                 continue;
             }
 
-            final long time = id.getDateAdded().getTime();
+            final var time = id.getDateAdded().getTime();
             if (maxIdentity == null || maxDate <= time) {
                 maxDate = time;
                 maxIdentity = id;
@@ -177,8 +176,8 @@ public class JsonIdentityKeyStore implements IdentityKeyStore {
     }
 
     public List<IdentityInfo> getIdentities(SignalServiceAddress serviceAddress) {
-        List<IdentityInfo> identities = new ArrayList<>();
-        for (IdentityInfo identity : this.identities) {
+        var identities = new ArrayList<IdentityInfo>();
+        for (var identity : this.identities) {
             if (identity.address.matches(serviceAddress)) {
                 identities.add(identity);
             }
@@ -194,34 +193,32 @@ public class JsonIdentityKeyStore implements IdentityKeyStore {
         ) throws IOException {
             JsonNode node = jsonParser.getCodec().readTree(jsonParser);
 
-            int localRegistrationId = node.get("registrationId").asInt();
-            IdentityKeyPair identityKeyPair = new IdentityKeyPair(Base64.getDecoder()
-                    .decode(node.get("identityKey").asText()));
+            var localRegistrationId = node.get("registrationId").asInt();
+            var identityKeyPair = new IdentityKeyPair(Base64.getDecoder().decode(node.get("identityKey").asText()));
 
-            JsonIdentityKeyStore keyStore = new JsonIdentityKeyStore(identityKeyPair, localRegistrationId);
+            var keyStore = new JsonIdentityKeyStore(identityKeyPair, localRegistrationId);
 
-            JsonNode trustedKeysNode = node.get("trustedKeys");
+            var trustedKeysNode = node.get("trustedKeys");
             if (trustedKeysNode.isArray()) {
-                for (JsonNode trustedKey : trustedKeysNode) {
-                    String trustedKeyName = trustedKey.hasNonNull("name") ? trustedKey.get("name").asText() : null;
+                for (var trustedKey : trustedKeysNode) {
+                    var trustedKeyName = trustedKey.hasNonNull("name") ? trustedKey.get("name").asText() : null;
 
                     if (UuidUtil.isUuid(trustedKeyName)) {
                         // Ignore identities that were incorrectly created with UUIDs as name
                         continue;
                     }
 
-                    UUID uuid = trustedKey.hasNonNull("uuid")
+                    var uuid = trustedKey.hasNonNull("uuid")
                             ? UuidUtil.parseOrNull(trustedKey.get("uuid").asText())
                             : null;
-                    final SignalServiceAddress serviceAddress = uuid == null
+                    final var serviceAddress = uuid == null
                             ? Utils.getSignalServiceAddressFromIdentifier(trustedKeyName)
                             : new SignalServiceAddress(uuid, trustedKeyName);
                     try {
-                        IdentityKey id = new IdentityKey(Base64.getDecoder()
-                                .decode(trustedKey.get("identityKey").asText()), 0);
-                        TrustLevel trustLevel = trustedKey.hasNonNull("trustLevel") ? TrustLevel.fromInt(trustedKey.get(
+                        var id = new IdentityKey(Base64.getDecoder().decode(trustedKey.get("identityKey").asText()), 0);
+                        var trustLevel = trustedKey.hasNonNull("trustLevel") ? TrustLevel.fromInt(trustedKey.get(
                                 "trustLevel").asInt()) : TrustLevel.TRUSTED_UNVERIFIED;
-                        Date added = trustedKey.hasNonNull("addedTimestamp") ? new Date(trustedKey.get("addedTimestamp")
+                        var added = trustedKey.hasNonNull("addedTimestamp") ? new Date(trustedKey.get("addedTimestamp")
                                 .asLong()) : new Date();
                         keyStore.saveIdentity(serviceAddress, id, trustLevel, added);
                     } catch (InvalidKeyException e) {
@@ -251,7 +248,7 @@ public class JsonIdentityKeyStore implements IdentityKeyStore {
                     Base64.getEncoder()
                             .encodeToString(jsonIdentityKeyStore.getIdentityKeyPair().getPublicKey().serialize()));
             json.writeArrayFieldStart("trustedKeys");
-            for (IdentityInfo trustedKey : jsonIdentityKeyStore.identities) {
+            for (var trustedKey : jsonIdentityKeyStore.identities) {
                 json.writeStartObject();
                 if (trustedKey.getAddress().getNumber().isPresent()) {
                     json.writeStringField("name", trustedKey.getAddress().getNumber().get());
index 8529d0dd139f6d98151b4f1a6e1395e336965c9b..9ff0d8ead2c8d4bcd960c7f42b8571dbc8e2fe04 100644 (file)
@@ -69,16 +69,16 @@ class JsonPreKeyStore implements PreKeyStore {
         ) throws IOException {
             JsonNode node = jsonParser.getCodec().readTree(jsonParser);
 
-            Map<Integer, byte[]> preKeyMap = new HashMap<>();
+            var preKeyMap = new HashMap<Integer, byte[]>();
             if (node.isArray()) {
-                for (JsonNode preKey : node) {
-                    final int preKeyId = preKey.get("id").asInt();
-                    final byte[] preKeyRecord = Base64.getDecoder().decode(preKey.get("record").asText());
+                for (var preKey : node) {
+                    final var preKeyId = preKey.get("id").asInt();
+                    final var preKeyRecord = Base64.getDecoder().decode(preKey.get("record").asText());
                     preKeyMap.put(preKeyId, preKeyRecord);
                 }
             }
 
-            JsonPreKeyStore keyStore = new JsonPreKeyStore();
+            var keyStore = new JsonPreKeyStore();
             keyStore.addPreKeys(preKeyMap);
 
             return keyStore;
@@ -92,7 +92,7 @@ class JsonPreKeyStore implements PreKeyStore {
                 JsonPreKeyStore jsonPreKeyStore, JsonGenerator json, SerializerProvider serializerProvider
         ) throws IOException {
             json.writeStartArray();
-            for (Map.Entry<Integer, byte[]> preKey : jsonPreKeyStore.store.entrySet()) {
+            for (var preKey : jsonPreKeyStore.store.entrySet()) {
                 json.writeStartObject();
                 json.writeNumberField("id", preKey.getKey());
                 json.writeStringField("record", Base64.getEncoder().encodeToString(preKey.getValue()));
index 81a8adb245a2bd04a2a767306903d7b4bcce1ea7..94d2d681f5e4ff60ecebe1249cd9cfaa3f7c81a0 100644 (file)
@@ -22,7 +22,6 @@ import java.util.ArrayList;
 import java.util.Base64;
 import java.util.LinkedList;
 import java.util.List;
-import java.util.UUID;
 
 class JsonSessionStore implements SignalServiceSessionStore {
 
@@ -49,14 +48,14 @@ class JsonSessionStore implements SignalServiceSessionStore {
 
     @Override
     public synchronized SessionRecord loadSession(SignalProtocolAddress address) {
-        SignalServiceAddress serviceAddress = resolveSignalServiceAddress(address.getName());
-        for (SessionInfo info : sessions) {
+        var serviceAddress = resolveSignalServiceAddress(address.getName());
+        for (var info : sessions) {
             if (info.address.matches(serviceAddress) && info.deviceId == address.getDeviceId()) {
                 try {
                     return new SessionRecord(info.sessionRecord);
                 } catch (IOException e) {
                     logger.warn("Failed to load session, resetting session: {}", e.getMessage());
-                    final SessionRecord sessionRecord = new SessionRecord();
+                    final var sessionRecord = new SessionRecord();
                     info.sessionRecord = sessionRecord.serialize();
                     return sessionRecord;
                 }
@@ -72,10 +71,10 @@ class JsonSessionStore implements SignalServiceSessionStore {
 
     @Override
     public synchronized List<Integer> getSubDeviceSessions(String name) {
-        SignalServiceAddress serviceAddress = resolveSignalServiceAddress(name);
+        var serviceAddress = resolveSignalServiceAddress(name);
 
-        List<Integer> deviceIds = new LinkedList<>();
-        for (SessionInfo info : sessions) {
+        var deviceIds = new LinkedList<Integer>();
+        for (var info : sessions) {
             if (info.address.matches(serviceAddress) && info.deviceId != 1) {
                 deviceIds.add(info.deviceId);
             }
@@ -86,8 +85,8 @@ class JsonSessionStore implements SignalServiceSessionStore {
 
     @Override
     public synchronized void storeSession(SignalProtocolAddress address, SessionRecord record) {
-        SignalServiceAddress serviceAddress = resolveSignalServiceAddress(address.getName());
-        for (SessionInfo info : sessions) {
+        var serviceAddress = resolveSignalServiceAddress(address.getName());
+        for (var info : sessions) {
             if (info.address.matches(serviceAddress) && info.deviceId == address.getDeviceId()) {
                 if (!info.address.getUuid().isPresent() || !info.address.getNumber().isPresent()) {
                     info.address = serviceAddress;
@@ -102,8 +101,8 @@ class JsonSessionStore implements SignalServiceSessionStore {
 
     @Override
     public synchronized boolean containsSession(SignalProtocolAddress address) {
-        SignalServiceAddress serviceAddress = resolveSignalServiceAddress(address.getName());
-        for (SessionInfo info : sessions) {
+        var serviceAddress = resolveSignalServiceAddress(address.getName());
+        for (var info : sessions) {
             if (info.address.matches(serviceAddress) && info.deviceId == address.getDeviceId()) {
                 return true;
             }
@@ -113,13 +112,13 @@ class JsonSessionStore implements SignalServiceSessionStore {
 
     @Override
     public synchronized void deleteSession(SignalProtocolAddress address) {
-        SignalServiceAddress serviceAddress = resolveSignalServiceAddress(address.getName());
+        var serviceAddress = resolveSignalServiceAddress(address.getName());
         sessions.removeIf(info -> info.address.matches(serviceAddress) && info.deviceId == address.getDeviceId());
     }
 
     @Override
     public synchronized void deleteAllSessions(String name) {
-        SignalServiceAddress serviceAddress = resolveSignalServiceAddress(name);
+        var serviceAddress = resolveSignalServiceAddress(name);
         deleteAllSessions(serviceAddress);
     }
 
@@ -129,7 +128,7 @@ class JsonSessionStore implements SignalServiceSessionStore {
 
     @Override
     public void archiveSession(final SignalProtocolAddress address) {
-        final SessionRecord sessionRecord = loadSession(address);
+        final var sessionRecord = loadSession(address);
         if (sessionRecord == null) {
             return;
         }
@@ -138,9 +137,9 @@ class JsonSessionStore implements SignalServiceSessionStore {
     }
 
     public void archiveAllSessions() {
-        for (SessionInfo info : sessions) {
+        for (var info : sessions) {
             try {
-                final SessionRecord sessionRecord = new SessionRecord(info.sessionRecord);
+                final var sessionRecord = new SessionRecord(info.sessionRecord);
                 sessionRecord.archiveCurrentState();
                 info.sessionRecord = sessionRecord.serialize();
             } catch (IOException ignored) {
@@ -156,23 +155,23 @@ class JsonSessionStore implements SignalServiceSessionStore {
         ) throws IOException {
             JsonNode node = jsonParser.getCodec().readTree(jsonParser);
 
-            JsonSessionStore sessionStore = new JsonSessionStore();
+            var sessionStore = new JsonSessionStore();
 
             if (node.isArray()) {
-                for (JsonNode session : node) {
-                    String sessionName = session.hasNonNull("name") ? session.get("name").asText() : null;
+                for (var session : node) {
+                    var sessionName = session.hasNonNull("name") ? session.get("name").asText() : null;
                     if (UuidUtil.isUuid(sessionName)) {
                         // Ignore sessions that were incorrectly created with UUIDs as name
                         continue;
                     }
 
-                    UUID uuid = session.hasNonNull("uuid") ? UuidUtil.parseOrNull(session.get("uuid").asText()) : null;
-                    final SignalServiceAddress serviceAddress = uuid == null
+                    var uuid = session.hasNonNull("uuid") ? UuidUtil.parseOrNull(session.get("uuid").asText()) : null;
+                    final var serviceAddress = uuid == null
                             ? Utils.getSignalServiceAddressFromIdentifier(sessionName)
                             : new SignalServiceAddress(uuid, sessionName);
-                    final int deviceId = session.get("deviceId").asInt();
-                    final byte[] record = Base64.getDecoder().decode(session.get("record").asText());
-                    SessionInfo sessionInfo = new SessionInfo(serviceAddress, deviceId, record);
+                    final var deviceId = session.get("deviceId").asInt();
+                    final var record = Base64.getDecoder().decode(session.get("record").asText());
+                    var sessionInfo = new SessionInfo(serviceAddress, deviceId, record);
                     sessionStore.sessions.add(sessionInfo);
                 }
             }
@@ -188,7 +187,7 @@ class JsonSessionStore implements SignalServiceSessionStore {
                 JsonSessionStore jsonSessionStore, JsonGenerator json, SerializerProvider serializerProvider
         ) throws IOException {
             json.writeStartArray();
-            for (SessionInfo sessionInfo : jsonSessionStore.sessions) {
+            for (var sessionInfo : jsonSessionStore.sessions) {
                 json.writeStartObject();
                 if (sessionInfo.address.getNumber().isPresent()) {
                     json.writeStringField("name", sessionInfo.address.getNumber().get());
index a45287b4a790fb189a4ba6a6b78c2cfe73e47448..655e372aaa8e8b7589210e9a305e64fde82979bb 100644 (file)
@@ -51,9 +51,9 @@ class JsonSignedPreKeyStore implements SignedPreKeyStore {
     @Override
     public List<SignedPreKeyRecord> loadSignedPreKeys() {
         try {
-            List<SignedPreKeyRecord> results = new LinkedList<>();
+            var results = new LinkedList<SignedPreKeyRecord>();
 
-            for (byte[] serialized : store.values()) {
+            for (var serialized : store.values()) {
                 results.add(new SignedPreKeyRecord(serialized));
             }
 
@@ -86,16 +86,16 @@ class JsonSignedPreKeyStore implements SignedPreKeyStore {
         ) throws IOException {
             JsonNode node = jsonParser.getCodec().readTree(jsonParser);
 
-            Map<Integer, byte[]> preKeyMap = new HashMap<>();
+            var preKeyMap = new HashMap<Integer, byte[]>();
             if (node.isArray()) {
-                for (JsonNode preKey : node) {
-                    final int preKeyId = preKey.get("id").asInt();
-                    final byte[] preKeyRecord = Base64.getDecoder().decode(preKey.get("record").asText());
+                for (var preKey : node) {
+                    final var preKeyId = preKey.get("id").asInt();
+                    final var preKeyRecord = Base64.getDecoder().decode(preKey.get("record").asText());
                     preKeyMap.put(preKeyId, preKeyRecord);
                 }
             }
 
-            JsonSignedPreKeyStore keyStore = new JsonSignedPreKeyStore();
+            var keyStore = new JsonSignedPreKeyStore();
             keyStore.addSignedPreKeys(preKeyMap);
 
             return keyStore;
@@ -109,7 +109,7 @@ class JsonSignedPreKeyStore implements SignedPreKeyStore {
                 JsonSignedPreKeyStore jsonPreKeyStore, JsonGenerator json, SerializerProvider serializerProvider
         ) throws IOException {
             json.writeStartArray();
-            for (Map.Entry<Integer, byte[]> signedPreKey : jsonPreKeyStore.store.entrySet()) {
+            for (var signedPreKey : jsonPreKeyStore.store.entrySet()) {
                 json.writeStartObject();
                 json.writeNumberField("id", signedPreKey.getKey());
                 json.writeStringField("record", Base64.getEncoder().encodeToString(signedPreKey.getValue()));
index 60634ae53cc561904ec1bfdf85fd0e4de93e70ce..93cca233fa00494c6c45903f2ccaa6313c321ad0 100644 (file)
@@ -17,7 +17,6 @@ import org.whispersystems.signalservice.api.util.UuidUtil;
 import java.io.IOException;
 import java.util.HashSet;
 import java.util.Set;
-import java.util.UUID;
 
 public class RecipientStore {
 
@@ -33,7 +32,7 @@ public class RecipientStore {
             return serviceAddress;
         }
 
-        for (SignalServiceAddress address : addresses) {
+        for (var address : addresses) {
             if (address.matches(serviceAddress)) {
                 return address;
             }
@@ -54,13 +53,13 @@ public class RecipientStore {
         ) throws IOException {
             JsonNode node = jsonParser.getCodec().readTree(jsonParser);
 
-            Set<SignalServiceAddress> addresses = new HashSet<>();
+            var addresses = new HashSet<SignalServiceAddress>();
 
             if (node.isArray()) {
-                for (JsonNode recipient : node) {
-                    String recipientName = recipient.get("name").asText();
-                    UUID uuid = UuidUtil.parseOrThrow(recipient.get("uuid").asText());
-                    final SignalServiceAddress serviceAddress = new SignalServiceAddress(uuid, recipientName);
+                for (var recipient : node) {
+                    var recipientName = recipient.get("name").asText();
+                    var uuid = UuidUtil.parseOrThrow(recipient.get("uuid").asText());
+                    final var serviceAddress = new SignalServiceAddress(uuid, recipientName);
                     addresses.add(serviceAddress);
                 }
             }
@@ -76,7 +75,7 @@ public class RecipientStore {
                 Set<SignalServiceAddress> addresses, JsonGenerator json, SerializerProvider serializerProvider
         ) throws IOException {
             json.writeStartArray();
-            for (SignalServiceAddress address : addresses) {
+            for (var address : addresses) {
                 json.writeStartObject();
                 json.writeStringField("name", address.getNumber().get());
                 json.writeStringField("uuid", address.getUuid().get().toString());
index 710be035e967f02e8f77a0ff6b168f3d38242a69..8d2275752d74551c4b57718952d236b3bd97ed41 100644 (file)
@@ -12,7 +12,6 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize;
 
 import java.io.IOException;
 import java.util.Base64;
-import java.util.Collection;
 import java.util.HashMap;
 import java.util.Map;
 
@@ -36,9 +35,9 @@ public class StickerStore {
         public void serialize(
                 final Map<byte[], Sticker> value, final JsonGenerator jgen, final SerializerProvider provider
         ) throws IOException {
-            final Collection<Sticker> stickers = value.values();
+            final var stickers = value.values();
             jgen.writeStartArray(stickers.size());
-            for (Sticker sticker : stickers) {
+            for (var sticker : stickers) {
                 jgen.writeStartObject();
                 jgen.writeStringField("packId", Base64.getEncoder().encodeToString(sticker.getPackId()));
                 jgen.writeStringField("packKey", Base64.getEncoder().encodeToString(sticker.getPackKey()));
@@ -55,12 +54,12 @@ public class StickerStore {
         public Map<byte[], Sticker> deserialize(
                 JsonParser jsonParser, DeserializationContext deserializationContext
         ) throws IOException {
-            Map<byte[], Sticker> stickers = new HashMap<>();
+            var stickers = new HashMap<byte[], Sticker>();
             JsonNode node = jsonParser.getCodec().readTree(jsonParser);
-            for (JsonNode n : node) {
-                byte[] packId = Base64.getDecoder().decode(n.get("packId").asText());
-                byte[] packKey = Base64.getDecoder().decode(n.get("packKey").asText());
-                boolean installed = n.get("installed").asBoolean(false);
+            for (var n : node) {
+                var packId = Base64.getDecoder().decode(n.get("packId").asText());
+                var packKey = Base64.getDecoder().decode(n.get("packKey").asText());
+                var installed = n.get("installed").asBoolean(false);
                 stickers.put(packId, new Sticker(packId, packKey, installed));
             }
 
index f37360a2c438d57c69ed5b961f72c25b6ee38c62..818107131e1107a8da8d564463451a9385d887ce 100644 (file)
@@ -47,10 +47,10 @@ public class LegacyJsonThreadStore {
         public Map<String, ThreadInfo> deserialize(
                 JsonParser jsonParser, DeserializationContext deserializationContext
         ) throws IOException {
-            Map<String, ThreadInfo> threads = new HashMap<>();
+            var threads = new HashMap<String, ThreadInfo>();
             JsonNode node = jsonParser.getCodec().readTree(jsonParser);
-            for (JsonNode n : node) {
-                ThreadInfo t = jsonProcessor.treeToValue(n, ThreadInfo.class);
+            for (var n : node) {
+                var t = jsonProcessor.treeToValue(n, ThreadInfo.class);
                 threads.put(t.id, t);
             }
 
index ec043cfd628706bc41e4c78687c785a19ebdf2b5..1909711de6839a044608952679c6042e5f77544f 100644 (file)
@@ -18,7 +18,7 @@ public class AttachmentUtils {
         List<SignalServiceAttachment> signalServiceAttachments = null;
         if (attachments != null) {
             signalServiceAttachments = new ArrayList<>(attachments.size());
-            for (String attachment : attachments) {
+            for (var attachment : attachments) {
                 try {
                     signalServiceAttachments.add(createAttachment(new File(attachment)));
                 } catch (IOException e) {
@@ -30,7 +30,7 @@ public class AttachmentUtils {
     }
 
     public static SignalServiceAttachmentStream createAttachment(File attachmentFile) throws IOException {
-        final StreamDetails streamDetails = Utils.createStreamDetailsFromFile(attachmentFile);
+        final var streamDetails = Utils.createStreamDetailsFromFile(attachmentFile);
         return createAttachment(streamDetails, Optional.of(attachmentFile.getName()));
     }
 
@@ -38,7 +38,7 @@ public class AttachmentUtils {
             StreamDetails streamDetails, Optional<String> name
     ) {
         // TODO mabybe add a parameter to set the voiceNote, borderless, preview, width, height and caption option
-        final long uploadTimestamp = System.currentTimeMillis();
+        final var uploadTimestamp = System.currentTimeMillis();
         Optional<byte[]> preview = Optional.absent();
         Optional<String> caption = Optional.absent();
         Optional<String> blurHash = Optional.absent();
index 8f47c9f4466bc9d6f62c2b5464bde1bca6c13b3a..3cc708d8708d8cd0e8a6062e833d50856fe466ad 100644 (file)
@@ -7,7 +7,6 @@ import java.io.IOException;
 import java.io.InputStream;
 import java.io.OutputStream;
 import java.nio.file.Files;
-import java.nio.file.Path;
 import java.nio.file.attribute.PosixFilePermission;
 import java.nio.file.attribute.PosixFilePermissions;
 import java.util.EnumSet;
@@ -20,13 +19,13 @@ import static java.nio.file.attribute.PosixFilePermission.OWNER_WRITE;
 public class IOUtils {
 
     public static File createTempFile() throws IOException {
-        final File tempFile = File.createTempFile("signal-cli_tmp_", ".tmp");
+        final var tempFile = File.createTempFile("signal-cli_tmp_", ".tmp");
         tempFile.deleteOnExit();
         return tempFile;
     }
 
     public static byte[] readFully(InputStream in) throws IOException {
-        ByteArrayOutputStream baos = new ByteArrayOutputStream();
+        var baos = new ByteArrayOutputStream();
         IOUtils.copyStream(in, baos);
         return baos.toByteArray();
     }
@@ -36,7 +35,7 @@ public class IOUtils {
             return;
         }
 
-        final Path path = file.toPath();
+        final var path = file.toPath();
         try {
             Set<PosixFilePermission> perms = EnumSet.of(OWNER_READ, OWNER_WRITE, OWNER_EXECUTE);
             Files.createDirectories(path, PosixFilePermissions.asFileAttribute(perms));
@@ -46,7 +45,7 @@ public class IOUtils {
     }
 
     public static void createPrivateFile(File path) throws IOException {
-        final Path file = path.toPath();
+        final var file = path.toPath();
         try {
             Set<PosixFilePermission> perms = EnumSet.of(OWNER_READ, OWNER_WRITE);
             Files.createFile(file, PosixFilePermissions.asFileAttribute(perms));
@@ -66,7 +65,7 @@ public class IOUtils {
     }
 
     public static void copyStream(InputStream input, OutputStream output, int bufferSize) throws IOException {
-        byte[] buffer = new byte[bufferSize];
+        var buffer = new byte[bufferSize];
         int read;
 
         while ((read = input.read(buffer)) != -1) {
index b5567b57131ce14ce3e5eec6a9fe559b6749c920..5167331ab9441b03bf955e7f0aa6facbd970310b 100644 (file)
@@ -6,8 +6,6 @@ import org.whispersystems.libsignal.IdentityKey;
 import org.whispersystems.libsignal.IdentityKeyPair;
 import org.whispersystems.libsignal.InvalidKeyException;
 import org.whispersystems.libsignal.ecc.Curve;
-import org.whispersystems.libsignal.ecc.ECKeyPair;
-import org.whispersystems.libsignal.ecc.ECPrivateKey;
 import org.whispersystems.libsignal.state.PreKeyRecord;
 import org.whispersystems.libsignal.state.SignedPreKeyRecord;
 import org.whispersystems.libsignal.util.Medium;
@@ -26,19 +24,19 @@ public class KeyUtils {
     }
 
     public static IdentityKeyPair generateIdentityKeyPair() {
-        ECKeyPair djbKeyPair = Curve.generateKeyPair();
-        IdentityKey djbIdentityKey = new IdentityKey(djbKeyPair.getPublicKey());
-        ECPrivateKey djbPrivateKey = djbKeyPair.getPrivateKey();
+        var djbKeyPair = Curve.generateKeyPair();
+        var djbIdentityKey = new IdentityKey(djbKeyPair.getPublicKey());
+        var djbPrivateKey = djbKeyPair.getPrivateKey();
 
         return new IdentityKeyPair(djbIdentityKey, djbPrivateKey);
     }
 
     public static List<PreKeyRecord> generatePreKeyRecords(final int offset, final int batchSize) {
-        List<PreKeyRecord> records = new ArrayList<>(batchSize);
-        for (int i = 0; i < batchSize; i++) {
-            int preKeyId = (offset + i) % Medium.MAX_VALUE;
-            ECKeyPair keyPair = Curve.generateKeyPair();
-            PreKeyRecord record = new PreKeyRecord(preKeyId, keyPair);
+        var records = new ArrayList<PreKeyRecord>(batchSize);
+        for (var i = 0; i < batchSize; i++) {
+            var preKeyId = (offset + i) % Medium.MAX_VALUE;
+            var keyPair = Curve.generateKeyPair();
+            var record = new PreKeyRecord(preKeyId, keyPair);
 
             records.add(record);
         }
@@ -48,7 +46,7 @@ public class KeyUtils {
     public static SignedPreKeyRecord generateSignedPreKeyRecord(
             final IdentityKeyPair identityKeyPair, final int signedPreKeyId
     ) {
-        ECKeyPair keyPair = Curve.generateKeyPair();
+        var keyPair = Curve.generateKeyPair();
         byte[] signature;
         try {
             signature = Curve.calculateSignature(identityKeyPair.getPrivateKey(), keyPair.getPublicKey().serialize());
@@ -83,12 +81,12 @@ public class KeyUtils {
     }
 
     private static String getSecret(int size) {
-        byte[] secret = getSecretBytes(size);
+        var secret = getSecretBytes(size);
         return Base64.getEncoder().encodeToString(secret);
     }
 
     public static byte[] getSecretBytes(int size) {
-        byte[] secret = new byte[size];
+        var secret = new byte[size];
         secureRandom.nextBytes(secret);
         return secret;
     }
index 8661c10bded978e7ef91e9b96a4f5746c89763c5..05ff976e8a1daaf56b36dacd5355be981897043d 100644 (file)
@@ -16,32 +16,32 @@ import java.util.UUID;
 public class MessageCacheUtils {
 
     public static SignalServiceEnvelope loadEnvelope(File file) throws IOException {
-        try (FileInputStream f = new FileInputStream(file)) {
-            DataInputStream in = new DataInputStream(f);
-            int version = in.readInt();
+        try (var f = new FileInputStream(file)) {
+            var in = new DataInputStream(f);
+            var version = in.readInt();
             if (version > 4) {
                 return null;
             }
-            int type = in.readInt();
-            String source = in.readUTF();
+            var type = in.readInt();
+            var source = in.readUTF();
             UUID sourceUuid = null;
             if (version >= 3) {
                 sourceUuid = UuidUtil.parseOrNull(in.readUTF());
             }
-            int sourceDevice = in.readInt();
+            var sourceDevice = in.readInt();
             if (version == 1) {
                 // read legacy relay field
                 in.readUTF();
             }
-            long timestamp = in.readLong();
+            var timestamp = in.readLong();
             byte[] content = null;
-            int contentLen = in.readInt();
+            var contentLen = in.readInt();
             if (contentLen > 0) {
                 content = new byte[contentLen];
                 in.readFully(content);
             }
             byte[] legacyMessage = null;
-            int legacyMessageLen = in.readInt();
+            var legacyMessageLen = in.readInt();
             if (legacyMessageLen > 0) {
                 legacyMessage = new byte[legacyMessageLen];
                 in.readFully(legacyMessage);
@@ -75,8 +75,8 @@ public class MessageCacheUtils {
     }
 
     public static void storeEnvelope(SignalServiceEnvelope envelope, File file) throws IOException {
-        try (FileOutputStream f = new FileOutputStream(file)) {
-            try (DataOutputStream out = new DataOutputStream(f)) {
+        try (var f = new FileOutputStream(file)) {
+            try (var out = new DataOutputStream(f)) {
                 out.writeInt(4); // version
                 out.writeInt(envelope.getType());
                 out.writeUTF(envelope.getSourceE164().isPresent() ? envelope.getSourceE164().get() : "");
@@ -96,7 +96,7 @@ public class MessageCacheUtils {
                     out.writeInt(0);
                 }
                 out.writeLong(envelope.getServerReceivedTimestamp());
-                String uuid = envelope.getUuid();
+                var uuid = envelope.getUuid();
                 out.writeUTF(uuid == null ? "" : uuid);
                 out.writeLong(envelope.getServerDeliveredTimestamp());
             }
index 2fd2d80295fafbada2a2a472258d74c6b3e5b593..5dc5a5bca5598b0101f079a3295f4daf44bcac4a 100644 (file)
@@ -12,18 +12,18 @@ public final class PinHashing {
     }
 
     public static HashedPin hashPin(String pin, KeyBackupService.HashSession hashSession) {
-        final Argon2Parameters params = new Argon2Parameters.Builder(Argon2Parameters.ARGON2_id).withParallelism(1)
+        final var params = new Argon2Parameters.Builder(Argon2Parameters.ARGON2_id).withParallelism(1)
                 .withIterations(32)
                 .withVersion(Argon2Parameters.ARGON2_VERSION_13)
                 .withMemoryAsKB(16 * 1024)
                 .withSalt(hashSession.hashSalt())
                 .build();
 
-        final Argon2BytesGenerator generator = new Argon2BytesGenerator();
+        final var generator = new Argon2BytesGenerator();
         generator.init(params);
 
         return PinHasher.hashPin(PinHasher.normalize(pin), password -> {
-            byte[] output = new byte[64];
+            var output = new byte[64];
             generator.generateBytes(password, output);
             return output;
         });
index 1136244459cb55b4a6c1f44d5a83f19433fae35d..63820b517271f25160daab15d2d1ea59e7afb44a 100644 (file)
@@ -13,11 +13,11 @@ public class ProfileUtils {
     public static SignalProfile decryptProfile(
             final ProfileKey profileKey, final SignalServiceProfile encryptedProfile
     ) {
-        ProfileCipher profileCipher = new ProfileCipher(profileKey);
+        var profileCipher = new ProfileCipher(profileKey);
         try {
-            String name = decryptName(encryptedProfile.getName(), profileCipher);
-            String about = decryptName(encryptedProfile.getAbout(), profileCipher);
-            String aboutEmoji = decryptName(encryptedProfile.getAboutEmoji(), profileCipher);
+            var name = decryptName(encryptedProfile.getName(), profileCipher);
+            var about = decryptName(encryptedProfile.getAbout(), profileCipher);
+            var aboutEmoji = decryptName(encryptedProfile.getAboutEmoji(), profileCipher);
             String unidentifiedAccess;
             try {
                 unidentifiedAccess = encryptedProfile.getUnidentifiedAccess() == null
index fd5ce77b666f5b646ecf6699e33ef17ff734a120..2fa8bc97b847c195da1b719dc28427e7cbbef295 100644 (file)
@@ -13,8 +13,6 @@ import java.io.FileInputStream;
 import java.io.IOException;
 import java.io.InputStream;
 import java.util.ArrayList;
-import java.util.List;
-import java.util.zip.ZipEntry;
 import java.util.zip.ZipFile;
 
 public class StickerUtils {
@@ -33,7 +31,7 @@ public class StickerUtils {
             throw new StickerPackInvalidException("Could not find manifest.json");
         }
 
-        JsonStickerPack pack = parseStickerPack(rootPath, zip);
+        var pack = parseStickerPack(rootPath, zip);
 
         if (pack.stickers == null) {
             throw new StickerPackInvalidException("Must set a 'stickers' field.");
@@ -43,8 +41,8 @@ public class StickerUtils {
             throw new StickerPackInvalidException("Must include stickers.");
         }
 
-        List<SignalServiceStickerManifestUpload.StickerInfo> stickers = new ArrayList<>(pack.stickers.size());
-        for (JsonStickerPack.JsonSticker sticker : pack.stickers) {
+        var stickers = new ArrayList<SignalServiceStickerManifestUpload.StickerInfo>(pack.stickers.size());
+        for (var sticker : pack.stickers) {
             if (sticker.file == null) {
                 throw new StickerPackInvalidException("Must set a 'file' field on each sticker.");
             }
@@ -56,9 +54,8 @@ public class StickerUtils {
                 throw new StickerPackInvalidException("Could not find find " + sticker.file);
             }
 
-            String contentType = Utils.getFileMimeType(new File(sticker.file), null);
-            SignalServiceStickerManifestUpload.StickerInfo stickerInfo = new SignalServiceStickerManifestUpload.StickerInfo(
-                    data.first(),
+            var contentType = Utils.getFileMimeType(new File(sticker.file), null);
+            var stickerInfo = new SignalServiceStickerManifestUpload.StickerInfo(data.first(),
                     data.second(),
                     Optional.fromNullable(sticker.emoji).or(""),
                     contentType);
@@ -78,7 +75,7 @@ public class StickerUtils {
                 throw new StickerPackInvalidException("Could not find find " + pack.cover.file);
             }
 
-            String contentType = Utils.getFileMimeType(new File(pack.cover.file), null);
+            var contentType = Utils.getFileMimeType(new File(pack.cover.file), null);
             cover = new SignalServiceStickerManifestUpload.StickerInfo(data.first(),
                     data.second(),
                     Optional.fromNullable(pack.cover.emoji).or(""),
@@ -102,10 +99,10 @@ public class StickerUtils {
             final String rootPath, final ZipFile zip, final String subfile
     ) throws IOException {
         if (zip != null) {
-            final ZipEntry entry = zip.getEntry(subfile);
+            final var entry = zip.getEntry(subfile);
             return new Pair<>(zip.getInputStream(entry), entry.getSize());
         } else {
-            final File file = new File(rootPath, subfile);
+            final var file = new File(rootPath, subfile);
             return new Pair<>(new FileInputStream(file), file.length());
         }
     }
index fb38d01a58212b9dc716179c5ea05039bfbe6cb1..2963a9966b7c770d2086795134ac2c194fd1922c 100644 (file)
@@ -3,7 +3,6 @@ package org.asamk.signal.manager.util;
 import com.fasterxml.jackson.databind.JsonNode;
 
 import org.whispersystems.libsignal.IdentityKey;
-import org.whispersystems.libsignal.fingerprint.Fingerprint;
 import org.whispersystems.libsignal.fingerprint.NumericFingerprintGenerator;
 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
 import org.whispersystems.signalservice.api.util.StreamDetails;
@@ -21,7 +20,7 @@ import java.nio.file.Files;
 public class Utils {
 
     public static String getFileMimeType(File file, String defaultMimeType) throws IOException {
-        String mime = Files.probeContentType(file.toPath());
+        var mime = Files.probeContentType(file.toPath());
         if (mime == null) {
             try (InputStream bufferedStream = new BufferedInputStream(new FileInputStream(file))) {
                 mime = URLConnection.guessContentTypeFromStream(bufferedStream);
@@ -35,8 +34,8 @@ public class Utils {
 
     public static StreamDetails createStreamDetailsFromFile(File file) throws IOException {
         InputStream stream = new FileInputStream(file);
-        final long size = file.length();
-        final String mime = getFileMimeType(file, "application/octet-stream");
+        final var size = file.length();
+        final var mime = getFileMimeType(file, "application/octet-stream");
         return new StreamDetails(stream, mime, size);
     }
 
@@ -66,7 +65,7 @@ public class Utils {
             theirId = theirAddress.getNumber().get().getBytes();
         }
 
-        Fingerprint fingerprint = new NumericFingerprintGenerator(5200).createFor(version,
+        var fingerprint = new NumericFingerprintGenerator(5200).createFor(version,
                 ownId,
                 ownIdentityKey,
                 theirId,
@@ -83,7 +82,7 @@ public class Utils {
     }
 
     public static JsonNode getNotNullNode(JsonNode parent, String name) throws InvalidObjectException {
-        JsonNode node = parent.get(name);
+        var node = parent.get(name);
         if (node == null || node.isNull()) {
             throw new InvalidObjectException(String.format("Incorrect file format: expected parameter %s not found ",
                     name));
index 90efc20f62fad2bc6548ff222652d52ccef49697..5f0f1cdfb40aa9735d9a434c4652f523dc737cdc 100644 (file)
@@ -3,10 +3,7 @@ package org.asamk.signal;
 import net.sourceforge.argparse4j.ArgumentParsers;
 import net.sourceforge.argparse4j.impl.Arguments;
 import net.sourceforge.argparse4j.inf.ArgumentParser;
-import net.sourceforge.argparse4j.inf.MutuallyExclusiveGroup;
 import net.sourceforge.argparse4j.inf.Namespace;
-import net.sourceforge.argparse4j.inf.Subparser;
-import net.sourceforge.argparse4j.inf.Subparsers;
 
 import org.asamk.Signal;
 import org.asamk.signal.commands.Command;
@@ -33,7 +30,6 @@ import org.whispersystems.signalservice.api.util.PhoneNumberFormatter;
 import java.io.File;
 import java.io.IOException;
 import java.util.List;
-import java.util.Map;
 import java.util.Objects;
 import java.util.stream.Collectors;
 
@@ -44,7 +40,7 @@ public class App {
     private final Namespace ns;
 
     static ArgumentParser buildArgumentParser() {
-        ArgumentParser parser = ArgumentParsers.newFor("signal-cli")
+        var parser = ArgumentParsers.newFor("signal-cli")
                 .build()
                 .defaultHelp(true)
                 .description("Commandline interface for Signal.")
@@ -59,7 +55,7 @@ public class App {
 
         parser.addArgument("-u", "--username").help("Specify your phone number, that will be used for verification.");
 
-        MutuallyExclusiveGroup mut = parser.addMutuallyExclusiveGroup();
+        var mut = parser.addMutuallyExclusiveGroup();
         mut.addArgument("--dbus").help("Make request via user dbus.").action(Arguments.storeTrue());
         mut.addArgument("--dbus-system").help("Make request via system dbus.").action(Arguments.storeTrue());
 
@@ -68,11 +64,11 @@ public class App {
                 .type(Arguments.enumStringType(OutputType.class))
                 .setDefault(OutputType.PLAIN_TEXT);
 
-        Subparsers subparsers = parser.addSubparsers().title("subcommands").dest("command");
+        var subparsers = parser.addSubparsers().title("subcommands").dest("command");
 
-        final Map<String, Command> commands = Commands.getCommands();
-        for (Map.Entry<String, Command> entry : commands.entrySet()) {
-            Subparser subparser = subparsers.addParser(entry.getKey());
+        final var commands = Commands.getCommands();
+        for (var entry : commands.entrySet()) {
+            var subparser = subparsers.addParser(entry.getKey());
             entry.getValue().attachToSubparser(subparser);
         }
 
@@ -84,8 +80,8 @@ public class App {
     }
 
     public int init() {
-        String commandKey = ns.getString("command");
-        Command command = Commands.getCommand(commandKey);
+        var commandKey = ns.getString("command");
+        var command = Commands.getCommand(commandKey);
         if (command == null) {
             logger.error("Command not implemented!");
             return 1;
@@ -97,7 +93,7 @@ public class App {
             return 1;
         }
 
-        String username = ns.getString("username");
+        var username = ns.getString("username");
 
         final boolean useDbus = ns.getBoolean("dbus");
         final boolean useDbusSystem = ns.getBoolean("dbus_system");
@@ -107,14 +103,14 @@ public class App {
         }
 
         final File dataPath;
-        String config = ns.getString("config");
+        var config = ns.getString("config");
         if (config != null) {
             dataPath = new File(config);
         } else {
             dataPath = getDefaultDataPath();
         }
 
-        final ServiceEnvironment serviceEnvironment = ServiceEnvironment.LIVE;
+        final var serviceEnvironment = ServiceEnvironment.LIVE;
 
         if (!ServiceConfig.getCapabilities().isGv2()) {
             logger.warn("WARNING: Support for new group V2 is disabled,"
@@ -136,7 +132,7 @@ public class App {
         }
 
         if (username == null) {
-            List<String> usernames = Manager.getAllLocalUsernames(dataPath);
+            var usernames = Manager.getAllLocalUsernames(dataPath);
             if (usernames.size() == 0) {
                 System.err.println("No local users found, you first need to register or link an account");
                 return 1;
@@ -172,7 +168,7 @@ public class App {
     private int handleProvisioningCommand(
             final ProvisioningCommand command, final File dataPath, final ServiceEnvironment serviceEnvironment
     ) {
-        ProvisioningManager pm = ProvisioningManager.init(dataPath, serviceEnvironment, BaseConfig.USER_AGENT);
+        var pm = ProvisioningManager.init(dataPath, serviceEnvironment, BaseConfig.USER_AGENT);
         return command.handleCommand(ns, pm);
     }
 
@@ -189,7 +185,7 @@ public class App {
             logger.error("Error loading or creating state file: {}", e.getMessage());
             return 2;
         }
-        try (RegistrationManager m = manager) {
+        try (var m = manager) {
             return command.handleCommand(ns, m);
         } catch (IOException e) {
             logger.error("Cleanup failed", e);
@@ -203,7 +199,7 @@ public class App {
             final File dataPath,
             final ServiceEnvironment serviceEnvironment
     ) {
-        try (Manager m = loadManager(username, dataPath, serviceEnvironment)) {
+        try (var m = loadManager(username, dataPath, serviceEnvironment)) {
             if (m == null) {
                 return 2;
             }
@@ -221,14 +217,14 @@ public class App {
             final ServiceEnvironment serviceEnvironment,
             final List<String> usernames
     ) {
-        final List<Manager> managers = usernames.stream()
+        final var managers = usernames.stream()
                 .map(u -> loadManager(u, dataPath, serviceEnvironment))
                 .filter(Objects::nonNull)
                 .collect(Collectors.toList());
 
-        int result = command.handleCommand(ns, managers);
+        var result = command.handleCommand(ns, managers);
 
-        for (Manager m : managers) {
+        for (var m : managers) {
             try {
                 m.close();
             } catch (IOException e) {
@@ -270,8 +266,8 @@ public class App {
             } else {
                 busType = DBusConnection.DBusBusType.SESSION;
             }
-            try (DBusConnection dBusConn = DBusConnection.getConnection(busType)) {
-                Signal ts = dBusConn.getRemoteObject(DbusConfig.getBusname(),
+            try (var dBusConn = DBusConnection.getConnection(busType)) {
+                var ts = dBusConn.getRemoteObject(DbusConfig.getBusname(),
                         DbusConfig.getObjectPath(username),
                         Signal.class);
 
@@ -302,14 +298,14 @@ public class App {
      * @return the data directory to be used by signal-cli.
      */
     private static File getDefaultDataPath() {
-        File dataPath = new File(IOUtils.getDataHomeDir(), "signal-cli");
+        var dataPath = new File(IOUtils.getDataHomeDir(), "signal-cli");
         if (dataPath.exists()) {
             return dataPath;
         }
 
-        File configPath = new File(System.getProperty("user.home"), ".config");
+        var configPath = new File(System.getProperty("user.home"), ".config");
 
-        File legacySettingsPath = new File(configPath, "signal");
+        var legacySettingsPath = new File(configPath, "signal");
         if (legacySettingsPath.exists()) {
             return legacySettingsPath;
         }
index 0cffd7b1dce73be67eb9b21ea655b70e846badc5..e0bd793d83cdc2e224027f1ea7ce5c5fb2c8a1cc 100644 (file)
@@ -5,15 +5,10 @@ import org.asamk.signal.manager.Manager;
 import org.asamk.signal.manager.groups.GroupUtils;
 import org.freedesktop.dbus.connections.impl.DBusConnection;
 import org.freedesktop.dbus.exceptions.DBusException;
-import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
 import org.whispersystems.signalservice.api.messages.SignalServiceContent;
 import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
 import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
 import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
-import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage;
-import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptMessage;
-import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage;
-import org.whispersystems.signalservice.api.push.SignalServiceAddress;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -46,11 +41,11 @@ public class JsonDbusReceiveMessageHandler extends JsonReceiveMessageHandler {
                 e.printStackTrace();
             }
         } else if (content != null) {
-            final SignalServiceAddress sender = !envelope.isUnidentifiedSender() && envelope.hasSource()
+            final var sender = !envelope.isUnidentifiedSender() && envelope.hasSource()
                     ? envelope.getSourceAddress()
                     : content.getSender();
             if (content.getReceiptMessage().isPresent()) {
-                final SignalServiceReceiptMessage receiptMessage = content.getReceiptMessage().get();
+                final var receiptMessage = content.getReceiptMessage().get();
                 if (receiptMessage.isDeliveryReceipt()) {
                     for (long timestamp : receiptMessage.getTimestamps()) {
                         try {
@@ -63,9 +58,9 @@ public class JsonDbusReceiveMessageHandler extends JsonReceiveMessageHandler {
                     }
                 }
             } else if (content.getDataMessage().isPresent()) {
-                SignalServiceDataMessage message = content.getDataMessage().get();
+                var message = content.getDataMessage().get();
 
-                byte[] groupId = getGroupId(message);
+                var groupId = getGroupId(message);
                 if (!message.isEndSession() && (
                         groupId == null
                                 || message.getGroupContext().get().getGroupV1Type() == null
@@ -83,15 +78,15 @@ public class JsonDbusReceiveMessageHandler extends JsonReceiveMessageHandler {
                     }
                 }
             } else if (content.getSyncMessage().isPresent()) {
-                SignalServiceSyncMessage sync_message = content.getSyncMessage().get();
+                var sync_message = content.getSyncMessage().get();
                 if (sync_message.getSent().isPresent()) {
-                    SentTranscriptMessage transcript = sync_message.getSent().get();
+                    var transcript = sync_message.getSent().get();
 
                     if (transcript.getDestination().isPresent() || transcript.getMessage()
                             .getGroupContext()
                             .isPresent()) {
-                        SignalServiceDataMessage message = transcript.getMessage();
-                        byte[] groupId = getGroupId(message);
+                        var message = transcript.getMessage();
+                        var groupId = getGroupId(message);
 
                         try {
                             conn.sendMessage(new Signal.SyncMessageReceived(objectPath,
@@ -118,9 +113,9 @@ public class JsonDbusReceiveMessageHandler extends JsonReceiveMessageHandler {
     }
 
     static private List<String> getAttachments(SignalServiceDataMessage message, Manager m) {
-        List<String> attachments = new ArrayList<>();
+        var attachments = new ArrayList<String>();
         if (message.getAttachments().isPresent()) {
-            for (SignalServiceAttachment attachment : message.getAttachments().get()) {
+            for (var attachment : message.getAttachments().get()) {
                 if (attachment.isPointer()) {
                     attachments.add(m.getAttachmentFile(attachment.asPointer().getRemoteId()).getAbsolutePath());
                 }
index 818f28814c0ac84db1526f10995f90b6559b5f97..38657f5e618f71b40e08f1717926c30898a67aae 100644 (file)
@@ -10,7 +10,6 @@ import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
 
 import java.io.IOException;
 import java.util.HashMap;
-import java.util.Map;
 
 public class JsonReceiveMessageHandler implements Manager.ReceiveMessageHandler {
 
@@ -26,7 +25,7 @@ public class JsonReceiveMessageHandler implements Manager.ReceiveMessageHandler
 
     @Override
     public void handleMessage(SignalServiceEnvelope envelope, SignalServiceContent content, Throwable exception) {
-        final Map<String, Object> object = new HashMap<>();
+        final var object = new HashMap<String, Object>();
         if (exception != null) {
             object.put("error", new JsonError(exception));
         }
index 2ec1470c8b7a84add5912014f98bfb4c18a4d338..88ae06caaa621d4dfdbc940984c128d1c86770ae 100644 (file)
@@ -18,7 +18,6 @@ package org.asamk.signal;
 
 import net.sourceforge.argparse4j.ArgumentParsers;
 import net.sourceforge.argparse4j.impl.Arguments;
-import net.sourceforge.argparse4j.inf.ArgumentParser;
 import net.sourceforge.argparse4j.inf.ArgumentParserException;
 import net.sourceforge.argparse4j.inf.Namespace;
 
@@ -36,11 +35,11 @@ public class Main {
         // Configuring the logger needs to happen before any logger is initialized
         configureLogging(isVerbose(args));
 
-        ArgumentParser parser = App.buildArgumentParser();
+        var parser = App.buildArgumentParser();
 
-        Namespace ns = parser.parseArgsOrFail(args);
+        var ns = parser.parseArgsOrFail(args);
 
-        int res = new App(ns).init();
+        var res = new App(ns).init();
         System.exit(res);
     }
 
@@ -51,7 +50,7 @@ public class Main {
     }
 
     private static boolean isVerbose(String[] args) {
-        ArgumentParser parser = ArgumentParsers.newFor("signal-cli").build().defaultHelp(false);
+        var parser = ArgumentParsers.newFor("signal-cli").build().defaultHelp(false);
         parser.addArgument("--verbose").action(Arguments.storeTrue());
 
         Namespace ns;
index 19874d55fa28df3a8e64d20665491d7ecd4b0e0d..d6536481551d0506a731b3add0c6f749d84cf7af 100644 (file)
@@ -20,7 +20,7 @@ public final class PlainTextWriterImpl implements PlainTextWriter {
 
     @Override
     public void println(String format, Object... args) throws IOException {
-        final String message = MessageFormatter.arrayFormat(format, args).getMessage();
+        final var message = MessageFormatter.arrayFormat(format, args).getMessage();
 
         writer.write(message);
         writer.write(System.lineSeparator());
index 6e9e1a94e64baa70b46ed7047d576c74b9cfeea3..8c75fcbacc985229a304480dcaab584b84e2d17a 100644 (file)
@@ -3,46 +3,24 @@ package org.asamk.signal;
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.manager.groups.GroupId;
 import org.asamk.signal.manager.groups.GroupUtils;
-import org.asamk.signal.manager.storage.groups.GroupInfo;
 import org.asamk.signal.util.DateUtils;
 import org.asamk.signal.util.Util;
 import org.slf4j.helpers.MessageFormatter;
 import org.whispersystems.libsignal.UntrustedIdentityException;
 import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
-import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer;
 import org.whispersystems.signalservice.api.messages.SignalServiceContent;
 import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
 import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
-import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
 import org.whispersystems.signalservice.api.messages.SignalServiceGroupContext;
-import org.whispersystems.signalservice.api.messages.SignalServiceGroupV2;
 import org.whispersystems.signalservice.api.messages.SignalServiceReceiptMessage;
 import org.whispersystems.signalservice.api.messages.SignalServiceTypingMessage;
-import org.whispersystems.signalservice.api.messages.calls.AnswerMessage;
-import org.whispersystems.signalservice.api.messages.calls.BusyMessage;
-import org.whispersystems.signalservice.api.messages.calls.HangupMessage;
-import org.whispersystems.signalservice.api.messages.calls.IceUpdateMessage;
-import org.whispersystems.signalservice.api.messages.calls.OfferMessage;
-import org.whispersystems.signalservice.api.messages.calls.OpaqueMessage;
 import org.whispersystems.signalservice.api.messages.calls.SignalServiceCallMessage;
-import org.whispersystems.signalservice.api.messages.multidevice.BlockedListMessage;
-import org.whispersystems.signalservice.api.messages.multidevice.ConfigurationMessage;
-import org.whispersystems.signalservice.api.messages.multidevice.ContactsMessage;
-import org.whispersystems.signalservice.api.messages.multidevice.KeysMessage;
-import org.whispersystems.signalservice.api.messages.multidevice.MessageRequestResponseMessage;
-import org.whispersystems.signalservice.api.messages.multidevice.ReadMessage;
-import org.whispersystems.signalservice.api.messages.multidevice.SentTranscriptMessage;
 import org.whispersystems.signalservice.api.messages.multidevice.SignalServiceSyncMessage;
-import org.whispersystems.signalservice.api.messages.multidevice.StickerPackOperationMessage;
-import org.whispersystems.signalservice.api.messages.multidevice.VerifiedMessage;
-import org.whispersystems.signalservice.api.messages.multidevice.ViewOnceOpenMessage;
 import org.whispersystems.signalservice.api.messages.shared.SharedContact;
 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
 
-import java.io.File;
 import java.io.IOException;
 import java.util.Base64;
-import java.util.List;
 import java.util.stream.Collectors;
 
 public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
@@ -68,7 +46,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
         PlainTextWriter writer = new PlainTextWriterImpl(System.out);
 
         if (envelope.hasSource()) {
-            SignalServiceAddress source = envelope.getSourceAddress();
+            var source = envelope.getSourceAddress();
             writer.println("Envelope from: {} (device: {})", formatContact(source), envelope.getSourceDevice());
             if (source.getRelay().isPresent()) {
                 writer.println("Relayed by: {}", source.getRelay().get());
@@ -86,7 +64,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
         } else if (envelope.isSignalMessage() || envelope.isPreKeySignalMessage() || envelope.isUnidentifiedSender()) {
             if (exception != null) {
                 if (exception instanceof UntrustedIdentityException) {
-                    UntrustedIdentityException e = (UntrustedIdentityException) exception;
+                    var e = (UntrustedIdentityException) exception;
                     writer.println(
                             "The user’s key is untrusted, either the user has reinstalled Signal or a third party sent this message.");
                     writer.println(
@@ -112,28 +90,28 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
                         DateUtils.formatTimestamp(content.getServerDeliveredTimestamp()));
 
                 if (content.getDataMessage().isPresent()) {
-                    SignalServiceDataMessage message = content.getDataMessage().get();
+                    var message = content.getDataMessage().get();
                     printDataMessage(writer, message);
                 }
                 if (content.getSyncMessage().isPresent()) {
                     writer.println("Received a sync message");
-                    SignalServiceSyncMessage syncMessage = content.getSyncMessage().get();
+                    var syncMessage = content.getSyncMessage().get();
                     printSyncMessage(writer, syncMessage);
                 }
 
                 if (content.getCallMessage().isPresent()) {
                     writer.println("Received a call message");
-                    SignalServiceCallMessage callMessage = content.getCallMessage().get();
+                    var callMessage = content.getCallMessage().get();
                     printCallMessage(writer.indentedWriter(), callMessage);
                 }
                 if (content.getReceiptMessage().isPresent()) {
                     writer.println("Received a receipt message");
-                    SignalServiceReceiptMessage receiptMessage = content.getReceiptMessage().get();
+                    var receiptMessage = content.getReceiptMessage().get();
                     printReceiptMessage(writer.indentedWriter(), receiptMessage);
                 }
                 if (content.getTypingMessage().isPresent()) {
                     writer.println("Received a typing message");
-                    SignalServiceTypingMessage typingMessage = content.getTypingMessage().get();
+                    var typingMessage = content.getTypingMessage().get();
                     printTypingMessage(writer.indentedWriter(), typingMessage);
                 }
             }
@@ -156,32 +134,32 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
         }
         if (message.getGroupContext().isPresent()) {
             writer.println("Group info:");
-            final SignalServiceGroupContext groupContext = message.getGroupContext().get();
+            final var groupContext = message.getGroupContext().get();
             printGroupContext(writer.indentedWriter(), groupContext);
         }
         if (message.getGroupCallUpdate().isPresent()) {
             writer.println("Group call update:");
-            final SignalServiceDataMessage.GroupCallUpdate groupCallUpdate = message.getGroupCallUpdate().get();
+            final var groupCallUpdate = message.getGroupCallUpdate().get();
             writer.indentedWriter().println("Era id: {}", groupCallUpdate.getEraId());
         }
         if (message.getPreviews().isPresent()) {
             writer.println("Previews:");
-            final List<SignalServiceDataMessage.Preview> previews = message.getPreviews().get();
-            for (SignalServiceDataMessage.Preview preview : previews) {
+            final var previews = message.getPreviews().get();
+            for (var preview : previews) {
                 writer.println("- Preview");
                 printPreview(writer.indentedWriter(), preview);
             }
         }
         if (message.getSharedContacts().isPresent()) {
-            final List<SharedContact> sharedContacts = message.getSharedContacts().get();
+            final var sharedContacts = message.getSharedContacts().get();
             writer.println("Contacts:");
-            for (SharedContact contact : sharedContacts) {
+            for (var contact : sharedContacts) {
                 writer.println("- Contact:");
                 printSharedContact(writer.indentedWriter(), contact);
             }
         }
         if (message.getSticker().isPresent()) {
-            final SignalServiceDataMessage.Sticker sticker = message.getSticker().get();
+            final var sticker = message.getSticker().get();
             writer.println("Sticker:");
             printSticker(writer.indentedWriter(), sticker);
         }
@@ -199,27 +177,27 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
         }
         if (message.getReaction().isPresent()) {
             writer.println("Reaction:");
-            final SignalServiceDataMessage.Reaction reaction = message.getReaction().get();
+            final var reaction = message.getReaction().get();
             printReaction(writer.indentedWriter(), reaction);
         }
         if (message.getQuote().isPresent()) {
             writer.println("Quote:");
-            SignalServiceDataMessage.Quote quote = message.getQuote().get();
+            var quote = message.getQuote().get();
             printQuote(writer.indentedWriter(), quote);
         }
         if (message.getRemoteDelete().isPresent()) {
-            final SignalServiceDataMessage.RemoteDelete remoteDelete = message.getRemoteDelete().get();
+            final var remoteDelete = message.getRemoteDelete().get();
             writer.println("Remote delete message: timestamp = {}", remoteDelete.getTargetSentTimestamp());
         }
         if (message.getMentions().isPresent()) {
             writer.println("Mentions:");
-            for (SignalServiceDataMessage.Mention mention : message.getMentions().get()) {
+            for (var mention : message.getMentions().get()) {
                 printMention(writer, mention);
             }
         }
         if (message.getAttachments().isPresent()) {
             writer.println("Attachments:");
-            for (SignalServiceAttachment attachment : message.getAttachments().get()) {
+            for (var attachment : message.getAttachments().get()) {
                 writer.println("- Attachment:");
                 printAttachment(writer.indentedWriter(), attachment);
             }
@@ -233,7 +211,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
         writer.println("Timestamp: {}", DateUtils.formatTimestamp(typingMessage.getTimestamp()));
         if (typingMessage.getGroupId().isPresent()) {
             writer.println("Group Info:");
-            final GroupId groupId = GroupId.unknownVersion(typingMessage.getGroupId().get());
+            final var groupId = GroupId.unknownVersion(typingMessage.getGroupId().get());
             printGroupInfo(writer.indentedWriter(), groupId);
         }
     }
@@ -261,34 +239,34 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
             final PlainTextWriter writer, final SignalServiceCallMessage callMessage
     ) throws IOException {
         if (callMessage.getDestinationDeviceId().isPresent()) {
-            final Integer deviceId = callMessage.getDestinationDeviceId().get();
+            final var deviceId = callMessage.getDestinationDeviceId().get();
             writer.println("Destination device id: {}", deviceId);
         }
         if (callMessage.getAnswerMessage().isPresent()) {
-            AnswerMessage answerMessage = callMessage.getAnswerMessage().get();
+            var answerMessage = callMessage.getAnswerMessage().get();
             writer.println("Answer message: {}, sdp: {})", answerMessage.getId(), answerMessage.getSdp());
         }
         if (callMessage.getBusyMessage().isPresent()) {
-            BusyMessage busyMessage = callMessage.getBusyMessage().get();
+            var busyMessage = callMessage.getBusyMessage().get();
             writer.println("Busy message: {}", busyMessage.getId());
         }
         if (callMessage.getHangupMessage().isPresent()) {
-            HangupMessage hangupMessage = callMessage.getHangupMessage().get();
+            var hangupMessage = callMessage.getHangupMessage().get();
             writer.println("Hangup message: {}", hangupMessage.getId());
         }
         if (callMessage.getIceUpdateMessages().isPresent()) {
             writer.println("Ice update messages:");
-            List<IceUpdateMessage> iceUpdateMessages = callMessage.getIceUpdateMessages().get();
-            for (IceUpdateMessage iceUpdateMessage : iceUpdateMessages) {
+            var iceUpdateMessages = callMessage.getIceUpdateMessages().get();
+            for (var iceUpdateMessage : iceUpdateMessages) {
                 writer.println("- {}, sdp: {}", iceUpdateMessage.getId(), iceUpdateMessage.getSdp());
             }
         }
         if (callMessage.getOfferMessage().isPresent()) {
-            OfferMessage offerMessage = callMessage.getOfferMessage().get();
+            var offerMessage = callMessage.getOfferMessage().get();
             writer.println("Offer message: {}, sdp: {}", offerMessage.getId(), offerMessage.getSdp());
         }
         if (callMessage.getOpaqueMessage().isPresent()) {
-            final OpaqueMessage opaqueMessage = callMessage.getOpaqueMessage().get();
+            final var opaqueMessage = callMessage.getOpaqueMessage().get();
             writer.println("Opaque message: size {}", opaqueMessage.getOpaque().length);
         }
     }
@@ -297,8 +275,8 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
             final PlainTextWriter writer, final SignalServiceSyncMessage syncMessage
     ) throws IOException {
         if (syncMessage.getContacts().isPresent()) {
-            final ContactsMessage contactsMessage = syncMessage.getContacts().get();
-            String type = contactsMessage.isComplete() ? "complete" : "partial";
+            final var contactsMessage = syncMessage.getContacts().get();
+            var type = contactsMessage.isComplete() ? "complete" : "partial";
             writer.println("Received {} sync contacts:", type);
             printAttachment(writer.indentedWriter(), contactsMessage.getContactsStream());
         }
@@ -308,7 +286,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
         }
         if (syncMessage.getRead().isPresent()) {
             writer.println("Received sync read messages list");
-            for (ReadMessage rm : syncMessage.getRead().get()) {
+            for (var rm : syncMessage.getRead().get()) {
                 writer.println("- From: {} Message timestamp: {}",
                         formatContact(rm.getSender()),
                         DateUtils.formatTimestamp(rm.getTimestamp()));
@@ -333,7 +311,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
         }
         if (syncMessage.getSent().isPresent()) {
             writer.println("Received sync sent message");
-            final SentTranscriptMessage sentTranscriptMessage = syncMessage.getSent().get();
+            final var sentTranscriptMessage = syncMessage.getSent().get();
             String to;
             if (sentTranscriptMessage.getDestination().isPresent()) {
                 to = formatContact(sentTranscriptMessage.getDestination().get());
@@ -353,28 +331,28 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
                         .println("Expiration started at: {}",
                                 DateUtils.formatTimestamp(sentTranscriptMessage.getExpirationStartTimestamp()));
             }
-            SignalServiceDataMessage message = sentTranscriptMessage.getMessage();
+            var message = sentTranscriptMessage.getMessage();
             printDataMessage(writer.indentedWriter(), message);
         }
         if (syncMessage.getBlockedList().isPresent()) {
             writer.println("Received sync message with block list");
             writer.println("Blocked numbers:");
-            final BlockedListMessage blockedList = syncMessage.getBlockedList().get();
-            for (SignalServiceAddress address : blockedList.getAddresses()) {
+            final var blockedList = syncMessage.getBlockedList().get();
+            for (var address : blockedList.getAddresses()) {
                 writer.println("- {}", address.getLegacyIdentifier());
             }
         }
         if (syncMessage.getVerified().isPresent()) {
             writer.println("Received sync message with verified identities:");
-            final VerifiedMessage verifiedMessage = syncMessage.getVerified().get();
+            final var verifiedMessage = syncMessage.getVerified().get();
             writer.println("- {}: {}", formatContact(verifiedMessage.getDestination()), verifiedMessage.getVerified());
-            String safetyNumber = Util.formatSafetyNumber(m.computeSafetyNumber(verifiedMessage.getDestination(),
+            var safetyNumber = Util.formatSafetyNumber(m.computeSafetyNumber(verifiedMessage.getDestination(),
                     verifiedMessage.getIdentityKey()));
             writer.indentedWriter().println(safetyNumber);
         }
         if (syncMessage.getConfiguration().isPresent()) {
             writer.println("Received sync message with configuration:");
-            final ConfigurationMessage configurationMessage = syncMessage.getConfiguration().get();
+            final var configurationMessage = syncMessage.getConfiguration().get();
             if (configurationMessage.getReadReceipts().isPresent()) {
                 writer.println("- Read receipts: {}",
                         configurationMessage.getReadReceipts().get() ? "enabled" : "disabled");
@@ -393,21 +371,20 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
             }
         }
         if (syncMessage.getFetchType().isPresent()) {
-            final SignalServiceSyncMessage.FetchType fetchType = syncMessage.getFetchType().get();
+            final var fetchType = syncMessage.getFetchType().get();
             writer.println("Received sync message with fetch type: {}", fetchType);
         }
         if (syncMessage.getViewOnceOpen().isPresent()) {
-            final ViewOnceOpenMessage viewOnceOpenMessage = syncMessage.getViewOnceOpen().get();
+            final var viewOnceOpenMessage = syncMessage.getViewOnceOpen().get();
             writer.println("Received sync message with view once open message:");
             writer.indentedWriter().println("Sender: {}", formatContact(viewOnceOpenMessage.getSender()));
             writer.indentedWriter()
                     .println("Timestamp: {}", DateUtils.formatTimestamp(viewOnceOpenMessage.getTimestamp()));
         }
         if (syncMessage.getStickerPackOperations().isPresent()) {
-            final List<StickerPackOperationMessage> stickerPackOperationMessages = syncMessage.getStickerPackOperations()
-                    .get();
+            final var stickerPackOperationMessages = syncMessage.getStickerPackOperations().get();
             writer.println("Received sync message with sticker pack operations:");
-            for (StickerPackOperationMessage m : stickerPackOperationMessages) {
+            for (var m : stickerPackOperationMessages) {
                 writer.println("- {}", m.getType().isPresent() ? m.getType().get() : "<unknown>");
                 if (m.getPackId().isPresent()) {
                     writer.indentedWriter()
@@ -420,7 +397,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
             }
         }
         if (syncMessage.getMessageRequestResponse().isPresent()) {
-            final MessageRequestResponseMessage requestResponseMessage = syncMessage.getMessageRequestResponse().get();
+            final var requestResponseMessage = syncMessage.getMessageRequestResponse().get();
             writer.println("Received message request response:");
             writer.indentedWriter().println("Type: {}", requestResponseMessage.getType());
             if (requestResponseMessage.getGroupId().isPresent()) {
@@ -434,7 +411,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
             }
         }
         if (syncMessage.getKeys().isPresent()) {
-            final KeysMessage keysMessage = syncMessage.getKeys().get();
+            final var keysMessage = syncMessage.getKeys().get();
             writer.println("Received sync message with keys:");
             if (keysMessage.getStorageService().isPresent()) {
                 writer.println("-  storage key: length: {}", keysMessage.getStorageService().get().serialize().length);
@@ -482,13 +459,13 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
         writer.println("Text: {}", quote.getText());
         if (quote.getMentions() != null && quote.getMentions().size() > 0) {
             writer.println("Mentions:");
-            for (SignalServiceDataMessage.Mention mention : quote.getMentions()) {
+            for (var mention : quote.getMentions()) {
                 printMention(writer, mention);
             }
         }
         if (quote.getAttachments().size() > 0) {
             writer.println("Attachments:");
-            for (SignalServiceDataMessage.Quote.QuotedAttachment attachment : quote.getAttachments()) {
+            for (var attachment : quote.getAttachments()) {
                 writer.println("- Filename: {}", attachment.getFileName());
                 writer.indent(w -> {
                     w.println("Type: {}", attachment.getContentType());
@@ -503,7 +480,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
 
     private void printSharedContact(final PlainTextWriter writer, final SharedContact contact) throws IOException {
         writer.println("Name:");
-        SharedContact.Name name = contact.getName();
+        var name = contact.getName();
         writer.indent(w -> {
             if (name.getDisplay().isPresent() && !name.getDisplay().get().isBlank()) {
                 w.println("Display name: {}", name.getDisplay().get());
@@ -526,7 +503,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
         });
 
         if (contact.getAvatar().isPresent()) {
-            SharedContact.Avatar avatar = contact.getAvatar().get();
+            var avatar = contact.getAvatar().get();
             writer.println("Avatar: (profile: {})", avatar.isProfile());
             printAttachment(writer.indentedWriter(), avatar.getAttachment());
         }
@@ -537,7 +514,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
 
         if (contact.getPhone().isPresent()) {
             writer.println("Phone details:");
-            for (SharedContact.Phone phone : contact.getPhone().get()) {
+            for (var phone : contact.getPhone().get()) {
                 writer.println("- Phone:");
                 writer.indent(w -> {
                     if (phone.getValue() != null) {
@@ -555,7 +532,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
 
         if (contact.getEmail().isPresent()) {
             writer.println("Email details:");
-            for (SharedContact.Email email : contact.getEmail().get()) {
+            for (var email : contact.getEmail().get()) {
                 writer.println("- Email:");
                 writer.indent(w -> {
                     if (email.getValue() != null) {
@@ -573,7 +550,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
 
         if (contact.getAddress().isPresent()) {
             writer.println("Address details:");
-            for (SharedContact.PostalAddress address : contact.getAddress().get()) {
+            for (var address : contact.getAddress().get()) {
                 writer.println("- Address:");
                 writer.indent(w -> {
                     if (address.getType() != null) {
@@ -611,14 +588,14 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
     private void printGroupContext(
             final PlainTextWriter writer, final SignalServiceGroupContext groupContext
     ) throws IOException {
-        final GroupId groupId = GroupUtils.getGroupId(groupContext);
+        final var groupId = GroupUtils.getGroupId(groupContext);
         if (groupContext.getGroupV1().isPresent()) {
-            SignalServiceGroup groupInfo = groupContext.getGroupV1().get();
+            var groupInfo = groupContext.getGroupV1().get();
             printGroupInfo(writer, groupId);
             writer.println("Type: {}", groupInfo.getType());
             if (groupInfo.getMembers().isPresent()) {
                 writer.println("Members:");
-                for (SignalServiceAddress member : groupInfo.getMembers().get()) {
+                for (var member : groupInfo.getMembers().get()) {
                     writer.println("- {}", formatContact(member));
                 }
             }
@@ -627,7 +604,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
                 printAttachment(writer.indentedWriter(), groupInfo.getAvatar().get());
             }
         } else if (groupContext.getGroupV2().isPresent()) {
-            final SignalServiceGroupV2 groupInfo = groupContext.getGroupV2().get();
+            final var groupInfo = groupContext.getGroupV2().get();
             printGroupInfo(writer, groupId);
             writer.println("Revision: {}", groupInfo.getRevision());
             writer.println("Master key length: {}", groupInfo.getMasterKey().serialize().length);
@@ -638,7 +615,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
     private void printGroupInfo(final PlainTextWriter writer, final GroupId groupId) throws IOException {
         writer.println("Id: {}", groupId.toBase64());
 
-        GroupInfo group = m.getGroup(groupId);
+        var group = m.getGroup(groupId);
         if (group != null) {
             writer.println("Name: {}", group.getTitle());
         } else {
@@ -649,8 +626,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
     private void printMention(
             PlainTextWriter writer, SignalServiceDataMessage.Mention mention
     ) throws IOException {
-        final SignalServiceAddress address = m.resolveSignalServiceAddress(new SignalServiceAddress(mention.getUuid(),
-                null));
+        final var address = m.resolveSignalServiceAddress(new SignalServiceAddress(mention.getUuid(), null));
         writer.println("- {}: {} (length: {})", formatContact(address), mention.getStart(), mention.getLength());
     }
 
@@ -658,7 +634,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
         writer.println("Content-Type: {}", attachment.getContentType());
         writer.println("Type: {}", attachment.isPointer() ? "Pointer" : attachment.isStream() ? "Stream" : "<unknown>");
         if (attachment.isPointer()) {
-            final SignalServiceAttachmentPointer pointer = attachment.asPointer();
+            final var pointer = attachment.asPointer();
             writer.println("Id: {} Key length: {}", pointer.getRemoteId(), pointer.getKey().length);
             if (pointer.getUploadTimestamp() > 0) {
                 writer.println("Upload timestamp: {}", DateUtils.formatTimestamp(pointer.getUploadTimestamp()));
@@ -679,7 +655,7 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
             if (pointer.getWidth() > 0 || pointer.getHeight() > 0) {
                 writer.println("Dimensions: {}x{}", pointer.getWidth(), pointer.getHeight());
             }
-            File file = m.getAttachmentFile(pointer.getRemoteId());
+            var file = m.getAttachmentFile(pointer.getRemoteId());
             if (file.exists()) {
                 writer.println("Stored plaintext in: {}", file);
             }
@@ -687,8 +663,8 @@ public class ReceiveMessageHandler implements Manager.ReceiveMessageHandler {
     }
 
     private String formatContact(SignalServiceAddress address) {
-        final String number = address.getLegacyIdentifier();
-        String name = m.getContactOrProfileName(number);
+        final var number = address.getLegacyIdentifier();
+        var name = m.getContactOrProfileName(number);
         if (name == null) {
             return number;
         } else {
index 60009cfbbdd8a04b20ba1b088da2c276b06c521e..9dff25c6d979ef7477e87260bc26b189d08d5ff6 100644 (file)
@@ -4,7 +4,6 @@ import net.sourceforge.argparse4j.inf.Namespace;
 import net.sourceforge.argparse4j.inf.Subparser;
 
 import org.asamk.signal.manager.Manager;
-import org.asamk.signal.manager.groups.GroupId;
 import org.asamk.signal.manager.groups.GroupIdFormatException;
 import org.asamk.signal.manager.groups.GroupNotFoundException;
 import org.asamk.signal.util.Util;
@@ -21,7 +20,7 @@ public class BlockCommand implements LocalCommand {
 
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
-        for (String contact_number : ns.<String>getList("contact")) {
+        for (var contact_number : ns.<String>getList("contact")) {
             try {
                 m.setContactBlocked(contact_number, true);
             } catch (InvalidNumberException e) {
@@ -30,9 +29,9 @@ public class BlockCommand implements LocalCommand {
         }
 
         if (ns.<String>getList("group") != null) {
-            for (String groupIdString : ns.<String>getList("group")) {
+            for (var groupIdString : ns.<String>getList("group")) {
                 try {
-                    GroupId groupId = Util.decodeGroupId(groupIdString);
+                    var groupId = Util.decodeGroupId(groupIdString);
                     m.setGroupBlocked(groupId, true);
                 } catch (GroupIdFormatException | GroupNotFoundException e) {
                     System.err.println(e.getMessage());
index 19859d4585b3a238ce4d2dba3988a11495fdb44e..6ee4f316cef9fd0b2b6efbb3a7d3fa1130f1b2bd 100644 (file)
@@ -45,7 +45,7 @@ public class DaemonCommand implements MultiLocalCommand {
 
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
-        boolean inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json");
+        var inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json");
 
         // TODO delete later when "json" variable is removed
         if (ns.getBoolean("json")) {
@@ -61,9 +61,9 @@ public class DaemonCommand implements MultiLocalCommand {
             busType = DBusConnection.DBusBusType.SESSION;
         }
 
-        try (DBusConnection conn = DBusConnection.getConnection(busType)) {
-            String objectPath = DbusConfig.getObjectPath();
-            Thread t = run(conn, objectPath, m, ignoreAttachments, inJson);
+        try (var conn = DBusConnection.getConnection(busType)) {
+            var objectPath = DbusConfig.getObjectPath();
+            var t = run(conn, objectPath, m, ignoreAttachments, inJson);
 
             conn.requestBusName(DbusConfig.getBusname());
 
@@ -80,7 +80,7 @@ public class DaemonCommand implements MultiLocalCommand {
 
     @Override
     public int handleCommand(final Namespace ns, final List<Manager> managers) {
-        boolean inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json");
+        var inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json");
 
         // TODO delete later when "json" variable is removed
         if (ns.getBoolean("json")) {
@@ -96,17 +96,17 @@ public class DaemonCommand implements MultiLocalCommand {
             busType = DBusConnection.DBusBusType.SESSION;
         }
 
-        try (DBusConnection conn = DBusConnection.getConnection(busType)) {
-            List<Thread> receiveThreads = new ArrayList<>();
-            for (Manager m : managers) {
-                String objectPath = DbusConfig.getObjectPath(m.getUsername());
-                Thread thread = run(conn, objectPath, m, ignoreAttachments, inJson);
+        try (var conn = DBusConnection.getConnection(busType)) {
+            var receiveThreads = new ArrayList<Thread>();
+            for (var m : managers) {
+                var objectPath = DbusConfig.getObjectPath(m.getUsername());
+                var thread = run(conn, objectPath, m, ignoreAttachments, inJson);
                 receiveThreads.add(thread);
             }
 
             conn.requestBusName(DbusConfig.getBusname());
 
-            for (Thread t : receiveThreads) {
+            for (var t : receiveThreads) {
                 try {
                     t.join();
                 } catch (InterruptedException ignored) {
@@ -124,7 +124,7 @@ public class DaemonCommand implements MultiLocalCommand {
     ) throws DBusException {
         conn.exportObject(objectPath, new DbusSignalImpl(m));
 
-        final Thread thread = new Thread(() -> {
+        final var thread = new Thread(() -> {
             while (true) {
                 try {
                     m.receiveMessages(1,
index 4bc209cd798c74a7e12a9f921c38611154e89759..8fad25543fd148feadb613f16cddee20b0d5aedb 100644 (file)
@@ -12,7 +12,6 @@ import org.slf4j.LoggerFactory;
 
 import java.io.IOException;
 import java.util.HashSet;
-import java.util.List;
 import java.util.Map;
 import java.util.Set;
 import java.util.stream.Collectors;
@@ -38,7 +37,7 @@ public class GetUserStatusCommand implements LocalCommand {
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
         // Setup the json object mapper
-        boolean inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json");
+        var inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json");
 
         // TODO delete later when "json" variable is removed
         if (ns.getBoolean("json")) {
@@ -56,9 +55,9 @@ public class GetUserStatusCommand implements LocalCommand {
 
         // Output
         if (inJson) {
-            final JsonWriter jsonWriter = new JsonWriter(System.out);
+            final var jsonWriter = new JsonWriter(System.out);
 
-            List<JsonUserStatus> jsonUserStatuses = registered.entrySet()
+            var jsonUserStatuses = registered.entrySet()
                     .stream()
                     .map(entry -> new JsonUserStatus(entry.getKey(), entry.getValue()))
                     .collect(Collectors.toList());
@@ -70,7 +69,7 @@ public class GetUserStatusCommand implements LocalCommand {
                 return 3;
             }
         } else {
-            for (Map.Entry<String, Boolean> entry : registered.entrySet()) {
+            for (var entry : registered.entrySet()) {
                 System.out.println(entry.getKey() + ": " + entry.getValue());
             }
         }
index bfe46650c8d006853c607174aacd0aa89fdec348..2a8a9c8f5812fb3cf3503d45c28f81982829ca8c 100644 (file)
@@ -4,16 +4,12 @@ import net.sourceforge.argparse4j.inf.Namespace;
 import net.sourceforge.argparse4j.inf.Subparser;
 
 import org.asamk.signal.manager.Manager;
-import org.asamk.signal.manager.groups.GroupId;
 import org.asamk.signal.manager.groups.GroupInviteLinkUrl;
 import org.freedesktop.dbus.exceptions.DBusExecutionException;
-import org.whispersystems.libsignal.util.Pair;
 import org.whispersystems.signalservice.api.groupsv2.GroupLinkNotActiveException;
-import org.whispersystems.signalservice.api.messages.SendMessageResult;
 import org.whispersystems.signalservice.internal.push.exceptions.GroupPatchNotAcceptedException;
 
 import java.io.IOException;
-import java.util.List;
 
 import static org.asamk.signal.util.ErrorUtils.handleAssertionError;
 import static org.asamk.signal.util.ErrorUtils.handleIOException;
@@ -29,7 +25,7 @@ public class JoinGroupCommand implements LocalCommand {
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
         final GroupInviteLinkUrl linkUrl;
-        String uri = ns.getString("uri");
+        var uri = ns.getString("uri");
         try {
             linkUrl = GroupInviteLinkUrl.fromUri(uri);
         } catch (GroupInviteLinkUrl.InvalidGroupLinkException e) {
@@ -46,8 +42,8 @@ public class JoinGroupCommand implements LocalCommand {
         }
 
         try {
-            final Pair<GroupId, List<SendMessageResult>> results = m.joinGroup(linkUrl);
-            GroupId newGroupId = results.first();
+            final var results = m.joinGroup(linkUrl);
+            var newGroupId = results.first();
             if (!m.getGroup(newGroupId).isMember(m.getSelfAddress())) {
                 System.out.println("Requested to join group \"" + newGroupId.toBase64() + "\"");
             } else {
index 7cc9daf509b44c7a9da1e43d57eb3dade6ecf11d..5c40dba67987c2f9f75b264969f4af7b4e1bf014 100644 (file)
@@ -21,13 +21,13 @@ public class LinkCommand implements ProvisioningCommand {
 
     @Override
     public int handleCommand(final Namespace ns, final ProvisioningManager m) {
-        String deviceName = ns.getString("name");
+        var deviceName = ns.getString("name");
         if (deviceName == null) {
             deviceName = "cli";
         }
         try {
             System.out.println(m.getDeviceLinkUri());
-            String username = m.finishDeviceLink(deviceName);
+            var username = m.finishDeviceLink(deviceName);
             System.out.println("Associated with: " + username);
         } catch (TimeoutException e) {
             System.err.println("Link request timed out, please try again.");
index 1a14e8df26da631063b453fa26efac99a8ba18b4..dcc598563386b5e2353df38c68f244d97f2b7da7 100644 (file)
@@ -4,9 +4,6 @@ import net.sourceforge.argparse4j.inf.Namespace;
 import net.sourceforge.argparse4j.inf.Subparser;
 
 import org.asamk.signal.manager.Manager;
-import org.asamk.signal.manager.storage.contacts.ContactInfo;
-
-import java.util.List;
 
 public class ListContactsCommand implements LocalCommand {
 
@@ -16,8 +13,8 @@ public class ListContactsCommand implements LocalCommand {
 
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
-        List<ContactInfo> contacts = m.getContacts();
-        for (ContactInfo c : contacts) {
+        var contacts = m.getContacts();
+        for (var c : contacts) {
             System.out.println(String.format("Number: %s Name: %s  Blocked: %b", c.number, c.name, c.blocked));
         }
         return 0;
index a03b078fa1189d0a4fc75c38558671a46070d6af..4946cd4aa89ddaf2a127b0431c7792d5d2d3024f 100644 (file)
@@ -5,10 +5,8 @@ import net.sourceforge.argparse4j.inf.Subparser;
 
 import org.asamk.signal.manager.Manager;
 import org.asamk.signal.util.DateUtils;
-import org.whispersystems.signalservice.api.messages.multidevice.DeviceInfo;
 
 import java.io.IOException;
-import java.util.List;
 
 public class ListDevicesCommand implements LocalCommand {
 
@@ -19,8 +17,8 @@ public class ListDevicesCommand implements LocalCommand {
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
         try {
-            List<DeviceInfo> devices = m.getLinkedDevices();
-            for (DeviceInfo d : devices) {
+            var devices = m.getLinkedDevices();
+            for (var d : devices) {
                 System.out.println("Device "
                         + d.getId()
                         + (d.getId() == m.getDeviceId() ? " (this device)" : "")
index e0086cae6a7b4bd99b8bb569618144573482fd18..f3418d938857de7a71d5aabbbe6ab8aff150dc29 100644 (file)
@@ -7,7 +7,6 @@ import net.sourceforge.argparse4j.inf.Subparser;
 import org.asamk.signal.JsonWriter;
 import org.asamk.signal.OutputType;
 import org.asamk.signal.manager.Manager;
-import org.asamk.signal.manager.groups.GroupInviteLinkUrl;
 import org.asamk.signal.manager.storage.groups.GroupInfo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -15,7 +14,6 @@ import org.whispersystems.signalservice.api.push.SignalServiceAddress;
 
 import java.io.IOException;
 import java.util.ArrayList;
-import java.util.List;
 import java.util.Set;
 import java.util.stream.Collectors;
 
@@ -32,7 +30,7 @@ public class ListGroupsCommand implements LocalCommand {
 
     private static void printGroupPlainText(Manager m, GroupInfo group, boolean detailed) {
         if (detailed) {
-            final GroupInviteLinkUrl groupInviteLink = group.getGroupInviteLink();
+            final var groupInviteLink = group.getGroupInviteLink();
 
             System.out.println(String.format(
                     "Id: %s Name: %s  Active: %s Blocked: %b Members: %s Pending members: %s Requesting members: %s Link: %s",
@@ -70,11 +68,11 @@ public class ListGroupsCommand implements LocalCommand {
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
         if (ns.get("output") == OutputType.JSON) {
-            final JsonWriter jsonWriter = new JsonWriter(System.out);
+            final var jsonWriter = new JsonWriter(System.out);
 
-            List<JsonGroup> jsonGroups = new ArrayList<>();
-            for (GroupInfo group : m.getGroups()) {
-                final GroupInviteLinkUrl groupInviteLink = group.getGroupInviteLink();
+            var jsonGroups = new ArrayList<JsonGroup>();
+            for (var group : m.getGroups()) {
+                final var groupInviteLink = group.getGroupInviteLink();
 
                 jsonGroups.add(new JsonGroup(group.getGroupId().toBase64(),
                         group.getTitle(),
@@ -96,7 +94,7 @@ public class ListGroupsCommand implements LocalCommand {
             return 0;
         } else {
             boolean detailed = ns.getBoolean("detailed");
-            for (GroupInfo group : m.getGroups()) {
+            for (var group : m.getGroups()) {
                 printGroupPlainText(m, group, detailed);
             }
         }
index 4caeca29ad81ac50a8f10f120d33d69fdb76fbc8..cb8aa8bc1eaa4ab7ba5dd9e95d00ade52251916d 100644 (file)
@@ -9,12 +9,10 @@ import org.asamk.signal.util.Hex;
 import org.asamk.signal.util.Util;
 import org.whispersystems.signalservice.api.util.InvalidNumberException;
 
-import java.util.List;
-
 public class ListIdentitiesCommand implements LocalCommand {
 
     private static void printIdentityFingerprint(Manager m, IdentityInfo theirId) {
-        String digits = Util.formatSafetyNumber(m.computeSafetyNumber(theirId.getAddress(), theirId.getIdentityKey()));
+        var digits = Util.formatSafetyNumber(m.computeSafetyNumber(theirId.getAddress(), theirId.getIdentityKey()));
         System.out.println(String.format("%s: %s Added: %s Fingerprint: %s Safety Number: %s",
                 theirId.getAddress().getNumber().orNull(),
                 theirId.getTrustLevel(),
@@ -31,14 +29,14 @@ public class ListIdentitiesCommand implements LocalCommand {
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
         if (ns.get("number") == null) {
-            for (IdentityInfo identity : m.getIdentities()) {
+            for (var identity : m.getIdentities()) {
                 printIdentityFingerprint(m, identity);
             }
         } else {
-            String number = ns.getString("number");
+            var number = ns.getString("number");
             try {
-                List<IdentityInfo> identities = m.getIdentities(number);
-                for (IdentityInfo id : identities) {
+                var identities = m.getIdentities(number);
+                for (var id : identities) {
                     printIdentityFingerprint(m, id);
                 }
             } catch (InvalidNumberException e) {
index f258ae248e4430760e159534f8e15e35e948a300..338163b09532421d8687cb30d39e6ebb657635d5 100644 (file)
@@ -4,16 +4,12 @@ import net.sourceforge.argparse4j.inf.Namespace;
 import net.sourceforge.argparse4j.inf.Subparser;
 
 import org.asamk.signal.manager.Manager;
-import org.asamk.signal.manager.groups.GroupId;
 import org.asamk.signal.manager.groups.GroupIdFormatException;
 import org.asamk.signal.manager.groups.GroupNotFoundException;
 import org.asamk.signal.manager.groups.NotAGroupMemberException;
 import org.asamk.signal.util.Util;
-import org.whispersystems.libsignal.util.Pair;
-import org.whispersystems.signalservice.api.messages.SendMessageResult;
 
 import java.io.IOException;
-import java.util.List;
 
 import static org.asamk.signal.util.ErrorUtils.handleAssertionError;
 import static org.asamk.signal.util.ErrorUtils.handleGroupIdFormatException;
@@ -32,8 +28,8 @@ public class QuitGroupCommand implements LocalCommand {
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
         try {
-            final GroupId groupId = Util.decodeGroupId(ns.getString("group"));
-            final Pair<Long, List<SendMessageResult>> results = m.sendQuitGroupMessage(groupId);
+            final var groupId = Util.decodeGroupId(ns.getString("group"));
+            final var results = m.sendQuitGroupMessage(groupId);
             return handleTimestampAndSendMessageResults(results.first(), results.second());
         } catch (IOException e) {
             handleIOException(e);
index 5d41dde0a5d4f269ebc01911d0aafef4f2fcede3..9693d7c230c1de12f956e19313674cebfbfaed89 100644 (file)
@@ -48,19 +48,19 @@ public class ReceiveCommand implements ExtendedDbusCommand, LocalCommand {
     }
 
     public int handleCommand(final Namespace ns, final Signal signal, DBusConnection dbusconnection) {
-        boolean inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json");
+        var inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json");
 
         // TODO delete later when "json" variable is removed
         if (ns.getBoolean("json")) {
             logger.warn("\"--json\" option has been deprecated, please use the global \"--output=json\" instead.");
         }
 
-        final JsonWriter jsonWriter = inJson ? new JsonWriter(System.out) : null;
+        final var jsonWriter = inJson ? new JsonWriter(System.out) : null;
         try {
             dbusconnection.addSigHandler(Signal.MessageReceived.class, messageReceived -> {
                 if (jsonWriter != null) {
-                    JsonMessageEnvelope envelope = new JsonMessageEnvelope(messageReceived);
-                    final Map<String, JsonMessageEnvelope> object = Map.of("envelope", envelope);
+                    var envelope = new JsonMessageEnvelope(messageReceived);
+                    final var object = Map.of("envelope", envelope);
                     try {
                         jsonWriter.write(object);
                     } catch (IOException e) {
@@ -77,7 +77,7 @@ public class ReceiveCommand implements ExtendedDbusCommand, LocalCommand {
                     }
                     if (messageReceived.getAttachments().size() > 0) {
                         System.out.println("Attachments: ");
-                        for (String attachment : messageReceived.getAttachments()) {
+                        for (var attachment : messageReceived.getAttachments()) {
                             System.out.println("-  Stored plaintext in: " + attachment);
                         }
                     }
@@ -87,8 +87,8 @@ public class ReceiveCommand implements ExtendedDbusCommand, LocalCommand {
 
             dbusconnection.addSigHandler(Signal.ReceiptReceived.class, receiptReceived -> {
                 if (jsonWriter != null) {
-                    JsonMessageEnvelope envelope = new JsonMessageEnvelope(receiptReceived);
-                    final Map<String, JsonMessageEnvelope> object = Map.of("envelope", envelope);
+                    var envelope = new JsonMessageEnvelope(receiptReceived);
+                    final var object = Map.of("envelope", envelope);
                     try {
                         jsonWriter.write(object);
                     } catch (IOException e) {
@@ -103,8 +103,8 @@ public class ReceiveCommand implements ExtendedDbusCommand, LocalCommand {
 
             dbusconnection.addSigHandler(Signal.SyncMessageReceived.class, syncReceived -> {
                 if (jsonWriter != null) {
-                    JsonMessageEnvelope envelope = new JsonMessageEnvelope(syncReceived);
-                    final Map<String, JsonMessageEnvelope> object = Map.of("envelope", envelope);
+                    var envelope = new JsonMessageEnvelope(syncReceived);
+                    final var object = Map.of("envelope", envelope);
                     try {
                         jsonWriter.write(object);
                     } catch (IOException e) {
@@ -122,7 +122,7 @@ public class ReceiveCommand implements ExtendedDbusCommand, LocalCommand {
                     }
                     if (syncReceived.getAttachments().size() > 0) {
                         System.out.println("Attachments: ");
-                        for (String attachment : syncReceived.getAttachments()) {
+                        for (var attachment : syncReceived.getAttachments()) {
                             System.out.println("-  Stored plaintext in: " + attachment);
                         }
                     }
@@ -144,7 +144,7 @@ public class ReceiveCommand implements ExtendedDbusCommand, LocalCommand {
 
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
-        boolean inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json");
+        var inJson = ns.get("output") == OutputType.JSON || ns.getBoolean("json");
 
         // TODO delete later when "json" variable is removed
         if (ns.getBoolean("json")) {
@@ -155,16 +155,14 @@ public class ReceiveCommand implements ExtendedDbusCommand, LocalCommand {
         if (ns.getDouble("timeout") != null) {
             timeout = ns.getDouble("timeout");
         }
-        boolean returnOnTimeout = true;
+        var returnOnTimeout = true;
         if (timeout < 0) {
             returnOnTimeout = false;
             timeout = 3600;
         }
         boolean ignoreAttachments = ns.getBoolean("ignore_attachments");
         try {
-            final Manager.ReceiveMessageHandler handler = inJson
-                    ? new JsonReceiveMessageHandler(m)
-                    : new ReceiveMessageHandler(m);
+            final var handler = inJson ? new JsonReceiveMessageHandler(m) : new ReceiveMessageHandler(m);
             m.receiveMessages((long) (timeout * 1000),
                     TimeUnit.MILLISECONDS,
                     returnOnTimeout,
index f7736018048c51f01c8849a575674479d2ae3b4b..d656fe0ec97f0cc786c404309d3fa422e33f041a 100644 (file)
@@ -23,7 +23,7 @@ public class RegisterCommand implements RegistrationCommand {
     @Override
     public int handleCommand(final Namespace ns, final RegistrationManager m) {
         final boolean voiceVerification = ns.getBoolean("voice");
-        final String captcha = ns.getString("captcha");
+        final var captcha = ns.getString("captcha");
 
         try {
             m.register(voiceVerification, captcha);
index 73d8f2ed35b8346575a419765a4e718e7de86482..f1768b766d8551fcbc8c336a25078f5637d7d3fd 100644 (file)
@@ -1,7 +1,6 @@
 package org.asamk.signal.commands;
 
 import net.sourceforge.argparse4j.impl.Arguments;
-import net.sourceforge.argparse4j.inf.MutuallyExclusiveGroup;
 import net.sourceforge.argparse4j.inf.Namespace;
 import net.sourceforge.argparse4j.inf.Subparser;
 
@@ -24,7 +23,7 @@ public class SendCommand implements DbusCommand {
     @Override
     public void attachToSubparser(final Subparser subparser) {
         subparser.addArgument("recipient").help("Specify the recipients' phone number.").nargs("*");
-        final MutuallyExclusiveGroup mutuallyExclusiveGroup = subparser.addMutuallyExclusiveGroup();
+        final var mutuallyExclusiveGroup = subparser.addMutuallyExclusiveGroup();
         mutuallyExclusiveGroup.addArgument("-g", "--group").help("Specify the recipient group ID.");
         mutuallyExclusiveGroup.addArgument("--note-to-self")
                 .help("Send the message to self without notification.")
@@ -40,11 +39,11 @@ public class SendCommand implements DbusCommand {
     @Override
     public int handleCommand(final Namespace ns, final Signal signal) {
         final List<String> recipients = ns.getList("recipient");
-        final Boolean isEndSession = ns.getBoolean("endsession");
-        final String groupIdString = ns.getString("group");
-        final Boolean isNoteToSelf = ns.getBoolean("note_to_self");
+        final var isEndSession = ns.getBoolean("endsession");
+        final var groupIdString = ns.getString("group");
+        final var isNoteToSelf = ns.getBoolean("note_to_self");
 
-        final boolean noRecipients = recipients == null || recipients.isEmpty();
+        final var noRecipients = recipients == null || recipients.isEmpty();
         if ((noRecipients && isEndSession) || (noRecipients && groupIdString == null && !isNoteToSelf)) {
             System.err.println("No recipients given");
             System.err.println("Aborting sending.");
@@ -75,7 +74,7 @@ public class SendCommand implements DbusCommand {
             }
         }
 
-        String messageText = ns.getString("message");
+        var messageText = ns.getString("message");
         if (messageText == null) {
             try {
                 messageText = IOUtils.readAll(System.in, Charset.defaultCharset());
@@ -101,7 +100,7 @@ public class SendCommand implements DbusCommand {
                     return 1;
                 }
 
-                long timestamp = signal.sendGroupMessage(messageText, attachments, groupId);
+                var timestamp = signal.sendGroupMessage(messageText, attachments, groupId);
                 System.out.println(timestamp);
                 return 0;
             } catch (AssertionError e) {
@@ -115,7 +114,7 @@ public class SendCommand implements DbusCommand {
 
         if (isNoteToSelf) {
             try {
-                long timestamp = signal.sendNoteToSelfMessage(messageText, attachments);
+                var timestamp = signal.sendNoteToSelfMessage(messageText, attachments);
                 System.out.println(timestamp);
                 return 0;
             } catch (AssertionError e) {
@@ -131,7 +130,7 @@ public class SendCommand implements DbusCommand {
         }
 
         try {
-            long timestamp = signal.sendMessage(messageText, attachments, recipients);
+            var timestamp = signal.sendMessage(messageText, attachments, recipients);
             System.out.println(timestamp);
             return 0;
         } catch (AssertionError e) {
index e9ddc1f0dbd59e46e6b7e1d1659d86b0abfa51c3..36d04185d453cd969cb21a10f7817f939f0dbe5e 100644 (file)
@@ -5,7 +5,6 @@ import net.sourceforge.argparse4j.inf.Namespace;
 import net.sourceforge.argparse4j.inf.Subparser;
 
 import org.asamk.signal.manager.Manager;
-import org.asamk.signal.manager.groups.GroupId;
 import org.asamk.signal.manager.groups.GroupIdFormatException;
 import org.asamk.signal.manager.groups.GroupNotFoundException;
 import org.asamk.signal.manager.groups.NotAGroupMemberException;
@@ -48,9 +47,9 @@ public class SendReactionCommand implements LocalCommand {
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
         final List<String> recipients = ns.getList("recipient");
-        final String groupIdString = ns.getString("group");
+        final var groupIdString = ns.getString("group");
 
-        final boolean noRecipients = recipients == null || recipients.isEmpty();
+        final var noRecipients = recipients == null || recipients.isEmpty();
         if (noRecipients && groupIdString == null) {
             System.err.println("No recipients given");
             System.err.println("Aborting sending.");
@@ -61,15 +60,15 @@ public class SendReactionCommand implements LocalCommand {
             return 1;
         }
 
-        final String emoji = ns.getString("emoji");
+        final var emoji = ns.getString("emoji");
         final boolean isRemove = ns.getBoolean("remove");
-        final String targetAuthor = ns.getString("target_author");
+        final var targetAuthor = ns.getString("target_author");
         final long targetTimestamp = ns.getLong("target_timestamp");
 
         try {
             final Pair<Long, List<SendMessageResult>> results;
             if (groupIdString != null) {
-                GroupId groupId = Util.decodeGroupId(groupIdString);
+                var groupId = Util.decodeGroupId(groupIdString);
                 results = m.sendGroupMessageReaction(emoji, isRemove, targetAuthor, targetTimestamp, groupId);
             } else {
                 results = m.sendMessageReaction(emoji, isRemove, targetAuthor, targetTimestamp, recipients);
index dbdc83dfaa2d0c0131c647f4ef66fe54b3040261..fff105be24faa115ba93d64f1ac64ed95f8e72a4 100644 (file)
@@ -20,7 +20,7 @@ public class SetPinCommand implements LocalCommand {
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
         try {
-            String registrationLockPin = ns.getString("registrationLockPin");
+            var registrationLockPin = ns.getString("registrationLockPin");
             m.setRegistrationLockPin(Optional.of(registrationLockPin));
             return 0;
         } catch (UnauthenticatedResponseException e) {
index 58c7371fd322be498544e49111308c85b1104bd4..277291eb06b4f9a50e5add82fda242f33f15a8ea 100644 (file)
@@ -1,7 +1,6 @@
 package org.asamk.signal.commands;
 
 import net.sourceforge.argparse4j.impl.Arguments;
-import net.sourceforge.argparse4j.inf.MutuallyExclusiveGroup;
 import net.sourceforge.argparse4j.inf.Namespace;
 import net.sourceforge.argparse4j.inf.Subparser;
 
@@ -17,7 +16,7 @@ public class TrustCommand implements LocalCommand {
     @Override
     public void attachToSubparser(final Subparser subparser) {
         subparser.addArgument("number").help("Specify the phone number, for which to set the trust.").required(true);
-        MutuallyExclusiveGroup mutTrust = subparser.addMutuallyExclusiveGroup();
+        var mutTrust = subparser.addMutuallyExclusiveGroup();
         mutTrust.addArgument("-a", "--trust-all-known-keys")
                 .help("Trust all known keys of this user, only use this for testing.")
                 .action(Arguments.storeTrue());
@@ -27,15 +26,15 @@ public class TrustCommand implements LocalCommand {
 
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
-        String number = ns.getString("number");
+        var number = ns.getString("number");
         if (ns.getBoolean("trust_all_known_keys")) {
-            boolean res = m.trustIdentityAllKeys(number);
+            var res = m.trustIdentityAllKeys(number);
             if (!res) {
                 System.err.println("Failed to set the trust for this number, make sure the number is correct.");
                 return 1;
             }
         } else {
-            String safetyNumber = ns.getString("verified_safety_number");
+            var safetyNumber = ns.getString("verified_safety_number");
             if (safetyNumber != null) {
                 safetyNumber = safetyNumber.replaceAll(" ", "");
                 if (safetyNumber.length() == 66) {
index d191ef223cd3e4620326dad056dc41c4bcbee0a4..b9d6e849cd7ace2c95ef858a3c6b1debcc706084 100644 (file)
@@ -4,7 +4,6 @@ import net.sourceforge.argparse4j.inf.Namespace;
 import net.sourceforge.argparse4j.inf.Subparser;
 
 import org.asamk.signal.manager.Manager;
-import org.asamk.signal.manager.groups.GroupId;
 import org.asamk.signal.manager.groups.GroupIdFormatException;
 import org.asamk.signal.manager.groups.GroupNotFoundException;
 import org.asamk.signal.util.Util;
@@ -21,7 +20,7 @@ public class UnblockCommand implements LocalCommand {
 
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
-        for (String contact_number : ns.<String>getList("contact")) {
+        for (var contact_number : ns.<String>getList("contact")) {
             try {
                 m.setContactBlocked(contact_number, false);
             } catch (InvalidNumberException e) {
@@ -30,9 +29,9 @@ public class UnblockCommand implements LocalCommand {
         }
 
         if (ns.<String>getList("group") != null) {
-            for (String groupIdString : ns.<String>getList("group")) {
+            for (var groupIdString : ns.<String>getList("group")) {
                 try {
-                    GroupId groupId = Util.decodeGroupId(groupIdString);
+                    var groupId = Util.decodeGroupId(groupIdString);
                     m.setGroupBlocked(groupId, false);
                 } catch (GroupIdFormatException | GroupNotFoundException e) {
                     System.err.println(e.getMessage());
index c4da94a2c834f7130aac36c3a5d840c79646c509..c2b994d63d535d15f2fc31144fc6a8aff70dde0d 100644 (file)
@@ -23,13 +23,13 @@ public class UpdateContactCommand implements LocalCommand {
 
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
-        String number = ns.getString("number");
-        String name = ns.getString("name");
+        var number = ns.getString("number");
+        var name = ns.getString("name");
 
         try {
             m.setContactName(number, name);
 
-            Integer expiration = ns.getInt("expiration");
+            var expiration = ns.getInt("expiration");
             if (expiration != null) {
                 m.setExpirationTimer(number, expiration);
             }
index 736190b3d3bd7c7117b2eda961f6222f1f9bef2f..332bbe5e3cfeb9c13704c5803da131762e3d125c 100644 (file)
@@ -40,7 +40,7 @@ public class UpdateGroupCommand implements DbusCommand {
             groupId = new byte[0];
         }
 
-        String groupName = ns.getString("name");
+        var groupName = ns.getString("name");
         if (groupName == null) {
             groupName = "";
         }
@@ -50,13 +50,13 @@ public class UpdateGroupCommand implements DbusCommand {
             groupMembers = new ArrayList<>();
         }
 
-        String groupAvatar = ns.getString("avatar");
+        var groupAvatar = ns.getString("avatar");
         if (groupAvatar == null) {
             groupAvatar = "";
         }
 
         try {
-            byte[] newGroupId = signal.updateGroup(groupId, groupName, groupMembers, groupAvatar);
+            var newGroupId = signal.updateGroup(groupId, groupName, groupMembers, groupAvatar);
             if (groupId.length != newGroupId.length) {
                 System.out.println("Creating new group \"" + Base64.getEncoder().encodeToString(newGroupId) + "\" â€¦");
             }
index 5455f523ab58ac99a16b0c0d04734feea5876df3..b8c7b08c77b5730754649b6e384e0573f595488a 100644 (file)
@@ -1,7 +1,6 @@
 package org.asamk.signal.commands;
 
 import net.sourceforge.argparse4j.impl.Arguments;
-import net.sourceforge.argparse4j.inf.MutuallyExclusiveGroup;
 import net.sourceforge.argparse4j.inf.Namespace;
 import net.sourceforge.argparse4j.inf.Subparser;
 
@@ -19,7 +18,7 @@ public class UpdateProfileCommand implements LocalCommand {
         subparser.addArgument("--about").help("New profile about text");
         subparser.addArgument("--about-emoji").help("New profile about emoji");
 
-        final MutuallyExclusiveGroup avatarOptions = subparser.addMutuallyExclusiveGroup();
+        final var avatarOptions = subparser.addMutuallyExclusiveGroup();
         avatarOptions.addArgument("--avatar").help("Path to new profile avatar");
         avatarOptions.addArgument("--remove-avatar").action(Arguments.storeTrue());
 
@@ -28,10 +27,10 @@ public class UpdateProfileCommand implements LocalCommand {
 
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
-        String name = ns.getString("name");
-        String about = ns.getString("about");
-        String aboutEmoji = ns.getString("about_emoji");
-        String avatarPath = ns.getString("avatar");
+        var name = ns.getString("name");
+        var about = ns.getString("about");
+        var aboutEmoji = ns.getString("about_emoji");
+        var avatarPath = ns.getString("avatar");
         boolean removeAvatar = ns.getBoolean("remove_avatar");
 
         try {
index 725f91b3222d15349a644aa9c82b68e3303d5d96..94ba9e9c0f3951764795623beca997a114ccd500 100644 (file)
@@ -20,8 +20,8 @@ public class UploadStickerPackCommand implements LocalCommand {
     @Override
     public int handleCommand(final Namespace ns, final Manager m) {
         try {
-            File path = new File(ns.getString("path"));
-            String url = m.uploadStickerPack(path);
+            var path = new File(ns.getString("path"));
+            var url = m.uploadStickerPack(path);
             System.out.println(url);
             return 0;
         } catch (IOException e) {
index 7fa10b6aaab8c768274845b1357588d24eb890df..a244581dab8f445aa0aea2ec79ba76b2c92db590 100644 (file)
@@ -21,8 +21,8 @@ public class VerifyCommand implements RegistrationCommand {
     @Override
     public int handleCommand(final Namespace ns, final RegistrationManager m) {
         try {
-            String verificationCode = ns.getString("verificationCode");
-            String pin = ns.getString("pin");
+            var verificationCode = ns.getString("verificationCode");
+            var pin = ns.getString("pin");
             m.verifyAccount(verificationCode, pin);
             return 0;
         } catch (LockedException e) {
index 4af7156dcd024f82e93217a19ffb49a43432feae..8cbbbc03c113881a34ca2e3a27cf4e62762988c6 100644 (file)
@@ -6,10 +6,8 @@ import org.asamk.signal.manager.Manager;
 import org.asamk.signal.manager.groups.GroupId;
 import org.asamk.signal.manager.groups.GroupNotFoundException;
 import org.asamk.signal.manager.groups.NotAGroupMemberException;
-import org.asamk.signal.manager.storage.groups.GroupInfo;
 import org.asamk.signal.util.ErrorUtils;
 import org.freedesktop.dbus.exceptions.DBusExecutionException;
-import org.whispersystems.libsignal.util.Pair;
 import org.whispersystems.libsignal.util.guava.Optional;
 import org.whispersystems.signalservice.api.messages.SendMessageResult;
 import org.whispersystems.signalservice.api.push.SignalServiceAddress;
@@ -41,19 +39,19 @@ public class DbusSignalImpl implements Signal {
 
     @Override
     public long sendMessage(final String message, final List<String> attachments, final String recipient) {
-        List<String> recipients = new ArrayList<>(1);
+        var recipients = new ArrayList<String>(1);
         recipients.add(recipient);
         return sendMessage(message, attachments, recipients);
     }
 
     private static void checkSendMessageResult(long timestamp, SendMessageResult result) throws DBusExecutionException {
-        String error = ErrorUtils.getErrorMessageFromSendMessageResult(result);
+        var error = ErrorUtils.getErrorMessageFromSendMessageResult(result);
 
         if (error == null) {
             return;
         }
 
-        final String message = timestamp + "\nFailed to send message:\n" + error + '\n';
+        final var message = timestamp + "\nFailed to send message:\n" + error + '\n';
 
         if (result.getIdentityFailure() != null) {
             throw new Error.UntrustedIdentity(message);
@@ -70,15 +68,15 @@ public class DbusSignalImpl implements Signal {
             return;
         }
 
-        List<String> errors = ErrorUtils.getErrorMessagesFromSendMessageResults(results);
+        var errors = ErrorUtils.getErrorMessagesFromSendMessageResults(results);
         if (errors.size() == 0) {
             return;
         }
 
-        StringBuilder message = new StringBuilder();
+        var message = new StringBuilder();
         message.append(timestamp).append('\n');
         message.append("Failed to send (some) messages:\n");
-        for (String error : errors) {
+        for (var error : errors) {
             message.append(error).append('\n');
         }
 
@@ -88,7 +86,7 @@ public class DbusSignalImpl implements Signal {
     @Override
     public long sendMessage(final String message, final List<String> attachments, final List<String> recipients) {
         try {
-            final Pair<Long, List<SendMessageResult>> results = m.sendMessage(message, attachments, recipients);
+            final var results = m.sendMessage(message, attachments, recipients);
             checkSendMessageResults(results.first(), results.second());
             return results.first();
         } catch (InvalidNumberException e) {
@@ -105,7 +103,7 @@ public class DbusSignalImpl implements Signal {
             final String message, final List<String> attachments
     ) throws Error.AttachmentInvalid, Error.Failure, Error.UntrustedIdentity {
         try {
-            final Pair<Long, SendMessageResult> results = m.sendSelfMessage(message, attachments);
+            final var results = m.sendSelfMessage(message, attachments);
             checkSendMessageResult(results.first(), results.second());
             return results.first();
         } catch (AttachmentInvalidException e) {
@@ -118,7 +116,7 @@ public class DbusSignalImpl implements Signal {
     @Override
     public void sendEndSessionMessage(final List<String> recipients) {
         try {
-            final Pair<Long, List<SendMessageResult>> results = m.sendEndSessionMessage(recipients);
+            final var results = m.sendEndSessionMessage(recipients);
             checkSendMessageResults(results.first(), results.second());
         } catch (IOException e) {
             throw new Error.Failure(e.getMessage());
@@ -130,9 +128,7 @@ public class DbusSignalImpl implements Signal {
     @Override
     public long sendGroupMessage(final String message, final List<String> attachments, final byte[] groupId) {
         try {
-            Pair<Long, List<SendMessageResult>> results = m.sendGroupMessage(message,
-                    attachments,
-                    GroupId.unknownVersion(groupId));
+            var results = m.sendGroupMessage(message, attachments, GroupId.unknownVersion(groupId));
             checkSendMessageResults(results.first(), results.second());
             return results.first();
         } catch (IOException e) {
@@ -182,9 +178,9 @@ public class DbusSignalImpl implements Signal {
 
     @Override
     public List<byte[]> getGroupIds() {
-        List<GroupInfo> groups = m.getGroups();
-        List<byte[]> ids = new ArrayList<>(groups.size());
-        for (GroupInfo group : groups) {
+        var groups = m.getGroups();
+        var ids = new ArrayList<byte[]>(groups.size());
+        for (var group : groups) {
             ids.add(group.getGroupId().serialize());
         }
         return ids;
@@ -192,7 +188,7 @@ public class DbusSignalImpl implements Signal {
 
     @Override
     public String getGroupName(final byte[] groupId) {
-        GroupInfo group = m.getGroup(GroupId.unknownVersion(groupId));
+        var group = m.getGroup(GroupId.unknownVersion(groupId));
         if (group == null) {
             return "";
         } else {
@@ -202,7 +198,7 @@ public class DbusSignalImpl implements Signal {
 
     @Override
     public List<String> getGroupMembers(final byte[] groupId) {
-        GroupInfo group = m.getGroup(GroupId.unknownVersion(groupId));
+        var group = m.getGroup(GroupId.unknownVersion(groupId));
         if (group == null) {
             return List.of();
         } else {
@@ -229,9 +225,10 @@ public class DbusSignalImpl implements Signal {
             if (avatar.isEmpty()) {
                 avatar = null;
             }
-            final Pair<GroupId, List<SendMessageResult>> results = m.updateGroup(groupId == null
-                    ? null
-                    : GroupId.unknownVersion(groupId), name, members, avatar == null ? null : new File(avatar));
+            final var results = m.updateGroup(groupId == null ? null : GroupId.unknownVersion(groupId),
+                    name,
+                    members,
+                    avatar == null ? null : new File(avatar));
             checkSendMessageResults(0, results.second());
             return results.first().serialize();
         } catch (IOException e) {
index 1b2a7bc7fde92950c92c970e9052f03d2a5179f4..a96fc5341e58403a61b96d12448290dfa6f305af 100644 (file)
@@ -3,8 +3,6 @@ package org.asamk.signal.json;
 import com.fasterxml.jackson.annotation.JsonProperty;
 
 import org.whispersystems.signalservice.api.messages.SignalServiceAttachment;
-import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentPointer;
-import org.whispersystems.signalservice.api.messages.SignalServiceAttachmentStream;
 
 class JsonAttachment {
 
@@ -24,12 +22,12 @@ class JsonAttachment {
         this.contentType = attachment.getContentType();
 
         if (attachment.isPointer()) {
-            final SignalServiceAttachmentPointer pointer = attachment.asPointer();
+            final var pointer = attachment.asPointer();
             this.id = pointer.getRemoteId().toString();
             this.filename = pointer.getFileName().orNull();
             this.size = pointer.getSize().transform(Integer::longValue).orNull();
         } else {
-            final SignalServiceAttachmentStream stream = attachment.asStream();
+            final var stream = attachment.asStream();
             this.id = null;
             this.filename = stream.getFileName().orNull();
             this.size = stream.getLength();
index 57facc99e6b87720ed4e2df024990bc1c174a345..6dbda9783e5b081eac7533e94b6c2b8cc7b5beb2 100644 (file)
@@ -6,9 +6,6 @@ import com.fasterxml.jackson.annotation.JsonProperty;
 import org.asamk.Signal;
 import org.asamk.signal.manager.Manager;
 import org.whispersystems.signalservice.api.messages.SignalServiceDataMessage;
-import org.whispersystems.signalservice.api.messages.SignalServiceGroup;
-import org.whispersystems.signalservice.api.messages.SignalServiceGroupContext;
-import org.whispersystems.signalservice.api.messages.SignalServiceGroupV2;
 
 import java.util.List;
 import java.util.stream.Collectors;
@@ -63,12 +60,12 @@ class JsonDataMessage {
     JsonDataMessage(SignalServiceDataMessage dataMessage, Manager m) {
         this.timestamp = dataMessage.getTimestamp();
         if (dataMessage.getGroupContext().isPresent()) {
-            final SignalServiceGroupContext groupContext = dataMessage.getGroupContext().get();
+            final var groupContext = dataMessage.getGroupContext().get();
             if (groupContext.getGroupV1().isPresent()) {
-                SignalServiceGroup groupInfo = groupContext.getGroupV1().get();
+                var groupInfo = groupContext.getGroupV1().get();
                 this.groupInfo = new JsonGroupInfo(groupInfo);
             } else if (groupContext.getGroupV2().isPresent()) {
-                SignalServiceGroupV2 groupInfo = groupContext.getGroupV2().get();
+                var groupInfo = groupContext.getGroupV2().get();
                 this.groupInfo = new JsonGroupInfo(groupInfo);
             } else {
                 this.groupInfo = null;
index 4944a74df04bb25ad2274b82bfd5454e09552fec..8506d49376f4b3487f7e5e8676162ee4a5f347d7 100644 (file)
@@ -7,7 +7,6 @@ import org.asamk.Signal;
 import org.asamk.signal.manager.Manager;
 import org.whispersystems.signalservice.api.messages.SignalServiceContent;
 import org.whispersystems.signalservice.api.messages.SignalServiceEnvelope;
-import org.whispersystems.signalservice.api.push.SignalServiceAddress;
 
 import java.util.List;
 
@@ -48,7 +47,7 @@ public class JsonMessageEnvelope {
 
     public JsonMessageEnvelope(SignalServiceEnvelope envelope, SignalServiceContent content, Manager m) {
         if (!envelope.isUnidentifiedSender() && envelope.hasSource()) {
-            SignalServiceAddress source = envelope.getSourceAddress();
+            var source = envelope.getSourceAddress();
             this.source = source.getLegacyIdentifier();
             this.sourceDevice = envelope.getSourceDevice();
             this.relay = source.getRelay().orNull();
index 11ecbbc805daaba9300ce338d1749aef86cf0fa1..7ba277d54d840105f83d4fe0f7464feb9074b3db 100644 (file)
@@ -45,7 +45,7 @@ class JsonSyncMessage {
                 ? new JsonSyncDataMessage(syncMessage.getSent().get(), m)
                 : null;
         if (syncMessage.getBlockedList().isPresent()) {
-            final Base64.Encoder base64 = Base64.getEncoder();
+            final var base64 = Base64.getEncoder();
             this.blockedNumbers = syncMessage.getBlockedList()
                     .get()
                     .getAddresses()
index 18548ce315aff02afe522a25573d187d3c57e941..7e3b1a44a966cec122ece3ad7e387ae961e39331 100644 (file)
@@ -22,7 +22,7 @@ class JsonTypingMessage {
     JsonTypingMessage(SignalServiceTypingMessage typingMessage) {
         this.action = typingMessage.getAction().name();
         this.timestamp = typingMessage.getTimestamp();
-        final Base64.Encoder encoder = Base64.getEncoder();
+        final var encoder = Base64.getEncoder();
         this.groupId = typingMessage.getGroupId().transform(encoder::encodeToString).orNull();
     }
 }
index f94261bff41c4ce3c92ccc77a372c5c6b94c7db1..7f2974ae31613944aede7c6bd1c2a68cda2ce545 100644 (file)
@@ -13,7 +13,7 @@ public class DateUtils {
     }
 
     public static String formatTimestamp(long timestamp) {
-        Date date = new Date(timestamp);
+        var date = new Date(timestamp);
         final DateFormat df = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSX"); // Quoted "Z" to indicate UTC, no timezone offset
         df.setTimeZone(tzUTC);
         return timestamp + " (" + df.format(date) + ")";
index f7115ea97aa1d787a9257e9d428b6455bfcb8a79..65e41cc8f137887581e33edf4982dfd5b935bf88 100644 (file)
@@ -26,14 +26,14 @@ public class ErrorUtils {
         if (timestamp != 0) {
             System.out.println(timestamp);
         }
-        List<String> errors = getErrorMessagesFromSendMessageResults(results);
+        var errors = getErrorMessagesFromSendMessageResults(results);
         return handleSendMessageResultErrors(errors);
     }
 
     public static List<String> getErrorMessagesFromSendMessageResults(List<SendMessageResult> results) {
-        List<String> errors = new ArrayList<>();
-        for (SendMessageResult result : results) {
-            String error = getErrorMessageFromSendMessageResult(result);
+        var errors = new ArrayList<String>();
+        for (var result : results) {
+            var error = getErrorMessageFromSendMessageResult(result);
             if (error != null) {
                 errors.add(error);
             }
@@ -58,7 +58,7 @@ public class ErrorUtils {
             return 0;
         }
         System.err.println("Failed to send (some) messages:");
-        for (String error : errors) {
+        for (var error : errors) {
             System.err.println(error);
         }
         return 3;
index 46609ceb8fec54b16dfa527ef7703dff852f98fc..f5f7a6adeaaf0b23741457112f25f3ff4dae5868 100644 (file)
@@ -8,8 +8,8 @@ public class Hex {
     }
 
     public static String toString(byte[] bytes) {
-        StringBuffer buf = new StringBuffer();
-        for (final byte aByte : bytes) {
+        var buf = new StringBuffer();
+        for (final var aByte : bytes) {
             appendHexChar(buf, aByte);
             buf.append(" ");
         }
@@ -17,8 +17,8 @@ public class Hex {
     }
 
     public static String toStringCondensed(byte[] bytes) {
-        StringBuffer buf = new StringBuffer();
-        for (final byte aByte : bytes) {
+        var buf = new StringBuffer();
+        for (final var aByte : bytes) {
             appendHexChar(buf, aByte);
         }
         return buf.toString();
@@ -30,9 +30,9 @@ public class Hex {
     }
 
     public static byte[] toByteArray(String s) {
-        int len = s.length();
-        byte[] data = new byte[len / 2];
-        for (int i = 0; i < len; i += 2) {
+        var len = s.length();
+        var data = new byte[len / 2];
+        for (var i = 0; i < len; i += 2) {
             data[i / 2] = (byte) ((Character.digit(s.charAt(i), 16) << 4) + Character.digit(s.charAt(i + 1), 16));
         }
         return data;
index 766d19057b2d5123ed70f7df6cb0a9be879b33fd..5505e51851b645bc17309cf6b9033a57cf5e3e58 100644 (file)
@@ -12,8 +12,8 @@ public class IOUtils {
     }
 
     public static String readAll(InputStream in, Charset charset) throws IOException {
-        StringWriter output = new StringWriter();
-        byte[] buffer = new byte[4096];
+        var output = new StringWriter();
+        var buffer = new byte[4096];
         int n;
         while (-1 != (n = in.read(buffer))) {
             output.write(new String(buffer, 0, n, charset));
@@ -22,7 +22,7 @@ public class IOUtils {
     }
 
     public static File getDataHomeDir() {
-        String dataHome = System.getenv("XDG_DATA_HOME");
+        var dataHome = System.getenv("XDG_DATA_HOME");
         if (dataHome != null) {
             return new File(dataHome);
         }
index 19c3f18c0b2b1795db7371d7e817d469178c512b..6af4ec12edf8e6324a52bf8d5ba616f03ff2a54c 100644 (file)
@@ -6,7 +6,7 @@ import java.security.SecureRandom;
 public class RandomUtils {
 
     private static final ThreadLocal<SecureRandom> LOCAL_RANDOM = ThreadLocal.withInitial(() -> {
-        SecureRandom rand = getSecureRandomUnseeded();
+        var rand = getSecureRandomUnseeded();
 
         // Let the SecureRandom seed it self initially
         rand.nextBoolean();
index e798d53798286b775ae30398ee653b6128115b17..4de49ec65186033a94b390f926655c91405a3a57 100644 (file)
@@ -10,7 +10,7 @@ public class Util {
     }
 
     public static String getStringIfNotBlank(Optional<String> value) {
-        String string = value.orNull();
+        var string = value.orNull();
         if (string == null || string.isBlank()) {
             return null;
         }
@@ -18,10 +18,10 @@ public class Util {
     }
 
     public static String formatSafetyNumber(String digits) {
-        final int partCount = 12;
-        int partSize = digits.length() / partCount;
-        StringBuilder f = new StringBuilder(digits.length() + partCount);
-        for (int i = 0; i < partCount; i++) {
+        final var partCount = 12;
+        var partSize = digits.length() / partCount;
+        var f = new StringBuilder(digits.length() + partCount);
+        for (var i = 0; i < partCount; i++) {
             f.append(digits, i * partSize, (i * partSize) + partSize).append(" ");
         }
         return f.toString();