allow to start secret chat on roster page
This commit is contained in:
parent
b18f042b8b
commit
e72b866fce
|
@ -1310,6 +1310,21 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
protected void startOtrChat() {
|
||||||
|
int position = contact_context_id;
|
||||||
|
Contact contact = (Contact) contacts.get(position);
|
||||||
|
|
||||||
|
Conversation conversation = xmppConnectionService.findOrCreateConversation(contact.getAccount(), contact.getJid(), null, false, false, false, null);
|
||||||
|
|
||||||
|
selectPresence(conversation,
|
||||||
|
() -> {
|
||||||
|
Conversation c = xmppConnectionService.findOrCreateConversation(contact.getAccount(), contact.getJid(), null, false, false, false, conversation.getNextCounterpart());
|
||||||
|
conversation.setNextCounterpart(null);
|
||||||
|
if (c != null) {
|
||||||
|
switchToConversation(c);
|
||||||
|
}
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
private void setRefreshing(boolean refreshing) {
|
private void setRefreshing(boolean refreshing) {
|
||||||
MyListFragment fragment = (MyListFragment) mListPagerAdapter.getItem(0);
|
MyListFragment fragment = (MyListFragment) mListPagerAdapter.getItem(0);
|
||||||
|
@ -1451,9 +1466,12 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
|
||||||
final MenuItem blockUnblockItem = menu.findItem(R.id.context_contact_block_unblock);
|
final MenuItem blockUnblockItem = menu.findItem(R.id.context_contact_block_unblock);
|
||||||
final MenuItem showContactDetailsItem = menu.findItem(R.id.context_contact_details);
|
final MenuItem showContactDetailsItem = menu.findItem(R.id.context_contact_details);
|
||||||
final MenuItem deleteContactMenuItem = menu.findItem(R.id.context_delete_contact);
|
final MenuItem deleteContactMenuItem = menu.findItem(R.id.context_delete_contact);
|
||||||
|
final MenuItem startSecrectChat = menu.findItem(R.id.context_contact_start_secrect_chat);
|
||||||
if (contact.isSelf()) {
|
if (contact.isSelf()) {
|
||||||
showContactDetailsItem.setVisible(false);
|
showContactDetailsItem.setVisible(false);
|
||||||
|
startSecrectChat.setVisible(false);
|
||||||
}
|
}
|
||||||
|
|
||||||
deleteContactMenuItem.setVisible(contact.showInRoster() && !contact.getOption(Contact.Options.SYNCED_VIA_OTHER));
|
deleteContactMenuItem.setVisible(contact.showInRoster() && !contact.getOption(Contact.Options.SYNCED_VIA_OTHER));
|
||||||
final XmppConnection xmpp = contact.getAccount().getXmppConnection();
|
final XmppConnection xmpp = contact.getAccount().getXmppConnection();
|
||||||
if (xmpp != null && xmpp.getFeatures().blocking() && !contact.isSelf()) {
|
if (xmpp != null && xmpp.getFeatures().blocking() && !contact.isSelf()) {
|
||||||
|
@ -1492,6 +1510,8 @@ public class StartConversationActivity extends XmppActivity implements XmppConne
|
||||||
break;
|
break;
|
||||||
case R.id.context_delete_conference:
|
case R.id.context_delete_conference:
|
||||||
activity.deleteConference();
|
activity.deleteConference();
|
||||||
|
case R.id.context_contact_start_secrect_chat:
|
||||||
|
activity.startOtrChat();
|
||||||
}
|
}
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
|
@ -4,6 +4,11 @@
|
||||||
<item
|
<item
|
||||||
android:id="@+id/context_contact_details"
|
android:id="@+id/context_contact_details"
|
||||||
android:title="@string/view_contact_details"/>
|
android:title="@string/view_contact_details"/>
|
||||||
|
|
||||||
|
<item
|
||||||
|
android:id="@+id/context_contact_start_secrect_chat"
|
||||||
|
android:title="@string/action_start_secret_chat"/>
|
||||||
|
|
||||||
<item
|
<item
|
||||||
android:id="@+id/context_show_qr"
|
android:id="@+id/context_show_qr"
|
||||||
android:title="@string/show_qr_code"/>
|
android:title="@string/show_qr_code"/>
|
||||||
|
|
Loading…
Reference in a new issue