Convert RegistrationValues to kotlin.
This commit is contained in:
parent
445b7ef76f
commit
927871b0dc
9 changed files with 89 additions and 149 deletions
|
@ -836,7 +836,7 @@ class InternalSettingsFragment : DSLSettingsFragment(R.string.preferences__inter
|
|||
AdvancedPrivacySettingsRepository.DisablePushMessagesResult.SUCCESS -> {
|
||||
SignalStore.account.setRegistered(false)
|
||||
SignalStore.registration.clearRegistrationComplete()
|
||||
SignalStore.registration.clearHasUploadedProfile()
|
||||
SignalStore.registration.hasUploadedProfile = false
|
||||
SignalStore.registration.debugClearSkippedTransferOrRestore()
|
||||
Toast.makeText(context, "Unregistered!", Toast.LENGTH_SHORT).show()
|
||||
}
|
||||
|
|
|
@ -20,7 +20,7 @@ class NewDeviceTransferViewModel : ViewModel() {
|
|||
viewModelScope.launch {
|
||||
SignalStore.registration.localRegistrationMetadata?.let { metadata ->
|
||||
RegistrationRepository.registerAccountLocally(context, metadata)
|
||||
SignalStore.registration.clearLocalRegistrationMetadata()
|
||||
SignalStore.registration.localRegistrationMetadata = null
|
||||
RegistrationUtil.maybeMarkRegistrationComplete()
|
||||
}
|
||||
|
||||
|
|
|
@ -64,7 +64,7 @@ class AccountConsistencyWorkerJob private constructor(parameters: Parameters) :
|
|||
|
||||
SignalStore.account.setRegistered(false)
|
||||
SignalStore.registration.clearRegistrationComplete()
|
||||
SignalStore.registration.clearHasUploadedProfile()
|
||||
SignalStore.registration.hasUploadedProfile = false
|
||||
|
||||
SignalStore.misc.lastConsistencyCheckTime = System.currentTimeMillis()
|
||||
return
|
||||
|
@ -78,7 +78,7 @@ class AccountConsistencyWorkerJob private constructor(parameters: Parameters) :
|
|||
|
||||
SignalStore.account.setRegistered(false)
|
||||
SignalStore.registration.clearRegistrationComplete()
|
||||
SignalStore.registration.clearHasUploadedProfile()
|
||||
SignalStore.registration.hasUploadedProfile = false
|
||||
return
|
||||
}
|
||||
|
||||
|
|
|
@ -1,17 +0,0 @@
|
|||
/*
|
||||
* Copyright 2024 Signal Messenger, LLC
|
||||
* SPDX-License-Identifier: AGPL-3.0-only
|
||||
*/
|
||||
|
||||
package org.thoughtcrime.securesms.keyvalue
|
||||
|
||||
import org.signal.core.util.ByteSerializer
|
||||
import org.thoughtcrime.securesms.database.model.databaseprotos.LocalRegistrationMetadata
|
||||
|
||||
/**
|
||||
* Serialize [LocalRegistrationMetadata]
|
||||
*/
|
||||
object LocalRegistrationMetadataSerializer : ByteSerializer<LocalRegistrationMetadata> {
|
||||
override fun serialize(data: LocalRegistrationMetadata): ByteArray = data.encode()
|
||||
override fun deserialize(data: ByteArray): LocalRegistrationMetadata = LocalRegistrationMetadata.ADAPTER.decode(data)
|
||||
}
|
|
@ -1,124 +0,0 @@
|
|||
package org.thoughtcrime.securesms.keyvalue;
|
||||
|
||||
import androidx.annotation.CheckResult;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.annotation.Nullable;
|
||||
|
||||
import org.thoughtcrime.securesms.database.model.databaseprotos.LocalRegistrationMetadata;
|
||||
|
||||
import java.util.Collections;
|
||||
import java.util.List;
|
||||
|
||||
public final class RegistrationValues extends SignalStoreValues {
|
||||
|
||||
private static final String REGISTRATION_COMPLETE = "registration.complete";
|
||||
private static final String PIN_REQUIRED = "registration.pin_required";
|
||||
private static final String HAS_UPLOADED_PROFILE = "registration.has_uploaded_profile";
|
||||
private static final String SESSION_E164 = "registration.session_e164";
|
||||
private static final String SESSION_ID = "registration.session_id";
|
||||
private static final String SKIPPED_TRANSFER_OR_RESTORE = "registration.has_skipped_transfer_or_restore";
|
||||
private static final String LOCAL_REGISTRATION_DATA = "registration.local_registration_data";
|
||||
private static final String RESTORE_COMPLETED = "registration.backup_restore_completed";
|
||||
|
||||
RegistrationValues(@NonNull KeyValueStore store) {
|
||||
super(store);
|
||||
}
|
||||
|
||||
public synchronized void onFirstEverAppLaunch() {
|
||||
getStore().beginWrite()
|
||||
.putBoolean(HAS_UPLOADED_PROFILE, false)
|
||||
.putBoolean(REGISTRATION_COMPLETE, false)
|
||||
.putBoolean(PIN_REQUIRED, true)
|
||||
.putBoolean(SKIPPED_TRANSFER_OR_RESTORE, false)
|
||||
.commit();
|
||||
}
|
||||
|
||||
@Override
|
||||
@NonNull List<String> getKeysToIncludeInBackup() {
|
||||
return Collections.emptyList();
|
||||
}
|
||||
|
||||
public synchronized void clearRegistrationComplete() {
|
||||
onFirstEverAppLaunch();
|
||||
}
|
||||
|
||||
public synchronized void setRegistrationComplete() {
|
||||
getStore().beginWrite()
|
||||
.putBoolean(REGISTRATION_COMPLETE, true)
|
||||
.commit();
|
||||
}
|
||||
|
||||
@CheckResult
|
||||
public synchronized boolean pinWasRequiredAtRegistration() {
|
||||
return getStore().getBoolean(PIN_REQUIRED, false);
|
||||
}
|
||||
|
||||
@CheckResult
|
||||
public synchronized boolean isRegistrationComplete() {
|
||||
return getStore().getBoolean(REGISTRATION_COMPLETE, true);
|
||||
}
|
||||
|
||||
|
||||
public void setLocalRegistrationMetadata(LocalRegistrationMetadata data) {
|
||||
putObject(LOCAL_REGISTRATION_DATA, data, LocalRegistrationMetadataSerializer.INSTANCE);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public LocalRegistrationMetadata getLocalRegistrationMetadata() {
|
||||
return getObject(LOCAL_REGISTRATION_DATA, null, LocalRegistrationMetadataSerializer.INSTANCE);
|
||||
}
|
||||
|
||||
public void clearLocalRegistrationMetadata() {
|
||||
remove(LOCAL_REGISTRATION_DATA);
|
||||
}
|
||||
|
||||
public boolean hasUploadedProfile() {
|
||||
return getBoolean(HAS_UPLOADED_PROFILE, true);
|
||||
}
|
||||
|
||||
public void markHasUploadedProfile() {
|
||||
putBoolean(HAS_UPLOADED_PROFILE, true);
|
||||
}
|
||||
|
||||
public void clearHasUploadedProfile() {
|
||||
putBoolean(HAS_UPLOADED_PROFILE, false);
|
||||
}
|
||||
|
||||
public void setSessionId(String sessionId) {
|
||||
putString(SESSION_ID, sessionId);
|
||||
}
|
||||
|
||||
public boolean hasSkippedTransferOrRestore() {
|
||||
return getBoolean(SKIPPED_TRANSFER_OR_RESTORE, false);
|
||||
}
|
||||
|
||||
public void markSkippedTransferOrRestore() {
|
||||
putBoolean(SKIPPED_TRANSFER_OR_RESTORE, true);
|
||||
}
|
||||
|
||||
public void debugClearSkippedTransferOrRestore() {
|
||||
putBoolean(SKIPPED_TRANSFER_OR_RESTORE, false);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getSessionId() {
|
||||
return getString(SESSION_ID, null);
|
||||
}
|
||||
|
||||
public void setSessionE164(String sessionE164) {
|
||||
putString(SESSION_E164, sessionE164);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public String getSessionE164() {
|
||||
return getString(SESSION_E164, null);
|
||||
}
|
||||
|
||||
public boolean hasCompletedRestore() {
|
||||
return getBoolean(RESTORE_COMPLETED, false);
|
||||
}
|
||||
|
||||
public void markRestoreCompleted() {
|
||||
putBoolean(RESTORE_COMPLETED, true);
|
||||
}
|
||||
}
|
|
@ -0,0 +1,81 @@
|
|||
package org.thoughtcrime.securesms.keyvalue
|
||||
|
||||
import androidx.annotation.CheckResult
|
||||
import org.thoughtcrime.securesms.database.model.databaseprotos.LocalRegistrationMetadata
|
||||
|
||||
class RegistrationValues internal constructor(store: KeyValueStore) : SignalStoreValues(store) {
|
||||
|
||||
companion object {
|
||||
private const val REGISTRATION_COMPLETE = "registration.complete"
|
||||
private const val PIN_REQUIRED = "registration.pin_required"
|
||||
private const val HAS_UPLOADED_PROFILE = "registration.has_uploaded_profile"
|
||||
private const val SESSION_E164 = "registration.session_e164"
|
||||
private const val SESSION_ID = "registration.session_id"
|
||||
private const val SKIPPED_TRANSFER_OR_RESTORE = "registration.has_skipped_transfer_or_restore"
|
||||
private const val LOCAL_REGISTRATION_DATA = "registration.local_registration_data"
|
||||
private const val RESTORE_COMPLETED = "registration.backup_restore_completed"
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
public override fun onFirstEverAppLaunch() {
|
||||
store
|
||||
.beginWrite()
|
||||
.putBoolean(HAS_UPLOADED_PROFILE, false)
|
||||
.putBoolean(REGISTRATION_COMPLETE, false)
|
||||
.putBoolean(PIN_REQUIRED, true)
|
||||
.putBoolean(SKIPPED_TRANSFER_OR_RESTORE, false)
|
||||
.commit()
|
||||
}
|
||||
|
||||
public override fun getKeysToIncludeInBackup(): List<String> = emptyList()
|
||||
|
||||
@Synchronized
|
||||
fun clearRegistrationComplete() {
|
||||
onFirstEverAppLaunch()
|
||||
}
|
||||
|
||||
@Synchronized
|
||||
fun markRegistrationComplete() {
|
||||
store
|
||||
.beginWrite()
|
||||
.putBoolean(REGISTRATION_COMPLETE, true)
|
||||
.commit()
|
||||
}
|
||||
|
||||
@CheckResult
|
||||
@Synchronized
|
||||
fun pinWasRequiredAtRegistration(): Boolean {
|
||||
return store.getBoolean(PIN_REQUIRED, false)
|
||||
}
|
||||
|
||||
@get:Synchronized
|
||||
@get:CheckResult
|
||||
val isRegistrationComplete: Boolean by booleanValue(REGISTRATION_COMPLETE, true)
|
||||
|
||||
var localRegistrationMetadata: LocalRegistrationMetadata? by protoValue(LOCAL_REGISTRATION_DATA, LocalRegistrationMetadata.ADAPTER)
|
||||
|
||||
@get:JvmName("hasUploadedProfile")
|
||||
var hasUploadedProfile: Boolean by booleanValue(HAS_UPLOADED_PROFILE, true)
|
||||
var sessionId: String? by stringValue(SESSION_ID, null)
|
||||
var sessionE164: String? by stringValue(SESSION_E164, null)
|
||||
|
||||
fun hasSkippedTransferOrRestore(): Boolean {
|
||||
return getBoolean(SKIPPED_TRANSFER_OR_RESTORE, false)
|
||||
}
|
||||
|
||||
fun markSkippedTransferOrRestore() {
|
||||
putBoolean(SKIPPED_TRANSFER_OR_RESTORE, true)
|
||||
}
|
||||
|
||||
fun debugClearSkippedTransferOrRestore() {
|
||||
putBoolean(SKIPPED_TRANSFER_OR_RESTORE, false)
|
||||
}
|
||||
|
||||
fun hasCompletedRestore(): Boolean {
|
||||
return getBoolean(RESTORE_COMPLETED, false)
|
||||
}
|
||||
|
||||
fun markRestoreCompleted() {
|
||||
putBoolean(RESTORE_COMPLETED, true)
|
||||
}
|
||||
}
|
|
@ -34,8 +34,8 @@ public final class RegistrationUtil {
|
|||
(RemoteConfig.restoreAfterRegistration() && (SignalStore.registration().hasSkippedTransferOrRestore() || SignalStore.registration().hasCompletedRestore())))
|
||||
{
|
||||
Log.i(TAG, "Marking registration completed.", new Throwable());
|
||||
SignalStore.registration().setRegistrationComplete();
|
||||
SignalStore.registration().clearLocalRegistrationMetadata();
|
||||
SignalStore.registration().markRegistrationComplete();
|
||||
SignalStore.registration().setLocalRegistrationMetadata(null);
|
||||
|
||||
if (SignalStore.phoneNumberPrivacy().getPhoneNumberDiscoverabilityMode() == PhoneNumberDiscoverabilityMode.UNDECIDED) {
|
||||
Log.w(TAG, "Phone number discoverability mode is still UNDECIDED. Setting to DISCOVERABLE.");
|
||||
|
|
|
@ -90,7 +90,7 @@ class RestoreLocalBackupViewModel(fileBackupUri: Uri) : ViewModel() {
|
|||
if (importResult == RestoreRepository.BackupImportResult.SUCCESS) {
|
||||
SignalStore.registration.localRegistrationMetadata?.let {
|
||||
RegistrationRepository.registerAccountLocally(context, it)
|
||||
SignalStore.registration.clearLocalRegistrationMetadata()
|
||||
SignalStore.registration.localRegistrationMetadata = null
|
||||
RegistrationUtil.maybeMarkRegistrationComplete()
|
||||
}
|
||||
|
||||
|
|
|
@ -376,7 +376,7 @@ public final class ProfileUtil {
|
|||
avatar,
|
||||
badgeIds,
|
||||
SignalStore.phoneNumberPrivacy().isPhoneNumberSharingEnabled()).orElse(null);
|
||||
SignalStore.registration().markHasUploadedProfile();
|
||||
SignalStore.registration().setHasUploadedProfile(true);
|
||||
if (!avatar.keepTheSame) {
|
||||
SignalDatabase.recipients().setProfileAvatar(Recipient.self().getId(), avatarPath);
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue