diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java b/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java index 1f76dbd21f..a4adbec662 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencies.java @@ -138,8 +138,7 @@ public class ApplicationDependencies { messageSender.update( IncomingMessageObserver.getPipe(), IncomingMessageObserver.getUnidentifiedPipe(), - TextSecurePreferences.isMultiDevice(application), - FeatureFlags.attachmentsV3()); + TextSecurePreferences.isMultiDevice(application)); } return messageSender; diff --git a/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencyProvider.java b/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencyProvider.java index 74349fe1b9..63d18c78bf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencyProvider.java +++ b/app/src/main/java/org/thoughtcrime/securesms/dependencies/ApplicationDependencyProvider.java @@ -95,7 +95,6 @@ public class ApplicationDependencyProvider implements ApplicationDependencies.Pr new SignalProtocolStoreImpl(context), BuildConfig.SIGNAL_AGENT, TextSecurePreferences.isMultiDevice(context), - FeatureFlags.attachmentsV3(), Optional.fromNullable(IncomingMessageObserver.getPipe()), Optional.fromNullable(IncomingMessageObserver.getUnidentifiedPipe()), Optional.of(new SecurityEventListener(context)), diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java index ef97cca0c9..9afd47d539 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/MultiDeviceContactUpdateJob.java @@ -261,14 +261,11 @@ public class MultiDeviceContactUpdateJob extends BaseJob { { if (length > 0) { try { - SignalServiceAttachmentStream.Builder attachmentStream = SignalServiceAttachment.newStreamBuilder() - .withStream(stream) - .withContentType("application/octet-stream") - .withLength(length); - - if (FeatureFlags.attachmentsV3()) { - attachmentStream.withResumableUploadSpec(messageSender.getResumableUploadSpec()); - } + SignalServiceAttachmentStream.Builder attachmentStream = SignalServiceAttachment.newStreamBuilder() + .withStream(stream) + .withContentType("application/octet-stream") + .withLength(length) + .withResumableUploadSpec(messageSender.getResumableUploadSpec()); messageSender.sendMessage(SignalServiceSyncMessage.forContacts(new ContactsMessage(attachmentStream.build(), complete)), UnidentifiedAccessUtil.getAccessForSync(context)); diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java index 8dd0cc68ad..d8b28e0bec 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/PushSendJob.java @@ -255,11 +255,8 @@ public abstract class PushSendJob extends SendJob { .withWidth(thumbnailData.getWidth()) .withHeight(thumbnailData.getHeight()) .withLength(thumbnailData.getBitmap().length) - .withStream(new ByteArrayInputStream(thumbnailData.getBitmap())); - - if (FeatureFlags.attachmentsV3()) { - builder.withResumableUploadSpec(ApplicationDependencies.getSignalServiceMessageSender().getResumableUploadSpec()); - } + .withStream(new ByteArrayInputStream(thumbnailData.getBitmap())) + .withResumableUploadSpec(ApplicationDependencies.getSignalServiceMessageSender().getResumableUploadSpec()); thumbnail = builder.build(); } diff --git a/app/src/main/java/org/thoughtcrime/securesms/jobs/ResumableUploadSpecJob.java b/app/src/main/java/org/thoughtcrime/securesms/jobs/ResumableUploadSpecJob.java index 5db8c7a29f..128c537f37 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/jobs/ResumableUploadSpecJob.java +++ b/app/src/main/java/org/thoughtcrime/securesms/jobs/ResumableUploadSpecJob.java @@ -35,11 +35,6 @@ public class ResumableUploadSpecJob extends BaseJob { @Override protected void onRun() throws Exception { - if (!FeatureFlags.attachmentsV3()) { - Log.i(TAG, "Attachments V3 is not enabled so there is nothing to do!"); - return; - } - ResumableUploadSpec resumableUploadSpec = ApplicationDependencies.getSignalServiceMessageSender() .getResumableUploadSpec(); diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java index 16081f41ab..7fd824a723 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/FeatureFlags.java @@ -50,7 +50,6 @@ public final class FeatureFlags { private static final long FETCH_INTERVAL = TimeUnit.HOURS.toMillis(2); private static final String USERNAMES = "android.usernames"; - private static final String ATTACHMENTS_V3 = "android.attachmentsV3.2"; private static final String REMOTE_DELETE = "android.remoteDelete"; private static final String GROUPS_V2_OLD_1 = "android.groupsv2"; private static final String GROUPS_V2_OLD_2 = "android.groupsv2.2"; @@ -73,7 +72,6 @@ public final class FeatureFlags { */ private static final Set REMOTE_CAPABLE = Sets.newHashSet( - ATTACHMENTS_V3, REMOTE_DELETE, GROUPS_V2, GROUPS_V2_CREATE_VERSION, @@ -106,7 +104,6 @@ public final class FeatureFlags { * more burden on the reader to ensure that the app experience remains consistent. */ private static final Set HOT_SWAPPABLE = Sets.newHashSet( - ATTACHMENTS_V3, GROUPS_V2_CREATE_VERSION, GROUPS_V2_JOIN_VERSION, VERIFY_V2, @@ -196,11 +193,6 @@ public final class FeatureFlags { return getBoolean(USERNAMES, false); } - /** Whether or not we use the attachments v3 form. */ - public static boolean attachmentsV3() { - return getBoolean(ATTACHMENTS_V3, false); - } - /** Send support for remotely deleting a message. */ public static boolean remoteDelete() { return getBoolean(REMOTE_DELETE, false); diff --git a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java index 73e5024ccd..f4fc615688 100644 --- a/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java +++ b/libsignal/service/src/main/java/org/whispersystems/signalservice/api/SignalServiceMessageSender.java @@ -124,7 +124,6 @@ public class SignalServiceMessageSender { private final AtomicReference> pipe; private final AtomicReference> unidentifiedPipe; private final AtomicBoolean isMultiDevice; - private final AtomicBoolean attachmentsV3; private final ExecutorService executor; @@ -144,14 +143,13 @@ public class SignalServiceMessageSender { SignalProtocolStore store, String signalAgent, boolean isMultiDevice, - boolean attachmentsV3, Optional pipe, Optional unidentifiedPipe, Optional eventListener, ClientZkProfileOperations clientZkProfileOperations, ExecutorService executor) { - this(urls, new StaticCredentialsProvider(uuid, e164, password, null), store, signalAgent, isMultiDevice, attachmentsV3, pipe, unidentifiedPipe, eventListener, clientZkProfileOperations, executor); + this(urls, new StaticCredentialsProvider(uuid, e164, password, null), store, signalAgent, isMultiDevice, pipe, unidentifiedPipe, eventListener, clientZkProfileOperations, executor); } public SignalServiceMessageSender(SignalServiceConfiguration urls, @@ -159,7 +157,6 @@ public class SignalServiceMessageSender { SignalProtocolStore store, String signalAgent, boolean isMultiDevice, - boolean attachmentsV3, Optional pipe, Optional unidentifiedPipe, Optional eventListener, @@ -172,7 +169,6 @@ public class SignalServiceMessageSender { this.pipe = new AtomicReference<>(pipe); this.unidentifiedPipe = new AtomicReference<>(unidentifiedPipe); this.isMultiDevice = new AtomicBoolean(isMultiDevice); - this.attachmentsV3 = new AtomicBoolean(attachmentsV3); this.eventListener = eventListener; this.executor = executor != null ? executor : Executors.newSingleThreadExecutor(); } @@ -365,11 +361,10 @@ public class SignalServiceMessageSender { socket.cancelInFlightRequests(); } - public void update(SignalServiceMessagePipe pipe, SignalServiceMessagePipe unidentifiedPipe, boolean isMultiDevice, boolean attachmentsV3) { + public void update(SignalServiceMessagePipe pipe, SignalServiceMessagePipe unidentifiedPipe, boolean isMultiDevice) { this.pipe.set(Optional.fromNullable(pipe)); this.unidentifiedPipe.set(Optional.fromNullable(unidentifiedPipe)); this.isMultiDevice.set(isMultiDevice); - this.attachmentsV3.set(attachmentsV3); } public SignalServiceAttachmentPointer uploadAttachment(SignalServiceAttachmentStream attachment) throws IOException {