import java.util.concurrent.TimeoutException;
import java.util.function.Consumer;
-import static org.asamk.signal.manager.config.ServiceConfig.capabilities;
+import static org.asamk.signal.manager.config.ServiceConfig.getCapabilities;
class ProvisioningManagerImpl implements ProvisioningManager {
registrationId,
pniRegistrationId,
encryptedDeviceName,
- capabilities));
+ getCapabilities(false)));
// Create new account with the synced identity
var profileKey = ret.getProfileKey() == null ? KeyUtils.createProfileKey() : ret.getProfileKey();
private final static KeyStore iasKeyStore;
- public static final AccountAttributes.Capabilities capabilities;
-
static {
- capabilities = new AccountAttributes.Capabilities(false,
- true,
- false,
- true,
- true,
- true,
- true,
- true,
- false,
- false,
- false);
-
try {
TrustStore contactTrustStore = new IasTrustStore();
}
}
+ public static AccountAttributes.Capabilities getCapabilities(boolean isPrimaryDevice) {
+ final var giftBadges = !isPrimaryDevice;
+ return new AccountAttributes.Capabilities(false,
+ true,
+ false,
+ true,
+ true,
+ true,
+ true,
+ true,
+ giftBadges,
+ false,
+ false);
+ }
+
public static boolean isSignalClientAvailable() {
try {
try {
import java.util.Arrays;
import java.util.function.BiFunction;
-import static org.asamk.signal.manager.config.ServiceConfig.capabilities;
-
public class IdentityHelper {
private final static Logger logger = LoggerFactory.getLogger(IdentityHelper.class);
final var recipientId = account.getRecipientResolver().resolveRecipient(serviceId);
final var address = account.getRecipientAddressResolver().resolveRecipientAddress(recipientId);
- if (capabilities.getUuid()) {
+ if (account.getAccountCapabilities().getUuid()) {
if (serviceId.isUnknown()) {
return null;
}
}
}
}
+ if (message.getGiftBadge().isPresent()) {
+ handleIncomingGiftBadge(message.getGiftBadge().get());
+ }
if (message.getProfileKey().isPresent()) {
handleIncomingProfileKey(message.getProfileKey().get(), source.recipientId());
}
return actions;
}
+ private void handleIncomingGiftBadge(final SignalServiceDataMessage.GiftBadge giftBadge) {
+ // TODO
+ }
+
private List<HandleAction> handleSignalServiceStoryMessage(
SignalServiceStoryMessage message, RecipientId source, boolean ignoreAttachments
) {
import java.util.Optional;
import java.util.function.Supplier;
-import static org.asamk.signal.manager.config.ServiceConfig.capabilities;
+import static org.asamk.signal.manager.config.ServiceConfig.getCapabilities;
public class SignalAccount implements Closeable {
registrationLock != null ? registrationLock : getRegistrationLock(),
getSelfUnidentifiedAccessKey(),
isUnrestrictedUnidentifiedAccess(),
- capabilities,
+ getAccountCapabilities(),
isDiscoverableByPhoneNumber(),
encryptedDeviceName,
getLocalPniRegistrationId(),
null); // TODO recoveryPassword?
}
+ public AccountAttributes.Capabilities getAccountCapabilities() {
+ return getCapabilities(isPrimaryDevice());
+ }
+
public ServiceId getAccountId(ServiceIdType serviceIdType) {
return serviceIdType.equals(ServiceIdType.ACI) ? aci : pni;
}