Skip to content

Commit

Permalink
Merge branch 'release/1.11.14/master'
Browse files Browse the repository at this point in the history
  • Loading branch information
pixlwave committed Jun 17, 2024
2 parents 91b1691 + d07aa71 commit cd1b5a5
Show file tree
Hide file tree
Showing 16 changed files with 330 additions and 22 deletions.
5 changes: 5 additions & 0 deletions CHANGES.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,8 @@
## Changes in 1.11.14 (2024-06-17)

No significant changes.


## Changes in 1.11.13 (2024-06-12)

Others
Expand Down
4 changes: 2 additions & 2 deletions Config/AppVersion.xcconfig
Original file line number Diff line number Diff line change
Expand Up @@ -15,5 +15,5 @@
//

// Version
MARKETING_VERSION = 1.11.13
CURRENT_PROJECT_VERSION = 1.11.13
MARKETING_VERSION = 1.11.14
CURRENT_PROJECT_VERSION = 1.11.14
12 changes: 6 additions & 6 deletions Podfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -39,17 +39,17 @@ PODS:
- LoggerAPI (1.9.200):
- Logging (~> 1.1)
- Logging (1.4.0)
- MatrixSDK (0.27.8):
- MatrixSDK/Core (= 0.27.8)
- MatrixSDK/Core (0.27.8):
- MatrixSDK (0.27.9):
- MatrixSDK/Core (= 0.27.9)
- MatrixSDK/Core (0.27.9):
- AFNetworking (~> 4.0.0)
- GZIP (~> 1.3.0)
- libbase58 (~> 0.1.4)
- MatrixSDKCrypto (= 0.4.2)
- OLMKit (~> 3.2.5)
- Realm (= 10.27.0)
- SwiftyBeaver (= 1.9.5)
- MatrixSDK/JingleCallStack (0.27.8):
- MatrixSDK/JingleCallStack (0.27.9):
- JitsiMeetSDKLite (= 8.1.2-lite)
- MatrixSDK/Core
- MatrixSDKCrypto (0.4.2)
Expand Down Expand Up @@ -187,7 +187,7 @@ SPEC CHECKSUMS:
libPhoneNumber-iOS: 0a32a9525cf8744fe02c5206eb30d571e38f7d75
LoggerAPI: ad9c4a6f1e32f518fdb43a1347ac14d765ab5e3d
Logging: beeb016c9c80cf77042d62e83495816847ef108b
MatrixSDK: 4c5a8572a481340ab233451ad36c1322d371fae5
MatrixSDK: 246fd1d3620afcbf8cb76794e9343ebf3cbf881b
MatrixSDKCrypto: 736069ee0a5ec12852ab3498bf2242acecc443fc
OLMKit: da115f16582e47626616874e20f7bb92222c7a51
ReadMoreTextView: 19147adf93abce6d7271e14031a00303fe28720d
Expand All @@ -209,4 +209,4 @@ SPEC CHECKSUMS:

PODFILE CHECKSUM: b622ffadc1a0fe5442787bd9023ca3d110384814

COCOAPODS: 1.15.2
COCOAPODS: 1.14.3
14 changes: 11 additions & 3 deletions Riot/Assets/hu.lproj/Vector.strings
Original file line number Diff line number Diff line change
Expand Up @@ -1352,7 +1352,7 @@
"event_formatter_call_ringing" = "Hívás…";
"event_formatter_call_connecting" = "Kapcsolás…";
"settings_labs_enable_ringing_for_group_calls" = "Csengetés csoportos hívásokhoz";
"room_no_privileges_to_create_group_call" = "Adminisztrátornak vagy moderátornak kell lenned a hívás indításához.";
"room_no_privileges_to_create_group_call" = "Adminisztrátornak vagy moderátornak kell lennie a hívás indításához.";
"room_join_group_call" = "Csatlakozás";

// Chat
Expand Down Expand Up @@ -2501,8 +2501,8 @@
"room_first_message_placeholder" = "Küld el az első üzenetedet…";
"authentication_qr_login_confirm_title" = "Biztonságos kapcsolat beállítva";
"room_event_encryption_info_key_authenticity_not_guaranteed" = "A titkosított üzenetek valódiságát ezen az eszközön nem lehet garantálni.";
"wysiwyg_composer_format_action_underline" = "Aláhúzott";
"wysiwyg_composer_format_action_strikethrough" = "Áthúzott";
"wysiwyg_composer_format_action_underline" = "Aláhúzott formázás alkalmazása";
"wysiwyg_composer_format_action_strikethrough" = "Áthúzott formázás alkalmazása";
"wysiwyg_composer_format_action_italic" = "Dőlt";

