From 5d08906afdecc41cad793a2902f9aba59f31f1d3 Mon Sep 17 00:00:00 2001 From: Greyson Parrelli Date: Wed, 3 Dec 2025 11:05:23 -0500 Subject: [PATCH] Support 'allow sealed sender from anyone' in archive. --- .../assets/backupTests/account_data_00.binproto | Bin 305 -> 306 bytes .../assets/backupTests/account_data_01.binproto | Bin 603 -> 631 bytes .../assets/backupTests/account_data_02.binproto | Bin 723 -> 692 bytes .../assets/backupTests/account_data_03.binproto | Bin 662 -> 666 bytes .../assets/backupTests/account_data_04.binproto | Bin 566 -> 591 bytes .../assets/backupTests/account_data_05.binproto | Bin 722 -> 694 bytes .../assets/backupTests/account_data_06.binproto | Bin 596 -> 597 bytes .../assets/backupTests/account_data_07.binproto | Bin 480 -> 508 bytes .../assets/backupTests/account_data_08.binproto | Bin 531 -> 500 bytes .../assets/backupTests/account_data_09.binproto | Bin 420 -> 424 bytes .../assets/backupTests/account_data_10.binproto | Bin 471 -> 496 bytes .../assets/backupTests/account_data_11.binproto | Bin 568 -> 540 bytes .../assets/backupTests/account_data_12.binproto | Bin 384 -> 385 bytes .../assets/backupTests/account_data_13.binproto | Bin 504 -> 532 bytes .../assets/backupTests/account_data_14.binproto | Bin 568 -> 537 bytes .../assets/backupTests/account_data_15.binproto | Bin 484 -> 488 bytes .../assets/backupTests/account_data_16.binproto | Bin 414 -> 439 bytes .../assets/backupTests/account_data_17.binproto | Bin 573 -> 545 bytes .../assets/backupTests/account_data_18.binproto | Bin 394 -> 395 bytes .../assets/backupTests/account_data_19.binproto | Bin 478 -> 506 bytes .../assets/backupTests/account_data_20.binproto | Bin 508 -> 477 bytes .../assets/backupTests/account_data_21.binproto | Bin 490 -> 494 bytes .../assets/backupTests/account_data_22.binproto | Bin 474 -> 499 bytes .../assets/backupTests/account_data_23.binproto | Bin 589 -> 561 bytes .../assets/backupTests/account_data_24.binproto | Bin 382 -> 383 bytes .../assets/backupTests/account_data_25.binproto | Bin 481 -> 509 bytes .../assets/backupTests/account_data_26.binproto | Bin 569 -> 538 bytes .../assets/backupTests/account_data_27.binproto | Bin 418 -> 422 bytes .../v2/processor/AccountDataArchiveProcessor.kt | 2 ++ .../securesms/util/TextSecurePreferences.java | 4 ++++ app/src/main/protowire/Backup.proto | 3 ++- 31 files changed, 8 insertions(+), 1 deletion(-) diff --git a/app/src/androidTest/assets/backupTests/account_data_00.binproto b/app/src/androidTest/assets/backupTests/account_data_00.binproto index 809799036edd14c2f35f13c042c0964af2863a68..72925d28beb5d3fc265516ff3a0c5025866d450d 100644 GIT binary patch delta 52 zcmdnUw25hgAInxou1ynzx|I}Db23X5ax)c*GxO3*b25t+(h_rWG8Iyb@{1J;@{5Y{ IC;l@A0Pj^3v;Y7A delta 32 ocmdnQw2^6oAIla-u8k9ey15ndlS_+=Qj1bc6eivioA}=t0Ki!cmH+?% diff --git a/app/src/androidTest/assets/backupTests/account_data_01.binproto b/app/src/androidTest/assets/backupTests/account_data_01.binproto index 196e49848865d1e5bf70c43bbc6a3902a14276f2..e68a71523f4cc305caa171b90d82b735e1a31998 100644 GIT binary patch delta 91 zcmcc3@||UZAImRhuJ03r4l%x)EXw%C=>sEU6q})uv5Bc!mRW9UNolb{L26!NNoEp| sRRW~*^AyT5i!zH9GSl<&OA-}QQcH>wlS}dyGBR_43RCkZt23DZ05v%w&;S4c delta 63 zcmey)a+_s>AIm*vuGGixo1{^YTj)6;e`5iV~Ac@)a^Nb5rvYQ}c@z V3W`!oGD~w6CdV+zOm1W{1^^A$7hnJY diff --git a/app/src/androidTest/assets/backupTests/account_data_03.binproto b/app/src/androidTest/assets/backupTests/account_data_03.binproto index 6cad3b59fb212875184f31f39a967630d7f8e2b4..9f52087da2d7d4de1807853a3a5bf7e870be6986 100644 GIT binary patch delta 65 zcmbQnI*WCJAIn@8u2~a<7BKd1{LIbB_+j!NMkgi3)SS!`h1^Vq;>^7C(wxj>XHLoNyF;^iouOu}m cCpA4aDX~N$FF#MApfsl}GcU1d@_Z&^0DOEIN&o-= delta 75 zcmdnSdWm&{AInu1u1gbxjx%;`mSW^)oUFlQs_9aeS(I6`EF| diff --git a/app/src/androidTest/assets/backupTests/account_data_06.binproto b/app/src/androidTest/assets/backupTests/account_data_06.binproto index 99e0b7b19c7f60e9f34eff8e21c9b60e73157101..4c8054985f37ae79795435e44c7f71a105d3e672 100644 GIT binary patch delta 54 zcmcb@a+PI*AIlA9uB#h^)-ft6rsiapDCA};6ldn8m*!*^E2Jgnw^or diff --git a/app/src/androidTest/assets/backupTests/account_data_07.binproto b/app/src/androidTest/assets/backupTests/account_data_07.binproto index 251ca5f7df8004588cacbd3554bdb8484e74ebeb..e926997c4d8592642eb7e640e1ae50f95665d672 100644 GIT binary patch delta 92 zcmaFB{D*mhAIpCxu0Iol_A!=E7Gx}O{=mo>#h#dyoRXTBo@JJsT2fl9P>`CJSdy6p sWR(Ev{5*xS%%aR(~) R0g?r&d5I-J{^S#kCIAkx7#;us diff --git a/app/src/androidTest/assets/backupTests/account_data_08.binproto b/app/src/androidTest/assets/backupTests/account_data_08.binproto index 5996df3a8c4f0a099d9d7c679f349145242e2ea1..53859829d06c0e3224cad4adbb1dd95632b8dcca 100644 GIT binary patch delta 36 scmbQt@`ZVVAM1A}t}jd*gIyRIRVN={l;Kn;D9tI$%u6hqe238-0OqF*ivR!s delta 66 zcmeyuJeg&JAL}$`uF1?BgIyRkUCJ_xGK&>5)ARC65*1QXONtVcOY#*mGILY&5>xYw W6$*+{OEODy6(-MMl$pGj(HsB+`WKY| diff --git a/app/src/androidTest/assets/backupTests/account_data_09.binproto b/app/src/androidTest/assets/backupTests/account_data_09.binproto index 3533dc979892191817b0a2f9918871a588b99bd8..84da6b0ef36cd99e1530fcc8a4dab452f22c9d06 100644 GIT binary patch delta 64 zcmZ3&yn=axAIoYct`!r5;u(u4ZYp5>Fj;|7Q%Ny3C$mH$H&dZFGcUa~C$m@~Eior2 UQz5k|zgVFlzo;mGau%Z%0NfZB%K!iX delta 61 zcmZ3%yo7mzAIowkt|b$L;u#AjZYr3p%BZfWke^&yRFqnjTB4AelUbsWo2gKonU`Lg RlUb~gmY9>1IXREf3ILUt6{G+F diff --git a/app/src/androidTest/assets/backupTests/account_data_10.binproto b/app/src/androidTest/assets/backupTests/account_data_10.binproto index 34ed41b300a851ecd570a62bfef14242ff404684..dc56f6928b1af2453c60bc4d83c2bf9121321b83 100644 GIT binary patch delta 74 zcmcc4{DFCbAIoPZt`8f7Oc>3~a#Kr6ixmn|^AbxklYp!eAf2D5P?lMgS*(zmo|j*e asF0FcQk0lnlCO}FnF~~ynm>6lqX_^hKO8{- delta 49 zcmeyse4TlMAImK!uIn3vOc-Tl3-XJK@)c4N3o?^RixqNHOMqlSYF=UqkUx13qX_`X CUJ_#f diff --git a/app/src/androidTest/assets/backupTests/account_data_11.binproto b/app/src/androidTest/assets/backupTests/account_data_11.binproto index 2f17a751292c5813ddf14c3f81d0c5f1521e9d00..24c764e836af9cc290be8b01fa3ba3ae24034b99 100644 GIT binary patch delta 48 zcmdnNGKXb?AIp4Zt~nEf4l|Zb7Go@C{=mpMxs%bHQFZc5Mj1|pg3_F_%)G>+$*fGq E0Dk`uFaQ7m delta 98 zcmbQkvV&!UAIolLt{oGD4l@={76alQMsrt}vdp5)Vuj4~y!?_xg_P8iqQvBqe1(k6 z+|<0p)cj(Ff}+%t%+g$i)SUdn($u_?%*0%U%)FA+oSfA3)TG1`g}nT{$uAj=0r}`9 A2><{9 diff --git a/app/src/androidTest/assets/backupTests/account_data_12.binproto b/app/src/androidTest/assets/backupTests/account_data_12.binproto index 07a80b660b6cebe71ae133e3d054b29a9c0908b8..65d3d1b63cd748e989f254f4f0fcba96f73ca2a1 100644 GIT binary patch delta 53 zcmZo*Ze*U|$I`;Y)i^QemXcy>PG*ThZl*$UW?p(}PG+$}T4GL4rb22_ez8J9eo;~W IWM4*O0O-dOlmGw# delta 52 zcmZoL diff --git a/app/src/androidTest/assets/backupTests/account_data_13.binproto b/app/src/androidTest/assets/backupTests/account_data_13.binproto index ad6e9640b8f19103f18c6dc719422f57a2eb6fa9..378bab282553040353944a7f86b0f9bf7da78ef5 100644 GIT binary patch delta 109 zcmeytJcVU~AM12xt|`nDgAX#6PZnh?3I4#y7$yE@YRBu=sc)ywc+;}u&8#Up3PAeR z=9Vn8+|-iNVuga#yu^~sBp|BA6eT8?t{+SjgAX#6Ocn*=9!4oy*@FC{qI`vv#DdJE(qe_&)Dj?BkeZiR L0_0D=!)O5jf~FPA diff --git a/app/src/androidTest/assets/backupTests/account_data_14.binproto b/app/src/androidTest/assets/backupTests/account_data_14.binproto index 649aa9e66376d087c68bf6737df19a9419b1703a..cc7177ccbe7a130a36595feace6c091a7c0fa219 100644 GIT binary patch delta 58 zcmdnNGLvP3AIltOu9+Ky(izoMQ*-hQOH=boG81zZGV@AOb8=GCQGixo1{^YTj)6;e`5iV~Ac@)a^Nb5rvYQ}c@z V3W`!oGD~w6ChuaDnS7to3IGa47!Lpd diff --git a/app/src/androidTest/assets/backupTests/account_data_15.binproto b/app/src/androidTest/assets/backupTests/account_data_15.binproto index 501bba6ed64531fd80716b51d2efd2f74222e536..51cc751888f4395c0e0c6318f35c56756941bee1 100644 GIT binary patch delta 64 zcmaFD{DOIcAIobdt``%77BCi1{9M5JVR9m)zLH{UPG*ThZl*$UW?p(}PG+$}T4GL4 Urb22_ez8J9eo;~WC^5MtUm+ti7pO2be{vS12>=Y88_ECx delta 48 zcmdnaJdb&TAIm}}u6YxKe#^=h`PE B5$pf} diff --git a/app/src/androidTest/assets/backupTests/account_data_17.binproto b/app/src/androidTest/assets/backupTests/account_data_17.binproto index b148acc2c6eddff8865ecc402a0d6e1c2d8cef00..6db12ec4328130a6bba672f04f2fc1be017ef596 100644 GIT binary patch delta 48 zcmdnXvXEthAIlPEu7wkWjx&}`mSQYs{=mpMxtGy`QFZb=Mj1|pg3_F_%)G>+$y`jv E0E9gcTL1t6 delta 74 zcmZ3;vX^CoAIkw|uDuh3jx!cdmIC4lj24c#l>q7dJcY8% jqRe82%=Encl0=1+)RLmaGixo1{^YTj)6;e`5iV~Ac@)a^Nb5rvYQ}c@z t3W`!oGD~w6QgiYPOH=boG81zZGV@AOb8=GCQN1^^gRB76V< diff --git a/app/src/androidTest/assets/backupTests/account_data_21.binproto b/app/src/androidTest/assets/backupTests/account_data_21.binproto index ecfce596a6b8fea0cf75bdf1251f0e3ddde3a945..4939f0523fc92722c4f74666c36c916a1b83983d 100644 GIT binary patch delta 47 zcmV+~0MP&H1MUNmP6Y7+3ht3oqycl0_izF5lVt%h0U?v20Tv4&WpZzGAaHMTa&MEj F0W-v85!(O& delta 61 zcmaFI{EB&kAIn=Nu2&O-mM|7f{9Z6Qi&0-uAwRjas3^54wL~E`C$mH$H&dZFGcUa~ RC$m@~Eior2bMkIRV*vRM7uf&+ diff --git a/app/src/androidTest/assets/backupTests/account_data_22.binproto b/app/src/androidTest/assets/backupTests/account_data_22.binproto index 40fa9b6a6fd6b62c236c8064bb2cd7da6d5226e3..e77894153a12a9631f5b2f160542faa6789d75c0 100644 GIT binary patch delta 74 zcmcb`{F!-zAImo;uFo5T%o)wha#Kr6ixmn|^AbxklYp!eAf2D5P?lMgS*(zmo|j*e asF0FcQk0lnlCO}FnF~~ynm>6NqX_^lJ{(g3 delta 49 zcmey&e2aO4AIn`Pu3H;}%o$~63-XJK@)c4N3o?^RixqNHOMqlSYF=UqkUx1pqX_`Z C<`Q)P diff --git a/app/src/androidTest/assets/backupTests/account_data_23.binproto b/app/src/androidTest/assets/backupTests/account_data_23.binproto index 97413574d8c12221670302ac85a7d345bf7a7551..3ebe6ebd72c261c7c01485cd3797684bb9092d9e 100644 GIT binary patch delta 48 zcmX@hvXNziAIlbIu8k9e4l|Zb7Go@C{=mpMxs%a@QFZb!Mj1|pg3_F_%)G>+$zn|A E0FUhty8r+H delta 98 zcmdnUa+YO+AIk-1uCo(^4l@={76alQMh{n)vdp5)Vuj4~y!?_xg_P8iqQvBqe1(k6 z+|<0p)cj(Ff}+%t%+g$i)SUdn($u_?%*0%U%)FA+oSfA3)TG1`g}nT{$-fxQ0Ug36 Ag8%>k diff --git a/app/src/androidTest/assets/backupTests/account_data_24.binproto b/app/src/androidTest/assets/backupTests/account_data_24.binproto index 2a5f2ae9bee74c60625ce122fb13399e86f3fbe9..f0f768150f9d72f70c126aaf5bbf8af6e40ddc67 100644 GIT binary patch delta 36 scmeyz^q*;hA4?Mx*Z+w@7a0{N>oJOPE2I|X7b_Ix7Zv4Cc44#v0Q2DtX8-^I delta 52 zcmey*^p9zRA4?+>*T0ED7ZnxqlS_+=Qj1bc6jF0COB8Z56^b+S(o1tPixtumb8<2# IyE0k<03y~C%m4rY diff --git a/app/src/androidTest/assets/backupTests/account_data_25.binproto b/app/src/androidTest/assets/backupTests/account_data_25.binproto index bfd1140266037a35b4c4560721ae2e22940b1fa7..e93096a93ccb7a8f322d30a479097153072b4e70 100644 GIT binary patch delta 89 zcmaFJ{FixxA4>x>*WZajhZxHzi!zotd|+gZVlgx_Hpw!}O)V)cRwzi#ODxGu0K}={^YfcCIF!2AdLV3 delta 61 zcmey%{E&HqAIlRau7?wY4l$NY7G*3^iDEG{GB(MQEyyn_%2!B9EXYhMEmp`)Edi1R Osdp;Dj3xlAAr>fG? delta 89 zcmbQmvXfGixo1{^YTj)6;e`5iV~Ac@)a^Nb5rvYQ}c@z t3W`!oGD~w6QgiYPOH=boG81zZGV@AOb8=GCQC11_0CIA?*MF diff --git a/app/src/androidTest/assets/backupTests/account_data_27.binproto b/app/src/androidTest/assets/backupTests/account_data_27.binproto index 65f21ae451016b9a37b5b6ffbe059cd4bc725b20..2dfe3da2dea30669ae5e87e6eea089f572aca889 100644 GIT binary patch delta 64 zcmZ3)yo`B*AInN6u4NO0q8W=Pt}9^tFj1Ik}k87yy$f6_)@2 diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/AccountDataArchiveProcessor.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/AccountDataArchiveProcessor.kt index 3124820934..a3ced2035a 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/AccountDataArchiveProcessor.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/processor/AccountDataArchiveProcessor.kt @@ -109,6 +109,7 @@ object AccountDataArchiveProcessor { typingIndicators = TextSecurePreferences.isTypingIndicatorsEnabled(context), readReceipts = TextSecurePreferences.isReadReceiptsEnabled(context), sealedSenderIndicators = TextSecurePreferences.isShowUnidentifiedDeliveryIndicatorsEnabled(context), + allowSealedSenderFromAnyone = TextSecurePreferences.isUniversalUnidentifiedAccess(context), linkPreviews = signalStore.settingsValues.isLinkPreviewsEnabled, notDiscoverableByPhoneNumber = signalStore.phoneNumberPrivacyValues.phoneNumberDiscoverabilityMode == PhoneNumberDiscoverabilityMode.NOT_DISCOVERABLE, phoneNumberSharingMode = signalStore.phoneNumberPrivacyValues.phoneNumberSharingMode.toRemotePhoneNumberSharingMode(), @@ -249,6 +250,7 @@ object AccountDataArchiveProcessor { TextSecurePreferences.setReadReceiptsEnabled(context, settings.readReceipts) TextSecurePreferences.setTypingIndicatorsEnabled(context, settings.typingIndicators) TextSecurePreferences.setShowUnidentifiedDeliveryIndicatorsEnabled(context, settings.sealedSenderIndicators) + TextSecurePreferences.setIsUnidentifiedDeliveryEnabled(context, settings.allowSealedSenderFromAnyone) SignalStore.settings.isLinkPreviewsEnabled = settings.linkPreviews SignalStore.phoneNumberPrivacy.phoneNumberDiscoverabilityMode = if (settings.notDiscoverableByPhoneNumber) PhoneNumberDiscoverabilityMode.NOT_DISCOVERABLE else PhoneNumberDiscoverabilityMode.DISCOVERABLE SignalStore.phoneNumberPrivacy.phoneNumberSharingMode = settings.phoneNumberSharingMode.toLocalPhoneNumberMode() diff --git a/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java b/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java index eca301e652..4e298c23f3 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java +++ b/app/src/main/java/org/thoughtcrime/securesms/util/TextSecurePreferences.java @@ -511,6 +511,10 @@ public class TextSecurePreferences { return getBooleanPreference(context, UNIVERSAL_UNIDENTIFIED_ACCESS, false); } + public static void setIsUniversalUnidentifiedAccess(Context context, boolean enabled) { + setBooleanPreference(context, UNIVERSAL_UNIDENTIFIED_ACCESS, enabled); + } + public static void setShowUnidentifiedDeliveryIndicatorsEnabled(Context context, boolean enabled) { setBooleanPreference(context, SHOW_UNIDENTIFIED_DELIVERY_INDICATORS, enabled); } diff --git a/app/src/main/protowire/Backup.proto b/app/src/main/protowire/Backup.proto index 77ba043bad..15abe2f367 100644 --- a/app/src/main/protowire/Backup.proto +++ b/app/src/main/protowire/Backup.proto @@ -133,6 +133,7 @@ message AccountData { optional bool pinReminders = 27; // If unset, consider pin reminders to be enabled. AppTheme appTheme = 28; // If unset, treat the same as "Unknown" case CallsUseLessDataSetting callsUseLessDataSetting = 29; // If unset, treat the same as "Unknown" case + bool allowSealedSenderFromAnyone = 30; } message SubscriberData { @@ -1410,4 +1411,4 @@ message ChatFolder { repeated uint64 includedRecipientIds = 7; // generated recipient id of groups, contacts, and/or note to self repeated uint64 excludedRecipientIds = 8; // generated recipient id of groups, contacts, and/or note to self bytes id = 9; // should be 16 bytes -} +} \ No newline at end of file