mirror of
https://github.com/signalapp/Signal-Android.git
synced 2026-05-02 06:33:38 +01:00
Add getUsername default method to CredentialsProvider
This commit is contained in:
committed by
Greyson Parrelli
parent
ea081e981f
commit
3ea194255d
@@ -8,6 +8,7 @@ package org.whispersystems.signalservice.api.util;
|
|||||||
|
|
||||||
import org.whispersystems.signalservice.api.push.ServiceId.ACI;
|
import org.whispersystems.signalservice.api.push.ServiceId.ACI;
|
||||||
import org.whispersystems.signalservice.api.push.ServiceId.PNI;
|
import org.whispersystems.signalservice.api.push.ServiceId.PNI;
|
||||||
|
import org.whispersystems.signalservice.api.push.SignalServiceAddress;
|
||||||
|
|
||||||
public interface CredentialsProvider {
|
public interface CredentialsProvider {
|
||||||
ACI getAci();
|
ACI getAci();
|
||||||
@@ -15,4 +16,14 @@ public interface CredentialsProvider {
|
|||||||
String getE164();
|
String getE164();
|
||||||
int getDeviceId();
|
int getDeviceId();
|
||||||
String getPassword();
|
String getPassword();
|
||||||
|
|
||||||
|
default String getUsername() {
|
||||||
|
StringBuilder sb = new StringBuilder();
|
||||||
|
sb.append(getAci().toString());
|
||||||
|
if (getDeviceId() != SignalServiceAddress.DEFAULT_DEVICE_ID) {
|
||||||
|
sb.append(".");
|
||||||
|
sb.append(getDeviceId());
|
||||||
|
}
|
||||||
|
return sb.toString();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -133,11 +133,7 @@ public class WebSocketConnection extends WebSocketListener {
|
|||||||
String filledUri;
|
String filledUri;
|
||||||
|
|
||||||
if (credentialsProvider.isPresent()) {
|
if (credentialsProvider.isPresent()) {
|
||||||
String identifier = Objects.requireNonNull(credentialsProvider.get().getAci()).toString();
|
filledUri = String.format(wsUri, credentialsProvider.get().getUsername(), credentialsProvider.get().getPassword());
|
||||||
if (credentialsProvider.get().getDeviceId() != SignalServiceAddress.DEFAULT_DEVICE_ID) {
|
|
||||||
identifier += "." + credentialsProvider.get().getDeviceId();
|
|
||||||
}
|
|
||||||
filledUri = String.format(wsUri, identifier, credentialsProvider.get().getPassword());
|
|
||||||
} else {
|
} else {
|
||||||
filledUri = wsUri;
|
filledUri = wsUri;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,58 @@
|
|||||||
|
/*
|
||||||
|
* Copyright 2024 Signal Messenger, LLC
|
||||||
|
* SPDX-License-Identifier: AGPL-3.0-only
|
||||||
|
*/
|
||||||
|
package org.whispersystems.signalservice.api.util
|
||||||
|
|
||||||
|
import org.junit.Assert.assertEquals
|
||||||
|
import org.junit.Assert.assertThrows
|
||||||
|
import org.junit.Test
|
||||||
|
import org.whispersystems.signalservice.api.push.ServiceId
|
||||||
|
import org.whispersystems.signalservice.api.push.SignalServiceAddress
|
||||||
|
import java.util.UUID
|
||||||
|
|
||||||
|
class CredentialsProviderTest {
|
||||||
|
private fun makeProvider(aci: UUID?, deviceId: Int = SignalServiceAddress.DEFAULT_DEVICE_ID): CredentialsProvider {
|
||||||
|
return object : CredentialsProvider {
|
||||||
|
override fun getAci(): ServiceId.ACI? {
|
||||||
|
if (aci == null) {
|
||||||
|
return null
|
||||||
|
}
|
||||||
|
return ServiceId.ACI.from(aci)
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getPni(): ServiceId.PNI {
|
||||||
|
TODO("Not used")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getE164(): String {
|
||||||
|
TODO("Not used")
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getDeviceId(): Int {
|
||||||
|
return deviceId
|
||||||
|
}
|
||||||
|
|
||||||
|
override fun getPassword(): String {
|
||||||
|
TODO("Not used")
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun usernameWithDefaultDeviceId() {
|
||||||
|
val uuid = UUID.randomUUID()
|
||||||
|
assertEquals(uuid.toString(), makeProvider(uuid).username)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun usernameWithDeviceId() {
|
||||||
|
val uuid = UUID.randomUUID()
|
||||||
|
assertEquals("$uuid.42", makeProvider(uuid, 42).username)
|
||||||
|
}
|
||||||
|
|
||||||
|
@Test
|
||||||
|
fun usernameWithNullAci() {
|
||||||
|
assertThrows(NullPointerException::class.java) { makeProvider(aci = null).username }
|
||||||
|
}
|
||||||
|
}
|
||||||
Reference in New Issue
Block a user