// Formatting Actions
Expand Down Expand Up @@ -2755,3 +2755,11 @@
"room_command_kick_user_description" = "Eltávolítja az adott azonosítójú felhasználót ebből a szobából";
"room_command_ban_user_description" = "Kitiltja az adott azonosítójú felhasználót";
"room_command_unban_user_description" = "Feloldja az adott azonosítójú felhasználó kitiltását";
"notice_display_name_changed_to" = "%@ erre módosította a megjelenítendő nevét: %@";
"poll_timeline_loading" = "Betöltés...";
"manage_session_redirect" = "Át lesz irányítva a kiszolgálója hitelesítési szolgáltatójához, hogy befejezze a kijelentkezést.";
"manage_session_redirect_error" = "A funkcionalitás jelenleg nem érhető el. Lépjen kapcsolatba a Matrix-kiszolgáló rendszergazdájával.";
"settings_manage_account_title" = "Fiók";
"settings_manage_account_action" = "Fiók kezelése";
"settings_manage_account_description" = "A fiókja kezelése itt: %@";
"room_command_change_room_topic_description" = "Beállítja a szoba témáját";
7 changes: 7 additions & 0 deletions Riot/Assets/nn.lproj/InfoPlist.strings
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@


"NSCalendarsUsageDescription" = "Sjå dei planlagde møta dine i appen.";
"NSFaceIDUsageDescription" = "Face ID vert brukt til å få tilgang til appen din.";
// Permissions usage explanations
"NSCameraUsageDescription" = "Kameraet vert brukt til videosamtalar, og til å ta og laste opp bilde og videoar.";
"NSMicrophoneUsageDescription" = "Appen treng tilgang til mikrofonen for samtalar, og for å spele inn video og lydmeldingar.";
1 change: 1 addition & 0 deletions Riot/Assets/nn.lproj/Localizable.strings
Original file line number Diff line number Diff line change
@@ -0,0 +1 @@

71 changes: 71 additions & 0 deletions Riot/Assets/nn.lproj/Vector.strings
Original file line number Diff line number Diff line change
Expand Up @@ -9,3 +9,74 @@
"warning" = "Åtvaring";
// String for App Store
"store_short_description" = "Sikker desentralisert chat/IP-telefoni";
"ok" = "OK";
"callbar_only_single_paused" = "Samtale sett på pause";
"cancel" = "Avbryt";
"save" = "Lagra";
"join" = "Ver med";
"decline" = "Avslå";
"accept" = "Godta";
"preview" = "Førehandsvising";
"camera" = "Kamera";
"voice" = "Røyst";
"video" = "Video";
"active_call" = "Aktiv samtale";
"active_call_details" = "Aktiv samtale (%@)";
"joined" = "Vart med";
"later" = "Seinare";
"rename" = "Endre namn";
"collapse" = "Skjul";
"send_to" = "Send til %@";
"sending" = "Sender";
"close" = "Lat att";
"skip" = "Hopp over";
"switch" = "Byt";
"more" = "Meir";
"less" = "Mindre";
"open" = "Opne";
"done" = "Ferdig";

// Call Bar
"callbar_only_single_active" = "Trykk for å gå tilbake til samtalen (%@)";
"callbar_only_multiple_paused" = "%@ samtalar sett på pause";
"callbar_return" = "Gå tilbake";
"callbar_only_single_active_group" = "Trykk for å bli med i konferansesamtalen (%@)";

// Accessibility
"accessibility_checkbox_label" = "avkryssingsboks";
"accessibility_button_label" = "knapp";
"error" = "Feil";
"invite_to" = "Inviter til %@";

// MARK: Onboarding
"onboarding_splash_register_button_title" = "Opprett konto";
"accessibility_selected" = "vald";
"private" = "Privat";
"public" = "Offentleg";
"stop" = "Stopp";
"new_word" = "Ny";
"existing" = "Eksisterande";
"add" = "Legg til";
"suggest" = "Føreslå";
"edit" = "Rediger";

