Remove unused 'registration' variant of username screen.
This commit is contained in:
parent
57ac7cb328
commit
f484fdbbac
8 changed files with 35 additions and 175 deletions
|
@ -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))
|
||||
|
|
|
@ -976,11 +976,6 @@
|
|||
android:windowSoftInputMode="stateVisible|adjustResize"
|
||||
android:exported="false"/>
|
||||
|
||||
<activity android:name=".profiles.username.AddAUsernameActivity"
|
||||
android:theme="@style/Signal.DayNight.NoActionBar"
|
||||
android:windowSoftInputMode="stateVisible|adjustResize"
|
||||
android:exported="false"/>
|
||||
|
||||
<activity android:name=".profiles.manage.EditProfileActivity"
|
||||
android:theme="@style/TextSecure.LightTheme"
|
||||
android:windowSoftInputMode="stateVisible|adjustResize"
|
||||
|
|
|
@ -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;
|
||||
|
@ -43,7 +39,6 @@ public class UsernameEditFragment extends LoggingFragment {
|
|||
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";
|
||||
|
||||
private UsernameEditViewModel viewModel;
|
||||
private UsernameEditFragmentBinding binding;
|
||||
|
@ -80,12 +75,6 @@ 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();
|
||||
|
@ -94,7 +83,6 @@ public class UsernameEditFragment extends LoggingFragment {
|
|||
}
|
||||
});
|
||||
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";
|
||||
|
||||
|
|
|
@ -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
|
||||
}
|
||||
|
|
|
@ -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
|
||||
)
|
||||
|
|
|
@ -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)
|
||||
}
|
||||
}
|
|
@ -585,7 +585,7 @@
|
|||
|
||||
<action
|
||||
android:id="@+id/action_direct_to_usernameRecovery"
|
||||
app:destination="@id/create_username"
|
||||
app:destination="@id/createUsernameFragment"
|
||||
app:enterAnim="@anim/fragment_open_enter"
|
||||
app:exitAnim="@anim/fragment_open_exit"
|
||||
app:popEnterAnim="@anim/fragment_close_enter"
|
||||
|
@ -936,9 +936,18 @@
|
|||
|
||||
</fragment>
|
||||
|
||||
<fragment
|
||||
android:id="@+id/createUsernameFragment"
|
||||
android:name="org.thoughtcrime.securesms.profiles.manage.UsernameEditFragment"
|
||||
tools:layout="@layout/username_edit_fragment">
|
||||
|
||||
<argument
|
||||
android:name="mode"
|
||||
android:defaultValue="NORMAL"
|
||||
app:argType="org.thoughtcrime.securesms.profiles.manage.UsernameEditMode" />
|
||||
</fragment>
|
||||
|
||||
<include app:graph="@navigation/username_link_settings" />
|
||||
<include app:graph="@navigation/create_username" />
|
||||
<include app:graph="@navigation/story_privacy_settings" />
|
||||
|
||||
</navigation>
|
|
@ -1,20 +0,0 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<navigation xmlns:android="http://schemas.android.com/apk/res/android"
|
||||
xmlns:app="http://schemas.android.com/apk/res-auto"
|
||||
xmlns:tools="http://schemas.android.com/tools"
|
||||
android:id="@+id/create_username"
|
||||
app:startDestination="@id/createUsernameFragment">
|
||||
|
||||
<fragment
|
||||
android:id="@+id/createUsernameFragment"
|
||||
android:name="org.thoughtcrime.securesms.profiles.manage.UsernameEditFragment"
|
||||
tools:layout="@layout/username_edit_fragment">
|
||||
|
||||
<argument
|
||||
android:name="mode"
|
||||
android:defaultValue="NORMAL"
|
||||
app:argType="org.thoughtcrime.securesms.profiles.manage.UsernameEditMode" />
|
||||
|
||||
</fragment>
|
||||
|
||||
</navigation>
|
Loading…
Add table
Reference in a new issue