UI fixes & improvements

This commit is contained in:
Sylvain Berfini 2017-11-10 10:12:27 +01:00
parent b9c9ad83fe
commit cf7032dea9
3 changed files with 13 additions and 13 deletions

View file

@ -274,10 +274,10 @@ public class ChatListFragment extends Fragment implements OnItemClickListener, C
@Override @Override
public void onItemClick(AdapterView<?> adapter, View view, int position, long id) { public void onItemClick(AdapterView<?> adapter, View view, int position, long id) {
String sipUri = chatList.getAdapter().getItem(position).toString(); ChatRoom chatRoom = (ChatRoom) chatList.getAdapter().getItem(position);
if (LinphoneActivity.isInstanciated() && !isEditMode) { if (LinphoneActivity.isInstanciated() && !isEditMode) {
LinphoneActivity.instance().goToChat(sipUri); LinphoneActivity.instance().goToChat(chatRoom.getPeerAddress().asString());
} }
} }

View file

@ -21,6 +21,7 @@ package org.linphone.chat;
import android.content.Context; import android.content.Context;
import android.graphics.Bitmap; import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.Typeface; import android.graphics.Typeface;
import android.view.LayoutInflater; import android.view.LayoutInflater;
import android.view.View; import android.view.View;
@ -67,7 +68,7 @@ public class ChatRoomsAdapter extends BaseAdapter {
ChatListFragment mFragment; ChatListFragment mFragment;
private List<ChatRoom> mRooms; private List<ChatRoom> mRooms;
private LayoutInflater mLayoutInflater; private LayoutInflater mLayoutInflater;
private Bitmap mDefaultBitmap; private Bitmap mDefaultBitmap, mDefaultGroupBitmap;
public ChatRoomsAdapter(Context context, ChatListFragment fragment, LayoutInflater inflater) { public ChatRoomsAdapter(Context context, ChatListFragment fragment, LayoutInflater inflater) {
mContext = context; mContext = context;
@ -75,6 +76,7 @@ public class ChatRoomsAdapter extends BaseAdapter {
mLayoutInflater = inflater; mLayoutInflater = inflater;
mRooms = new ArrayList<>(); mRooms = new ArrayList<>();
mDefaultBitmap = ContactsManager.getInstance().getDefaultAvatarBitmap(); mDefaultBitmap = ContactsManager.getInstance().getDefaultAvatarBitmap();
mDefaultGroupBitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.chat_group_avatar);
} }
public void refresh() { public void refresh() {
@ -131,6 +133,7 @@ public class ChatRoomsAdapter extends BaseAdapter {
Long time; Long time;
int unreadMessagesCount = chatRoom.getUnreadMessagesCount(); int unreadMessagesCount = chatRoom.getUnreadMessagesCount();
//TODO rework
ChatMessage[] history = chatRoom.getHistory(1); ChatMessage[] history = chatRoom.getHistory(1);
if (history.length > 0) { if (history.length > 0) {
@ -140,8 +143,8 @@ public class ChatRoomsAdapter extends BaseAdapter {
time = msg.getTime(); time = msg.getTime();
holder.date.setText(LinphoneUtils.timestampToHumanDate(mContext, time, R.string.messages_list_date_format)); holder.date.setText(LinphoneUtils.timestampToHumanDate(mContext, time, R.string.messages_list_date_format));
holder.lastMessageView.setText(""); holder.lastMessageView.setText("");
} else if (msg.getText() != null && msg.getText().length() > 0 ){ } else if (msg.getTextContent() != null && msg.getTextContent().length() > 0) {
message = msg.getText(); message = msg.getTextContent();
holder.lastMessageView.setBackgroundResource(0); holder.lastMessageView.setBackgroundResource(0);
time = msg.getTime(); time = msg.getTime();
holder.date.setText(LinphoneUtils.timestampToHumanDate(mContext, time, R.string.messages_list_date_format)); holder.date.setText(LinphoneUtils.timestampToHumanDate(mContext, time, R.string.messages_list_date_format));
@ -158,7 +161,7 @@ public class ChatRoomsAdapter extends BaseAdapter {
LinphoneUtils.setThumbnailPictureFromUri(LinphoneActivity.instance(), holder.contactPicture, contact.getThumbnailUri()); LinphoneUtils.setThumbnailPictureFromUri(LinphoneActivity.instance(), holder.contactPicture, contact.getThumbnailUri());
} else { } else {
holder.displayName.setText(LinphoneUtils.getAddressDisplayName(contactAddress)); holder.displayName.setText(LinphoneUtils.getAddressDisplayName(contactAddress));
holder.contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); holder.contactPicture.setImageBitmap(mDefaultBitmap);
} }
} else if (chatRoom.getNbParticipants() == 1 && mContext.getString(R.string.dummy_group_chat_subject).equals(chatRoom.getSubject())) { } else if (chatRoom.getNbParticipants() == 1 && mContext.getString(R.string.dummy_group_chat_subject).equals(chatRoom.getSubject())) {
contact = ContactsManager.getInstance().findContactFromAddress(chatRoom.getParticipants()[0].getAddress()); contact = ContactsManager.getInstance().findContactFromAddress(chatRoom.getParticipants()[0].getAddress());
@ -167,11 +170,11 @@ public class ChatRoomsAdapter extends BaseAdapter {
LinphoneUtils.setThumbnailPictureFromUri(LinphoneActivity.instance(), holder.contactPicture, contact.getThumbnailUri()); LinphoneUtils.setThumbnailPictureFromUri(LinphoneActivity.instance(), holder.contactPicture, contact.getThumbnailUri());
} else { } else {
holder.displayName.setText(LinphoneUtils.getAddressDisplayName(chatRoom.getParticipants()[0].getAddress())); holder.displayName.setText(LinphoneUtils.getAddressDisplayName(chatRoom.getParticipants()[0].getAddress()));
holder.contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); holder.contactPicture.setImageBitmap(mDefaultBitmap);
} }
} else { } else {
holder.displayName.setText(chatRoom.getSubject()); holder.displayName.setText(chatRoom.getSubject());
holder.contactPicture.setImageResource(R.drawable.chat_group_avatar); holder.contactPicture.setImageBitmap(mDefaultGroupBitmap);
} }
if (unreadMessagesCount > 0) { if (unreadMessagesCount > 0) {
@ -180,6 +183,7 @@ public class ChatRoomsAdapter extends BaseAdapter {
if (unreadMessagesCount > 99) { if (unreadMessagesCount > 99) {
holder.unreadMessages.setTextSize(12); holder.unreadMessages.setTextSize(12);
} }
holder.unreadMessages.setVisibility(View.VISIBLE);
holder.displayName.setTypeface(null, Typeface.BOLD); holder.displayName.setTypeface(null, Typeface.BOLD);
} else { } else {
holder.unreadMessages.setVisibility(View.GONE); holder.unreadMessages.setVisibility(View.GONE);
@ -215,10 +219,6 @@ public class ChatRoomsAdapter extends BaseAdapter {
} else { } else {
holder.select.setChecked(false); holder.select.setChecked(false);
} }
} else {
if (unreadMessagesCount > 0) {
holder.unreadMessages.setVisibility(View.VISIBLE);
}
}*/ }*/
return view; return view;
} }

View file

@ -258,6 +258,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
@Override @Override
public void afterTextChanged(Editable editable) { } public void afterTextChanged(Editable editable) { }
}); });
mMessageTextToSend.clearFocus();
mRemoteComposing = view.findViewById(R.id.remote_composing); mRemoteComposing = view.findViewById(R.id.remote_composing);
@ -463,7 +464,6 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
} }
mIsReadOnly = mChatRoom.getState() == ChatRoom.State.Terminated; mIsReadOnly = mChatRoom.getState() == ChatRoom.State.Terminated;
getContactsForParticipants(); getContactsForParticipants();
} }