Convert the UsernameRepository to an object.
This commit is contained in:
parent
73de2dfda7
commit
3f32f816b0
4 changed files with 11 additions and 16 deletions
|
@ -57,7 +57,6 @@ class UsernameLinkSettingsViewModel : ViewModel() {
|
|||
|
||||
private val disposable: CompositeDisposable = CompositeDisposable()
|
||||
private val usernameLink: BehaviorSubject<Optional<UsernameLinkComponents>> = BehaviorSubject.createDefault(Optional.ofNullable(SignalStore.account().usernameLink))
|
||||
private val usernameRepo: UsernameRepository = UsernameRepository()
|
||||
|
||||
init {
|
||||
disposable += usernameLink
|
||||
|
@ -112,7 +111,7 @@ class UsernameLinkSettingsViewModel : ViewModel() {
|
|||
qrCodeState = QrCodeState.Loading
|
||||
)
|
||||
|
||||
disposable += usernameRepo.createOrResetUsernameLink()
|
||||
disposable += UsernameRepository.createOrResetUsernameLink()
|
||||
.observeOn(AndroidSchedulers.mainThread())
|
||||
.subscribe { result ->
|
||||
val components: Optional<UsernameLinkComponents> = when (result) {
|
||||
|
@ -153,7 +152,7 @@ class UsernameLinkSettingsViewModel : ViewModel() {
|
|||
indeterminateProgress = true
|
||||
)
|
||||
|
||||
disposable += usernameRepo.convertLinkToUsernameAndAci(url)
|
||||
disposable += UsernameRepository.convertLinkToUsernameAndAci(url)
|
||||
.map { result ->
|
||||
when (result) {
|
||||
is UsernameRepository.UsernameLinkConversionResult.Success -> QrScanResult.Success(Recipient.externalUsername(result.aci, result.username.toString()))
|
||||
|
|
|
@ -51,7 +51,6 @@ class EditProfileViewModel extends ViewModel {
|
|||
private final SingleLiveEvent<Event> events;
|
||||
private final RecipientForeverObserver observer;
|
||||
private final EditProfileRepository repository;
|
||||
private final UsernameRepository usernameEditRepository;
|
||||
private final MutableLiveData<Optional<Badge>> badge;
|
||||
|
||||
private byte[] previousAvatar;
|
||||
|
@ -64,7 +63,6 @@ class EditProfileViewModel extends ViewModel {
|
|||
this.aboutEmoji = new MutableLiveData<>();
|
||||
this.events = new SingleLiveEvent<>();
|
||||
this.repository = new EditProfileRepository();
|
||||
this.usernameEditRepository = new UsernameRepository();
|
||||
this.badge = new DefaultValueLiveData<>(Optional.empty());
|
||||
this.observer = this::onRecipientChanged;
|
||||
this.avatarState = LiveDataUtil.combineLatest(Recipient.self().live().getLiveData(), internalAvatarState, (self, state) -> new AvatarState(state, self));
|
||||
|
@ -106,7 +104,7 @@ class EditProfileViewModel extends ViewModel {
|
|||
}
|
||||
|
||||
public Single<UsernameRepository.UsernameDeleteResult> deleteUsername() {
|
||||
return usernameEditRepository.deleteUsername().observeOn(AndroidSchedulers.mainThread());
|
||||
return UsernameRepository.deleteUsername().observeOn(AndroidSchedulers.mainThread());
|
||||
}
|
||||
|
||||
public boolean shouldShowUsername() {
|
||||
|
|
|
@ -32,7 +32,6 @@ import java.util.concurrent.TimeUnit
|
|||
*/
|
||||
internal class UsernameEditViewModel private constructor(private val isInRegistration: Boolean) : ViewModel() {
|
||||
private val events: PublishSubject<Event> = PublishSubject.create()
|
||||
private val repo: UsernameRepository = UsernameRepository()
|
||||
private val nicknamePublisher: PublishProcessor<String> = PublishProcessor.create()
|
||||
private val disposables: CompositeDisposable = CompositeDisposable()
|
||||
|
||||
|
@ -114,7 +113,7 @@ internal class UsernameEditViewModel private constructor(private val isInRegistr
|
|||
|
||||
uiState.update { State(ButtonState.SUBMIT_LOADING, UsernameStatus.NONE, it.username) }
|
||||
|
||||
disposables += repo.confirmUsername(usernameState).subscribe { result: UsernameSetResult ->
|
||||
disposables += UsernameRepository.confirmUsername(usernameState).subscribe { result: UsernameSetResult ->
|
||||
val nickname = usernameState.getNickname()
|
||||
|
||||
when (result) {
|
||||
|
@ -147,7 +146,7 @@ internal class UsernameEditViewModel private constructor(private val isInRegistr
|
|||
fun onUsernameDeleted() {
|
||||
uiState.update { state: State -> State(ButtonState.DELETE_LOADING, UsernameStatus.NONE, state.username) }
|
||||
|
||||
disposables += repo.deleteUsername().subscribe { result: UsernameDeleteResult ->
|
||||
disposables += UsernameRepository.deleteUsername().subscribe { result: UsernameDeleteResult ->
|
||||
when (result) {
|
||||
UsernameDeleteResult.SUCCESS -> {
|
||||
uiState.update { state: State -> State(ButtonState.DELETE_DISABLED, UsernameStatus.NONE, state.username) }
|
||||
|
@ -190,7 +189,7 @@ internal class UsernameEditViewModel private constructor(private val isInRegistr
|
|||
|
||||
uiState.update { State(ButtonState.SUBMIT_DISABLED, UsernameStatus.NONE, UsernameState.Loading) }
|
||||
|
||||
disposables += repo.reserveUsername(nickname).subscribe { result: Result<UsernameState.Reserved, UsernameSetResult> ->
|
||||
disposables += UsernameRepository.reserveUsername(nickname).subscribe { result: Result<UsernameState.Reserved, UsernameSetResult> ->
|
||||
result.either(
|
||||
onSuccess = { reserved: UsernameState.Reserved ->
|
||||
uiState.update { State(ButtonState.SUBMIT, UsernameStatus.NONE, reserved) }
|
||||
|
|
|
@ -31,8 +31,10 @@ import java.io.IOException
|
|||
/**
|
||||
* Performs various actions around usernames and username links.
|
||||
*/
|
||||
class UsernameRepository {
|
||||
private val accountManager: SignalServiceAccountManager = ApplicationDependencies.getSignalServiceAccountManager()
|
||||
object UsernameRepository {
|
||||
private val TAG = Log.tag(UsernameRepository::class.java)
|
||||
|
||||
private val accountManager: SignalServiceAccountManager get() = ApplicationDependencies.getSignalServiceAccountManager()
|
||||
|
||||
/**
|
||||
* Given a nickname, this will temporarily reserve a matching discriminator that can later be confirmed via [confirmUsername].
|
||||
|
@ -55,6 +57,7 @@ class UsernameRepository {
|
|||
/**
|
||||
* Deletes the username from the local user's account
|
||||
*/
|
||||
@JvmStatic
|
||||
fun deleteUsername(): Single<UsernameDeleteResult> {
|
||||
return Single
|
||||
.fromCallable { deleteUsernameInternal() }
|
||||
|
@ -274,8 +277,4 @@ class UsernameRepository {
|
|||
/** No user exists for the given link. */
|
||||
data class NotFound(val username: Username?) : UsernameLinkConversionResult()
|
||||
}
|
||||
|
||||
companion object {
|
||||
private val TAG = Log.tag(UsernameRepository::class.java)
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue