diff --git a/app/src/androidTest/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditFragmentTest.kt b/app/src/androidTest/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditFragmentTest.kt
index 1bf3ab3c8f..5436b8396b 100644
--- a/app/src/androidTest/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditFragmentTest.kt
+++ b/app/src/androidTest/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditFragmentTest.kt
@@ -57,23 +57,6 @@ class UsernameEditFragmentTest {
InstrumentationApplicationDependencyProvider.clearHandlers()
}
- @Test
- fun testUsernameCreationInRegistration() {
- val scenario = createScenario(UsernameEditMode.REGISTRATION)
-
- scenario.moveToState(Lifecycle.State.RESUMED)
-
- onView(withId(R.id.toolbar)).check { view, noViewFoundException ->
- noViewFoundException.assertIsNull()
- val toolbar = view as Toolbar
-
- toolbar.navigationIcon.assertIsNull()
- }
-
- onView(withText(R.string.UsernameEditFragment__add_a_username)).check(matches(isDisplayed()))
- onView(withContentDescription(R.string.load_more_header__loading)).check(matches(withEffectiveVisibility(ViewMatchers.Visibility.GONE)))
- }
-
@Ignore("Flakey espresso test.")
@Test
fun testUsernameCreationOutsideOfRegistration() {
@@ -108,7 +91,7 @@ class UsernameEditFragmentTest {
}
)
- val scenario = createScenario(UsernameEditMode.REGISTRATION)
+ val scenario = createScenario(UsernameEditMode.NORMAL)
scenario.moveToState(Lifecycle.State.RESUMED)
onView(withId(R.id.username_text)).perform(typeText(nickname))
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 993dede288..7d840a9b0c 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -976,11 +976,6 @@
android:windowSoftInputMode="stateVisible|adjustResize"
android:exported="false"/>
-
-
{
- 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 {
private static final String REQUEST_KEY = "username_created";
diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditMode.kt b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditMode.kt
index a99936ff58..7b1f7c3cba 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditMode.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditMode.kt
@@ -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
}
diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditViewModel.kt b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditViewModel.kt
index efb8c24741..c605fd0fe8 100644
--- a/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditViewModel.kt
+++ b/app/src/main/java/org/thoughtcrime/securesms/profiles/manage/UsernameEditViewModel.kt
@@ -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
)
diff --git a/app/src/main/java/org/thoughtcrime/securesms/profiles/username/AddAUsernameActivity.kt b/app/src/main/java/org/thoughtcrime/securesms/profiles/username/AddAUsernameActivity.kt
deleted file mode 100644
index 214eebe948..0000000000
--- a/app/src/main/java/org/thoughtcrime/securesms/profiles/username/AddAUsernameActivity.kt
+++ /dev/null
@@ -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)
- }
-}
diff --git a/app/src/main/res/navigation/app_settings.xml b/app/src/main/res/navigation/app_settings.xml
index 3f3c101ab4..49fc617018 100644
--- a/app/src/main/res/navigation/app_settings.xml
+++ b/app/src/main/res/navigation/app_settings.xml
@@ -585,7 +585,7 @@
+
+
+
+
-
\ No newline at end of file
diff --git a/app/src/main/res/navigation/create_username.xml b/app/src/main/res/navigation/create_username.xml
deleted file mode 100644
index 73ad8c0949..0000000000
--- a/app/src/main/res/navigation/create_username.xml
+++ /dev/null
@@ -1,20 +0,0 @@
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file