- public void setExpirationTimer(GroupId groupId, int messageExpirationTimer) {
- var g = getGroup(groupId);
- if (g instanceof GroupInfoV1) {
- var groupInfoV1 = (GroupInfoV1) g;
- groupInfoV1.messageExpirationTime = messageExpirationTimer;
- account.getGroupStore().updateGroup(groupInfoV1);
- } else {
- throw new RuntimeException("TODO Not implemented!");
- }
+ private void setExpirationTimer(
+ GroupInfoV1 groupInfoV1, int messageExpirationTimer
+ ) throws NotAGroupMemberException, GroupNotFoundException, IOException {
+ groupInfoV1.messageExpirationTime = messageExpirationTimer;
+ account.getGroupStore().updateGroup(groupInfoV1);
+ sendExpirationTimerUpdate(groupInfoV1.getGroupId());
+ }
+
+ private void sendExpirationTimerUpdate(GroupIdV1 groupId) throws IOException, NotAGroupMemberException, GroupNotFoundException {
+ final var messageBuilder = SignalServiceDataMessage.newBuilder().asExpirationUpdate();
+ sendGroupMessage(messageBuilder, groupId);