diff --git a/res/layout-sw533dp-land/chatlist_cell.xml b/res/layout-sw533dp-land/chatlist_cell.xml
index ba8a46342..e4730e0aa 100644
--- a/res/layout-sw533dp-land/chatlist_cell.xml
+++ b/res/layout-sw533dp-land/chatlist_cell.xml
@@ -31,13 +31,21 @@
android:layout_height="match_parent"
android:gravity="center">
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/res/layout/chatlist_cell.xml b/res/layout/chatlist_cell.xml
index c73cac5ec..955b29e26 100644
--- a/res/layout/chatlist_cell.xml
+++ b/res/layout/chatlist_cell.xml
@@ -36,9 +36,17 @@
android:layout_height="wrap_content"
android:layout_centerHorizontal="true">
+
+
+
+
@@ -39,7 +39,7 @@
android:layout_toRightOf="@id/avatar_with_presence"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/delete"
- android:layout_marginLeft="40dp" />
+ android:layout_marginLeft="15dp" />
+
+
+
+
+use_info=0
+use_ipv6=0
+keepalive_period=30000
guess_hostname=1
inc_timeout=15
register_only_when_network_is_up=1
auto_net_state_mon=0
auto_answer_replacing_calls=1
ping_with_options=0
+root_ca=/data/user/0/org.linphone/files/rootca.pem
+verify_server_certs=1
+verify_server_cn=1
+media_encryption=zrtp
+multi_transport_migration_done=1
+in_call_timeout=0
+delayed_timeout=4
+register_only_when_upnp_is_ok=1
+media_encryption_mandatory=1
+sip_port=-1
+sip_tcp_port=-1
+sip_tls_port=-1
+srtp_crypto_suites=AES_CM_256_HMAC_SHA1_80
+default_proxy=0
+rls_uri=sip:rls@sip.example.org
+use_rls_presence=1
+
+[video]
+size=qvga
+device=Android1
+display=1
+capture=1
+
+[app]
+sharing_server=https://www.linphone.org:444/lft.php
+tunnel=disabled
+push_notification=1
+animations=0
+show_login_view=1
+debug_popup_magic=#1234
+debug=1
+server_url=http://85.233.205.218:443/xmlrpc
+first_launch=0
+
+[tunnel]
+port=443
[rtp]
audio_rtp_port=7076
@@ -27,16 +60,202 @@ audio_jitt_comp=60
video_jitt_comp=60
nortp_timeout=30
disable_upnp=1
+text_rtp_port=11078
+audio_adaptive_jitt_comp_enabled=1
+video_adaptive_jitt_comp_enabled=1
[sound]
-playback_dev_id=
-ringer_dev_id=
-capture_dev_id=
dtmf_player_amp=0.1
-
-#remove this property for any application that is not Linphone public version itself
ec_calibrator_cool_tones=1
+local_ring=/data/user/0/org.linphone/files/oldphone_mono.wav
+remote_ring=/data/user/0/org.linphone/files/ringback.wav
+playback_gain_db=0.000000
+mic_gain_db=0.000000
+#remove this property for any application that is not Linphone public version itself
[misc]
max_calls=10
-log_collection_upload_server_url=https://www.linphone.org:444/lft.php
\ No newline at end of file
+log_collection_upload_server_url=https://www.linphone.org:444/lft.php
+uuid=3ac65678-272f-47d9-8aff-19950c565687
+friends_migration_done=1
+user_certificates_path=/data/user/0/org.linphone/files
+file_transfer_server_url=https://www.linphone.org:444/lft.php
+config-uri=https://85.233.205.218/xmlrpc?username=sylvain&password=cotcot&domain=sip.orangecyberdefense.com
+
+[audio_codec_0]
+mime=opus
+rate=48000
+channels=2
+enabled=1
+
+[audio_codec_1]
+mime=SILK
+rate=16000
+channels=1
+enabled=1
+
+[audio_codec_2]
+mime=speex
+rate=16000
+channels=1
+enabled=1
+
+[audio_codec_3]
+mime=speex
+rate=8000
+channels=1
+enabled=1
+
+[audio_codec_4]
+mime=PCMU
+rate=8000
+channels=1
+enabled=1
+
+[audio_codec_5]
+mime=PCMA
+rate=8000
+channels=1
+enabled=1
+
+[audio_codec_6]
+mime=GSM
+rate=8000
+channels=1
+enabled=0
+
+[audio_codec_7]
+mime=G722
+rate=8000
+channels=1
+enabled=0
+
+[audio_codec_8]
+mime=iLBC
+rate=8000
+channels=1
+enabled=0
+
+[audio_codec_9]
+mime=mpeg4-generic
+rate=16000
+channels=1
+enabled=0
+
+[audio_codec_10]
+mime=mpeg4-generic
+rate=22050
+channels=1
+enabled=0
+
+[audio_codec_11]
+mime=mpeg4-generic
+rate=32000
+channels=1
+enabled=0
+
+[audio_codec_12]
+mime=mpeg4-generic
+rate=44100
+channels=1
+enabled=0
+
+[audio_codec_13]
+mime=mpeg4-generic
+rate=48000
+channels=1
+enabled=0
+
+[audio_codec_14]
+mime=iSAC
+rate=16000
+channels=1
+enabled=0
+
+[audio_codec_15]
+mime=speex
+rate=32000
+channels=1
+enabled=0
+
+[audio_codec_16]
+mime=SILK
+rate=8000
+channels=1
+enabled=0
+
+[audio_codec_17]
+mime=SILK
+rate=12000
+channels=1
+enabled=0
+
+[audio_codec_18]
+mime=SILK
+rate=24000
+channels=1
+enabled=0
+
+[audio_codec_19]
+mime=L16
+rate=44100
+channels=2
+enabled=0
+
+[audio_codec_20]
+mime=L16
+rate=44100
+channels=1
+enabled=0
+
+[video_codec_0]
+mime=VP8
+rate=90000
+enabled=1
+
+[video_codec_1]
+mime=H264
+rate=90000
+enabled=1
+recv_fmtp=profile-level-id=42801F
+
+
+[friend_0]
+url="Jean Dupont"
+
+[friend_1]
+url="Margaux Clerc"
+
+[friend_2]
+url="Jehan Monnier"
+
+[friend_3]
+url="Marielle Rellier"
+
+[friend_4]
+url="Simon Morlat"
+
+[friend_5]
+url="François Grisez"
+
+[proxy_0]
+reg_proxy=
+reg_route=
+reg_identity=sip:sylvain@sip.linphone.org
+quality_reporting_enabled=0
+quality_reporting_interval=0
+reg_expires=3600
+reg_sendregister=1
+publish=1
+avpf=-1
+avpf_rr_interval=5
+dial_escape_plus=0
+privacy=32768
+refkey=push_notification
+publish_expires=600
+
+[auth_info_0]
+username=sylvain
+passwd=lucifer
+realm=sip.linphone.org
+domain=sip.linphone.org
\ No newline at end of file
diff --git a/res/raw/linphonerc_factory b/res/raw/linphonerc_factory
index 785851bef..624d276fd 100644
--- a/res/raw/linphonerc_factory
+++ b/res/raw/linphonerc_factory
@@ -1,24 +1,57 @@
-
-#
-#This file shall not contain path referencing package name, in order to be portable when app is renamed.
-#Paths to resources must be set from LinphoneManager, after creating LinphoneCore.
[net]
+download_bw=380
+upload_bw=380
mtu=1300
-
-[app]
-animations=0
-show_login_view=1
-debug_popup_magic=#1234
-debug=1
-server_url=http://85.233.205.218:443/xmlrpc
+firewall_policy=ice
+stun_server=85.233.205.218
[sip]
+contact="Linphone Android"
+use_info=0
+use_ipv6=0
+keepalive_period=30000
guess_hostname=1
inc_timeout=15
register_only_when_network_is_up=1
auto_net_state_mon=0
auto_answer_replacing_calls=1
ping_with_options=0
+root_ca=/data/user/0/org.linphone/files/rootca.pem
+verify_server_certs=1
+verify_server_cn=1
+media_encryption=zrtp
+multi_transport_migration_done=1
+in_call_timeout=0
+delayed_timeout=4
+register_only_when_upnp_is_ok=1
+media_encryption_mandatory=1
+sip_port=-1
+sip_tcp_port=-1
+sip_tls_port=-1
+srtp_crypto_suites=AES_CM_256_HMAC_SHA1_80
+default_proxy=0
+rls_uri=sip:rls@sip.example.org
+use_rls_presence=1
+
+[video]
+size=qvga
+device=Android1
+display=1
+capture=1
+
+[app]
+sharing_server=https://www.linphone.org:444/lft.php
+tunnel=disabled
+push_notification=1
+animations=0
+show_login_view=1
+debug_popup_magic=#1234
+debug=1
+server_url=http://85.233.205.218:443/xmlrpc
+first_launch=0
+
+[tunnel]
+port=443
[rtp]
audio_rtp_port=7076
@@ -27,17 +60,204 @@ audio_jitt_comp=60
video_jitt_comp=60
nortp_timeout=30
disable_upnp=1
+text_rtp_port=11078
+audio_adaptive_jitt_comp_enabled=1
+video_adaptive_jitt_comp_enabled=1
[sound]
-playback_dev_id=
-ringer_dev_id=
-capture_dev_id=
dtmf_player_amp=0.1
-
-#remove this property for any application that is not Linphone public version itself
ec_calibrator_cool_tones=1
-
+local_ring=/data/user/0/org.linphone/files/oldphone_mono.wav
+remote_ring=/data/user/0/org.linphone/files/ringback.wav
+playback_gain_db=0.000000
+mic_gain_db=0.000000
+#remove this property for any application that is not Linphone public version itself
[misc]
max_calls=10
-log_collection_upload_server_url=https://www.linphone.org:444/lft.php
\ No newline at end of file
+log_collection_upload_server_url=https://www.linphone.org:444/lft.php
+uuid=3ac65678-272f-47d9-8aff-19950c565687
+friends_migration_done=1
+user_certificates_path=/data/user/0/org.linphone/files
+file_transfer_server_url=https://www.linphone.org:444/lft.php
+config-uri=https://85.233.205.218/xmlrpc?username=sylvain&password=cotcot&domain=sip.orangecyberdefense.com
+
+[audio_codec_0]
+mime=opus
+rate=48000
+channels=2
+enabled=1
+
+[audio_codec_1]
+mime=SILK
+rate=16000
+channels=1
+enabled=1
+
+[audio_codec_2]
+mime=speex
+rate=16000
+channels=1
+enabled=1
+
+[audio_codec_3]
+mime=speex
+rate=8000
+channels=1
+enabled=1
+
+[audio_codec_4]
+mime=PCMU
+rate=8000
+channels=1
+enabled=1
+
+[audio_codec_5]
+mime=PCMA
+rate=8000
+channels=1
+enabled=1
+
+[audio_codec_6]
+mime=GSM
+rate=8000
+channels=1
+enabled=0
+
+[audio_codec_7]
+mime=G722
+rate=8000
+channels=1
+enabled=0
+
+[audio_codec_8]
+mime=iLBC
+rate=8000
+channels=1
+enabled=0
+
+[audio_codec_9]
+mime=mpeg4-generic
+rate=16000
+channels=1
+enabled=0
+
+[audio_codec_10]
+mime=mpeg4-generic
+rate=22050
+channels=1
+enabled=0
+
+[audio_codec_11]
+mime=mpeg4-generic
+rate=32000
+channels=1
+enabled=0
+
+[audio_codec_12]
+mime=mpeg4-generic
+rate=44100
+channels=1
+enabled=0
+
+[audio_codec_13]
+mime=mpeg4-generic
+rate=48000
+channels=1
+enabled=0
+
+[audio_codec_14]
+mime=iSAC
+rate=16000
+channels=1
+enabled=0
+
+[audio_codec_15]
+mime=speex
+rate=32000
+channels=1
+enabled=0
+
+[audio_codec_16]
+mime=SILK
+rate=8000
+channels=1
+enabled=0
+
+[audio_codec_17]
+mime=SILK
+rate=12000
+channels=1
+enabled=0
+
+[audio_codec_18]
+mime=SILK
+rate=24000
+channels=1
+enabled=0
+
+[audio_codec_19]
+mime=L16
+rate=44100
+channels=2
+enabled=0
+
+[audio_codec_20]
+mime=L16
+rate=44100
+channels=1
+enabled=0
+
+[video_codec_0]
+mime=VP8
+rate=90000
+enabled=1
+
+[video_codec_1]
+mime=H264
+rate=90000
+enabled=1
+recv_fmtp=profile-level-id=42801F
+
+[friend_0]
+url="Sylvain Berfini"
+
+[friend_1]
+url="Margaux Clerc"
+
+[friend_2]
+url="Jehan Monnier"
+
+[friend_3]
+url="Marielle Rellier"
+
+[friend_4]
+url="Simon Morlat"
+
+[friend_5]
+url="François Grisez"
+
+[friend_5]
+url="L'ami invisible'"
+
+[proxy_0]
+reg_proxy=
+reg_route=
+reg_identity=sip:testios@sip.linphone.org
+quality_reporting_enabled=0
+quality_reporting_interval=0
+reg_expires=3600
+reg_sendregister=1
+publish=1
+avpf=-1
+avpf_rr_interval=5
+dial_escape_plus=0
+privacy=32768
+refkey=push_notification
+publish_expires=600
+
+[auth_info_0]
+username=testios
+passwd=testtest
+realm=sip.linphone.org
+domain=sip.linphone.org
diff --git a/src/org/linphone/ChatFragment.java b/src/org/linphone/ChatFragment.java
index 1d3dedf11..99aeb4791 100644
--- a/src/org/linphone/ChatFragment.java
+++ b/src/org/linphone/ChatFragment.java
@@ -23,8 +23,10 @@ import java.io.ByteArrayOutputStream;
import java.io.File;
import java.util.ArrayList;
import java.util.Arrays;
+import java.util.LinkedHashMap;
import java.util.List;
import java.util.Locale;
+import java.util.Map;
import org.linphone.compatibility.Compatibility;
import org.linphone.core.LinphoneAddress;
@@ -1004,6 +1006,9 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
}
}
+
+
+
private void searchContacts(String search) {
if (search == null || search.length() == 0) {
resultContactsSearch.setAdapter(new SearchContactsListAdapter(null));
@@ -1025,40 +1030,24 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
searchAdapter.notifyDataSetChanged();
}
+
+
class SearchContactsListAdapter extends BaseAdapter {
- private List contacts;
private LayoutInflater mInflater;
+ private List contacts;
+ Map map = new LinkedHashMap();
- SearchContactsListAdapter(List contactsList) {
- mInflater = inflater;
- /* if(contactsList == null){
- contacts = getContactsList();
- } else {
- */ contacts = contactsList;
- // }
- }
+ SearchContactsListAdapter(List contactsList) {
+ contacts = contactsList;
- public ListgetContactsList(){
- List list = new ArrayList();
- /*for(Contact con: ContactsManager.getInstance().getAllContacts()){
- for(String numberOrAddress : con.getNumbersOrAddresses()){
- list.add(new ContactAddress(con, numberOrAddress));
- }
- }
- */return list;
}
public int getCount() {
return contacts.size();
}
- public LinphoneFriend getItem(int position) {
- /* if (contacts == null || position >= contacts.size()) {
- contacts = getContactsList();
- return contacts.get(position);
- } else {
- */ return contacts.get(position);
- // }
+ public LinphoneContact getItem(int position) {
+ return contacts.get(position);
}
public long getItemId(int position) {
@@ -1067,10 +1056,10 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
public View getView(int position, View convertView, ViewGroup parent) {
View view = null;
- LinphoneFriend f;
+ LinphoneContact c;
do {
- f = getItem(position);
- } while (f == null);
+ c = getItem(position);
+ } while (c == null);
if (convertView != null) {
view = convertView;
@@ -1079,18 +1068,18 @@ public class ChatFragment extends Fragment implements OnClickListener, LinphoneC
}
final String a = contact.getFullName();
- final LinphoneContact c = contact;
+ //final LinphoneContact c = contact;
TextView name = (TextView) view.findViewById(R.id.contact_name);
name.setText(c.getFullName());
- final LinphoneAddress laddress = f.getAddress();
+ final String laddress = c.getNumbersOrAddresses().get(0).toString();
view.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
//exitNewConversationMode(c, a, null);
- exitNewConversationMode(laddress.toString());
+ exitNewConversationMode(laddress);
}
});
diff --git a/src/org/linphone/ChatListFragment.java b/src/org/linphone/ChatListFragment.java
index 0763021cd..a5e5ec444 100644
--- a/src/org/linphone/ChatListFragment.java
+++ b/src/org/linphone/ChatListFragment.java
@@ -26,6 +26,7 @@ import org.linphone.core.LinphoneCoreException;
import org.linphone.core.LinphoneCoreFactory;
import org.linphone.core.LinphoneFriend;
import org.linphone.mediastream.Log;
+import org.linphone.ui.AvatarWithPresenceImage;
import android.app.Dialog;
import android.app.ProgressDialog;
@@ -362,6 +363,13 @@ public class ChatListFragment extends Fragment implements OnClickListener, OnIte
String message = "";
Long time;
+ AvatarWithPresenceImage avatarWithPresenceImage = (AvatarWithPresenceImage) view.findViewById(R.id.avatar_with_presence);
+ avatarWithPresenceImage.setFormatAvatarImage(AvatarWithPresenceImage.AVATAR_SMALL);
+ if(contact != null && contact.isLinphoneFriend() && contact.getFriendPresenceModel() != null) {
+ avatarWithPresenceImage.setLinphoneContact(contact);
+ LinphoneActivity.instance().addPresenceUpdatedListener(avatarWithPresenceImage);
+ }
+
//Obiane specification
LinphoneFriend friend = LinphoneManager.getLc().findFriendByAddress(address.asStringUriOnly());
diff --git a/src/org/linphone/ContactDetailsFragment.java b/src/org/linphone/ContactDetailsFragment.java
index 02e7ed2b6..01ca1005a 100644
--- a/src/org/linphone/ContactDetailsFragment.java
+++ b/src/org/linphone/ContactDetailsFragment.java
@@ -19,6 +19,7 @@ Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
*/
import org.linphone.core.LinphoneCore;
import org.linphone.core.LinphoneProxyConfig;
+import org.linphone.ui.AvatarWithPresenceImage;
import android.annotation.SuppressLint;
import android.app.Dialog;
@@ -115,7 +116,14 @@ public class ContactDetailsFragment extends Fragment implements OnClickListener
} else {
contactPicture.setImageResource(R.drawable.avatar);
}
-
+
+ AvatarWithPresenceImage avatarWithPresenceImage = (AvatarWithPresenceImage) view.findViewById(R.id.avatar_with_presence);
+ avatarWithPresenceImage.setFormatAvatarImage(AvatarWithPresenceImage.AVATAR_BIG);
+ if(contact != null && contact.isLinphoneFriend() && contact.getFriendPresenceModel() != null) {
+ avatarWithPresenceImage.setLinphoneContact(contact);
+ LinphoneActivity.instance().addPresenceUpdatedListener(avatarWithPresenceImage);
+ }
+
TextView contactName = (TextView) view.findViewById(R.id.contact_name);
contactName.setText(contact.getFullName());
diff --git a/src/org/linphone/ContactsListFragment.java b/src/org/linphone/ContactsListFragment.java
index 5a7cf550e..fee3035a7 100644
--- a/src/org/linphone/ContactsListFragment.java
+++ b/src/org/linphone/ContactsListFragment.java
@@ -425,16 +425,14 @@ public class ContactsListFragment extends Fragment implements OnClickListener, O
TextView name = (TextView) view.findViewById(R.id.name);
name.setText(contact.getFullName());
- LinearLayout separator = (LinearLayout) view.findViewById(R.id.separator);
- TextView separatorText = (TextView) view.findViewById(R.id.separatorText);
+ TextView separatorText = (TextView) view.findViewById(R.id.separator);
if (getPositionForSection(getSectionForPosition(position)) != position) {
- separator.setVisibility(View.GONE);
+ separatorText.setVisibility(View.GONE);
} else {
- separator.setVisibility(View.VISIBLE);
- separatorText.setText(String.valueOf(contact.getFullName().charAt(0)));
+ separatorText.setVisibility(View.VISIBLE);
}
- ImageView icon = (ImageView) view.findViewById(R.id.contact_picture);
+ /* ImageView icon = (ImageView) view.findViewById(R.id.contact_picture);
if (contact.hasPhoto()) {
LinphoneUtils.setImagePictureFromUri(getActivity(), icon, contact.getPhotoUri(), contact.getThumbnailUri());
} else if (contact.getPhotoUri() != null) {
@@ -442,10 +440,12 @@ public class ContactsListFragment extends Fragment implements OnClickListener, O
} else {
icon.setImageResource(R.drawable.avatar);
}
-
+ */
AvatarWithPresenceImage avatarWithPresenceImage = (AvatarWithPresenceImage) view.findViewById(R.id.avatar_with_presence);
+ avatarWithPresenceImage.setFormatAvatarImage(AvatarWithPresenceImage.AVATAR_SMALL);
if(contact != null && contact.isLinphoneFriend() && contact.getFriendPresenceModel() != null) {
avatarWithPresenceImage.setLinphoneContact(contact);
+ LinphoneActivity.instance().addPresenceUpdatedListener(avatarWithPresenceImage);
}
return view;
diff --git a/src/org/linphone/HistoryDetailFragment.java b/src/org/linphone/HistoryDetailFragment.java
index 20b7c6df8..c6e700423 100644
--- a/src/org/linphone/HistoryDetailFragment.java
+++ b/src/org/linphone/HistoryDetailFragment.java
@@ -24,6 +24,7 @@ import org.linphone.core.LinphoneAddress;
import org.linphone.core.LinphoneCoreException;
import org.linphone.core.LinphoneCoreFactory;
import org.linphone.core.LinphoneFriend;
+import org.linphone.ui.AvatarWithPresenceImage;
import android.annotation.SuppressLint;
import android.app.Fragment;
@@ -43,6 +44,7 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
private ImageView dialBack, chat, addToContacts, back;
private View view;
private ImageView contactPicture;
+ private AvatarWithPresenceImage avatarWithPresenceImage;
private TextView contactName, contactAddress, time, date, callDirection;
private String sipUri, displayName, pictureUri;
@@ -79,7 +81,10 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
contactPicture = (ImageView) view.findViewById(R.id.contact_picture);
contactName = (TextView) view.findViewById(R.id.contact_name);
contactAddress = (TextView) view.findViewById(R.id.contact_address);
-
+
+ avatarWithPresenceImage = (AvatarWithPresenceImage) view.findViewById(R.id.avatar_with_presence);
+ avatarWithPresenceImage.setFormatAvatarImage(AvatarWithPresenceImage.AVATAR_BIG);
+
callDirection = (TextView) view.findViewById(R.id.direction);
time = (TextView) view.findViewById(R.id.time);
@@ -93,12 +98,23 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
private void displayHistory(String status, String callTime, String callDate) {
time.setText(callTime == null ? "" : callTime);
Long longDate = Long.parseLong(callDate);
- date.setText(LinphoneUtils.timestampToHumanDate(getActivity(),longDate,getString(R.string.history_detail_date_format),false));
+ date.setText(LinphoneUtils.timestampToHumanDate(getActivity(), longDate, getString(R.string.history_detail_date_format), false));
- LinphoneAddress lAddress = null;
+ try {
+ LinphoneAddress lAddress = LinphoneCoreFactory.instance().createLinphoneAddress(sipUri);
+ LinphoneContact contact = ContactsManager.getInstance().findContactFromAddress(lAddress);
+ if (contact != null && contact.isLinphoneFriend() && contact.getFriendPresenceModel() != null) {
+ avatarWithPresenceImage.setLinphoneContact(contact);
+ LinphoneActivity.instance().addPresenceUpdatedListener(avatarWithPresenceImage);
+ }
+ } catch(LinphoneCoreException e) {
+ e.printStackTrace();
+ }
+
+ /*LinphoneAddress lAddress = null;
try {
lAddress = LinphoneCoreFactory.instance().createLinphoneAddress(sipUri);
- /* Contact contact = ContactsManager.getInstance().findContactWithAddress(getActivity().getContentResolver(), lAddress);
+ Contact contact = ContactsManager.getInstance().findContactWithAddress(getActivity().getContentResolver(), lAddress);
if (contact != null) {
LinphoneUtils.setImagePictureFromUri(view.getContext(),contactPicture,contact.getPhotoUri(),contact.getThumbnailUri());
@@ -107,10 +123,10 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
contactPicture.setImageResource(R.drawable.avatar);
view.findViewById(R.id.add_contact).setVisibility(View.VISIBLE);
}
- */
+
} catch (LinphoneCoreException e) {
e.printStackTrace();
- }
+ }*/
}
public void changeDisplayedHistory(String sipUri, String displayName, String pictureUri, String status, String callTime, String callDate) {
diff --git a/src/org/linphone/HistoryListFragment.java b/src/org/linphone/HistoryListFragment.java
index 056b75cc5..f3f52420b 100644
--- a/src/org/linphone/HistoryListFragment.java
+++ b/src/org/linphone/HistoryListFragment.java
@@ -28,6 +28,7 @@ import org.linphone.core.LinphoneAddress;
import org.linphone.core.LinphoneCallLog;
import org.linphone.core.LinphoneCallLog.CallStatus;
import org.linphone.core.LinphoneFriend;
+import org.linphone.ui.AvatarWithPresenceImage;
import android.annotation.SuppressLint;
import android.app.Dialog;
@@ -391,6 +392,7 @@ public class HistoryListFragment extends Fragment implements OnClickListener, On
holder.select = (CheckBox) view.findViewById(R.id.delete);
holder.callDirection = (ImageView) view.findViewById(R.id.icon);
holder.contactPicture = (ImageView) view.findViewById(R.id.contact_picture);
+ holder.avatarWithPresenceImage = (AvatarWithPresenceImage) view.findViewById(R.id.avatar_with_presence);
}
final LinphoneCallLog log = mLogs.get(position);
@@ -447,6 +449,12 @@ public class HistoryListFragment extends Fragment implements OnClickListener, On
*/ holder.contact.setText(LinphoneUtils.getAddressDisplayName(address));
// }
+ holder.avatarWithPresenceImage.setFormatAvatarImage(AvatarWithPresenceImage.AVATAR_SMALL);
+ if(c != null && c.isLinphoneFriend() && c.getFriendPresenceModel() != null) {
+ holder.avatarWithPresenceImage.setLinphoneContact(c);
+ LinphoneActivity.instance().addPresenceUpdatedListener(holder.avatarWithPresenceImage);
+ }
+
if (isEditMode) {
holder.select.setVisibility(View.VISIBLE);
holder.select.setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@@ -499,5 +507,6 @@ public class HistoryListFragment extends Fragment implements OnClickListener, On
CheckBox select;
ImageView callDirection;
ImageView contactPicture;
+ AvatarWithPresenceImage avatarWithPresenceImage;
}
}
\ No newline at end of file
diff --git a/src/org/linphone/LinphoneActivity.java b/src/org/linphone/LinphoneActivity.java
index 80f495140..3f939c632 100644
--- a/src/org/linphone/LinphoneActivity.java
+++ b/src/org/linphone/LinphoneActivity.java
@@ -283,6 +283,7 @@ public class LinphoneActivity extends Activity implements OnClickListener, Conta
@Override
public void notifyPresenceReceived(LinphoneCore lc, LinphoneFriend lf) {
for(AvatarWithPresenceImage listener : listeners){
+ Log.e("===>> LinphoneActivity : notifyPresenceReceived : "+lf.getName().toString());
if(listener.isThisFriend(lf)){
listener.updatePresenceIcon(lc, lf);
}
diff --git a/src/org/linphone/LinphoneContact.java b/src/org/linphone/LinphoneContact.java
index 3a8855597..44e351be4 100644
--- a/src/org/linphone/LinphoneContact.java
+++ b/src/org/linphone/LinphoneContact.java
@@ -438,7 +438,7 @@ public class LinphoneContact implements Serializable, Comparable>> updateAvatarPresence status = " + presenceStatus + " - vs basicStatus = " + basicStatus);
if (basicStatus == PresenceBasicStatus.Closed) {
- friendStatus.setImageResource(R.drawable.presence_unregistered);
- } else if (presenceStatus == OnlineStatus.Online.toString()) {
- friendStatus.setImageResource(R.drawable.presence_online);
+ friendStatusSmall.setImageResource(R.drawable.presence_unregistered);
+ friendStatusBig.setImageResource(R.drawable.presence_unregistered);
+ Log.e("===>>> updateAvatarPresence basicStatus == Closed");
+ } else if (presenceModel.getActivity().getType() == PresenceActivityType.TV ) {
+ friendStatusSmall.setImageResource(R.drawable.presence_online);
+ friendStatusBig.setImageResource(R.drawable.presence_online);
} else {
- friendStatus.setImageResource(R.drawable.presence_offline);
+ friendStatusSmall.setImageResource(R.drawable.presence_offline);
+ friendStatusBig.setImageResource(R.drawable.presence_offline);
}
} else{
Log.e("===>>> updateAvatarPresence friend is null ");
- friendStatus.setImageResource(R.drawable.presence_unregistered);
+ friendStatusSmall.setImageResource(R.drawable.presence_unregistered);
+ friendStatusSmall.setImageResource(R.drawable.presence_unregistered);
}
}
}