Show precise timestamp when pressing on message time (closes #90).

This commit is contained in:
leopoldsedev
2020-02-16 13:19:38 +01:00
committed by Jannis Mattheis
parent 10b6741cd5
commit 077eaff084

View File

@@ -24,6 +24,7 @@ import io.noties.markwon.ext.tables.TablePlugin;
import io.noties.markwon.image.picasso.PicassoImagesPlugin; import io.noties.markwon.image.picasso.PicassoImagesPlugin;
import io.noties.markwon.movement.MovementMethodPlugin; import io.noties.markwon.movement.MovementMethodPlugin;
import java.util.List; import java.util.List;
import org.threeten.bp.OffsetDateTime;
public class ListMessageAdapter extends RecyclerView.Adapter<ListMessageAdapter.ViewHolder> { public class ListMessageAdapter extends RecyclerView.Adapter<ListMessageAdapter.ViewHolder> {
@@ -88,10 +89,10 @@ public class ListMessageAdapter extends RecyclerView.Adapter<ListMessageAdapter.
.error(R.drawable.ic_alarm) .error(R.drawable.ic_alarm)
.placeholder(R.drawable.ic_placeholder) .placeholder(R.drawable.ic_placeholder)
.into(holder.image); .into(holder.image);
holder.date.setText(
message.message.getDate() != null holder.setDateTime(message.message.getDate());
? Utils.dateToRelative(message.message.getDate()) holder.date.setOnClickListener((ignored) -> holder.switchPreciseDate());
: "?");
holder.delete.setOnClickListener( holder.delete.setOnClickListener(
(ignored) -> delete.delete(holder.getAdapterPosition(), message.message, false)); (ignored) -> delete.delete(holder.getAdapterPosition(), message.message, false));
} }
@@ -123,9 +124,37 @@ public class ListMessageAdapter extends RecyclerView.Adapter<ListMessageAdapter.
@BindView(R.id.message_delete) @BindView(R.id.message_delete)
ImageButton delete; ImageButton delete;
private boolean preciseDate;
private OffsetDateTime dateTime;
ViewHolder(final View view) { ViewHolder(final View view) {
super(view); super(view);
ButterKnife.bind(this, view); ButterKnife.bind(this, view);
preciseDate = false;
dateTime = null;
}
void switchPreciseDate() {
preciseDate = !preciseDate;
updateDate();
}
void setDateTime(OffsetDateTime dateTime) {
this.dateTime = dateTime;
preciseDate = false;
updateDate();
}
void updateDate() {
String text = "?";
if (dateTime != null) {
if (preciseDate) {
text = dateTime.toString();
} else {
text = Utils.dateToRelative(dateTime);
}
}
date.setText(text);
} }
} }