Add content description to DeliveryStatusView.

This commit is contained in:
Alex Hart
2023-08-15 11:38:15 -03:00
committed by Cody Henthorne
parent 8ce05c8bbe
commit 98ec2cceb4

View File

@@ -12,6 +12,7 @@ import android.view.animation.LinearInterpolator;
import android.view.animation.RotateAnimation; import android.view.animation.RotateAnimation;
import androidx.annotation.Nullable; import androidx.annotation.Nullable;
import androidx.annotation.StringRes;
import androidx.appcompat.widget.AppCompatImageView; import androidx.appcompat.widget.AppCompatImageView;
import org.signal.core.util.DimensionUnit; import org.signal.core.util.DimensionUnit;
@@ -133,6 +134,7 @@ public class DeliveryStatusView extends AppCompatImageView {
state = State.NONE; state = State.NONE;
clearAnimation(); clearAnimation();
setVisibility(View.GONE); setVisibility(View.GONE);
updateContentDescription();
} }
public boolean isPending() { public boolean isPending() {
@@ -145,6 +147,7 @@ public class DeliveryStatusView extends AppCompatImageView {
ViewUtil.setPaddingStart(this, 0); ViewUtil.setPaddingStart(this, 0);
ViewUtil.setPaddingEnd(this, horizontalPadding); ViewUtil.setPaddingEnd(this, horizontalPadding);
setImageResource(R.drawable.ic_delivery_status_sending); setImageResource(R.drawable.ic_delivery_status_sending);
updateContentDescription();
} }
public void setSent() { public void setSent() {
@@ -154,6 +157,7 @@ public class DeliveryStatusView extends AppCompatImageView {
ViewUtil.setPaddingEnd(this, 0); ViewUtil.setPaddingEnd(this, 0);
clearAnimation(); clearAnimation();
setImageResource(R.drawable.ic_delivery_status_sent); setImageResource(R.drawable.ic_delivery_status_sent);
updateContentDescription();
} }
public void setDelivered() { public void setDelivered() {
@@ -163,6 +167,7 @@ public class DeliveryStatusView extends AppCompatImageView {
ViewUtil.setPaddingEnd(this, 0); ViewUtil.setPaddingEnd(this, 0);
clearAnimation(); clearAnimation();
setImageResource(R.drawable.ic_delivery_status_delivered); setImageResource(R.drawable.ic_delivery_status_delivered);
updateContentDescription();
} }
public void setRead() { public void setRead() {
@@ -172,23 +177,36 @@ public class DeliveryStatusView extends AppCompatImageView {
ViewUtil.setPaddingEnd(this, 0); ViewUtil.setPaddingEnd(this, 0);
clearAnimation(); clearAnimation();
setImageResource(R.drawable.ic_delivery_status_read); setImageResource(R.drawable.ic_delivery_status_read);
updateContentDescription();
} }
public void setTint(int color) { public void setTint(int color) {
setColorFilter(color); setColorFilter(color);
} }
private void updateContentDescription() {
if (state.contentDescription == -1) {
setContentDescription(null);
} else {
setContentDescription(getContext().getString(state.contentDescription));
}
}
private enum State { private enum State {
NONE(0), NONE(0, -1),
PENDING(1), PENDING(1, R.string.message_details_recipient_header__pending_send),
SENT(2), SENT(2, R.string.message_details_header_sent),
DELIVERED(3), DELIVERED(3, R.string.conversation_item_sent__delivered_description),
READ(4); READ(4, R.string.conversation_item_sent__message_read);
final int code; final int code;
State(int code) { @StringRes
this.code = code; final int contentDescription;
State(int code, @StringRes int contentDescription) {
this.code = code;
this.contentDescription = contentDescription;
} }
static State fromCode(int code) { static State fromCode(int code) {