From c07b81aff4c7e67d442459e6ea56b354b2e0e8a2 Mon Sep 17 00:00:00 2001 From: Erwan Croze Date: Fri, 21 Sep 2018 14:11:21 +0200 Subject: [PATCH] Fix lime2 bug --- .../org/linphone/call/CallActivity.java | 14 ++++++---- .../org/linphone/chat/ChatRoomsAdapter.java | 21 ++++++++++----- .../org/linphone/chat/GroupChatFragment.java | 27 ++++++++++++------- submodules/belle-sip | 2 +- submodules/lime | 2 +- submodules/linphone | 2 +- 6 files changed, 45 insertions(+), 23 deletions(-) diff --git a/src/android/org/linphone/call/CallActivity.java b/src/android/org/linphone/call/CallActivity.java index 7d79c6651..c26be0380 100644 --- a/src/android/org/linphone/call/CallActivity.java +++ b/src/android/org/linphone/call/CallActivity.java @@ -60,6 +60,7 @@ import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; +import org.linphone.core.ZrtpPeerStatus; import org.linphone.receivers.BluetoothManager; import org.linphone.contacts.ContactsManager; import org.linphone.contacts.LinphoneContact; @@ -97,6 +98,8 @@ import java.util.List; import java.util.Timer; import java.util.TimerTask; +import static org.linphone.LinphoneUtils.getZrtpStatus; + public class CallActivity extends LinphoneGenericActivity implements OnClickListener, ActivityCompat.OnRequestPermissionsResultCallback { private final static int SECONDS_BEFORE_HIDING_CONTROLS = 4000; private final static int SECONDS_BEFORE_DENYING_CALL_UPDATE = 30000; @@ -1364,15 +1367,16 @@ public class CallActivity extends LinphoneGenericActivity implements OnClickList //background.setVisibility(View.VISIBLE); } - if (mediaEncryption == MediaEncryption.SRTP || (mediaEncryption == MediaEncryption.ZRTP && call.getAuthenticationTokenVerified()) || mediaEncryption == MediaEncryption.DTLS) { + ZrtpPeerStatus zrtpStatus = getZrtpStatus(LinphoneManager.getLc(), call.getRemoteAddress().asStringUriOnly()); + if (zrtpStatus == ZrtpPeerStatus.Valid) { encryption.setImageResource(R.drawable.security_button_default); contactPicture.setImageResource(R.drawable.avatar_big_secure2); - } else if (mediaEncryption == MediaEncryption.ZRTP && !call.getAuthenticationTokenVerified()) { - encryption.setImageResource(R.drawable.security_button1_default); - contactPicture.setImageResource(R.drawable.avatar_big_secure1); - } else { + } else if (zrtpStatus == ZrtpPeerStatus.Invalid) { encryption.setImageResource(R.drawable.security_button1_over); contactPicture.setImageResource(R.drawable.avatar_big_unsecure); + } else { + encryption.setImageResource(R.drawable.security_button1_default); + contactPicture.setImageResource(R.drawable.avatar_big_secure1); } if (mediaEncryption == MediaEncryption.ZRTP) { diff --git a/src/android/org/linphone/chat/ChatRoomsAdapter.java b/src/android/org/linphone/chat/ChatRoomsAdapter.java index fe735fe1c..c4a71e197 100644 --- a/src/android/org/linphone/chat/ChatRoomsAdapter.java +++ b/src/android/org/linphone/chat/ChatRoomsAdapter.java @@ -47,6 +47,7 @@ import org.linphone.core.ChatRoomSecurityLevel; import org.linphone.core.EventLog; import org.linphone.core.PresenceActivity; import org.linphone.core.PresenceModel; +import org.linphone.core.ZrtpPeerStatus; import org.linphone.ui.ListSelectionAdapter; import org.linphone.ui.ListSelectionHelper; @@ -57,6 +58,7 @@ import java.util.Comparator; import java.util.List; import static android.text.format.DateUtils.isToday; +import static org.linphone.LinphoneUtils.getZrtpStatus; import static org.linphone.LinphoneUtils.hasContentFileSharing; public class ChatRoomsAdapter extends ListSelectionAdapter { @@ -264,15 +266,22 @@ public class ChatRoomsAdapter extends ListSelectionAdapter { } else if (level == ChatRoomSecurityLevel.Encrypted) { holder.contactPicture.setImageResource(R.drawable.avatar_small_secure1); } else { - if (!ContactsManager.getInstance().isContactPresenceDisabled() && contact != null && contact.getFriend() != null) { - PresenceModel presenceModel = contact.getFriend().getPresenceModel(); - if (presenceModel != null) { - holder.contactPicture.setImageResource(R.drawable.avatar_medium_secure1); + ZrtpPeerStatus zrtpStatus = getZrtpStatus(LinphoneManager.getLc(), contactAddress.asStringUriOnly()); + if (zrtpStatus == ZrtpPeerStatus.Valid) { + holder.contactPicture.setImageResource(R.drawable.avatar_medium_secure2); + } else if (zrtpStatus == ZrtpPeerStatus.Invalid) { + holder.contactPicture.setImageResource(R.drawable.avatar_medium_unsecure); + } else { + if (!ContactsManager.getInstance().isContactPresenceDisabled() && contact != null && contact.getFriend() != null) { + PresenceModel presenceModel = contact.getFriend().getPresenceModel(); + if (presenceModel != null) { + holder.contactPicture.setImageResource(R.drawable.avatar_medium_secure1); + } else { + holder.contactPicture.setImageResource(R.drawable.avatar_medium_unregistered); + } } else { holder.contactPicture.setImageResource(R.drawable.avatar_medium_unregistered); } - } else { - holder.contactPicture.setImageResource(R.drawable.avatar_medium_unregistered); } } } diff --git a/src/android/org/linphone/chat/GroupChatFragment.java b/src/android/org/linphone/chat/GroupChatFragment.java index 8b76af610..2983ce3b0 100644 --- a/src/android/org/linphone/chat/GroupChatFragment.java +++ b/src/android/org/linphone/chat/GroupChatFragment.java @@ -78,6 +78,7 @@ import org.linphone.contacts.ContactsUpdatedListener; import org.linphone.core.PresenceActivity; import org.linphone.core.PresenceModel; import org.linphone.core.Reason; +import org.linphone.core.ZrtpPeerStatus; import org.linphone.fragments.FragmentsAvailable; import org.linphone.mediastream.Log; import org.linphone.ui.ListSelectionHelper; @@ -87,6 +88,7 @@ import java.util.ArrayList; import java.util.List; import static android.content.Context.INPUT_METHOD_SERVICE; +import static org.linphone.LinphoneUtils.getZrtpStatus; import static org.linphone.fragments.FragmentsAvailable.CHAT; public class GroupChatFragment extends Fragment implements ChatRoomListener, ContactsUpdatedListener, ListSelectionHelper.DeleteListener { @@ -542,23 +544,30 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con } else { mRoomLabel.setText(mParticipants.get(0).getFullName()); } - if (level == ChatRoomSecurityLevel.ClearText) { - avatarTop.setImageResource(R.drawable.avatar_small_unregistered); + if (level == ChatRoomSecurityLevel.Unsafe) { + avatarTop.setImageResource(R.drawable.avatar_small_unsecure); } else if (level == ChatRoomSecurityLevel.Encrypted) { avatarTop.setImageResource(R.drawable.avatar_small_secure1); } else if (level == ChatRoomSecurityLevel.Safe) { avatarTop.setImageResource(R.drawable.avatar_small_secure2); } else { - LinphoneContact c = ContactsManager.getInstance().findContactFromAddress(mChatRoom.getParticipants()[0].getAddress()); - if (!ContactsManager.getInstance().isContactPresenceDisabled() && c != null && c.getFriend() != null) { - PresenceModel presenceModel = c.getFriend().getPresenceModel(); - if (presenceModel != null) { - avatarTop.setImageResource(R.drawable.avatar_medium_secure1); + ZrtpPeerStatus zrtpStatus = getZrtpStatus(LinphoneManager.getLc(), mRemoteParticipantAddress.asStringUriOnly()); + if (zrtpStatus == ZrtpPeerStatus.Valid) { + avatarTop.setImageResource(R.drawable.avatar_medium_secure2); + } else if (zrtpStatus == ZrtpPeerStatus.Invalid) { + avatarTop.setImageResource(R.drawable.avatar_medium_unsecure); + } else { + LinphoneContact c = ContactsManager.getInstance().findContactFromAddress(mChatRoom.getParticipants()[0].getAddress()); + if (!ContactsManager.getInstance().isContactPresenceDisabled() && c != null && c.getFriend() != null) { + PresenceModel presenceModel = c.getFriend().getPresenceModel(); + if (presenceModel != null) { + avatarTop.setImageResource(R.drawable.avatar_medium_secure1); + } else { + avatarTop.setImageResource(R.drawable.avatar_medium_unregistered); + } } else { avatarTop.setImageResource(R.drawable.avatar_medium_unregistered); } - } else { - avatarTop.setImageResource(R.drawable.avatar_medium_unregistered); } } } else { diff --git a/submodules/belle-sip b/submodules/belle-sip index eff062756..c9979fe37 160000 --- a/submodules/belle-sip +++ b/submodules/belle-sip @@ -1 +1 @@ -Subproject commit eff062756d4e0eeba1fb76b61bce013478326f88 +Subproject commit c9979fe3766f7961207a2a792fa409da4ddf5dd1 diff --git a/submodules/lime b/submodules/lime index 867e55f4e..a251d7368 160000 --- a/submodules/lime +++ b/submodules/lime @@ -1 +1 @@ -Subproject commit 867e55f4e0325836a16b7a3e474d03bf1a7a73fe +Subproject commit a251d7368a3ffe0d11b9f6d8abd52128af72db0d diff --git a/submodules/linphone b/submodules/linphone index 366f1a596..2babd0e32 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 366f1a596c38f85433092d2cdc50beeb084fd569 +Subproject commit 2babd0e32f9d978eaa0efad67154883fa70c540d