diff --git a/app/ui/legacy/src/main/java/com/fsck/k9/view/MessageHeader.java b/app/ui/legacy/src/main/java/com/fsck/k9/view/MessageHeader.java index 433051a02..71e0651f5 100644 --- a/app/ui/legacy/src/main/java/com/fsck/k9/view/MessageHeader.java +++ b/app/ui/legacy/src/main/java/com/fsck/k9/view/MessageHeader.java @@ -17,6 +17,7 @@ import android.widget.Toast; import androidx.annotation.DrawableRes; import androidx.annotation.NonNull; import androidx.appcompat.widget.PopupMenu; +import androidx.appcompat.widget.TooltipCompat; import com.fsck.k9.Account; import com.fsck.k9.DI; import com.fsck.k9.FontSizes; @@ -96,11 +97,12 @@ public class MessageHeader extends LinearLayout implements OnClickListener, OnLo menuPrimaryActionView = findViewById(R.id.menu_primary_action); menuPrimaryActionView.setOnClickListener(this); - menuPrimaryActionView.setOnLongClickListener(this); View menuOverflowView = findViewById(R.id.menu_overflow); menuOverflowView.setOnClickListener(this); - menuOverflowView.setOnLongClickListener(this); + String menuOverflowDescription = + getContext().getString(androidx.appcompat.R.string.abc_action_menu_overflow_description); + TooltipCompat.setTooltipText(menuOverflowView, menuOverflowDescription); findViewById(R.id.participants_container).setOnClickListener(this); } @@ -246,6 +248,10 @@ public class MessageHeader extends LinearLayout implements OnClickListener, OnLo } else { int replyIconResource = getReplyImageResource(defaultAction); menuPrimaryActionView.setImageResource(replyIconResource); + + String replyActionName = getReplyActionName(defaultAction); + TooltipCompat.setTooltipText(menuPrimaryActionView, replyActionName); + menuPrimaryActionView.setVisibility(View.VISIBLE); } } @@ -265,6 +271,22 @@ public class MessageHeader extends LinearLayout implements OnClickListener, OnLo } } + @NonNull + private String getReplyActionName(@NonNull ReplyAction replyAction) { + Context context = getContext(); + switch (replyAction) { + case REPLY: { + return context.getString(R.string.reply_action); + } + case REPLY_ALL: { + return context.getString(R.string.reply_all_action); + } + default: { + throw new IllegalStateException("Unknown reply action: " + replyAction); + } + } + } + private void setAdditionalReplyActions(PopupMenu popupMenu) { List additionalActions = replyActions.getAdditionalActions(); if (!additionalActions.contains(ReplyAction.REPLY)) {