That fuck shit the fascists are using
1/*
2 * Copyright 2023 Signal Messenger, LLC
3 * SPDX-License-Identifier: AGPL-3.0-only
4 */
5
6package org.tm.archive.keyvalue
7
8import org.signal.core.util.logging.Log
9
10internal class ApkUpdateValues(store: KeyValueStore) : SignalStoreValues(store) {
11 companion object {
12 private val TAG = Log.tag(ApkUpdateValues::class.java)
13
14 private const val DOWNLOAD_ID = "apk_update.download_id"
15 private const val DIGEST = "apk_update.digest"
16 private const val AUTO_UPDATE = "apk_update.auto_update"
17 private const val LAST_SUCCESSFUL_CHECK = "apk_update.last_successful_check"
18 private const val LAST_APK_UPLOAD_TIME = "apk_update.last_apk_upload_time"
19 private const val PENDING_APK_UPLOAD_TIME = "apk_update.pending_apk_upload_time"
20 }
21
22 override fun onFirstEverAppLaunch() = Unit
23 override fun getKeysToIncludeInBackup(): List<String> = emptyList()
24
25 val downloadId: Long by longValue(DOWNLOAD_ID, -2)
26 val digest: ByteArray? get() = store.getBlob(DIGEST, null)
27 var autoUpdate: Boolean by booleanValue(AUTO_UPDATE, true)
28 var lastSuccessfulCheck: Long by longValue(LAST_SUCCESSFUL_CHECK, 0)
29
30 /** The upload of the last APK we installed */
31 var lastApkUploadTime: Long
32 get() = getLong(LAST_APK_UPLOAD_TIME, 0)
33 set(value) {
34 Log.d(TAG, "Setting lastApkUploadTime to $value")
35 store.beginWrite().putLong(LAST_APK_UPLOAD_TIME, value).commit()
36 }
37
38 /** The upload time of the APK we're trying to install */
39 val pendingApkUploadTime: Long by longValue(PENDING_APK_UPLOAD_TIME, 0)
40
41 fun setDownloadAttributes(id: Long, digest: ByteArray?, apkUploadTime: Long) {
42 Log.d(TAG, "Saving download attributes. id: $id, apkUploadTime: $apkUploadTime")
43
44 store
45 .beginWrite()
46 .putLong(DOWNLOAD_ID, id)
47 .putBlob(DIGEST, digest)
48 .putLong(PENDING_APK_UPLOAD_TIME, apkUploadTime)
49 .commit()
50 }
51
52 fun clearDownloadAttributes() {
53 Log.d(TAG, "Clearing download attributes.")
54
55 store
56 .beginWrite()
57 .putLong(DOWNLOAD_ID, -1)
58 .putBlob(DIGEST, null)
59 .putLong(PENDING_APK_UPLOAD_TIME, 0)
60 .commit()
61 }
62}