From fd9bb71ceb2a3ab42ab518aa544686b8d44008b8 Mon Sep 17 00:00:00 2001 From: Erwan Croze Date: Wed, 18 Jul 2018 11:30:55 +0200 Subject: [PATCH] Adding qrcode decrypt --- res/layout-land/call.xml | 161 +++++++++--------- res/layout/call.xml | 13 +- res/layout/chat.xml | 4 +- res/layout/chatlist.xml | 1 - res/layout/chatlist_cell.xml | 4 +- res/layout/contact.xml | 1 + res/raw/rootca.pem | 34 ++++ src/android/org/linphone/LinphoneManager.java | 1 + .../RemoteProvisioningLoginActivity.java | 42 +---- .../org/linphone/chat/ChatRoomsAdapter.java | 5 +- .../org/linphone/chat/GroupChatFragment.java | 7 - .../org/linphone/chat/GroupInfoFragment.java | 6 +- .../contacts/ContactDetailsFragment.java | 2 +- .../contacts/ContactsListFragment.java | 21 +++ .../linphone/fragments/DialerFragment.java | 5 +- .../org/linphone/ui/ListSelectionHelper.java | 1 + submodules/belle-sip | 2 +- submodules/cmake-builder | 2 +- submodules/linphone | 2 +- 19 files changed, 168 insertions(+), 146 deletions(-) diff --git a/res/layout-land/call.xml b/res/layout-land/call.xml index 819a85c20..7a07d1ac9 100644 --- a/res/layout-land/call.xml +++ b/res/layout-land/call.xml @@ -55,6 +55,7 @@ android:layout_width="match_parent" android:layout_height="60dp" android:gravity="center_horizontal" + android:layout_below="@id/avatar_layout" android:orientation="horizontal"> + android:gravity="center_horizontal" + android:paddingTop="10dp"> + android:src="@drawable/avatar_big_secure1"/> + android:adjustViewBounds="true" + android:contentDescription="@string/content_description_contact_picture" + android:src="@drawable/avatar_mask_border" + android:visibility="gone"/> @@ -125,26 +125,35 @@ + + + android:src="@drawable/pause_big_default"/> + android:contentDescription="@string/content_description_switch_camera" + android:padding="5dp" + android:src="@drawable/switch_camera" + android:visibility="invisible"/> @@ -187,15 +196,15 @@ + android:layout_centerVertical="true" + android:layout_margin="10dp" + android:background="#282727" + android:contentDescription="@string/content_description_numpad" + android:visibility="gone"/> + android:background="@color/colorB" + android:contentDescription="@string/content_description_numpad" + android:padding="15dp" + android:src="@drawable/footer_dialer"/> + android:background="@drawable/hangup" + android:contentDescription="@string/content_description_hang_up" + android:padding="12dp" + android:src="@drawable/call_hangup"/> + android:layout_weight="1" + android:background="@drawable/footer_button"> + android:src="@drawable/footer_chat"/> @@ -265,6 +274,7 @@ android:layout_width="match_parent" android:layout_height="60dp" android:layout_weight="1" + android:background=" #595959 " android:orientation="horizontal"> + android:src="@drawable/camera_default"/> + android:visibility="gone"/> + android:layout_weight="1" + android:contentDescription="@string/content_description_toggle_micro" + android:padding="10dp" + android:src="@drawable/micro_default"/> + android:layout_weight="1" + android:contentDescription="@string/content_description_toggle_speaker" + android:padding="15dp" + android:src="@drawable/speaker_default"/> + android:layout_weight="1" + android:contentDescription="@string/content_description_audio_route" + android:padding="20dp" + android:src="@drawable/routes_default" + android:visibility="gone"/> + android:layout_weight="1" + android:contentDescription="@string/content_description_call_options" + android:padding="15dp" + android:src="@drawable/options_default"/> @@ -370,14 +375,14 @@ + android:padding="5dp" + android:src="@drawable/options_add_call" + android:visibility="invisible"/> diff --git a/res/layout/call.xml b/res/layout/call.xml index 5b537d9b2..4d2d38aac 100644 --- a/res/layout/call.xml +++ b/res/layout/call.xml @@ -322,6 +322,7 @@ android:layout_margin="15dp" android:background="@drawable/history_chat_indicator" android:gravity="center" + android:textColor="#000000" android:visibility="gone"/> @@ -458,16 +459,16 @@ + android:layout_centerVertical="true" + android:layout_marginBottom="10dp" + android:layout_marginTop="50dp" + android:background="#282727" + android:contentDescription="@string/content_description_numpad" + android:visibility="gone"/> diff --git a/res/layout/chat.xml b/res/layout/chat.xml index f9c595a17..da1824cfe 100644 --- a/res/layout/chat.xml +++ b/res/layout/chat.xml @@ -116,7 +116,7 @@ @@ -139,7 +139,7 @@ diff --git a/res/layout/chatlist.xml b/res/layout/chatlist.xml index 4946707a6..c1525fc7c 100644 --- a/res/layout/chatlist.xml +++ b/res/layout/chatlist.xml @@ -23,7 +23,6 @@ android:layout_weight="0.2" android:background="@drawable/toolbar_button" android:contentDescription="@string/content_description_back_call" - android:padding="15dp" android:src="@drawable/call_back" android:visibility="invisible"/> diff --git a/res/layout/chatlist_cell.xml b/res/layout/chatlist_cell.xml index a09176735..acbf53703 100644 --- a/res/layout/chatlist_cell.xml +++ b/res/layout/chatlist_cell.xml @@ -134,8 +134,8 @@ diff --git a/res/raw/rootca.pem b/res/raw/rootca.pem index 3da3abf9f..ecbe0cf1d 100644 --- a/res/raw/rootca.pem +++ b/res/raw/rootca.pem @@ -32,4 +32,38 @@ nxAxhUXBHgNrWdaCf/lassYmIDCkk+yeUwZKBesmoHFBGJtLHT7AtyVVBWzZJ3yH GaMnP7s9WuhmFEFVK1lrQ/VRDacfQUh8KfV3goRdLb69FA/lrNCn2+1aNVBOCeGQ n1N2bAvaw595UOLcVhRyuVXnlSgX9gtYuxYz+3SUXIU4eORXb4xhIUEMK8PS2C2f iYY5TczBWGgvDQuxUXZy +-----END CERTIFICATE----- +-----BEGIN CERTIFICATE----- +MIIF6TCCA9GgAwIBAgIJANLYkr+mc5rUMA0GCSqGSIb3DQEBCwUAMIGKMQswCQYD +VQQGEwJGUjEOMAwGA1UECAwFUGFyaXMxDjAMBgNVBAcMBVBhcmlzMQ8wDQYDVQQK +DAZPcmFuZ2UxDzANBgNVBAsMBk9yYW5nZTEVMBMGA1UEAwwMbXNpb3JhbmdlX2Nh +MSIwIAYJKoZIhvcNAQkBFhNhZG1pbkBtc2lvcmFuZ2UuY29tMB4XDTE4MDcwMzE0 +NDkwMFoXDTIwMDcwMjE0NDkwMFowgYoxCzAJBgNVBAYTAkZSMQ4wDAYDVQQIDAVQ +YXJpczEOMAwGA1UEBwwFUGFyaXMxDzANBgNVBAoMBk9yYW5nZTEPMA0GA1UECwwG +T3JhbmdlMRUwEwYDVQQDDAxtc2lvcmFuZ2VfY2ExIjAgBgkqhkiG9w0BCQEWE2Fk +bWluQG1zaW9yYW5nZS5jb20wggIiMA0GCSqGSIb3DQEBAQUAA4ICDwAwggIKAoIC +AQCcI6+wShADEtpFR2eBgtbAo8ENH2/ptFy9HRMAEPtNlkQ12seN+563UTnvx2vf ++YSDyt754NaKWpsLgZUuxK1ykBEJQ7DDMYMAtxOCUsyox5SE8S26FJW1tubeDnv0 +idtulPLKPdydZxBdgalzEUuJUKo7Th3z9ImZTzoB9WaumSt3QRg0P74K70PiOD+c +ozJMqFpspSUnFG/ova4REKMyi8L/hbIpDIiTbQNah9ZDJQbjy/gqIWxyW4MavWJW +SDv2UMw7c1/+WmjA7rapUZfknAxzuYpJFOlR2B3YpQYNU9aXQrYr1FJ15+WDD+EV +Ig32h1iNAbq0aHTEDHPkE3x4U3eiiF0WzwQV56Fe+zvEztpDS02ZD3ucEFBjr3Om +gE50t8R43RDaqcMM0wbt19IFLOWyb1wMPr8TtTkNU1dHpTKCcjXGiPmgXffsS9bC +3TFnV9JPUjGLvD87fG1iMKBHRSFKnS2btsvt5rchO2817WqsdcmZ+uD8956yWDAu +NzrlqS/JF+VJJq5l7xUrPqNqmPNOUEgwAX632wBlBy3oD4B3kK1MPhDhgot5adNt +Yp6LkIHDgOdWDQsq6IZar85E7JofQ6UrKqYd6wSMBKM+mFeguAAyikuch4Gl7dBn +jcuiqHDEStdBWnYu06W9zW9l2G1YZq11A0CaQQds8r9p8wIDAQABo1AwTjAdBgNV +HQ4EFgQU58EXB5qMd3swbax0hPskQB8CWoIwHwYDVR0jBBgwFoAU58EXB5qMd3sw +bax0hPskQB8CWoIwDAYDVR0TBAUwAwEB/zANBgkqhkiG9w0BAQsFAAOCAgEAXcr0 +yahuUjJ2GLNO8wgnzuNFlhpC/0SYdtfr3RQHwg2RrNFuTEySbb/TUWcDbg/efG52 +mYPFbGplV4QF0LN1ekPtMgsH3IYlQZYDEPpTZktGXizbzPKgTFnFlR3NJGNu61Oh +s78+a8R4HSZuvIeBwmUz1V8i0VxfheSWA6uK2+qsw5JTsAXZT2w6mqHvYlcr401k +H1vAdZdwaVB+qUUgFS8qcXLB+FTzps8QFyfuXbjI3nTIbvU4ugPEET+kZuaeXFsK +fhzd7BpJmhZVnDTX3Jpy6dd5Ng5GSSTih1A7j34UMAd9abKhYGfTDdGXp8NWA/Bq +tPHzHNOvwfHixYl52bLuKD10ocGUXN4XynGyqcFA2ihZnWB0fx+DAonQJ9EtCch5 +hlQqKEMmNKWpp3+3t8YceNghbjZ/WYqmsWOyrR8Y+um1yweYQU/irO+tHAjwqcu9 +dTNceINEdf2tPjy4jYDWQoNRxUF5E7FSlz0uZp05NuPEAn5FTLWMQfESTV9sXDQE +/C1W/KayMrBDtbRp3WZmZqcwCyvJTbpFVmgkGGniIyRmEm7wjxVKglh7BhkwUMW2 +fH0KjsF0C+9tkmY7G1gRVd/gThgIZJukj4esAaDMCRhFf4/nek3WALYujXVYGXQ0 +i5nC4AV21JrkVePvpJvA53W5ygfm6iEuDmJna8M= -----END CERTIFICATE----- \ No newline at end of file diff --git a/src/android/org/linphone/LinphoneManager.java b/src/android/org/linphone/LinphoneManager.java index b6af9eb4c..512f5fc22 100644 --- a/src/android/org/linphone/LinphoneManager.java +++ b/src/android/org/linphone/LinphoneManager.java @@ -1602,6 +1602,7 @@ public class LinphoneManager implements CoreListener, SensorEventListener, Accou LinphonePreferences prefs = LinphonePreferences.instance(); if (state == ConfiguringState.Successful) { + if (lc.getFriendsLists() != null) lc.removeFriendList(lc.getFriendsLists()[0]); if (prefs.isProvisioningLoginViewEnabled()) { ProxyConfig proxyConfig = lc.createProxyConfig(); Address addr = proxyConfig.getIdentityAddress(); diff --git a/src/android/org/linphone/assistant/RemoteProvisioningLoginActivity.java b/src/android/org/linphone/assistant/RemoteProvisioningLoginActivity.java index 4752b6af1..8fb090d11 100644 --- a/src/android/org/linphone/assistant/RemoteProvisioningLoginActivity.java +++ b/src/android/org/linphone/assistant/RemoteProvisioningLoginActivity.java @@ -357,53 +357,28 @@ public class RemoteProvisioningLoginActivity extends Activity implements OnClick private boolean decryptQrcode() { try { - /*byte[] unBased64Data = qrcodeString.getBytes(); + byte[] unBased64Data = qrcodeString.getBytes(); ByteArrayInputStream inputStream = new ByteArrayInputStream(unBased64Data); byte[] contentToDecrypt = new byte[unBased64Data.length]; inputStream.read(contentToDecrypt); - BigInteger saltHex = new BigInteger(, 16); + BigInteger saltHex = new BigInteger("F000000000000000", 16); BigInteger ivHex = new BigInteger("F58B8C9A49B321DBA000000000000000", 16); byte[] saltByte = removeUselessByte(saltHex.toByteArray(), 8); byte[] ivByte = removeUselessByte(ivHex.toByteArray(), 16); - SecretKeyFactory factory = SecretKeyFactory.getInstance("PBEwithMD5AND128BITAES-CBC-OPENSSL"); + SecretKeyFactory factory = SecretKeyFactory.getInstance("PBKDF2WithHmacSHA256"); KeySpec keySpec = new PBEKeySpec(code_sms.getText().toString().toCharArray(), saltByte, 10000, 128); SecretKey tmpSecretKey = factory.generateSecret(keySpec); SecretKeySpec secretKeySpec = new SecretKeySpec(tmpSecretKey.getEncoded(), "AES"); - Cipher cipher = Cipher.getInstance("AES/CBC/NoPadding"); + Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); cipher.init(Cipher.DECRYPT_MODE, secretKeySpec, new IvParameterSpec(ivByte)); - remoteUrl = new String(cipher.doFinal(Base64.getDecoder().decode(contentToDecrypt)));*/ - final byte[] pass = code_sms.getText().toString().getBytes(StandardCharsets.US_ASCII); - - final Base64.Decoder decoder = Base64.getDecoder(); - final byte[] inBytes = decoder.decode(qrcodeString.getBytes()); - - final byte[] salt = "F000000000000000".getBytes(StandardCharsets.US_ASCII); - - final byte[] passAndSalt = concat(pass, salt); - - byte[] hash = new byte[0]; - byte[] keyAndIv = new byte[0]; - for (int i = 0; i < 3; i++) { - final byte[] data = concat(hash, passAndSalt); - final MessageDigest md = MessageDigest.getInstance("MD5"); - hash = md.digest(data); - keyAndIv = concat(keyAndIv, hash); - } - - final byte[] keyValue = Arrays.copyOfRange(keyAndIv, 0, 32); - final byte[] iv = Arrays.copyOfRange(keyAndIv, 32, 48); - final Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding"); - final SecretKeySpec key = new SecretKeySpec(keyValue, "AES"); - cipher.init(Cipher.DECRYPT_MODE, key, new IvParameterSpec(iv)); - final byte[] clear = cipher.doFinal(inBytes, 16, inBytes.length - 16); - remoteUrl = new String(clear, StandardCharsets.ISO_8859_1); + remoteUrl = new String(cipher.doFinal(Base64.getDecoder().decode(contentToDecrypt))); } catch (Exception ex) { Toast.makeText(RemoteProvisioningLoginActivity.this, "Code mauvais", Toast.LENGTH_LONG).show(); Log.e("RemoteProvisioningLoginActivity: Decrypt problem: " + ex); @@ -413,13 +388,6 @@ public class RemoteProvisioningLoginActivity extends Activity implements OnClick return true; } - private static byte[] concat(final byte[] a, final byte[] b) { - final byte[] c = new byte[a.length + b.length]; - System.arraycopy(a, 0, c, 0, a.length); - System.arraycopy(b, 0, c, a.length, b.length); - return c; - } - private boolean storeAccount(String url) { LinphonePreferences.instance().setRemoteProvisioningUrl(url); //TODO diff --git a/src/android/org/linphone/chat/ChatRoomsAdapter.java b/src/android/org/linphone/chat/ChatRoomsAdapter.java index 9eb007a44..453f2e05e 100644 --- a/src/android/org/linphone/chat/ChatRoomsAdapter.java +++ b/src/android/org/linphone/chat/ChatRoomsAdapter.java @@ -232,7 +232,7 @@ public class ChatRoomsAdapter extends ListSelectionAdapter { } } - if (chatRoom.limeAvailable()) { + if (LinphoneManager.getLc().limeV2Enabled()) { if (chatRoom.getSecurityLevel() == ChatRoomSecurityLevel.Safe) { holder.contactPicture.setImageResource(R.drawable.avatar_small_secure2); } else if (chatRoom.getSecurityLevel() == ChatRoomSecurityLevel.Unsafe) { @@ -245,7 +245,7 @@ public class ChatRoomsAdapter extends ListSelectionAdapter { } } else { holder.displayName.setText(chatRoom.getSubject()); - if (chatRoom.limeAvailable()) { + if (LinphoneManager.getLc().limeV2Enabled()) { if (chatRoom.getSecurityLevel() == ChatRoomSecurityLevel.Safe) { holder.contactPicture.setImageResource(R.drawable.avatar_group_small_secure2); } else if (chatRoom.getSecurityLevel() == ChatRoomSecurityLevel.Unsafe) { @@ -279,6 +279,7 @@ public class ChatRoomsAdapter extends ListSelectionAdapter { public void onClick(View v) { ChatRoomViewHolder holder = (ChatRoomViewHolder)v.getTag(); holder.delete.setChecked(!holder.delete.isChecked()); + notifyDataSetInvalidated(); } }); holder.unreadMessages.setVisibility(View.GONE); diff --git a/src/android/org/linphone/chat/GroupChatFragment.java b/src/android/org/linphone/chat/GroupChatFragment.java index 8958589ae..61e6a00c7 100644 --- a/src/android/org/linphone/chat/GroupChatFragment.java +++ b/src/android/org/linphone/chat/GroupChatFragment.java @@ -204,10 +204,7 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { mSendMessageButton.setEnabled(mMessageTextToSend.getText().length() > 0 || mFilesUploadLayout.getChildCount() > 0); if (mChatRoom != null && mMessageTextToSend.getText().length() > 0) { - mAttachImageButton.setEnabled(false); mChatRoom.compose(); - } else { - mAttachImageButton.setEnabled(true); } } @@ -645,8 +642,6 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con mFilesUploadLayout.addView(pendingFile); - mAttachImageButton.setEnabled(false); // For now limit file per message to 1 - mMessageTextToSend.setEnabled(false); // For now forbid to send both text and picture at the same time mSendMessageButton.setEnabled(true); } @@ -679,8 +674,6 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con mFilesUploadLayout.addView(pendingImage); - mAttachImageButton.setEnabled(false); // For now limit file per message to 1 - mMessageTextToSend.setEnabled(false); // For now forbid to send both text and picture at the same time mSendMessageButton.setEnabled(true); } diff --git a/src/android/org/linphone/chat/GroupInfoFragment.java b/src/android/org/linphone/chat/GroupInfoFragment.java index 3c3568b7c..ccba86203 100644 --- a/src/android/org/linphone/chat/GroupInfoFragment.java +++ b/src/android/org/linphone/chat/GroupInfoFragment.java @@ -145,11 +145,7 @@ public class GroupInfoFragment extends Fragment implements ChatRoomListener { @Override public void onClick(View view) { if (mIsAlreadyCreatedGroup) { - if (LinphoneActivity.instance().isTablet()) { - LinphoneActivity.instance().goToChat(mGroupChatRoomAddress.asStringUriOnly(), mShareInfos); - } else { - getFragmentManager().popBackStack(); - } + LinphoneActivity.instance().goToChat(mGroupChatRoomAddress.asStringUriOnly(), mShareInfos); } else { LinphoneActivity.instance().goToChatCreator(null, mParticipants, null, true, mShareInfos); } diff --git a/src/android/org/linphone/contacts/ContactDetailsFragment.java b/src/android/org/linphone/contacts/ContactDetailsFragment.java index 00b428c65..a55080fed 100644 --- a/src/android/org/linphone/contacts/ContactDetailsFragment.java +++ b/src/android/org/linphone/contacts/ContactDetailsFragment.java @@ -86,7 +86,7 @@ public class ContactDetailsFragment extends Fragment implements OnClickListener mChatRoom.addListener(mChatRoomCreationListener); Address participants[] = new Address[1]; participants[0] = participant; - mChatRoom.addParticipant(participant); + mChatRoom.addParticipants(participants); } else { room = lc.getChatRoom(participant); LinphoneActivity.instance().goToChat(room.getPeerAddress().asStringUriOnly(), null); diff --git a/src/android/org/linphone/contacts/ContactsListFragment.java b/src/android/org/linphone/contacts/ContactsListFragment.java index 2e99574ff..08ca996bb 100644 --- a/src/android/org/linphone/contacts/ContactsListFragment.java +++ b/src/android/org/linphone/contacts/ContactsListFragment.java @@ -45,6 +45,10 @@ import android.widget.ProgressBar; import android.widget.SectionIndexer; import android.widget.TextView; +import org.linphone.core.Address; +import org.linphone.core.ChatRoomSecurityLevel; +import org.linphone.core.FriendList; +import org.linphone.core.ProxyConfig; import org.linphone.fragments.FragmentsAvailable; import org.linphone.LinphoneManager; import org.linphone.LinphoneUtils; @@ -57,6 +61,8 @@ import java.util.List; import java.util.Locale; import java.util.Map; +import static org.linphone.LinphoneUtils.getSecurityLevelForSipUri; + public class ContactsListFragment extends Fragment implements OnClickListener, OnItemClickListener, ContactsUpdatedListener { private LayoutInflater mInflater; private ListView contactsList; @@ -86,6 +92,8 @@ public class ContactsListFragment extends Fragment implements OnClickListener, O onlyDisplayChatAddress = getArguments().getBoolean("ChatAddressOnly"); } + FriendList test[] = LinphoneManager.getLc().getFriendsLists(); + noSipContact = (TextView) view.findViewById(R.id.noSipContact); noContact = (TextView) view.findViewById(R.id.noContact); @@ -634,6 +642,19 @@ public class ContactsListFragment extends Fragment implements OnClickListener, O } }*/ + ProxyConfig prx = LinphoneManager.getLc().getDefaultProxyConfig(); + Address ourUri = (prx != null) ? prx.getIdentityAddress() : null; + ChatRoomSecurityLevel securityLevel = getSecurityLevelForSipUri(LinphoneManager.getLc(), ourUri, contact.getFriend().getAddress()); + if (securityLevel == ChatRoomSecurityLevel.Safe) { + holder.contactPicture.setImageResource(R.drawable.avatar_big_secure2); + } else if (securityLevel == ChatRoomSecurityLevel.Unsafe) { + holder.contactPicture.setImageResource(R.drawable.avatar_big_unsecure); + } else if (securityLevel == ChatRoomSecurityLevel.Encrypted) { + holder.contactPicture.setImageResource(R.drawable.avatar_big_secure1); + } else { + holder.contactPicture.setImageResource(R.drawable.avatar_medium_unregistered); + } + return view; } diff --git a/src/android/org/linphone/fragments/DialerFragment.java b/src/android/org/linphone/fragments/DialerFragment.java index 08fb7567b..b4cb5515a 100644 --- a/src/android/org/linphone/fragments/DialerFragment.java +++ b/src/android/org/linphone/fragments/DialerFragment.java @@ -203,8 +203,9 @@ public class DialerFragment extends Fragment { mCall.setImageResource(R.drawable.call_transfer); mCall.setExternalClickListener(transferListener); } else { - mCall.setImageResource(R.drawable.call_add); - mCall.resetClickListener(); + mCall.setImageResource(R.drawable.call_alt_start_selected); + //mCall.setImageResource(R.drawable.call_add); + //mCall.resetClickListener(); } mAddContact.setEnabled(true); mAddContact.setImageResource(R.drawable.call_alt_back); diff --git a/src/android/org/linphone/ui/ListSelectionHelper.java b/src/android/org/linphone/ui/ListSelectionHelper.java index 490fc4ef8..fa3c1e535 100644 --- a/src/android/org/linphone/ui/ListSelectionHelper.java +++ b/src/android/org/linphone/ui/ListSelectionHelper.java @@ -138,6 +138,7 @@ public class ListSelectionHelper { mSelectAllButton.setVisibility(View.VISIBLE); mDeselectAllButton.setVisibility(View.GONE); } + mAdapter.notifyDataSetInvalidated(); } private void quitEditionMode() { diff --git a/submodules/belle-sip b/submodules/belle-sip index 0f999ecc3..9d1379872 160000 --- a/submodules/belle-sip +++ b/submodules/belle-sip @@ -1 +1 @@ -Subproject commit 0f999ecc3d304923b6338d3f48d44ac8ddfd9be8 +Subproject commit 9d1379872a6fead9f43d745ae8364d27ce3cf750 diff --git a/submodules/cmake-builder b/submodules/cmake-builder index 456993edd..f58510c8c 160000 --- a/submodules/cmake-builder +++ b/submodules/cmake-builder @@ -1 +1 @@ -Subproject commit 456993eddd5f4724ff2b59487fb57aa5a85d782a +Subproject commit f58510c8ce6cd89dadff2b29574d03b05c6efcc9 diff --git a/submodules/linphone b/submodules/linphone index 1ec7aa506..bdf6f37b1 160000 --- a/submodules/linphone +++ b/submodules/linphone @@ -1 +1 @@ -Subproject commit 1ec7aa506501f5f7605939e361a0f066bde3e1e9 +Subproject commit bdf6f37b10a9d8a8fe040a28816ac8c9374bd601