From caab91cdc377a056e4e09c71b36e09ed43d2b8cd Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Thu, 14 Jul 2022 14:47:00 -0300 Subject: [PATCH] Update UI elements of contact share activity. --- .../contactshare/ContactFieldAdapter.java | 17 +++--- .../ContactShareEditActivity.java | 11 +++- .../layout/activity_contact_share_edit.xml | 23 ++++++-- .../main/res/layout/item_editable_contact.xml | 39 ++++++------- .../layout/item_selectable_contact_field.xml | 55 ++++++++++--------- app/src/main/res/values/strings.xml | 6 ++ 6 files changed, 92 insertions(+), 59 deletions(-) diff --git a/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactFieldAdapter.java b/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactFieldAdapter.java index ae6f282126..efd29a7516 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactFieldAdapter.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactFieldAdapter.java @@ -2,6 +2,7 @@ package org.thoughtcrime.securesms.contactshare; import android.content.Context; import android.net.Uri; +import android.text.TextUtils; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; @@ -85,7 +86,6 @@ class ContactFieldAdapter extends RecyclerView.Adapter field.setSelected(isChecked)); + itemView.setOnClickListener(unused -> { + field.setSelected(!field.isSelected()); + checkBox.setChecked(field.isSelected()); + }); super.itemView.setOnClickListener(v -> checkBox.toggle()); } else { checkBox.setVisibility(View.GONE); - checkBox.setOnCheckedChangeListener(null); + itemView.setOnClickListener(null); + itemView.setClickable(false); } } void recycle() { - checkBox.setOnCheckedChangeListener(null); + itemView.setOnClickListener(null); + itemView.setClickable(false); } } diff --git a/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactShareEditActivity.java b/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactShareEditActivity.java index 8599fcf165..abb5bdb9be 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactShareEditActivity.java +++ b/app/src/main/java/org/thoughtcrime/securesms/contactshare/ContactShareEditActivity.java @@ -14,6 +14,7 @@ import android.widget.Toast; import androidx.annotation.ColorInt; import androidx.annotation.NonNull; import androidx.annotation.Nullable; +import androidx.appcompat.widget.Toolbar; import androidx.core.view.ViewCompat; import androidx.lifecycle.ViewModelProviders; import androidx.recyclerview.widget.LinearLayoutManager; @@ -23,9 +24,12 @@ import org.thoughtcrime.securesms.PassphraseRequiredActivity; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.util.DynamicLanguage; +import org.thoughtcrime.securesms.util.DynamicNoActionBarTheme; import org.thoughtcrime.securesms.util.DynamicTheme; +import org.thoughtcrime.securesms.util.Material3OnScrollHelper; import java.util.ArrayList; +import java.util.Collections; import java.util.List; import static org.thoughtcrime.securesms.contactshare.Contact.Name; @@ -39,7 +43,7 @@ public class ContactShareEditActivity extends PassphraseRequiredActivity impleme private static final String KEY_SEND_BUTTON_COLOR = "send_button_color"; private static final int CODE_NAME_EDIT = 55; - private final DynamicTheme dynamicTheme = new DynamicTheme(); + private final DynamicTheme dynamicTheme = new DynamicNoActionBarTheme(); private final DynamicLanguage dynamicLanguage = new DynamicLanguage(); private ContactShareEditViewModel viewModel; @@ -80,6 +84,11 @@ public class ContactShareEditActivity extends PassphraseRequiredActivity impleme contactList.setLayoutManager(new LinearLayoutManager(this)); contactList.getLayoutManager().setAutoMeasureEnabled(true); + Toolbar toolbar = findViewById(R.id.toolbar); + toolbar.setNavigationOnClickListener(unused -> onBackPressed()); + Material3OnScrollHelper onScrollHelper = new Material3OnScrollHelper(this, Collections.singletonList(toolbar), Collections.emptyList()); + onScrollHelper.attach(contactList); + ContactShareEditAdapter contactAdapter = new ContactShareEditAdapter(GlideApp.with(this), dynamicLanguage.getCurrentLocale(), this); contactList.setAdapter(contactAdapter); diff --git a/app/src/main/res/layout/activity_contact_share_edit.xml b/app/src/main/res/layout/activity_contact_share_edit.xml index 3ab4b760db..1f2f5f9b1d 100644 --- a/app/src/main/res/layout/activity_contact_share_edit.xml +++ b/app/src/main/res/layout/activity_contact_share_edit.xml @@ -1,27 +1,40 @@ - + + + android:paddingBottom="80dp" + app:layout_constraintBottom_toBottomOf="parent" + app:layout_constraintTop_toBottomOf="@id/toolbar" /> - \ No newline at end of file + \ No newline at end of file diff --git a/app/src/main/res/layout/item_editable_contact.xml b/app/src/main/res/layout/item_editable_contact.xml index aa2665641e..c59bc3d977 100644 --- a/app/src/main/res/layout/item_editable_contact.xml +++ b/app/src/main/res/layout/item_editable_contact.xml @@ -1,44 +1,41 @@ - - + android:layout_height="wrap_content" + android:orientation="vertical"> + + android:gravity="center_vertical" + android:minHeight="56dp" + android:orientation="horizontal"> + android:maxLines="2" + android:textAppearance="@style/Signal.Text.BodyLarge" + tools:text="Peter Parker" /> + android:contentDescription="@string/ContactShareEditActivity__edit_name" + android:scaleType="centerInside" + android:src="@drawable/ic_compose_24" + android:tint="@color/signal_colorOnSurface" /> - - - + android:background="@drawable/selectable_list_item_background" + android:gravity="center_vertical" + android:minHeight="56dp" + android:orientation="horizontal" + android:paddingHorizontal="@dimen/dsl_settings_gutter" + android:paddingTop="12dp" + android:paddingBottom="12dp"> - + + tools:src="@drawable/ic_contact_picture" + tools:visibility="visible" /> @@ -34,24 +42,21 @@ android:id="@+id/contact_field_value" android:layout_width="match_parent" android:layout_height="wrap_content" - android:maxLines="1" android:ellipsize="end" + android:maxLines="1" + android:textAppearance="@style/Signal.Text.BodyLarge" tools:text="(610) 867-5309" /> + android:maxLines="1" + android:textAppearance="@style/Signal.Text.BodyMedium" + android:textColor="@color/signal_colorOnSurfaceVariant" + tools:text="Mobile" /> - - \ No newline at end of file diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index e028f7fa3f..2ca04b36c4 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -217,11 +217,17 @@ Middle name + + Send contact Home Mobile Work Other Selected contact was invalid + + Edit name + + Avatar Not sent, tap for details