diff --git a/src/android/org/linphone/CallVideoFragment.java b/src/android/org/linphone/CallVideoFragment.java index 957b60f0e..2adf658be 100644 --- a/src/android/org/linphone/CallVideoFragment.java +++ b/src/android/org/linphone/CallVideoFragment.java @@ -147,10 +147,17 @@ public class CallVideoFragment extends Fragment implements OnGestureListener, On public void switchCamera() { try { - /*int videoDeviceId = LinphoneManager.getLc().getVideoDevice(); - videoDeviceId = (videoDeviceId + 1) % AndroidCameraConfiguration.retrieveCameras().length; - LinphoneManager.getLc().setVideoDevice(videoDeviceId);*/ - Log.e("TODO FIXME switchCamera"); + String currentDevice = LinphoneManager.getLc().getVideoDevice(); + String[] devices = LinphoneManager.getLc().getVideoDevicesList(); + int index = 0; + for (String d : devices) { + if (d == currentDevice) { + break; + } + index++; + } + String newDevice = devices[(index + 1) % devices.length]; + LinphoneManager.getLc().setVideoDevice(newDevice); CallManager.getInstance().updateCall(); diff --git a/src/android/org/linphone/ChatFragment.java b/src/android/org/linphone/ChatFragment.java index 76178bec5..cd1e68dbf 100644 --- a/src/android/org/linphone/ChatFragment.java +++ b/src/android/org/linphone/ChatFragment.java @@ -112,7 +112,7 @@ interface ChatUpdatedListener { void onChatUpdated(); } -public class ChatFragment extends Fragment implements OnClickListener, ChatMessageListener, ContactsUpdatedListener{ +public class ChatFragment extends Fragment implements OnClickListener, ChatMessageListener, ContactsUpdatedListener { private static final int ADD_PHOTO = 1337; private static final int MENU_DELETE_MESSAGE = 0; private static final int MENU_PICTURE_SMALL = 2; diff --git a/src/android/org/linphone/ContactsManager.java b/src/android/org/linphone/ContactsManager.java index 2d278cc39..9f1feb780 100644 --- a/src/android/org/linphone/ContactsManager.java +++ b/src/android/org/linphone/ContactsManager.java @@ -289,7 +289,7 @@ public class ContactsManager extends ContentObserver { } else { if (friend.getRefKey() != null) { // Friend has a refkey and but no LinphoneContact => represents a native contact stored in db from a previous version of Linphone, remove it - //lc.removeFriend(friend); //TODO FIXME + list.removeFriend(friend); } else { // No refkey so it's a standalone contact contact = new LinphoneContact(); @@ -359,7 +359,9 @@ public class ContactsManager extends ContentObserver { String id = contact.getAndroidId(); if (id != null && !nativeIds.contains(id)) { // Has been removed since last fetch - //lc.removeFriend(contact.getFriend()); //TODO FIXME + for (FriendList list : lc.getFriendsLists()) { + list.removeFriend(contact.getFriend()); + } contacts.remove(contact); } } diff --git a/src/android/org/linphone/LinphoneContact.java b/src/android/org/linphone/LinphoneContact.java index aa12ccee9..82d848e0e 100644 --- a/src/android/org/linphone/LinphoneContact.java +++ b/src/android/org/linphone/LinphoneContact.java @@ -30,6 +30,7 @@ import org.linphone.core.Core; import org.linphone.core.CoreException; import org.linphone.core.Friend; import org.linphone.core.Friend.SubscribePolicy; +import org.linphone.core.FriendList; import org.linphone.core.PresenceBasicStatus; import org.linphone.core.PresenceModel; import org.linphone.mediastream.Log; @@ -486,8 +487,11 @@ public class LinphoneContact implements Serializable, Comparable