From aaf4af3b265b91a518ee5d5c3a330fd497b02884 Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Tue, 13 Aug 2013 12:11:15 +0200 Subject: [PATCH] Added boolean to disable chat message notification + fix copy/paste in chat if using liblinphone storage --- res/values/non_localizable_custom.xml | 1 + src/org/linphone/ChatFragment.java | 2 +- src/org/linphone/ChatStorage.java | 8 ++++++-- src/org/linphone/LinphoneManager.java | 4 +++- 4 files changed, 11 insertions(+), 4 deletions(-) diff --git a/res/values/non_localizable_custom.xml b/res/values/non_localizable_custom.xml index 64d0cfc76..e9436e0a4 100644 --- a/res/values/non_localizable_custom.xml +++ b/res/values/non_localizable_custom.xml @@ -61,6 +61,7 @@ true false false + false false false diff --git a/src/org/linphone/ChatFragment.java b/src/org/linphone/ChatFragment.java index 4e3e8b0cb..da4a611f5 100644 --- a/src/org/linphone/ChatFragment.java +++ b/src/org/linphone/ChatFragment.java @@ -606,7 +606,7 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC } private void copyTextMessageToClipboard(int id) { - String msg = LinphoneActivity.instance().getChatStorage().getTextMessageForId(id); + String msg = LinphoneActivity.instance().getChatStorage().getTextMessageForId(chatRoom, id); if (msg != null) { Compatibility.copyTextToClipboard(getActivity(), msg); LinphoneActivity.instance().displayCustomToast(getString(R.string.text_copied_to_clipboard), Toast.LENGTH_SHORT); diff --git a/src/org/linphone/ChatStorage.java b/src/org/linphone/ChatStorage.java index 666e2f004..90bc8a4bb 100644 --- a/src/org/linphone/ChatStorage.java +++ b/src/org/linphone/ChatStorage.java @@ -295,11 +295,15 @@ public class ChatStorage { return chatMessages; } - public String getTextMessageForId(int id) { + public String getTextMessageForId(LinphoneChatRoom chatroom, int id) { String message = null; if (useNativeAPI) { - //TODO + LinphoneChatMessage[] history = chatroom.getHistory(); + if (history.length > id-1) { + LinphoneChatMessage msg = history[id-1]; + message = msg.getText(); + } } else { Cursor c = db.query(TABLE_NAME, null, "id LIKE " + id, null, null, null, null); diff --git a/src/org/linphone/LinphoneManager.java b/src/org/linphone/LinphoneManager.java index c73704e95..d644087b5 100644 --- a/src/org/linphone/LinphoneManager.java +++ b/src/org/linphone/LinphoneManager.java @@ -1152,7 +1152,9 @@ public class LinphoneManager implements LinphoneCoreListener { try { LinphoneUtils.findUriPictureOfContactAndSetDisplayName(from, mServiceContext.getContentResolver()); - //LinphoneService.instance().displayMessageNotification(from.asStringUriOnly(), from.getDisplayName(), notificationText); + if (!mServiceContext.getResources().getBoolean(R.bool.disable_chat__message_notification)) { + LinphoneService.instance().displayMessageNotification(from.asStringUriOnly(), from.getDisplayName(), textMessage); + } } catch (Exception e) { } for (LinphoneSimpleListener listener : getSimpleListeners(LinphoneOnMessageReceivedListener.class)) {