Added secured chat shortcut in history detail view
This commit is contained in:
parent
fa5922bb72
commit
e85e55f676
3 changed files with 50 additions and 9 deletions
|
@ -40,6 +40,7 @@ import org.linphone.core.ChatRoomListenerStub;
|
||||||
import org.linphone.core.ChatRoomParams;
|
import org.linphone.core.ChatRoomParams;
|
||||||
import org.linphone.core.Core;
|
import org.linphone.core.Core;
|
||||||
import org.linphone.core.Factory;
|
import org.linphone.core.Factory;
|
||||||
|
import org.linphone.core.FriendCapability;
|
||||||
import org.linphone.core.ProxyConfig;
|
import org.linphone.core.ProxyConfig;
|
||||||
import org.linphone.core.tools.Log;
|
import org.linphone.core.tools.Log;
|
||||||
import org.linphone.fragments.FragmentsAvailable;
|
import org.linphone.fragments.FragmentsAvailable;
|
||||||
|
@ -53,7 +54,7 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
|
||||||
private ImageView mCallDirection;
|
private ImageView mCallDirection;
|
||||||
private TextView mContactName, mContactAddress, mTime, mDate;
|
private TextView mContactName, mContactAddress, mTime, mDate;
|
||||||
private String mSipUri, mDisplayName;
|
private String mSipUri, mDisplayName;
|
||||||
private RelativeLayout mWaitLayout, mAvatarLayout;
|
private RelativeLayout mWaitLayout, mAvatarLayout, mChatSecured;
|
||||||
private LinphoneContact mContact;
|
private LinphoneContact mContact;
|
||||||
private ChatRoom mChatRoom;
|
private ChatRoom mChatRoom;
|
||||||
private ChatRoomListenerStub mChatRoomCreationListener;
|
private ChatRoomListenerStub mChatRoomCreationListener;
|
||||||
|
@ -84,8 +85,14 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
|
||||||
|
|
||||||
mChat = mView.findViewById(R.id.chat);
|
mChat = mView.findViewById(R.id.chat);
|
||||||
mChat.setOnClickListener(this);
|
mChat.setOnClickListener(this);
|
||||||
if (getResources().getBoolean(R.bool.disable_chat))
|
|
||||||
mView.findViewById(R.id.chat).setVisibility(View.GONE);
|
mChatSecured = mView.findViewById(R.id.chat_secured);
|
||||||
|
mChatSecured.setOnClickListener(this);
|
||||||
|
|
||||||
|
if (getResources().getBoolean(R.bool.disable_chat)) {
|
||||||
|
mChat.setVisibility(View.GONE);
|
||||||
|
mChatSecured.setVisibility(View.GONE);
|
||||||
|
}
|
||||||
|
|
||||||
mAddToContacts = mView.findViewById(R.id.add_contact);
|
mAddToContacts = mView.findViewById(R.id.add_contact);
|
||||||
mAddToContacts.setOnClickListener(this);
|
mAddToContacts.setOnClickListener(this);
|
||||||
|
@ -146,6 +153,7 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
|
||||||
} else if (status.equals(getResources().getString(R.string.outgoing))) {
|
} else if (status.equals(getResources().getString(R.string.outgoing))) {
|
||||||
mCallDirection.setImageResource(R.drawable.call_outgoing);
|
mCallDirection.setImageResource(R.drawable.call_outgoing);
|
||||||
}
|
}
|
||||||
|
mChatSecured.setVisibility(View.GONE);
|
||||||
|
|
||||||
mTime.setText(callTime == null ? "" : callTime);
|
mTime.setText(callTime == null ? "" : callTime);
|
||||||
Long longDate = Long.parseLong(callDate);
|
Long longDate = Long.parseLong(callDate);
|
||||||
|
@ -164,6 +172,12 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
|
||||||
ContactAvatar.displayAvatar(mContact, mAvatarLayout);
|
ContactAvatar.displayAvatar(mContact, mAvatarLayout);
|
||||||
mAddToContacts.setVisibility(View.GONE);
|
mAddToContacts.setVisibility(View.GONE);
|
||||||
mGoToContact.setVisibility(View.VISIBLE);
|
mGoToContact.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
|
if (!getResources().getBoolean(R.bool.disable_chat)
|
||||||
|
&& mContact.hasPresenceModelForUriOrTelCapability(
|
||||||
|
mSipUri, FriendCapability.LimeX3Dh)) {
|
||||||
|
mChatSecured.setVisibility(View.VISIBLE);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
mContactName.setText(
|
mContactName.setText(
|
||||||
mDisplayName == null
|
mDisplayName == null
|
||||||
|
@ -212,12 +226,13 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
|
||||||
}
|
}
|
||||||
if (id == R.id.call) {
|
if (id == R.id.call) {
|
||||||
LinphoneActivity.instance().setAddresGoToDialerAndCall(mSipUri, mDisplayName);
|
LinphoneActivity.instance().setAddresGoToDialerAndCall(mSipUri, mDisplayName);
|
||||||
} else if (id == R.id.chat) {
|
} else if (id == R.id.chat || id == R.id.chat_secured) {
|
||||||
|
boolean isSecured = id == R.id.chat_secured;
|
||||||
Core lc = LinphoneManager.getLc();
|
Core lc = LinphoneManager.getLc();
|
||||||
Address participant = Factory.instance().createAddress(mSipUri);
|
Address participant = Factory.instance().createAddress(mSipUri);
|
||||||
ChatRoom room =
|
ChatRoom room =
|
||||||
lc.findOneToOneChatRoom(
|
lc.findOneToOneChatRoom(
|
||||||
lc.getDefaultProxyConfig().getContact(), participant, false);
|
lc.getDefaultProxyConfig().getContact(), participant, isSecured);
|
||||||
if (room != null) {
|
if (room != null) {
|
||||||
LinphoneActivity.instance()
|
LinphoneActivity.instance()
|
||||||
.goToChat(
|
.goToChat(
|
||||||
|
@ -228,11 +243,12 @@ public class HistoryDetailFragment extends Fragment implements OnClickListener {
|
||||||
ProxyConfig lpc = lc.getDefaultProxyConfig();
|
ProxyConfig lpc = lc.getDefaultProxyConfig();
|
||||||
if (lpc != null
|
if (lpc != null
|
||||||
&& lpc.getConferenceFactoryUri() != null
|
&& lpc.getConferenceFactoryUri() != null
|
||||||
&& !LinphonePreferences.instance().useBasicChatRoomFor1To1()) {
|
&& (isSecured
|
||||||
|
|| !LinphonePreferences.instance().useBasicChatRoomFor1To1())) {
|
||||||
mWaitLayout.setVisibility(View.VISIBLE);
|
mWaitLayout.setVisibility(View.VISIBLE);
|
||||||
|
|
||||||
ChatRoomParams params = lc.createDefaultChatRoomParams();
|
ChatRoomParams params = lc.createDefaultChatRoomParams();
|
||||||
params.enableEncryption(false);
|
params.enableEncryption(isSecured);
|
||||||
params.enableGroup(false);
|
params.enableGroup(false);
|
||||||
// We don't want a basic chat room
|
// We don't want a basic chat room
|
||||||
params.setBackend(ChatRoomBackend.FlexisipChat);
|
params.setBackend(ChatRoomBackend.FlexisipChat);
|
||||||
|
|
|
@ -97,7 +97,7 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/privaci_policy_link"
|
android:id="@+id/privaci_policy_link"
|
||||||
style="@style/about_license_font"
|
style="@style/link_font"
|
||||||
android:layout_width="wrap_content"
|
android:layout_width="wrap_content"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
|
@ -109,7 +109,7 @@
|
||||||
|
|
||||||
<TextView
|
<TextView
|
||||||
android:id="@+id/about_text"
|
android:id="@+id/about_text"
|
||||||
style="@style/link_font"
|
style="@style/about_license_font"
|
||||||
android:layout_width="match_parent"
|
android:layout_width="match_parent"
|
||||||
android:layout_height="wrap_content"
|
android:layout_height="wrap_content"
|
||||||
android:layout_gravity="center"
|
android:layout_gravity="center"
|
||||||
|
|
|
@ -112,6 +112,31 @@
|
||||||
android:contentDescription="@string/content_description_chat"
|
android:contentDescription="@string/content_description_chat"
|
||||||
android:src="@drawable/chat_start_default" />
|
android:src="@drawable/chat_start_default" />
|
||||||
|
|
||||||
|
<RelativeLayout
|
||||||
|
android:id="@+id/chat_secured"
|
||||||
|
android:layout_width="65dp"
|
||||||
|
android:layout_height="60dp"
|
||||||
|
android:layout_margin="10dp">
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:layout_width="60dp"
|
||||||
|
android:layout_height="60dp"
|
||||||
|
android:layout_alignParentLeft="true"
|
||||||
|
android:layout_centerVertical="true"
|
||||||
|
android:background="@drawable/round_orange_button_background"
|
||||||
|
android:contentDescription="@string/content_description_chat"
|
||||||
|
android:src="@drawable/chat_start_default" />
|
||||||
|
|
||||||
|
<ImageView
|
||||||
|
android:id="@+id/security_level"
|
||||||
|
android:layout_width="20dp"
|
||||||
|
android:layout_height="20dp"
|
||||||
|
android:layout_alignParentTop="true"
|
||||||
|
android:layout_alignParentRight="true"
|
||||||
|
android:src="@drawable/security_toogle_icon_green" />
|
||||||
|
|
||||||
|
</RelativeLayout>
|
||||||
|
|
||||||
</LinearLayout>
|
</LinearLayout>
|
||||||
|
|
||||||
<LinearLayout
|
<LinearLayout
|
||||||
|
|
Loading…
Reference in a new issue