mirror of
https://gitlab.linphone.org/BC/public/linphone-android.git
synced 2026-01-17 19:38:08 +00:00
Get presence information when security level not found
This commit is contained in:
parent
bf65595d96
commit
11b656d602
10 changed files with 120 additions and 38 deletions
|
|
@ -49,6 +49,8 @@ import org.linphone.core.CallParams;
|
|||
import org.linphone.core.ChatRoomSecurityLevel;
|
||||
import org.linphone.core.Core;
|
||||
import org.linphone.core.CoreListenerStub;
|
||||
import org.linphone.core.PresenceActivity;
|
||||
import org.linphone.core.PresenceModel;
|
||||
import org.linphone.core.ProxyConfig;
|
||||
import org.linphone.mediastream.Log;
|
||||
import org.linphone.ui.LinphoneSliders.LinphoneSliderTriggered;
|
||||
|
|
@ -252,7 +254,17 @@ public class CallIncomingActivity extends LinphoneGenericActivity implements Lin
|
|||
} else if (securityLevel == ChatRoomSecurityLevel.Encrypted) {
|
||||
contactPicture.setImageResource(R.drawable.avatar_big_secure1);
|
||||
} else {
|
||||
contactPicture.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
if (!ContactsManager.getInstance().isContactPresenceDisabled() && contact.getFriend() != null) {
|
||||
PresenceModel presenceModel = contact.getFriend().getPresenceModel();
|
||||
if (presenceModel != null) {
|
||||
contactPicture.setImageResource(R.drawable.avatar_medium_secure1);
|
||||
} else {
|
||||
contactPicture.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
}
|
||||
}
|
||||
else {
|
||||
contactPicture.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
name.setText(LinphoneUtils.getAddressDisplayName(address));
|
||||
|
|
|
|||
|
|
@ -36,6 +36,8 @@ import org.linphone.core.Call.State;
|
|||
import org.linphone.core.ChatRoomSecurityLevel;
|
||||
import org.linphone.core.Core;
|
||||
import org.linphone.core.CoreListenerStub;
|
||||
import org.linphone.core.PresenceActivity;
|
||||
import org.linphone.core.PresenceModel;
|
||||
import org.linphone.core.ProxyConfig;
|
||||
import org.linphone.core.Reason;
|
||||
import org.linphone.mediastream.Log;
|
||||
|
|
@ -194,7 +196,6 @@ public class CallOutgoingActivity extends LinphoneGenericActivity implements OnC
|
|||
if (contact != null) {
|
||||
LinphoneUtils.setImagePictureFromUri(this, contactPicture, contact.getPhotoUri(), contact.getThumbnailUri());
|
||||
name.setText(contact.getFullName());
|
||||
|
||||
ProxyConfig prx = LinphoneManager.getLc().getDefaultProxyConfig();
|
||||
Address ourUri = (prx != null) ? prx.getIdentityAddress() : null;
|
||||
ChatRoomSecurityLevel securityLevel = getSecurityLevelForSipUri(LinphoneManager.getLc(), ourUri, contact.getFriend().getAddress());
|
||||
|
|
@ -205,7 +206,16 @@ public class CallOutgoingActivity extends LinphoneGenericActivity implements OnC
|
|||
} else if (securityLevel == ChatRoomSecurityLevel.Encrypted) {
|
||||
contactPicture.setImageResource(R.drawable.avatar_big_secure1);
|
||||
} else {
|
||||
contactPicture.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
if (!ContactsManager.getInstance().isContactPresenceDisabled() && contact.getFriend() != null) {
|
||||
PresenceModel presenceModel = contact.getFriend().getPresenceModel();
|
||||
if (presenceModel != null) {
|
||||
contactPicture.setImageResource(R.drawable.avatar_medium_secure1);
|
||||
} else {
|
||||
contactPicture.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
}
|
||||
} else {
|
||||
contactPicture.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
}
|
||||
}
|
||||
} else {
|
||||
name.setText(LinphoneUtils.getAddressDisplayName(address));
|
||||
|
|
|
|||
|
|
@ -45,6 +45,8 @@ import org.linphone.core.ChatRoomCapabilities;
|
|||
import org.linphone.core.ChatRoomListenerStub;
|
||||
import org.linphone.core.ChatRoomSecurityLevel;
|
||||
import org.linphone.core.EventLog;
|
||||
import org.linphone.core.PresenceActivity;
|
||||
import org.linphone.core.PresenceModel;
|
||||
import org.linphone.ui.ListSelectionAdapter;
|
||||
import org.linphone.ui.ListSelectionHelper;
|
||||
|
||||
|
|
@ -260,7 +262,16 @@ public class ChatRoomsAdapter extends ListSelectionAdapter {
|
|||
} else if (level == ChatRoomSecurityLevel.Encrypted) {
|
||||
holder.contactPicture.setImageResource(R.drawable.avatar_small_secure1);
|
||||
} else {
|
||||
holder.contactPicture.setImageResource(R.drawable.avatar_small_unregistered);
|
||||
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 {
|
||||
|
|
|
|||
|
|
@ -75,6 +75,8 @@ import org.linphone.core.Factory;
|
|||
import org.linphone.core.LimeState;
|
||||
import org.linphone.core.Participant;
|
||||
import org.linphone.contacts.ContactsUpdatedListener;
|
||||
import org.linphone.core.PresenceActivity;
|
||||
import org.linphone.core.PresenceModel;
|
||||
import org.linphone.core.Reason;
|
||||
import org.linphone.fragments.FragmentsAvailable;
|
||||
import org.linphone.mediastream.Log;
|
||||
|
|
@ -542,7 +544,17 @@ public class GroupChatFragment extends Fragment implements ChatRoomListener, Con
|
|||
} else if (level == ChatRoomSecurityLevel.Safe) {
|
||||
avatarTop.setImageResource(R.drawable.avatar_small_secure2);
|
||||
} else {
|
||||
avatarTop.setImageResource(R.drawable.avatar_small_unsecure);
|
||||
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 {
|
||||
mCallButton.setVisibility(View.GONE);
|
||||
|
|
|
|||
|
|
@ -32,11 +32,14 @@ import org.linphone.LinphoneUtils;
|
|||
import org.linphone.R;
|
||||
import org.linphone.activities.LinphoneActivity;
|
||||
import org.linphone.contacts.ContactAddress;
|
||||
import org.linphone.contacts.ContactsManager;
|
||||
import org.linphone.contacts.LinphoneContact;
|
||||
import org.linphone.core.Address;
|
||||
import org.linphone.core.ChatRoom;
|
||||
import org.linphone.core.ChatRoomSecurityLevel;
|
||||
import org.linphone.core.Participant;
|
||||
import org.linphone.core.PresenceActivity;
|
||||
import org.linphone.core.PresenceModel;
|
||||
import org.linphone.core.ProxyConfig;
|
||||
|
||||
import java.util.ArrayList;
|
||||
|
|
@ -109,7 +112,16 @@ public class GroupInfoAdapter extends BaseAdapter {
|
|||
} else if (securityLevel == ChatRoomSecurityLevel.Encrypted) {
|
||||
avatar.setImageResource(R.drawable.avatar_big_secure1);
|
||||
} else {
|
||||
avatar.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
if (!ContactsManager.getInstance().isContactPresenceDisabled() && c != null && c.getFriend() != null) {
|
||||
PresenceModel presenceModel = c.getFriend().getPresenceModel();
|
||||
if (presenceModel != null) {
|
||||
avatar.setImageResource(R.drawable.avatar_medium_secure1);
|
||||
} else {
|
||||
avatar.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
}
|
||||
} else {
|
||||
avatar.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
}
|
||||
}
|
||||
|
||||
delete.setOnClickListener(new View.OnClickListener() {
|
||||
|
|
|
|||
|
|
@ -20,7 +20,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|||
package org.linphone.chat;
|
||||
|
||||
import android.app.Fragment;
|
||||
import android.media.Image;
|
||||
import android.os.Bundle;
|
||||
import android.support.annotation.Nullable;
|
||||
import android.text.Spanned;
|
||||
|
|
@ -47,8 +46,9 @@ import org.linphone.core.ChatRoom;
|
|||
import org.linphone.core.ChatRoomSecurityLevel;
|
||||
import org.linphone.core.Core;
|
||||
import org.linphone.core.ParticipantImdnState;
|
||||
import org.linphone.core.PresenceActivity;
|
||||
import org.linphone.core.PresenceModel;
|
||||
import org.linphone.core.ProxyConfig;
|
||||
import org.linphone.fragments.FragmentsAvailable;
|
||||
|
||||
import static org.linphone.LinphoneUtils.getSecurityLevelForSipUri;
|
||||
|
||||
|
|
@ -161,7 +161,7 @@ public class ImdnFragment extends Fragment {
|
|||
refreshInfo();
|
||||
}
|
||||
|
||||
private void setPictureForContact(ImageView img, Address sipUri) {
|
||||
private void setPictureForContact(ImageView img, Address sipUri, LinphoneContact contact) {
|
||||
ProxyConfig prx = LinphoneManager.getLc().getDefaultProxyConfig();
|
||||
Address ourUri = (prx != null) ? prx.getIdentityAddress() : null;
|
||||
ChatRoomSecurityLevel securityLevel = getSecurityLevelForSipUri(LinphoneManager.getLc(), ourUri, sipUri);
|
||||
|
|
@ -172,7 +172,16 @@ public class ImdnFragment extends Fragment {
|
|||
} else if (securityLevel == ChatRoomSecurityLevel.Encrypted) {
|
||||
img.setImageResource(R.drawable.avatar_big_secure1);
|
||||
} else {
|
||||
img.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
if (!ContactsManager.getInstance().isContactPresenceDisabled() && contact != null && contact.getFriend() != null) {
|
||||
PresenceModel presenceModel = contact.getFriend().getPresenceModel();
|
||||
if (presenceModel != null) {
|
||||
img.setImageResource(R.drawable.avatar_medium_secure1);
|
||||
} else {
|
||||
img.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
}
|
||||
} else {
|
||||
img.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
|
@ -236,7 +245,7 @@ public class ImdnFragment extends Fragment {
|
|||
} else {
|
||||
((ImageView)v.findViewById(R.id.contact_picture)).setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
|
||||
}*/
|
||||
setPictureForContact(((ImageView)v.findViewById(R.id.contact_picture)), address);
|
||||
setPictureForContact(((ImageView)v.findViewById(R.id.contact_picture)), address, participantContact);
|
||||
|
||||
mRead.addView(v);
|
||||
first = false;
|
||||
|
|
@ -260,7 +269,7 @@ public class ImdnFragment extends Fragment {
|
|||
} else {
|
||||
((ImageView)v.findViewById(R.id.contact_picture)).setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
|
||||
}*/
|
||||
setPictureForContact(((ImageView)v.findViewById(R.id.contact_picture)), address);
|
||||
setPictureForContact(((ImageView)v.findViewById(R.id.contact_picture)), address, participantContact);
|
||||
|
||||
mDelivered.addView(v);
|
||||
first = false;
|
||||
|
|
@ -284,7 +293,7 @@ public class ImdnFragment extends Fragment {
|
|||
} else {
|
||||
((ImageView)v.findViewById(R.id.contact_picture)).setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
|
||||
}*/
|
||||
setPictureForContact(((ImageView)v.findViewById(R.id.contact_picture)), address);
|
||||
setPictureForContact(((ImageView)v.findViewById(R.id.contact_picture)), address, participantContact);
|
||||
|
||||
mSent.addView(v);
|
||||
first = false;
|
||||
|
|
@ -307,7 +316,7 @@ public class ImdnFragment extends Fragment {
|
|||
} else {
|
||||
((ImageView)v.findViewById(R.id.contact_picture)).setImageBitmap(ContactsManager.getInstance().getDefaultAvatarBitmap());
|
||||
}*/
|
||||
setPictureForContact(((ImageView)v.findViewById(R.id.contact_picture)), address);
|
||||
setPictureForContact(((ImageView)v.findViewById(R.id.contact_picture)), address, participantContact);
|
||||
|
||||
mUndelivered.addView(v);
|
||||
first = false;
|
||||
|
|
|
|||
|
|
@ -48,6 +48,8 @@ import android.widget.TextView;
|
|||
import org.linphone.core.Address;
|
||||
import org.linphone.core.ChatRoomSecurityLevel;
|
||||
import org.linphone.core.FriendList;
|
||||
import org.linphone.core.PresenceActivity;
|
||||
import org.linphone.core.PresenceModel;
|
||||
import org.linphone.core.ProxyConfig;
|
||||
import org.linphone.fragments.FragmentsAvailable;
|
||||
import org.linphone.LinphoneManager;
|
||||
|
|
@ -624,34 +626,26 @@ public class ContactsListFragment extends Fragment implements OnClickListener, O
|
|||
holder.delete.setVisibility(View.INVISIBLE);
|
||||
}
|
||||
|
||||
/*Friend[] friends = LinphoneManager.getLc().getFriendsLists();
|
||||
if (!ContactsManager.getInstance().isContactPresenceDisabled() && friends != null) {
|
||||
holder.friendStatus.setVisibility(View.VISIBLE);
|
||||
PresenceActivityType presenceActivity = friends[0].getPresenceModel().getActivity().getType();
|
||||
if (presenceActivity == PresenceActivityType.Online) {
|
||||
holder.friendStatus.setImageResource(R.drawable.led_connected);
|
||||
} else if (presenceActivity == PresenceActivityType.Busy) {
|
||||
holder.friendStatus.setImageResource(R.drawable.led_error);
|
||||
} else if (presenceActivity == PresenceActivityType.Away) {
|
||||
holder.friendStatus.setImageResource(R.drawable.led_inprogress);
|
||||
} else if (presenceActivity == PresenceActivityType.Offline) {
|
||||
holder.friendStatus.setImageResource(R.drawable.led_disconnected);
|
||||
} else {
|
||||
holder.friendStatus.setImageResource(R.drawable.call_quality_indicator_0);
|
||||
}
|
||||
}*/
|
||||
|
||||
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);
|
||||
holder.contactPicture.setImageResource(R.drawable.avatar_medium_secure2);
|
||||
} else if (securityLevel == ChatRoomSecurityLevel.Unsafe) {
|
||||
holder.contactPicture.setImageResource(R.drawable.avatar_big_unsecure);
|
||||
holder.contactPicture.setImageResource(R.drawable.avatar_medium_unsecure);
|
||||
} else if (securityLevel == ChatRoomSecurityLevel.Encrypted) {
|
||||
holder.contactPicture.setImageResource(R.drawable.avatar_big_secure1);
|
||||
holder.contactPicture.setImageResource(R.drawable.avatar_medium_secure1);
|
||||
} else {
|
||||
holder.contactPicture.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
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);
|
||||
}
|
||||
}
|
||||
|
||||
return view;
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ public class ContactsManager extends ContentObserver {
|
|||
|
||||
private List<LinphoneContact> contacts, sipContacts;
|
||||
private MagicSearch magicSearch;
|
||||
private boolean preferLinphoneContacts = false, isContactPresenceDisabled = true;
|
||||
private boolean preferLinphoneContacts = false, isContactPresenceDisabled = false;
|
||||
private ContentResolver contentResolver;
|
||||
private Context context;
|
||||
private HashMap<String, LinphoneContact> androidContactsCache;
|
||||
|
|
|
|||
|
|
@ -35,6 +35,8 @@ import org.linphone.activities.LinphoneActivity;
|
|||
import org.linphone.core.Address;
|
||||
import org.linphone.core.ChatRoomSecurityLevel;
|
||||
import org.linphone.core.Factory;
|
||||
import org.linphone.core.PresenceActivity;
|
||||
import org.linphone.core.PresenceModel;
|
||||
import org.linphone.core.ProxyConfig;
|
||||
import org.linphone.core.SearchResult;
|
||||
|
||||
|
|
@ -280,7 +282,16 @@ public class SearchContactsListAdapter extends BaseAdapter {
|
|||
} else if (securityLevel == ChatRoomSecurityLevel.Encrypted) {
|
||||
holder.avatar.setImageResource(R.drawable.avatar_big_secure1);
|
||||
} else {
|
||||
holder.avatar.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
if (!ContactsManager.getInstance().isContactPresenceDisabled() && c != null && c.getFriend() != null) {
|
||||
PresenceModel presenceModel = c.getFriend().getPresenceModel();
|
||||
if (presenceModel != null) {
|
||||
holder.avatar.setImageResource(R.drawable.avatar_medium_secure1);
|
||||
} else {
|
||||
holder.avatar.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
}
|
||||
} else {
|
||||
holder.avatar.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
}
|
||||
}
|
||||
view.setTag(R.id.contact_search_name, address != null ? address : a);
|
||||
if (listener != null)
|
||||
|
|
|
|||
|
|
@ -37,6 +37,8 @@ import org.linphone.core.Address;
|
|||
import org.linphone.core.CallLog;
|
||||
import org.linphone.core.Call.Status;
|
||||
import org.linphone.core.ChatRoomSecurityLevel;
|
||||
import org.linphone.core.PresenceActivity;
|
||||
import org.linphone.core.PresenceModel;
|
||||
import org.linphone.core.ProxyConfig;
|
||||
|
||||
import android.annotation.SuppressLint;
|
||||
|
|
@ -503,7 +505,16 @@ public class HistoryListFragment extends Fragment implements OnClickListener, On
|
|||
} else if (securityLevel == ChatRoomSecurityLevel.Encrypted) {
|
||||
holder.contactPicture.setImageResource(R.drawable.avatar_big_secure1);
|
||||
} else {
|
||||
holder.contactPicture.setImageResource(R.drawable.avatar_medium_unregistered);
|
||||
if (!ContactsManager.getInstance().isContactPresenceDisabled() && c != null && c.getFriend() != null) {
|
||||
PresenceModel presenceModel = c.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);
|
||||
}
|
||||
}
|
||||
|
||||
displayName = (c != null) ? c.getFullName() : null;
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue