Rotate profile key when contact hidden.

This commit is contained in:
Clark
2023-05-22 12:34:19 -04:00
committed by Nicholas Tinsley
parent 836cd04564
commit 97d95f37cc
2 changed files with 20 additions and 6 deletions

View File

@@ -5,6 +5,8 @@ import androidx.annotation.CheckResult
import io.reactivex.rxjava3.core.Completable
import io.reactivex.rxjava3.schedulers.Schedulers
import org.thoughtcrime.securesms.database.SignalDatabase
import org.thoughtcrime.securesms.dependencies.ApplicationDependencies
import org.thoughtcrime.securesms.jobs.RotateProfileKeyJob
import org.thoughtcrime.securesms.recipients.Recipient
import org.thoughtcrime.securesms.recipients.RecipientUtil
@@ -31,7 +33,11 @@ class ContactsManagementRepository(context: Context) {
error("Cannot hide groups, self, or distribution lists.")
}
SignalDatabase.recipients.markHidden(recipient.id)
val rotateProfileKey = !recipient.hasGroupsInCommon()
SignalDatabase.recipients.markHidden(recipient.id, rotateProfileKey)
if (rotateProfileKey) {
ApplicationDependencies.getJobManager().add(RotateProfileKeyJob())
}
}
}
}

View File

@@ -1806,11 +1806,19 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da
}
}
fun markHidden(id: RecipientId) {
val contentValues = contentValuesOf(
HIDDEN to 1,
PROFILE_SHARING to 0
)
fun markHidden(id: RecipientId, clearProfileKey: Boolean = false) {
val contentValues = if (clearProfileKey) {
contentValuesOf(
HIDDEN to 1,
PROFILE_SHARING to 0,
PROFILE_KEY to null
)
} else {
contentValuesOf(
HIDDEN to 1,
PROFILE_SHARING to 0
)
}
val updated = writableDatabase.update(TABLE_NAME, contentValues, "$ID_WHERE AND $GROUP_TYPE = ?", SqlUtil.buildArgs(id, GroupType.NONE.id)) > 0
if (updated) {