From 5de27a039321c449c613e83bec1c0e434fe9d388 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Wed, 11 Apr 2018 14:19:56 +0200 Subject: [PATCH] Added resend option to context menu if needed + fixed all english 'Infos' to 'Info' --- res/layout/chat_bubble.xml | 1 - res/menu/chat_bubble_menu_with_resend.xml | 17 +++++++++++++++++ res/values/strings.xml | 8 ++++---- .../org/linphone/chat/ChatEventsAdapter.java | 7 ------- .../org/linphone/chat/GroupChatFragment.java | 18 +++++++++++++++++- .../linphone/firebase/FirebaseMessaging.java | 1 - 6 files changed, 38 insertions(+), 14 deletions(-) create mode 100644 res/menu/chat_bubble_menu_with_resend.xml diff --git a/res/layout/chat_bubble.xml b/res/layout/chat_bubble.xml index 38b9a5784..1933f372a 100644 --- a/res/layout/chat_bubble.xml +++ b/res/layout/chat_bubble.xml @@ -142,7 +142,6 @@ android:id="@+id/message" style="@style/font11" android:autoLink="web" - android:textIsSelectable="true" android:linksClickable="true" android:layout_width="wrap_content" android:layout_height="wrap_content"/> diff --git a/res/menu/chat_bubble_menu_with_resend.xml b/res/menu/chat_bubble_menu_with_resend.xml new file mode 100644 index 000000000..4ca08409b --- /dev/null +++ b/res/menu/chat_bubble_menu_with_resend.xml @@ -0,0 +1,17 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/res/values/strings.xml b/res/values/strings.xml index 212b63db7..776ec20af 100644 --- a/res/values/strings.xml +++ b/res/values/strings.xml @@ -195,10 +195,10 @@ Sent Resend An error occurs when opening this file. - Infos + Info Admin Name your group - Infos + Info Admin Participants Leave the group @@ -220,7 +220,7 @@ Leave Do you want to delete and leave the selected conversations? - Infos + Info Registered @@ -522,5 +522,5 @@ Linphone Service Linphone Notification Group chat room subject - Group chat room infos + Group chat room info diff --git a/src/android/org/linphone/chat/ChatEventsAdapter.java b/src/android/org/linphone/chat/ChatEventsAdapter.java index d563108cf..509d9b246 100644 --- a/src/android/org/linphone/chat/ChatEventsAdapter.java +++ b/src/android/org/linphone/chat/ChatEventsAdapter.java @@ -188,7 +188,6 @@ public class ChatEventsAdapter extends ListSelectionAdapter { holder.messageStatus.setVisibility(View.INVISIBLE); holder.messageSendingInProgress.setVisibility(View.GONE); holder.imdmLayout.setVisibility(View.INVISIBLE); - holder.imdmLabel.setOnClickListener(null); holder.contactPicture.setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap()); if (isEditionEnabled()) { @@ -245,12 +244,6 @@ public class ChatEventsAdapter extends ListSelectionAdapter { holder.imdmIcon.setImageResource(R.drawable.chat_error); holder.imdmLabel.setText(R.string.error); holder.imdmLabel.setTextColor(mContext.getResources().getColor(R.color.colorI)); - holder.imdmLabel.setOnClickListener(new View.OnClickListener() { - @Override - public void onClick(View v) { - //TODO resend message - } - }); } else if (status == ChatMessage.State.FileTransferError) { holder.imdmLayout.setVisibility(View.VISIBLE); holder.imdmIcon.setImageResource(R.drawable.chat_error); diff --git a/src/android/org/linphone/chat/GroupChatFragment.java b/src/android/org/linphone/chat/GroupChatFragment.java index d8acb4c0f..2f7772e80 100644 --- a/src/android/org/linphone/chat/GroupChatFragment.java +++ b/src/android/org/linphone/chat/GroupChatFragment.java @@ -332,8 +332,20 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con @Override public void onCreateContextMenu(ContextMenu menu, View v, ContextMenu.ContextMenuInfo menuInfo) { super.onCreateContextMenu(menu, v, menuInfo); + + AdapterView.AdapterContextMenuInfo info = (AdapterView.AdapterContextMenuInfo) menuInfo; + EventLog event = (EventLog) mEventsAdapter.getItem(info.position); + if (event.getType() != EventLog.Type.ConferenceChatMessage) { + return; + } + MenuInflater inflater = getActivity().getMenuInflater(); - inflater.inflate(R.menu.chat_bubble_menu, menu); + ChatMessage message = event.getChatMessage(); + if (message.getState() == ChatMessage.State.NotDelivered) { + inflater.inflate(R.menu.chat_bubble_menu_with_resend, menu); + } else { + inflater.inflate(R.menu.chat_bubble_menu, menu); + } } @Override @@ -349,6 +361,10 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con String messageId = message.getMessageId(); switch(item.getItemId()) { + case R.id.resend: + mEventsAdapter.removeItem(info.position); + message.resend(); + return true; case R.id.imdn_infos: LinphoneActivity.instance().goToChatMessageImdnInfos(getRemoteSipUri(), messageId); return true; diff --git a/src/android/org/linphone/firebase/FirebaseMessaging.java b/src/android/org/linphone/firebase/FirebaseMessaging.java index f7199d1ef..49cf49271 100644 --- a/src/android/org/linphone/firebase/FirebaseMessaging.java +++ b/src/android/org/linphone/firebase/FirebaseMessaging.java @@ -52,5 +52,4 @@ public class FirebaseMessaging extends FirebaseMessagingService { }); } } - }