mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-04-22 18:00:02 +01:00
Remove some badly-formatted e164's.
This commit is contained in:
@@ -2133,67 +2133,6 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da
|
||||
.readToSingleObject { PhoneNumberDiscoverableState.fromId(it.requireInt(PHONE_NUMBER_DISCOVERABLE)) }
|
||||
}
|
||||
|
||||
/**
|
||||
* @return True if setting the phone number resulted in changed recipientId, otherwise false.
|
||||
*/
|
||||
fun setPhoneNumber(id: RecipientId, e164: String): Boolean {
|
||||
val db = writableDatabase
|
||||
|
||||
db.beginTransaction()
|
||||
return try {
|
||||
setPhoneNumberOrThrow(id, e164)
|
||||
db.setTransactionSuccessful()
|
||||
false
|
||||
} catch (e: SQLiteConstraintException) {
|
||||
Log.w(TAG, "[setPhoneNumber] Hit a conflict when trying to update $id. Possibly merging.")
|
||||
|
||||
val existing: RecipientRecord = getRecord(id)
|
||||
val newId = getAndPossiblyMerge(existing.aci, e164)
|
||||
Log.w(TAG, "[setPhoneNumber] Resulting id: $newId")
|
||||
|
||||
db.setTransactionSuccessful()
|
||||
newId != existing.id
|
||||
} finally {
|
||||
db.endTransaction()
|
||||
}
|
||||
}
|
||||
|
||||
private fun removePhoneNumber(recipientId: RecipientId) {
|
||||
val values = ContentValues().apply {
|
||||
putNull(E164)
|
||||
putNull(PNI_COLUMN)
|
||||
}
|
||||
|
||||
if (update(recipientId, values)) {
|
||||
rotateStorageId(recipientId)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Should only use if you are confident that this will not result in any contact merging.
|
||||
*/
|
||||
@Throws(SQLiteConstraintException::class)
|
||||
fun setPhoneNumberOrThrow(id: RecipientId, e164: String) {
|
||||
val contentValues = ContentValues(1).apply {
|
||||
put(E164, e164)
|
||||
}
|
||||
if (update(id, contentValues)) {
|
||||
rotateStorageId(id)
|
||||
AppDependencies.databaseObserver.notifyRecipientChanged(id)
|
||||
StorageSyncHelper.scheduleSyncForDataChange()
|
||||
}
|
||||
}
|
||||
|
||||
@Throws(SQLiteConstraintException::class)
|
||||
fun setPhoneNumberOrThrowSilent(id: RecipientId, e164: String) {
|
||||
val contentValues = ContentValues(1).apply {
|
||||
put(E164, e164)
|
||||
}
|
||||
if (update(id, contentValues)) {
|
||||
rotateStorageId(id)
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Associates the provided IDs together. The assumption here is that all of the IDs correspond to the local user and have been verified.
|
||||
*/
|
||||
@@ -4051,6 +3990,13 @@ open class RecipientTable(context: Context, databaseHelper: SignalDatabase) : Da
|
||||
}
|
||||
}
|
||||
|
||||
/**
|
||||
* Exposes the merge functionality for the sake of an app migration.
|
||||
*/
|
||||
fun mergeForMigration(primaryId: RecipientId, secondaryId: RecipientId) {
|
||||
merge(primaryId, secondaryId, pniVerified = true)
|
||||
}
|
||||
|
||||
/**
|
||||
* Merges one ACI recipient with an E164 recipient. It is assumed that the E164 recipient does
|
||||
* *not* have an ACI.
|
||||
|
||||
Reference in New Issue
Block a user