Fix signed int overflow in disappearing timer UI message.
This commit is contained in:
parent
eec2685e67
commit
89eeae36c4
2 changed files with 2 additions and 2 deletions
|
@ -384,7 +384,7 @@ object GroupsV2UpdateMessageConverter {
|
||||||
updates.add(
|
updates.add(
|
||||||
GroupChangeChatUpdate.Update(
|
GroupChangeChatUpdate.Update(
|
||||||
groupExpirationTimerUpdate = GroupExpirationTimerUpdate(
|
groupExpirationTimerUpdate = GroupExpirationTimerUpdate(
|
||||||
expiresInMs = change.newTimer!!.duration * 1000,
|
expiresInMs = (change.newTimer!!.duration * 1000L).toUInt().toInt(),
|
||||||
updaterAci = if (editorUnknown) null else change.editorServiceIdBytes
|
updaterAci = if (editorUnknown) null else change.editorServiceIdBytes
|
||||||
)
|
)
|
||||||
)
|
)
|
||||||
|
|
|
@ -234,7 +234,7 @@ final class GroupsV2UpdateMessageProducer {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
private void describeGroupExpirationTimerUpdate(@NonNull GroupExpirationTimerUpdate update, @NonNull List<UpdateDescription> updates) {
|
private void describeGroupExpirationTimerUpdate(@NonNull GroupExpirationTimerUpdate update, @NonNull List<UpdateDescription> updates) {
|
||||||
final int duration = update.expiresInMs / 1000;
|
final int duration = Math.toIntExact(Integer.toUnsignedLong(update.expiresInMs) / 1000);
|
||||||
String time = ExpirationUtil.getExpirationDisplayValue(context, duration);
|
String time = ExpirationUtil.getExpirationDisplayValue(context, duration);
|
||||||
if (update.updaterAci == null) {
|
if (update.updaterAci == null) {
|
||||||
updates.add(updateDescription(context.getString(R.string.MessageRecord_disappearing_message_time_set_to_s, time), R.drawable.ic_update_timer_16));
|
updates.add(updateDescription(context.getString(R.string.MessageRecord_disappearing_message_time_set_to_s, time), R.drawable.ic_update_timer_16));
|
||||||
|
|
Loading…
Add table
Reference in a new issue