aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2017-02-16 20:58:27 +0100
committerChristian Schneppe <christian@pix-art.de>2017-02-19 20:04:26 +0100
commitb8cce73649a8c61fba3786f6804a0bf8db9ae055 (patch)
treeb8698c5696cde9e67404f48099eaeb4a75ae642b /src/main/java/de/pixart/messenger/ui
parent269ff52846f53b7e0fa6f31cf9099bd756f52333 (diff)
add date bubble in chatlist
fixes #104
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui')
-rw-r--r--src/main/java/de/pixart/messenger/ui/ConversationFragment.java36
-rw-r--r--src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java8
2 files changed, 21 insertions, 23 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
index e0b5b7e11..f2127b48e 100644
--- a/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
+++ b/src/main/java/de/pixart/messenger/ui/ConversationFragment.java
@@ -41,9 +41,11 @@ import android.widget.Toast;
import net.java.otr4j.session.SessionStatus;
+import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
+import java.util.Locale;
import java.util.UUID;
import de.pixart.messenger.Config;
@@ -119,6 +121,9 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
private TextView snackbarMessage;
private TextView snackbarAction;
private Toast messageLoaderToast;
+ SimpleDateFormat sdf = new SimpleDateFormat("EEEE, dd. MMM yyyy", Locale.getDefault());
+ String first = sdf.format(System.currentTimeMillis());
+ String today = sdf.format(System.currentTimeMillis());
private OnScrollListener mOnScrollListener = new OnScrollListener() {
@@ -1264,25 +1269,26 @@ public class ConversationFragment extends Fragment implements EditMessage.Keyboa
if (showLoadMoreMessages(conversation)) {
this.messageList.add(0, Message.createLoadMoreMessage(conversation));
}
- if (conversation.getMode() == Conversation.MODE_SINGLE) {
- ChatState state = conversation.getIncomingChatState();
- if (state == ChatState.COMPOSING) {
- //this.messageList.add(Message.createStatusMessage(conversation, getString(R.string.contact_is_typing, conversation.getName())));
- } else if (state == ChatState.PAUSED) {
- //this.messageList.add(Message.createStatusMessage(conversation, getString(R.string.contact_has_stopped_typing, conversation.getName())));
- } else {
- for (int i = this.messageList.size() - 1; i >= 0; --i) {
- if (this.messageList.get(i).getStatus() == Message.STATUS_RECEIVED) {
- return;
- } else {
- if (this.messageList.get(i).getStatus() == Message.STATUS_SEND_DISPLAYED) {
-// this.messageList.add(i + 1,
-// Message.createStatusMessage(conversation, getString(R.string.contact_has_read_up_to_this_point, conversation.getName())));
-// return;
+
+ // show date in chat view
+ int max = this.messageList.size();
+ if (max == 0 || (max <= 1 && showLoadMoreMessages(conversation))){
+ this.messageList.add(0, Message.createDateMessage(conversation, getString(R.string.start_chatting)));
+ } else if ((max > 0 && !showLoadMoreMessages(conversation)) || (max > 1 && showLoadMoreMessages(conversation))) {
+ for (int i = (max - 1); i > 0; --i) {
+ String last = sdf.format(this.messageList.get(i).getTimeSent());
+ String date = first;
+ if (!last.equals(first)) {
+ if (i < (max - 1)) {
+ if (today.equals(first)) {
+ date = getString(R.string.today);
}
+ this.messageList.add(i + 1, Message.createDateMessage(conversation, date));
}
}
+ first = last;
}
+ this.messageList.add(0, Message.createDateMessage(conversation, first));
}
}
}
diff --git a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java
index fa65b3af6..b71e98032 100644
--- a/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java
+++ b/src/main/java/de/pixart/messenger/ui/adapter/MessageAdapter.java
@@ -808,7 +808,6 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
if (type == STATUS) {
if ("LOAD_MORE".equals(message.getBody())) {
viewHolder.status_message.setVisibility(View.GONE);
- viewHolder.contact_picture.setVisibility(View.GONE);
viewHolder.load_more_messages.setVisibility(View.VISIBLE);
viewHolder.load_more_messages.setOnClickListener(new OnClickListener() {
@Override
@@ -818,14 +817,7 @@ public class MessageAdapter extends ArrayAdapter<Message> implements CopyTextVie
});
} else {
viewHolder.status_message.setVisibility(View.VISIBLE);
- viewHolder.contact_picture.setVisibility(View.VISIBLE);
viewHolder.load_more_messages.setVisibility(View.GONE);
- if (conversation.getMode() == Conversation.MODE_SINGLE) {
- viewHolder.contact_picture.setImageBitmap(activity
- .avatarService().get(conversation.getContact(),
- activity.getPixel(32)));
- viewHolder.contact_picture.setAlpha(0.5f);
- }
viewHolder.status_message.setText(message.getBody());
}
return view;