Remove unused 'registration' variant of username screen.

This commit is contained in:
Greyson Parrelli
2024-02-13 14:13:22 -05:00
committed by Cody Henthorne
parent 57ac7cb328
commit f484fdbbac
8 changed files with 35 additions and 175 deletions

View File

@@ -2,7 +2,6 @@ package org.thoughtcrime.securesms.profiles.manage;
import android.animation.LayoutTransition;
import android.app.Activity;
import android.content.Intent;
import android.content.res.ColorStateList;
import android.os.Bundle;
import android.view.LayoutInflater;
@@ -15,7 +14,6 @@ import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.core.content.ContextCompat;
import androidx.fragment.app.FragmentActivity;
import androidx.fragment.app.FragmentManager;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
@@ -27,11 +25,9 @@ import com.google.android.material.textfield.TextInputLayout;
import org.signal.core.util.EditTextUtil;
import org.signal.core.util.concurrent.LifecycleDisposable;
import org.thoughtcrime.securesms.LoggingFragment;
import org.thoughtcrime.securesms.PassphraseRequiredActivity;
import org.thoughtcrime.securesms.R;
import org.thoughtcrime.securesms.contactshare.SimpleTextWatcher;
import org.thoughtcrime.securesms.databinding.UsernameEditFragmentBinding;
import org.thoughtcrime.securesms.keyvalue.SignalStore;
import org.thoughtcrime.securesms.util.FragmentResultContract;
import org.thoughtcrime.securesms.util.UsernameUtil;
import org.thoughtcrime.securesms.util.ViewUtil;
@@ -42,8 +38,7 @@ public class UsernameEditFragment extends LoggingFragment {
private static final float DISABLED_ALPHA = 0.5f;
public static final String IGNORE_TEXT_CHANGE_EVENT = "ignore.text.change.event";
public static final int REQUEST_CODE = 4242;
public static final String EXTRA_USERNAME = "username";
public static final int REQUEST_CODE = 4242;
private UsernameEditViewModel viewModel;
private UsernameEditFragmentBinding binding;
@@ -80,21 +75,14 @@ public class UsernameEditFragment extends LoggingFragment {
args = new UsernameEditFragmentArgs.Builder().build();
}
if (args.getMode() == UsernameEditMode.REGISTRATION) {
binding.toolbar.setNavigationIcon(null);
binding.toolbar.setTitle(R.string.UsernameEditFragment__add_a_username);
binding.usernameSkipButton.setVisibility(View.VISIBLE);
binding.usernameDoneButton.setVisibility(View.VISIBLE);
} else {
binding.toolbar.setNavigationOnClickListener(v -> {
if (args.getMode() == UsernameEditMode.RECOVERY) {
getActivity().finish();
} else {
Navigation.findNavController(view).popBackStack();
}
});
binding.usernameSubmitButton.setVisibility(View.VISIBLE);
}
binding.toolbar.setNavigationOnClickListener(v -> {
if (args.getMode() == UsernameEditMode.RECOVERY) {
getActivity().finish();
} else {
Navigation.findNavController(view).popBackStack();
}
});
binding.usernameSubmitButton.setVisibility(View.VISIBLE);
binding.usernameTextWrapper.setErrorIconDrawable(null);
@@ -211,47 +199,6 @@ public class UsernameEditFragment extends LoggingFragment {
}
private void presentButtonState(@NonNull UsernameEditViewModel.ButtonState buttonState) {
if (args.getMode() == UsernameEditMode.REGISTRATION) {
presentRegistrationButtonState(buttonState);
} else {
presentProfileUpdateButtonState(buttonState);
}
}
private void presentSummary(@NonNull UsernameState usernameState) {
if (usernameState.getUsername() != null) {
binding.summary.setText(usernameState.getUsername().getUsername());
binding.summary.setAlpha(1f);
} else if (!(usernameState instanceof UsernameState.Loading)) {
binding.summary.setText(R.string.UsernameEditFragment__choose_your_username);
binding.summary.setAlpha(1f);
}
}
private void presentRegistrationButtonState(@NonNull UsernameEditViewModel.ButtonState buttonState) {
binding.usernameText.setEnabled(true);
binding.usernameProgressCard.setVisibility(View.GONE);
switch (buttonState) {
case SUBMIT:
binding.usernameDoneButton.setEnabled(true);
binding.usernameDoneButton.setAlpha(1f);
break;
case SUBMIT_DISABLED:
binding.usernameDoneButton.setEnabled(false);
binding.usernameDoneButton.setAlpha(DISABLED_ALPHA);
break;
case SUBMIT_LOADING:
binding.usernameDoneButton.setEnabled(false);
binding.usernameDoneButton.setAlpha(DISABLED_ALPHA);
binding.usernameProgressCard.setVisibility(View.VISIBLE);
break;
default:
throw new IllegalStateException("Delete functionality is not available during registration.");
}
}
private void presentProfileUpdateButtonState(@NonNull UsernameEditViewModel.ButtonState buttonState) {
CircularProgressMaterialButton submitButton = binding.usernameSubmitButton;
CircularProgressMaterialButton deleteButton = binding.usernameDeleteButton;
EditText usernameInput = binding.usernameText;
@@ -303,6 +250,16 @@ public class UsernameEditFragment extends LoggingFragment {
}
}
private void presentSummary(@NonNull UsernameState usernameState) {
if (usernameState.getUsername() != null) {
binding.summary.setText(usernameState.getUsername().getUsername());
binding.summary.setAlpha(1f);
} else if (!(usernameState instanceof UsernameState.Loading)) {
binding.summary.setText(R.string.UsernameEditFragment__choose_your_username);
binding.summary.setAlpha(1f);
}
}
private void presentUsernameInputState(@NonNull UsernameEditStateMachine.State state) {
binding.usernameText.setTag(IGNORE_TEXT_CHANGE_EVENT);
String nickname = state.getNickname();
@@ -366,34 +323,13 @@ public class UsernameEditFragment extends LoggingFragment {
}
private void closeScreen() {
if (args.getMode() == UsernameEditMode.REGISTRATION) {
finishAndStartNextIntent();
} else if (args.getMode() == UsernameEditMode.RECOVERY) {
if (args.getMode() == UsernameEditMode.RECOVERY) {
getActivity().finish();
} else {
NavHostFragment.findNavController(this).popBackStack();
}
}
private void finishAndStartNextIntent() {
FragmentActivity activity = requireActivity();
boolean didLaunch = false;
Intent activityIntent = activity.getIntent();
if (activityIntent != null) {
Intent nextIntent = activityIntent.getParcelableExtra(PassphraseRequiredActivity.NEXT_INTENT_EXTRA);
if (nextIntent != null) {
activity.startActivity(nextIntent);
activity.finish();
didLaunch = true;
}
}
if (!didLaunch) {
activity.finish();
}
}
static class ResultContract extends FragmentResultContract<Boolean> {
private static final String REQUEST_KEY = "username_created";

View File

@@ -9,11 +9,6 @@ enum class UsernameEditMode {
/** A typical launch, no special conditions. */
NORMAL,
/** Screen is launched during registration, includes special first-time flows. */
REGISTRATION,
/** Screen was launched because the username was in a bad state and needs to be recovered. Shows a special dialog. */
RECOVERY;
val allowsDelete get() = this == NORMAL || this == RECOVERY
RECOVERY
}

View File

@@ -84,7 +84,7 @@ internal class UsernameEditViewModel private constructor(private val mode: Usern
uiState.update { state: State ->
if (nickname.isBlank() && SignalStore.account().username != null) {
return@update State(
buttonState = if (mode.allowsDelete) ButtonState.DELETE else ButtonState.SUBMIT_DISABLED,
buttonState = ButtonState.DELETE,
usernameStatus = UsernameStatus.NONE,
usernameState = UsernameState.NoUsername
)
@@ -106,7 +106,7 @@ internal class UsernameEditViewModel private constructor(private val mode: Usern
uiState.update { state: State ->
if (discriminator.isBlank() && SignalStore.account().username != null) {
return@update State(
buttonState = if (mode.allowsDelete) ButtonState.DELETE else ButtonState.SUBMIT_DISABLED,
buttonState = ButtonState.DELETE,
usernameStatus = UsernameStatus.NONE,
usernameState = UsernameState.NoUsername
)

View File

@@ -1,38 +0,0 @@
package org.thoughtcrime.securesms.profiles.username
import android.os.Bundle
import androidx.navigation.fragment.NavHostFragment
import org.thoughtcrime.securesms.BaseActivity
import org.thoughtcrime.securesms.R
import org.thoughtcrime.securesms.profiles.manage.UsernameEditFragmentArgs
import org.thoughtcrime.securesms.profiles.manage.UsernameEditMode
import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme
import org.thoughtcrime.securesms.util.DynamicTheme
class AddAUsernameActivity : BaseActivity() {
private val dynamicTheme: DynamicTheme = DynamicNoActionBarTheme()
private val contentViewId: Int = R.layout.fragment_container
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(contentViewId)
dynamicTheme.onCreate(this)
if (savedInstanceState == null) {
supportFragmentManager.beginTransaction()
.replace(
R.id.fragment_container,
NavHostFragment.create(
R.navigation.create_username,
UsernameEditFragmentArgs.Builder().setMode(UsernameEditMode.REGISTRATION).build().toBundle()
)
)
.commit()
}
}
override fun onResume() {
super.onResume()
dynamicTheme.onResume(this)
}
}