From f610c1a8b1873e538c0add38fd229bb480df0db2 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 10 Dec 2025 16:57:31 -0500 Subject: [PATCH] Fix exporting release note messages. --- .../backupTests/chat_release_notes_00.binproto | Bin 0 -> 588 bytes .../backupTests/chat_release_notes_01.binproto | Bin 0 -> 701 bytes .../backupTests/chat_release_notes_02.binproto | Bin 0 -> 694 bytes .../backupTests/chat_release_notes_03.binproto | Bin 0 -> 650 bytes .../backupTests/chat_release_notes_04.binproto | Bin 0 -> 645 bytes .../backupTests/chat_release_notes_05.binproto | Bin 0 -> 729 bytes .../backup/v2/ArchiveImportExportTests.kt | 7 ++++++- .../v2/exporters/ChatItemArchiveExporter.kt | 2 +- 8 files changed, 7 insertions(+), 2 deletions(-) create mode 100644 app/src/androidTest/assets/backupTests/chat_release_notes_00.binproto create mode 100644 app/src/androidTest/assets/backupTests/chat_release_notes_01.binproto create mode 100644 app/src/androidTest/assets/backupTests/chat_release_notes_02.binproto create mode 100644 app/src/androidTest/assets/backupTests/chat_release_notes_03.binproto create mode 100644 app/src/androidTest/assets/backupTests/chat_release_notes_04.binproto create mode 100644 app/src/androidTest/assets/backupTests/chat_release_notes_05.binproto diff --git a/app/src/androidTest/assets/backupTests/chat_release_notes_00.binproto b/app/src/androidTest/assets/backupTests/chat_release_notes_00.binproto new file mode 100644 index 0000000000000000000000000000000000000000..87ba9a9cfb30e0f5b9b38cc6c686338ba04d7e3a GIT binary patch literal 588 zcmea}U=+CVYr*{QhEfXsyKEj#$*x#(ig%Lc-3C}+#osG&J zqAx{nsQlHNEF_S4kZ}>iRVVSzL#z@vJgYuPuqd%O0Zq|jaRVA-rOBo6W_QMM6Jsg8 z#l~lsyPxcF4Ng@`jL`N!7xm!Y3g2_7l0wX(!7dVvUWq_2GfFTjFlsOwFj`EIabiq# zVoY*kO!i<5V2of)V9a1FV60$lU}WrIWSYgu&cP_kz`*by#9{)n{)1V}q745T{_kL9 zJjBSs!7RWm!KA=+gOT9@BjXE3Mh+o14n{2|4sJFf77ivO1{onK4rV1WE&-r9C_suy zf|)~#je|viDS&Y$qtY@)5L4pD;@4Z(nL6=tte<;o>1soP&(CMSSzsE~!6?MV#gUj- zl9^wSm@8GqRiVU{nVXoNs-IPmnx2)#C}+#osG&J zqAx{nsQlHNEF_S4kZ}>iRVVSzL#z@vJgYuPuqd%O0Zq|jaRVA-rOBo6W_QMM6Jsg8 z#l~lsyPxcF4Ng@`jL`N!7xm!Y3g2_7l0wX(!7dVvUWq_2GfFTjFlsOwFj`EIabiq# zVoY*kO!i<5V2of)V9a1FV60$lU}WrIWSYgu&cP_kz`*by#9{)n{)1V}q745T{_kL9 zJjBSs!7RWm!KA=+gOT9@BjXE3Mh+o14n{2|4sJFf77ivO1{onK4rV1WE&-r9C_suy zf|)~#je|viDS&YnlhSl15L4pj;@4Z(nK}t^Y?ym$>1soPFVAPcSzrosa@1EwA!#nj z%+i$1BW6I5Tq-(^K^e^3tu?OI_WZbDawv zCUJSJlL}&plJQCN$uJAcPqg&&47V@$bJNYw_tCWucZ{&eugq#>ad7t6o= z>#Ll^bN2H!TU-(&f2T@KHC4SEyK+^f{wI6GQwkn--xowp6TPx_@3$E-Q??}=D=qvl zGu`NhYo5fx9e*1cm3Tb83M+%NeFEKGgGw}*46b$jc=FjWN?~WW_S=8EJU#x$J=ok{ zk#sZX@xfxHwcfvuJ>-b|U2uE81f!C`jo?rE+poBnbUj&b>nOv^BB~?|4wC}+#osG&J zqAx{nsQlHNEF_S4kZ}>iRVVSzL#z@vJgYuPuqd%O0Zq|jaRVA-rOBo6W_QMM6Jsg8 z#l~lsyPxcF4Ng@`jL`N!7xm!Y3g2_7l0wX(!7dVvUWq_2GfFTjFlsOwFj`EIabiq# zVoY*kO!i<5V2of)V9a1FV60$lU}WrIWSYgu&cP_kz`*by#9{)n{)1V}q745T{_kL9 zJjBSs!7RWm!KA=+gOT9@BjXE3Mh+o14n{2|4sJFf77ivO1{onK4rV1WE&-r9C_suy zf|)~#je|viDS&Y@lhOnx5L4pT;@4Z(nL6=tY@B;)>1soPug_<{SzsFViBZUe%c!6z zKQm9EC^ap=C^s`DF|Sx5zbLUJGhd-7BR?;>v{)fCw;;7BB{Q`|p)5bAG`F-^Y9}Mt zHby1R%-qEERQ>eKG%HR&*KqeD$EqR^hwB_3r{#ip3Ui%PBEu^q1M;#Hqhx&C-L=wm zbTjpGbo1@qRqE`cO3Vv9{0wbNT#d7GxEvxp?W8xT^~A17f3YQ`)H(8sah1)H5AETf zw9{u!6A*NnQ8M5DQpW3lKHHQ1R<1Vw)~vBHh+Syw+SM_SmdOZySt>Dm!kvxm7ED13 z>%B!U2|c}TaQKkg9VNN`H>OHUpPbd7$on;|$z32h=Y^<}FgQrMf6V`Q-YAHniiL}b GgAD*oCF$4z literal 0 HcmV?d00001 diff --git a/app/src/androidTest/assets/backupTests/chat_release_notes_03.binproto b/app/src/androidTest/assets/backupTests/chat_release_notes_03.binproto new file mode 100644 index 0000000000000000000000000000000000000000..a8d8d59a2bcdfa46d23d589bf72313aacbb8340e GIT binary patch literal 650 zcmea}U=+CVYr*{QhEfXsyKEj#$*x#(ig%Lc-3C}+#osG&J zqAx{nsQlHNEF_S4kZ}>iRVVSzL#z@vJgYuPuqd%O0Zq|jaRVA-rOBo6W_QMM6Jsg8 z#l~lsyPxcF4Ng@`jL`N!7xm!Y3g2_7l0wX(!7dVvUWq_2GfFTjFlsOwFj`EIabiq# zVoY*kO!i<5V2of)V9a1FV60$lU}WrIWSYgu&cP_kz`*by#9{)n{)1V}q745T{_kL9 zJjBSs!7RWm!KA=+gOT9@BjXE3Mh+o14n{2|4sJFf77ivO1{onK4rV1WE&-r9C_suy zf|)~#je|viDS+`gqtX*b5L4pz;@4Z(nK}t^Y?^y&>1soPZ_j7HSzrosa?~M4AucYC z#JrNs{DQ<>sm+XBa~PF46H8Mv^YwEJj2&(Ydt74&eT z`rrI$YI8)UB?euvo`z3F99IUR0|G|6dVt>?vNe4^f3bjwB1utZn zcyz^5xqB-l&aeElgjtEl)2pyDINK-C-8HC0gTdfh$B!qU4Wks)ANGYF>MPWrWqbE< z%agR9eWK3V=S2JT{Uefhsy{)4RFN>&>FxZC}+#osG&J zqAx{nsQlHNEF_S4kZ}>iRVVSzL#z@vJgYuPuqd%O0Zq|jaRVA-rOBo6W_QMM6Jsg8 z#l~lsyPxcF4Ng@`jL`N!7xm!Y3g2_7l0wX(!7dVvUWq_2GfFTjFlsOwFj`EIabiq# zVoY*kO!i<5V2of)V9a1FV60$lU}WrIWSYgu&cP_kz`*by#9{)n{)1V}q745T{_kL9 zJjBSs!7RWm!KA=+gOT9@BjXE3Mh+o14n{2|4sJFf77ivO1{onK4rV1WE&-r9C_suy zf|)~#je|viDS+`2qtbmw5L4pL;@4Z(nL6=tY@T~+>1soP@6TtySzsD(V;J$kAtr~Do%@U_vcOh=jtE&rJuK$w#+tgn%U6+RZ%5jun&8G%>Q`aD2Sno Jg^P)U4FG_--FW~2 literal 0 HcmV?d00001 diff --git a/app/src/androidTest/assets/backupTests/chat_release_notes_05.binproto b/app/src/androidTest/assets/backupTests/chat_release_notes_05.binproto new file mode 100644 index 0000000000000000000000000000000000000000..0e5dc43b0645bd52daba53f865c1f2bf9bbecdaf GIT binary patch literal 729 zcmea}U=+CVYr*{QhEfXsyKEj#$*x#(ig%Lc-3C}+#osG&J zqAx{nsQlHNEF_S4kZ}>iRVVSzL#z@vJgYuPuqd%O0Zq|jaRVA-rOBo6W_QMM6Jsg8 z#l~lsyPxcF4Ng@`jL`N!7xm!Y3g2_7l0wX(!7dVvUWq_2GfFTjFlsOwFj`EIabiq# zVoY*kO!i<5V2of)V9a1FV60$lU}WrIWSYgu&cP_kz`*by#9{)n{)1V}q745T{_kL9 zJjBSs!7RWm!KA=+gOT9@BjXE3Mh+o14n{2|4sJFf77ivO1{onK4rV1WE&-r9C_suy zf|)~#je|viDS&YslhS4;5L4pr;@4Z(nK}t^Y?*s%>1soPAJ1pMSzrosa@0g7Armg6 zf};G)JcXjvwEUvn%#_5uVuk#o#FET>g`$l7yyVhih0NT7)S{Hk)DnfV{G8I<(qgF_ zj9dp9mAEo<6Vp@mvkFqvtvLN$!`+JHc~YX5BJP3&dq9Ma*XUf6aauAhjTYmu;K!J_$x8 qfg8b}^tWGeFX?)+-qulumqk=b7#wPSKjwctZxqB(#lpqJ!3F?Dxcf8! literal 0 HcmV?d00001 diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/backup/v2/ArchiveImportExportTests.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/backup/v2/ArchiveImportExportTests.kt index ddb3ffaecb..e144cb3581 100644 --- a/app/src/androidTest/java/org/thoughtcrime/securesms/backup/v2/ArchiveImportExportTests.kt +++ b/app/src/androidTest/java/org/thoughtcrime/securesms/backup/v2/ArchiveImportExportTests.kt @@ -63,7 +63,12 @@ class ArchiveImportExportTests { // @Test fun chat() { - runTests { it.startsWith("chat_") && !it.contains("_item") } + runTests { it.matches(Regex("^chat_%d%d.binproto$")) } + } + +// @Test + fun chatReleaseNotes() { + runTests { it.startsWith("chat_release_notes_") } } // @Test diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ChatItemArchiveExporter.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ChatItemArchiveExporter.kt index ad43291b23..b8cafc25cf 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ChatItemArchiveExporter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ChatItemArchiveExporter.kt @@ -1639,7 +1639,7 @@ private fun ChatItem.validateChatItem(exportState: ExportState, selfRecipientId: return null } - if (this.incoming != null && exportState.recipientIdToAci[this.authorId] == null && exportState.recipientIdToE164[this.authorId] == null) { + if (this.incoming != null && this.authorId != exportState.releaseNoteRecipientId && exportState.recipientIdToAci[this.authorId] == null && exportState.recipientIdToE164[this.authorId] == null) { Log.w(TAG, ExportSkips.incomingMessageAuthorDoesNotHaveAciOrE164(this.dateSent)) return null }