diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java index 3e81cb357..4f708cb53 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/controllers/DeviceController.java @@ -238,8 +238,7 @@ public class DeviceController { private boolean isCapabilityDowngrade(Account account, DeviceCapabilities capabilities, String userAgent) { boolean isDowngrade = false; - // TODO stories capability - // isDowngrade |= account.isStoriesSupported() && !capabilities.isStories(); + isDowngrade |= account.isStoriesSupported() && !capabilities.isStories(); isDowngrade |= account.isPniSupported() && !capabilities.isPni(); isDowngrade |= account.isChangeNumberSupported() && !capabilities.isChangeNumber(); isDowngrade |= account.isAnnouncementGroupSupported() && !capabilities.isAnnouncementGroup(); diff --git a/service/src/main/java/org/whispersystems/textsecuregcm/storage/Account.java b/service/src/main/java/org/whispersystems/textsecuregcm/storage/Account.java index 7f90a4d86..582dac310 100644 --- a/service/src/main/java/org/whispersystems/textsecuregcm/storage/Account.java +++ b/service/src/main/java/org/whispersystems/textsecuregcm/storage/Account.java @@ -225,9 +225,7 @@ public class Account { return devices.stream() .filter(Device::isEnabled) - // TODO stories capability - // .allMatch(device -> device.getCapabilities() != null && device.getCapabilities().isStories()); - .anyMatch(device -> device.getCapabilities() != null && device.getCapabilities().isStories()); + .allMatch(device -> device.getCapabilities() != null && device.getCapabilities().isStories()); } public boolean isGiftBadgesSupported() { diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DeviceControllerTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DeviceControllerTest.java index 4e549f7d2..109e9c19a 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DeviceControllerTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/tests/controllers/DeviceControllerTest.java @@ -129,6 +129,7 @@ class DeviceControllerTest { when(account.isAnnouncementGroupSupported()).thenReturn(true); when(account.isChangeNumberSupported()).thenReturn(true); when(account.isPniSupported()).thenReturn(true); + when(account.isStoriesSupported()).thenReturn(true); when(account.isGiftBadgesSupported()).thenReturn(true); when(pendingDevicesManager.getCodeForNumber(AuthHelper.VALID_NUMBER)).thenReturn( @@ -495,9 +496,7 @@ class DeviceControllerTest { AuthHelper.getProvisioningAuthHeader(AuthHelper.VALID_NUMBER, AuthHelper.VALID_PASSWORD)) .header("User-Agent", "Signal-Android/5.42.8675309 Android/30") .put(Entity.entity(accountAttributes, MediaType.APPLICATION_JSON_TYPE)); - assertThat(response.getStatus()).isEqualTo(200); // Downgrade is currently supported - // TODO stories capability - // assertThat(response.getStatus()).isEqualTo(409); + assertThat(response.getStatus()).isEqualTo(409); deviceCapabilities = new DeviceCapabilities(true, true, true, true, true, true, true, true, true, true, true, true); accountAttributes = new AccountAttributes(false, 1234, null, null, true, deviceCapabilities); diff --git a/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountTest.java b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountTest.java index 164a594e7..ccfc50059 100644 --- a/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountTest.java +++ b/service/src/test/java/org/whispersystems/textsecuregcm/tests/storage/AccountTest.java @@ -370,9 +370,7 @@ class AccountTest { "1234".getBytes(StandardCharsets.UTF_8)).isStoriesSupported()).isTrue(); assertThat(AccountsHelper.generateTestAccount("+18005551234", UUID.randomUUID(), UUID.randomUUID(), List.of(storiesCapableDevice, storiesIncapableDevice), - "1234".getBytes(StandardCharsets.UTF_8)).isStoriesSupported()).isTrue(); - // TODO stories capability - // "1234".getBytes(StandardCharsets.UTF_8)).isStoriesSupported()).isFalse(); + "1234".getBytes(StandardCharsets.UTF_8)).isStoriesSupported()).isFalse(); assertThat(AccountsHelper.generateTestAccount("+18005551234", UUID.randomUUID(), UUID.randomUUID(), List.of(storiesCapableDevice, storiesIncapableExpiredDevice), "1234".getBytes(StandardCharsets.UTF_8)).isStoriesSupported()).isTrue();