// Activities
"loading" = "Lastar";
"saving" = "Lagrar";
"callbar_active_and_single_paused" = "1 aktiv samtale (%@) · 1 samtale sett i pause";
"callbar_active_and_multiple_paused" = "1 aktiv samtale (%@) · %@ samtalar sett på pause";
"confirm" = "Stadfest";
"onboarding_splash_login_button_title" = "Eg har allereie ein konto";
"authentication_forgot_password_text_field_placeholder" = "E-postadresse";
"next" = "Neste";
"back" = "Tilbake";
"continue" = "Fortset";
"create" = "Lag";
"remove" = "Fjern";
"invite" = "Inviter";
"retry" = "Prøv på nytt";
"on" = "På";
"off" = "Av";
"authentication_login_username" = "Brukarnamn / e-postadresse / telefonnummer";
"onboarding_display_name_placeholder" = "Visingsnamn";
"authentication_login_with_qr" = "Logg inn med QR-kode";
25 changes: 21 additions & 4 deletions Riot/Assets/pt_BR.lproj/Vector.strings
Original file line number Diff line number Diff line change
Expand Up @@ -1226,7 +1226,7 @@
"secrets_recovery_reset_action_part_2" = "Resettar tudo";
"secrets_setup_recovery_passphrase_summary_information" = "Lembre-se de sua Frase de Segurança. Ela pode ser usada para destrancar suas mensagens & dados encriptados.";
"secrets_setup_recovery_passphrase_summary_title" = "Salvar sua Frase de Segurança";
"home_empty_view_information" = "O app de chat seguro tudo-em-um para equipes, amigas(os) e organizações. Toque no botão + abaixo para adicionar pessoas e salas.";
"home_empty_view_information" = "O app de chat seguro tudo-em-um para equipes, amigos e organizações. Toque no botão + abaixo para adicionar pessoas e salas.";

// MARK: - Home

Expand All @@ -1244,7 +1244,7 @@

// MARK: - Invite friends

"invite_friends_action" = "Convidar amigas(os) para %@";
"invite_friends_action" = "Convidar amigos para %@";
"pin_protection_settings_change_pin" = "Mudar PIN";
"pin_protection_confirm_pin_to_change" = "Confirme PIN para mudar PIN";
"bug_report_background_mode" = "Continuar em background";
Expand Down Expand Up @@ -1348,7 +1348,7 @@
"side_menu_action_feedback" = "Feedback";
"side_menu_action_help" = "Ajuda";
"side_menu_action_settings" = "Ajustes";
"side_menu_action_invite_friends" = "Convidar amigas(os)";
"side_menu_action_invite_friends" = "Convidar amigos";

// Mark: - Side menu

Expand Down Expand Up @@ -1632,7 +1632,7 @@
"onboarding_use_case_not_sure_yet" = "Não tem certeza ainda? %@";
"onboarding_use_case_community_messaging" = "Comunidades";
"onboarding_use_case_work_messaging" = "Times";
"onboarding_use_case_personal_messaging" = "Amigas(os) e família";
"onboarding_use_case_personal_messaging" = "Amigos e família";
"onboarding_use_case_message" = "Nós vamos ajudá-la(o) a ficar conectada(o)";
"onboarding_use_case_title" = "Com quem você vai fazer chat mais?";

Expand Down Expand Up @@ -2654,3 +2654,20 @@
"user_other_session_security_recommendation_title" = "Outras sessões";
"room_creation_only_one_email_invite" = "Você só pode convidar um e-mail de cada vez";
"accessibility_selected" = "selecionado";
"room_creation_user_not_found_prompt_title" = "Confirmação";
"room_creation_user_not_found_prompt_message" = "Não foi possível encontrar perfis para este ID do Matrix. Quer começar uma conversa mesmo assim?";
"room_creation_user_not_found_prompt_invite_action" = "Começar conversa mesmo assim";
"room_participants_invite_anyway" = "Convidar mesmo assim";
"room_command_part_room_description" = "Sair da sala";
"room_command_kick_user_description" = "Remove o usuário com o ID fornecido desta sala";
"room_command_unban_user_description" = "Desbane o usuário com o ID fornecido";
"room_command_set_user_power_level_description" = "Define o nível de poder de um usuário";
"room_participants_invite_unknown_participant_prompt_to_msg" = "Não foi possível encontrar perfis para este ID do Matrix. Tem certeza que deseja convidar %@ para %@?";
"room_command_ban_user_description" = "Bane o usuário com o ID fornecido";

