diff --git a/app/src/androidTest/assets/backupTests/recipient_contacts_00.binproto b/app/src/androidTest/assets/backupTests/recipient_contacts_00.binproto index 861f5b165c..342f392f52 100644 Binary files a/app/src/androidTest/assets/backupTests/recipient_contacts_00.binproto and b/app/src/androidTest/assets/backupTests/recipient_contacts_00.binproto differ diff --git a/app/src/androidTest/assets/backupTests/recipient_contacts_01.binproto b/app/src/androidTest/assets/backupTests/recipient_contacts_01.binproto index efa08a6211..a9296aa3cc 100644 Binary files a/app/src/androidTest/assets/backupTests/recipient_contacts_01.binproto and b/app/src/androidTest/assets/backupTests/recipient_contacts_01.binproto differ diff --git a/app/src/androidTest/assets/backupTests/recipient_contacts_02.binproto b/app/src/androidTest/assets/backupTests/recipient_contacts_02.binproto index 61ff259af2..7c7acc84d6 100644 Binary files a/app/src/androidTest/assets/backupTests/recipient_contacts_02.binproto and b/app/src/androidTest/assets/backupTests/recipient_contacts_02.binproto differ diff --git a/app/src/androidTest/assets/backupTests/recipient_contacts_03.binproto b/app/src/androidTest/assets/backupTests/recipient_contacts_03.binproto index 1ea3f09cb0..a4cec77662 100644 Binary files a/app/src/androidTest/assets/backupTests/recipient_contacts_03.binproto and b/app/src/androidTest/assets/backupTests/recipient_contacts_03.binproto differ diff --git a/app/src/androidTest/assets/backupTests/recipient_contacts_04.binproto b/app/src/androidTest/assets/backupTests/recipient_contacts_04.binproto index 233f69b785..724a68cf22 100644 Binary files a/app/src/androidTest/assets/backupTests/recipient_contacts_04.binproto and b/app/src/androidTest/assets/backupTests/recipient_contacts_04.binproto differ diff --git a/app/src/androidTest/assets/backupTests/recipient_contacts_05.binproto b/app/src/androidTest/assets/backupTests/recipient_contacts_05.binproto new file mode 100644 index 0000000000..2bbbc298d9 Binary files /dev/null and b/app/src/androidTest/assets/backupTests/recipient_contacts_05.binproto differ diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/RecipientTableArchiveExtensions.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/RecipientTableArchiveExtensions.kt index 005542660a..d76d7eed78 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/RecipientTableArchiveExtensions.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/database/RecipientTableArchiveExtensions.kt @@ -46,6 +46,9 @@ fun RecipientTable.getContactsForBackup(selfId: Long): ContactArchiveExporter { "${RecipientTable.TABLE_NAME}.${RecipientTable.PROFILE_GIVEN_NAME}", "${RecipientTable.TABLE_NAME}.${RecipientTable.PROFILE_FAMILY_NAME}", "${RecipientTable.TABLE_NAME}.${RecipientTable.PROFILE_JOINED_NAME}", + "${RecipientTable.TABLE_NAME}.${RecipientTable.SYSTEM_GIVEN_NAME}", + "${RecipientTable.TABLE_NAME}.${RecipientTable.SYSTEM_FAMILY_NAME}", + "${RecipientTable.TABLE_NAME}.${RecipientTable.SYSTEM_NICKNAME}", "${RecipientTable.TABLE_NAME}.${RecipientTable.NICKNAME_GIVEN_NAME}", "${RecipientTable.TABLE_NAME}.${RecipientTable.NICKNAME_FAMILY_NAME}", "${RecipientTable.TABLE_NAME}.${RecipientTable.NOTE}", diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ContactArchiveExporter.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ContactArchiveExporter.kt index 4337920105..1adebe3c34 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ContactArchiveExporter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/exporters/ContactArchiveExporter.kt @@ -78,6 +78,9 @@ class ContactArchiveExporter(private val cursor: Cursor, private val selfId: Lon .identityState(cursor.optionalInt(IdentityTable.VERIFIED).map { IdentityTable.VerifiedStatus.forState(it) }.orElse(IdentityTable.VerifiedStatus.DEFAULT).toRemote()) .note(cursor.requireString(RecipientTable.NOTE) ?: "") .nickname(cursor.readNickname()) + .systemGivenName(cursor.requireString(RecipientTable.SYSTEM_GIVEN_NAME) ?: "") + .systemFamilyName(cursor.requireString(RecipientTable.SYSTEM_FAMILY_NAME) ?: "") + .systemNickname(cursor.requireString(RecipientTable.SYSTEM_NICKNAME) ?: "") val registeredState = RecipientTable.RegisteredState.fromId(cursor.requireInt(RecipientTable.REGISTERED)) if (registeredState == RecipientTable.RegisteredState.REGISTERED) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/importer/ContactArchiveImporter.kt b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/importer/ContactArchiveImporter.kt index cac6c8cb27..74ec7920ce 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/backup/v2/importer/ContactArchiveImporter.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/backup/v2/importer/ContactArchiveImporter.kt @@ -52,7 +52,10 @@ object ContactArchiveImporter { RecipientTable.EXTRAS to contact.toLocalExtras().encode(), RecipientTable.NOTE to contact.note, RecipientTable.NICKNAME_GIVEN_NAME to contact.nickname?.given, - RecipientTable.NICKNAME_FAMILY_NAME to contact.nickname?.family + RecipientTable.NICKNAME_FAMILY_NAME to contact.nickname?.family, + RecipientTable.SYSTEM_GIVEN_NAME to contact.systemGivenName, + RecipientTable.SYSTEM_FAMILY_NAME to contact.systemFamilyName, + RecipientTable.SYSTEM_NICKNAME to contact.systemNickname ) if (contact.registered != null) { diff --git a/app/src/main/protowire/Backup.proto b/app/src/main/protowire/Backup.proto index ca7ecb5410..d069b70aa1 100644 --- a/app/src/main/protowire/Backup.proto +++ b/app/src/main/protowire/Backup.proto @@ -177,6 +177,9 @@ message Contact { IdentityState identityState = 15; Name nickname = 16; // absent iff both `given` and `family` are empty string note = 17; + string systemGivenName = 18; + string systemFamilyName = 19; + string systemNickname = 20; } message Group {