Clear all sender key knowledge for a device after a 409/410.

This commit is contained in:
Greyson Parrelli
2021-07-29 17:45:20 -04:00
parent 7c8549bf5e
commit d40bb2d9ee
6 changed files with 50 additions and 29 deletions

View File

@@ -118,7 +118,26 @@ public class SenderKeySharedDatabase extends Database {
}
/**
* Clear all shared statuses for a given recipientId.
* Clear the shared status for all distributionIds for a set of addresses.
*/
public void deleteAllFor(@NonNull Collection<SignalProtocolAddress> addresses) {
SQLiteDatabase db = databaseHelper.getWritableDatabase();
String query = ADDRESS + " = ? AND " + DEVICE + " = ?";
db.beginTransaction();
try {
for (SignalProtocolAddress address : addresses) {
db.delete(TABLE_NAME, query, SqlUtil.buildArgs(address.getName(), address.getDeviceId()));
}
db.setTransactionSuccessful();
} finally {
db.endTransaction();
}
}
/**
* Clear the shared status for all distributionIds for a given recipientId.
*/
public void deleteAllFor(@NonNull RecipientId recipientId) {
SQLiteDatabase db = databaseHelper.getWritableDatabase();