Implement session-based account registration API.

This commit is contained in:
Nicholas
2023-02-21 16:04:23 -05:00
committed by Greyson Parrelli
parent 3de17fa2d0
commit a47e3900c1
40 changed files with 1215 additions and 418 deletions

View File

@@ -149,6 +149,15 @@ public final class KbsValues extends SignalStoreValues {
}
}
public synchronized @Nullable String getRegistrationRecoveryPassword() {
MasterKey masterKey = getPinBackedMasterKey();
if (masterKey == null) {
return null;
} else {
return masterKey.deriveRegistrationRecoveryPassword();
}
}
public synchronized @Nullable String getPin() {
return getString(PIN, null);
}

View File

@@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.keyvalue;
import androidx.annotation.CheckResult;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import java.util.Collections;
import java.util.List;
@@ -11,6 +12,8 @@ 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";
RegistrationValues(@NonNull KeyValueStore store) {
super(store);
@@ -60,4 +63,22 @@ public final class RegistrationValues extends SignalStoreValues {
public void clearHasUploadedProfile() {
putBoolean(HAS_UPLOADED_PROFILE, false);
}
public void setSessionId(String sessionId) {
putString(SESSION_ID, sessionId);
}
@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);
}
}