// Room commands descriptions
"room_command_change_display_name_description" = "Altera o seu nome de exibição";
"room_command_emote_description" = "Exibe ação";
"room_command_join_room_description" = "Entra na sala com o endereço fornecido";
"room_command_invite_user_description" = "Convida o usuário com o ID fornecido para a sala atual";
"authentication_qr_login_failure_device_not_supported" = "Vincular com este dispositivo não é suportado.";
58 changes: 58 additions & 0 deletions Riot/Categories/MXRoomSummary.swift
Original file line number Diff line number Diff line change
@@ -0,0 +1,58 @@
//
// Copyright 2024 New Vector Ltd
//
// Licensed under the Apache License, Version 2.0 (the "License");
// you may not use this file except in compliance with the License.
// You may obtain a copy of the License at
//
// http://www.apache.org/licenses/LICENSE-2.0
//
// Unless required by applicable law or agreed to in writing, software
// distributed under the License is distributed on an "AS IS" BASIS,
// WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
// See the License for the specific language governing permissions and
// limitations under the License.
//

import Foundation

extension Notification.Name {
static let roomSummaryDidRemoveExpiredDataFromStore = Notification.Name(MXRoomSummary.roomSummaryDidRemoveExpiredDataFromStore)
}

extension MXRoomSummary {
@objc static let roomSummaryDidRemoveExpiredDataFromStore = "roomSummaryDidRemoveExpiredDataFromStore"
@objc static let roomRetentionStateEventType = "m.room.retention"

private enum Constants {
static let roomRetentionInDaysKey = "roomRetentionInDays"
}
/// Get the room messages retention period in days
func roomRetentionPeriodInDays() -> uint {
if let period = self.others[Constants.roomRetentionInDaysKey] as? uint {
return period
} else {
return 365
}
}

/// Get the timestamp below which the received messages must be removed from the store, and the display
@objc func minimumTimestamp() -> UInt64 {
let periodInMs = Tools.durationInMs(fromDays: self.roomRetentionPeriodInDays())
let currentTs = (UInt64)(Date().timeIntervalSince1970 * 1000)
return (currentTs - periodInMs)
}

/// Remove the expired messages from the store.
/// If some data are removed, this operation posts the notification: roomSummaryDidRemoveExpiredDataFromStore.
/// This operation does not commit the potential change. We let the caller trigger the commit when this is the more suitable.
///
/// Provide a boolean telling whether some data have been removed.
@objc func removeExpiredRoomContentsFromStore() -> Bool {
let ret = self.mxSession.store.removeAllMessagesSent(before: self.minimumTimestamp(), inRoom: roomId)
if ret {
NotificationCenter.default.post(name: .roomSummaryDidRemoveExpiredDataFromStore, object: self)
}
return ret
}
}
12 changes: 12 additions & 0 deletions Riot/Categories/MXSession.swift
Original file line number Diff line number Diff line change
Expand Up @@ -25,4 +25,16 @@ extension MXSession {
matrixItemId: userId,
displayName: user?.displayname)
}

/// Clean the storage of a session by removing the expired contents.
@objc func removeExpiredMessages() {
var hasStoreChanged = false
for room in self.rooms {
hasStoreChanged = hasStoreChanged || room.summary.removeExpiredRoomContentsFromStore()
}

if hasStoreChanged {
self.store.commit?()
}
}
}
3 changes: 3 additions & 0 deletions Riot/Modules/Application/LegacyAppDelegate.m
Original file line number Diff line number Diff line change
Expand Up @@ -1826,6 +1826,9 @@ - (void)initMatrixSessions
[self registerNewRequestNotificationForSession:mxSession];

[self.pushNotificationService checkPushKitPushersInSession:mxSession];

// Clean the storage by removing expired data
[mxSession removeExpiredMessages];
}
else if (mxSession.state == MXSessionStateRunning)
{
Expand Down
Loading

0 comments on commit cd1b5a5

Please sign in to comment.