That fuck shit the fascists are using
1package org.tm.archive.migrations
2
3import org.signal.core.util.logging.Log
4import org.tm.archive.database.IdentityTable
5import org.tm.archive.dependencies.ApplicationDependencies
6import org.tm.archive.jobmanager.Job
7import org.tm.archive.jobs.AccountConsistencyWorkerJob
8import org.tm.archive.keyvalue.SignalStore
9import org.tm.archive.recipients.Recipient
10
11/**
12 * Migration to help cleanup some inconsistent state for ourself in the identity table.
13 */
14internal class IdentityTableCleanupMigrationJob(
15 parameters: Parameters = Parameters.Builder().build()
16) : MigrationJob(parameters) {
17
18 companion object {
19 const val KEY = "IdentityTableCleanupMigrationJob"
20
21 val TAG = Log.tag(IdentityTableCleanupMigrationJob::class.java)
22 }
23
24 override fun getFactoryKey(): String = KEY
25
26 override fun isUiBlocking(): Boolean = false
27
28 override fun performMigration() {
29 if (SignalStore.account().aci == null || SignalStore.account().pni == null) {
30 Log.i(TAG, "ACI/PNI are unset, skipping.")
31 return
32 }
33
34 if (!SignalStore.account().hasAciIdentityKey()) {
35 Log.i(TAG, "No ACI identity set yet, skipping.")
36 return
37 }
38
39 if (!SignalStore.account().hasPniIdentityKey()) {
40 Log.i(TAG, "No PNI identity set yet, skipping.")
41 return
42 }
43
44 ApplicationDependencies.getProtocolStore().aci().identities().saveIdentityWithoutSideEffects(
45 Recipient.self().id,
46 SignalStore.account().aci!!,
47 SignalStore.account().aciIdentityKey.publicKey,
48 IdentityTable.VerifiedStatus.VERIFIED,
49 true,
50 System.currentTimeMillis(),
51 true
52 )
53
54 ApplicationDependencies.getProtocolStore().pni().identities().saveIdentityWithoutSideEffects(
55 Recipient.self().id,
56 SignalStore.account().pni!!,
57 SignalStore.account().pniIdentityKey.publicKey,
58 IdentityTable.VerifiedStatus.VERIFIED,
59 true,
60 System.currentTimeMillis(),
61 true
62 )
63
64 ApplicationDependencies.getJobManager().add(AccountConsistencyWorkerJob())
65 }
66
67 override fun shouldRetry(e: Exception): Boolean = false
68
69 class Factory : Job.Factory<IdentityTableCleanupMigrationJob> {
70 override fun create(parameters: Parameters, serializedData: ByteArray?): IdentityTableCleanupMigrationJob {
71 return IdentityTableCleanupMigrationJob(parameters)
72 }
73 }
74}