mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-05-01 22:25:46 +01:00
Add ability to set custom username discriminators.
This commit is contained in:
@@ -787,6 +787,12 @@ public class SignalServiceAccountManager {
|
||||
this.pushServiceSocket.confirmUsername(username, reserveUsernameResponse);
|
||||
}
|
||||
|
||||
public UsernameLinkComponents updateUsernameLink(UsernameLink newUsernameLink) throws IOException {
|
||||
UUID serverId = this.pushServiceSocket.createUsernameLink(Base64.encodeUrlSafeWithoutPadding(newUsernameLink.getEncryptedUsername()), true);
|
||||
|
||||
return new UsernameLinkComponents(newUsernameLink.getEntropy(), serverId);
|
||||
}
|
||||
|
||||
public void deleteUsername() throws IOException {
|
||||
this.pushServiceSocket.deleteUsername();
|
||||
}
|
||||
@@ -794,7 +800,7 @@ public class SignalServiceAccountManager {
|
||||
public UsernameLinkComponents createUsernameLink(Username username) throws IOException {
|
||||
try {
|
||||
UsernameLink link = username.generateLink();
|
||||
UUID serverId = this.pushServiceSocket.createUsernameLink(Base64.encodeUrlSafeWithPadding(link.getEncryptedUsername()));
|
||||
UUID serverId = this.pushServiceSocket.createUsernameLink(Base64.encodeUrlSafeWithPadding(link.getEncryptedUsername()), false);
|
||||
|
||||
return new UsernameLinkComponents(link.getEntropy(), serverId);
|
||||
} catch (BaseUsernameException e) {
|
||||
|
||||
@@ -1147,8 +1147,8 @@ public class PushServiceSocket {
|
||||
* @param encryptedUsername URL-safe base64-encoded encrypted username
|
||||
* @return The serverId for the generated link.
|
||||
*/
|
||||
public UUID createUsernameLink(String encryptedUsername) throws IOException {
|
||||
String response = makeServiceRequest(USERNAME_LINK_PATH, "PUT", JsonUtil.toJson(new SetUsernameLinkRequestBody(encryptedUsername)));
|
||||
public UUID createUsernameLink(String encryptedUsername, boolean keepLinkHandle) throws IOException {
|
||||
String response = makeServiceRequest(USERNAME_LINK_PATH, "PUT", JsonUtil.toJson(new SetUsernameLinkRequestBody(encryptedUsername, keepLinkHandle)));
|
||||
SetUsernameLinkResponseBody parsed = JsonUtil.fromJson(response, SetUsernameLinkResponseBody.class);
|
||||
|
||||
return parsed.getUsernameLinkHandle();
|
||||
|
||||
@@ -3,4 +3,4 @@ package org.whispersystems.signalservice.internal.push
|
||||
import com.fasterxml.jackson.annotation.JsonProperty
|
||||
|
||||
/** Request body for setting a username link on the service. */
|
||||
data class SetUsernameLinkRequestBody(@JsonProperty val usernameLinkEncryptedValue: String)
|
||||
data class SetUsernameLinkRequestBody(@JsonProperty val usernameLinkEncryptedValue: String, @JsonProperty val keepLinkHandle: Boolean)
|
||||
|
||||
Reference in New Issue
Block a user