mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-02-23 19:26:17 +00:00
Rotate profile key when contact hidden.
This commit is contained in:
@@ -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())
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -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) {
|
||||
|
||||
Reference in New Issue
Block a user