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