Focus on correct textfield when adding a description.

This commit is contained in:
Sagar
2025-04-02 00:30:36 +05:30
committed by Michelle Tang
parent 7bdfec77ca
commit 13be8d511c
3 changed files with 24 additions and 7 deletions

View File

@@ -375,7 +375,7 @@ class ConversationSettingsFragment : DSLSettingsFragment(
descriptionShouldLinkify = groupState.groupDescriptionShouldLinkify,
canEditGroupAttributes = groupState.canEditGroupAttributes,
onEditGroupDescription = {
startActivity(CreateProfileActivity.getIntentForGroupProfile(requireActivity(), groupState.groupId))
startActivity(CreateProfileActivity.getIntentForGroupProfileWithFocusedDescription(requireActivity(), groupState.groupId))
},
onViewGroupDescription = {
GroupDescriptionDialog.show(childFragmentManager, groupState.groupId, null, groupState.groupDescriptionShouldLinkify)

View File

@@ -21,11 +21,12 @@ import org.thoughtcrime.securesms.util.DynamicTheme;
*/
public class CreateProfileActivity extends BaseActivity implements CreateProfileFragment.Controller {
public static final String NEXT_INTENT = "next_intent";
public static final String EXCLUDE_SYSTEM = "exclude_system";
public static final String NEXT_BUTTON_TEXT = "next_button_text";
public static final String SHOW_TOOLBAR = "show_back_arrow";
public static final String GROUP_ID = "group_id";
public static final String NEXT_INTENT = "next_intent";
public static final String EXCLUDE_SYSTEM = "exclude_system";
public static final String NEXT_BUTTON_TEXT = "next_button_text";
public static final String SHOW_TOOLBAR = "show_back_arrow";
public static final String GROUP_ID = "group_id";
public static final String IS_DESCRIPTION_FOCUSED = "is_description_focused";
private final DynamicTheme dynamicTheme = new DynamicRegistrationTheme();
@@ -43,6 +44,15 @@ public class CreateProfileActivity extends BaseActivity implements CreateProfile
return intent;
}
public static @NonNull Intent getIntentForGroupProfileWithFocusedDescription(@NonNull Context context, @NonNull GroupId groupId) {
Intent intent = new Intent(context, CreateProfileActivity.class);
intent.putExtra(CreateProfileActivity.SHOW_TOOLBAR, true);
intent.putExtra(CreateProfileActivity.GROUP_ID, groupId.toString());
intent.putExtra(CreateProfileActivity.NEXT_BUTTON_TEXT, R.string.save);
intent.putExtra(CreateProfileActivity.IS_DESCRIPTION_FOCUSED, true);
return intent;
}
@Override
public void onCreate(Bundle bundle) {
super.onCreate(bundle);

View File

@@ -51,6 +51,7 @@ import java.io.InputStream;
import static org.thoughtcrime.securesms.profiles.edit.CreateProfileActivity.EXCLUDE_SYSTEM;
import static org.thoughtcrime.securesms.profiles.edit.CreateProfileActivity.GROUP_ID;
import static org.thoughtcrime.securesms.profiles.edit.CreateProfileActivity.IS_DESCRIPTION_FOCUSED;
import static org.thoughtcrime.securesms.profiles.edit.CreateProfileActivity.NEXT_BUTTON_TEXT;
import static org.thoughtcrime.securesms.profiles.edit.CreateProfileActivity.NEXT_INTENT;
import static org.thoughtcrime.securesms.profiles.edit.CreateProfileActivity.SHOW_TOOLBAR;
@@ -161,6 +162,7 @@ public class CreateProfileFragment extends LoggingFragment {
boolean isEditingGroup = groupId != null;
this.nextIntent = arguments.getParcelable(NEXT_INTENT);
boolean isDescriptionFocused = arguments.getBoolean(IS_DESCRIPTION_FOCUSED);
binding.avatar.setOnClickListener(v -> startAvatarSelection());
binding.mmsGroupHint.setVisibility(isEditingGroup && groupId.isMms() ? View.VISIBLE : View.GONE);
@@ -171,7 +173,9 @@ public class CreateProfileFragment extends LoggingFragment {
binding.whoCanFindMeContainer.setVisibility(View.GONE);
binding.givenName.addTextChangedListener(new AfterTextChanged(s -> viewModel.setGivenName(s.toString())));
binding.givenNameWrapper.setHint(R.string.EditProfileFragment__group_name);
binding.givenName.requestFocus();
if (!isDescriptionFocused) {
binding.givenName.requestFocus();
}
binding.toolbar.setTitle(R.string.EditProfileFragment__edit_group);
binding.namePreview.setVisibility(View.GONE);
@@ -182,6 +186,9 @@ public class CreateProfileFragment extends LoggingFragment {
viewModel.setFamilyName(s.toString());
}));
binding.familyNameWrapper.setHint(R.string.EditProfileFragment__group_description);
if (isDescriptionFocused) {
binding.familyName.requestFocus();
}
binding.familyName.setSingleLine(false);
binding.familyName.setInputType(InputType.TYPE_CLASS_TEXT | InputType.TYPE_TEXT_FLAG_MULTI_LINE | InputType.TYPE_TEXT_FLAG_CAP_SENTENCES);