From ffeb60fcdde94ce2808f08fee7a2d3d8fa67b230 Mon Sep 17 00:00:00 2001 From: Alex Hart Date: Fri, 28 Oct 2022 15:46:58 -0300 Subject: [PATCH] Update tooltip to Material3 spec. --- .../securesms/components/TooltipPopup.java | 9 +- .../contacts/paged/ContactSearchItems.kt | 2 +- .../forward/MultiselectForwardFragment.kt | 6 +- .../res/drawable/ic_tooltip_arrow_down.xml | 9 ++ .../res/drawable/ic_tooltip_arrow_left.xml | 13 ++ .../res/drawable/ic_tooltip_arrow_right.xml | 13 ++ .../main/res/drawable/ic_tooltip_arrow_up.xml | 9 ++ .../main/res/drawable/tooltip_background.xml | 2 +- app/src/main/res/layout/tooltip.xml | 131 +++++++++--------- app/src/main/res/values-night/dark_colors.xml | 2 - app/src/main/res/values/light_colors.xml | 2 +- 11 files changed, 120 insertions(+), 78 deletions(-) create mode 100644 app/src/main/res/drawable/ic_tooltip_arrow_down.xml create mode 100644 app/src/main/res/drawable/ic_tooltip_arrow_left.xml create mode 100644 app/src/main/res/drawable/ic_tooltip_arrow_right.xml create mode 100644 app/src/main/res/drawable/ic_tooltip_arrow_up.xml diff --git a/app/src/main/java/org/thoughtcrime/securesms/components/TooltipPopup.java b/app/src/main/java/org/thoughtcrime/securesms/components/TooltipPopup.java index 3e200b681..972540be4 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/components/TooltipPopup.java +++ b/app/src/main/java/org/thoughtcrime/securesms/components/TooltipPopup.java @@ -18,6 +18,7 @@ import androidx.annotation.Px; import androidx.annotation.StringRes; import androidx.core.content.ContextCompat; +import org.signal.core.util.DimensionUnit; import org.thoughtcrime.securesms.R; import org.thoughtcrime.securesms.mms.GlideApp; import org.thoughtcrime.securesms.util.ViewUtil; @@ -58,7 +59,7 @@ public class TooltipPopup extends PopupWindow { ViewGroup.LayoutParams.WRAP_CONTENT, ViewGroup.LayoutParams.WRAP_CONTENT); - this.anchor = anchor; + this.anchor = anchor; this.position = getRtlPosition(anchor.getContext(), rawPosition); this.startMargin = startMargin; @@ -83,10 +84,10 @@ public class TooltipPopup extends PopupWindow { if (backgroundTint == 0) { bubble.getBackground().setColorFilter(ContextCompat.getColor(anchor.getContext(), R.color.tooltip_default_color), PorterDuff.Mode.MULTIPLY); - arrow.setColorFilter(ContextCompat.getColor(anchor.getContext(), R.color.tooltip_default_color), PorterDuff.Mode.MULTIPLY); + arrow.setColorFilter(ContextCompat.getColor(anchor.getContext(), R.color.tooltip_default_color), PorterDuff.Mode.SRC_IN); } else { bubble.getBackground().setColorFilter(backgroundTint, PorterDuff.Mode.MULTIPLY); - arrow.setColorFilter(backgroundTint, PorterDuff.Mode.MULTIPLY); + arrow.setColorFilter(backgroundTint, PorterDuff.Mode.SRC_IN); } if (iconGlideModel != null) { @@ -148,8 +149,10 @@ public class TooltipPopup extends PopupWindow { switch (position) { case POSITION_ABOVE: xoffset += startMargin; + xoffset -= DimensionUnit.DP.toPixels(20); case POSITION_BELOW: xoffset += startMargin; + xoffset -= DimensionUnit.DP.toPixels(20); break; case POSITION_LEFT: xoffset += startMargin; diff --git a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchItems.kt b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchItems.kt index dd05f0673..4608cb2dc 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchItems.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/contacts/paged/ContactSearchItems.kt @@ -290,7 +290,7 @@ object ContactSearchItems { override fun bind(model: T) { checkbox.visible = displayCheckBox checkbox.isChecked = isSelected(model) - itemView.setOnClickListener { onClick(itemView, getData(model), isSelected(model)) } + itemView.setOnClickListener { onClick(avatar, getData(model), isSelected(model)) } bindLongPress(model) if (payload.isNotEmpty()) { diff --git a/app/src/main/java/org/thoughtcrime/securesms/conversation/mutiselect/forward/MultiselectForwardFragment.kt b/app/src/main/java/org/thoughtcrime/securesms/conversation/mutiselect/forward/MultiselectForwardFragment.kt index 711e01970..44a5ef712 100644 --- a/app/src/main/java/org/thoughtcrime/securesms/conversation/mutiselect/forward/MultiselectForwardFragment.kt +++ b/app/src/main/java/org/thoughtcrime/securesms/conversation/mutiselect/forward/MultiselectForwardFragment.kt @@ -16,7 +16,6 @@ import android.widget.Toast import androidx.annotation.PluralsRes import androidx.annotation.StringRes import androidx.appcompat.widget.AppCompatImageView -import androidx.core.content.ContextCompat import androidx.core.os.bundleOf import androidx.core.view.ViewCompat import androidx.core.view.doOnNextLayout @@ -28,7 +27,6 @@ import androidx.fragment.app.setFragmentResultListener import androidx.fragment.app.viewModels import androidx.recyclerview.widget.RecyclerView import com.google.android.material.dialog.MaterialAlertDialogBuilder -import org.signal.core.util.DimensionUnit import org.signal.core.util.logging.Log import org.thoughtcrime.securesms.R import org.thoughtcrime.securesms.components.ContactFilterView @@ -394,12 +392,10 @@ class MultiselectForwardFragment : } private fun displayTooltip(anchor: View, @StringRes text: Int) { + // 22dp + gutter TooltipPopup .forTarget(anchor) - .setStartMargin(DimensionUnit.DP.toPixels(16f).toInt()) .setText(text) - .setTextColor(ContextCompat.getColor(requireContext(), R.color.signal_colorOnPrimaryContainer)) - .setBackgroundTint(ContextCompat.getColor(requireContext(), R.color.signal_colorPrimaryContainer)) .show(TooltipPopup.POSITION_BELOW) } diff --git a/app/src/main/res/drawable/ic_tooltip_arrow_down.xml b/app/src/main/res/drawable/ic_tooltip_arrow_down.xml new file mode 100644 index 000000000..18772192a --- /dev/null +++ b/app/src/main/res/drawable/ic_tooltip_arrow_down.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/ic_tooltip_arrow_left.xml b/app/src/main/res/drawable/ic_tooltip_arrow_left.xml new file mode 100644 index 000000000..b17a1a02f --- /dev/null +++ b/app/src/main/res/drawable/ic_tooltip_arrow_left.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_tooltip_arrow_right.xml b/app/src/main/res/drawable/ic_tooltip_arrow_right.xml new file mode 100644 index 000000000..2c1d561d2 --- /dev/null +++ b/app/src/main/res/drawable/ic_tooltip_arrow_right.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/app/src/main/res/drawable/ic_tooltip_arrow_up.xml b/app/src/main/res/drawable/ic_tooltip_arrow_up.xml new file mode 100644 index 000000000..41111950b --- /dev/null +++ b/app/src/main/res/drawable/ic_tooltip_arrow_up.xml @@ -0,0 +1,9 @@ + + + diff --git a/app/src/main/res/drawable/tooltip_background.xml b/app/src/main/res/drawable/tooltip_background.xml index 900668e09..562e31405 100644 --- a/app/src/main/res/drawable/tooltip_background.xml +++ b/app/src/main/res/drawable/tooltip_background.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/app/src/main/res/layout/tooltip.xml b/app/src/main/res/layout/tooltip.xml index a5c50153e..53d1b270b 100644 --- a/app/src/main/res/layout/tooltip.xml +++ b/app/src/main/res/layout/tooltip.xml @@ -1,98 +1,99 @@ - + tools:viewBindingIgnore="true"> + + + android:gravity="center_vertical" + android:orientation="horizontal" + android:padding="16dp" + app:layout_constraintStart_toEndOf="@id/tooltip_arrow_start" + app:layout_constraintTop_toBottomOf="@id/tooltip_arrow_top" + app:layout_constraintWidth_max="320dp" + tools:backgroundTint="@color/signal_colorPrimaryContainer"> - - - - - - - - - + tools:text="It is my gift. It is my curse. It is my gift. It is my curse. It is my gift. It is my curse. It is my gift. It is my curse." /> - + + + + diff --git a/app/src/main/res/values-night/dark_colors.xml b/app/src/main/res/values-night/dark_colors.xml index 1bd75d5f0..6e8f1e6dd 100644 --- a/app/src/main/res/values-night/dark_colors.xml +++ b/app/src/main/res/values-night/dark_colors.xml @@ -156,8 +156,6 @@ @color/core_grey_25 - @color/core_grey_75 - @color/transparent_black_60 @color/signal_colorTransparentInverse4 @color/core_black diff --git a/app/src/main/res/values/light_colors.xml b/app/src/main/res/values/light_colors.xml index 91be44315..b39ae59a1 100644 --- a/app/src/main/res/values/light_colors.xml +++ b/app/src/main/res/values/light_colors.xml @@ -161,7 +161,7 @@ @color/core_grey_90 - @color/core_white + @color/signal_colorSecondaryContainer @color/transparent_white_30 @color/signal_colorTransparent4