diff options
author | lookshe <github@lookshe.org> | 2016-02-11 10:45:27 +0100 |
---|---|---|
committer | lookshe <github@lookshe.org> | 2016-02-11 10:45:27 +0100 |
commit | 3824eb172ba9a4a6b9ea84b0d1045591bc4fa0e3 (patch) | |
tree | 0286423f053440a5900732032e35810d6cc076c6 /src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java | |
parent | cec1b0f1f8d3976ab6a437ff4584ac039b64fa9a (diff) | |
parent | ae83efe4a6c1b3349147904eee200f0b617741c3 (diff) |
Merge tag '1.9.3' into trz/merge_1.9.3
Conflicts:
.travis.yml
CHANGELOG.md
README.md
art/render.rb
build.gradle
libs/openpgp-api-lib/build.gradle
settings.gradle
src/main/AndroidManifest.xml
src/main/java/eu/siacs/conversations/Config.java
src/main/java/eu/siacs/conversations/crypto/OtrService.java
src/main/java/eu/siacs/conversations/crypto/PgpEngine.java
src/main/java/eu/siacs/conversations/entities/Account.java
src/main/java/eu/siacs/conversations/entities/Contact.java
src/main/java/eu/siacs/conversations/entities/Conversation.java
src/main/java/eu/siacs/conversations/entities/DownloadableFile.java
src/main/java/eu/siacs/conversations/entities/Message.java
src/main/java/eu/siacs/conversations/entities/MucOptions.java
src/main/java/eu/siacs/conversations/entities/Transferable.java
src/main/java/eu/siacs/conversations/generator/AbstractGenerator.java
src/main/java/eu/siacs/conversations/generator/IqGenerator.java
src/main/java/eu/siacs/conversations/generator/MessageGenerator.java
src/main/java/eu/siacs/conversations/generator/PresenceGenerator.java
src/main/java/eu/siacs/conversations/http/HttpConnectionManager.java
src/main/java/eu/siacs/conversations/http/HttpDownloadConnection.java
src/main/java/eu/siacs/conversations/http/HttpUploadConnection.java
src/main/java/eu/siacs/conversations/parser/AbstractParser.java
src/main/java/eu/siacs/conversations/parser/IqParser.java
src/main/java/eu/siacs/conversations/parser/MessageParser.java
src/main/java/eu/siacs/conversations/parser/PresenceParser.java
src/main/java/eu/siacs/conversations/persistance/DatabaseBackend.java
src/main/java/eu/siacs/conversations/persistance/FileBackend.java
src/main/java/eu/siacs/conversations/services/AbstractConnectionManager.java
src/main/java/eu/siacs/conversations/services/AvatarService.java
src/main/java/eu/siacs/conversations/services/MessageArchiveService.java
src/main/java/eu/siacs/conversations/services/NotificationService.java
src/main/java/eu/siacs/conversations/services/XmppConnectionService.java
src/main/java/eu/siacs/conversations/ui/ConferenceDetailsActivity.java
src/main/java/eu/siacs/conversations/ui/ContactDetailsActivity.java
src/main/java/eu/siacs/conversations/ui/ConversationActivity.java
src/main/java/eu/siacs/conversations/ui/ConversationFragment.java
src/main/java/eu/siacs/conversations/ui/EditAccountActivity.java
src/main/java/eu/siacs/conversations/ui/ManageAccountActivity.java
src/main/java/eu/siacs/conversations/ui/PublishProfilePictureActivity.java
src/main/java/eu/siacs/conversations/ui/SettingsActivity.java
src/main/java/eu/siacs/conversations/ui/ShareWithActivity.java
src/main/java/eu/siacs/conversations/ui/XmppActivity.java
src/main/java/eu/siacs/conversations/ui/adapter/AccountAdapter.java
src/main/java/eu/siacs/conversations/ui/adapter/ConversationAdapter.java
src/main/java/eu/siacs/conversations/ui/adapter/ListItemAdapter.java
src/main/java/eu/siacs/conversations/ui/adapter/MessageAdapter.java
src/main/java/eu/siacs/conversations/utils/CryptoHelper.java
src/main/java/eu/siacs/conversations/utils/DNSHelper.java
src/main/java/eu/siacs/conversations/utils/ExceptionHelper.java
src/main/java/eu/siacs/conversations/utils/MimeUtils.java
src/main/java/eu/siacs/conversations/utils/PhoneHelper.java
src/main/java/eu/siacs/conversations/utils/UIHelper.java
src/main/java/eu/siacs/conversations/utils/Xmlns.java
src/main/java/eu/siacs/conversations/xml/XmlReader.java
src/main/java/eu/siacs/conversations/xmpp/XmppConnection.java
src/main/java/eu/siacs/conversations/xmpp/jingle/JingleConnection.java
src/main/java/eu/siacs/conversations/xmpp/jingle/JingleConnectionManager.java
src/main/java/eu/siacs/conversations/xmpp/jingle/JingleInbandTransport.java
src/main/java/eu/siacs/conversations/xmpp/jingle/JingleSocks5Transport.java
src/main/java/eu/siacs/conversations/xmpp/stanzas/MessagePacket.java
src/main/res/drawable-hdpi/ic_launcher.png
src/main/res/drawable-hdpi/ic_notification.png
src/main/res/drawable-mdpi/ic_launcher.png
src/main/res/drawable-mdpi/ic_notification.png
src/main/res/drawable-xhdpi/ic_launcher.png
src/main/res/drawable-xhdpi/ic_notification.png
src/main/res/drawable-xxhdpi/ic_launcher.png
src/main/res/drawable-xxhdpi/ic_notification.png
src/main/res/drawable-xxxhdpi/ic_launcher.png
src/main/res/drawable-xxxhdpi/ic_notification.png
src/main/res/layout/account_row.xml
src/main/res/layout/activity_about.xml
src/main/res/layout/activity_change_password.xml
src/main/res/layout/activity_contact_details.xml
src/main/res/layout/activity_edit_account.xml
src/main/res/layout/activity_muc_details.xml
src/main/res/layout/activity_publish_profile_picture.xml
src/main/res/layout/activity_verify_otr.xml
src/main/res/layout/contact.xml
src/main/res/layout/contact_key.xml
src/main/res/layout/conversation_list_row.xml
src/main/res/layout/enter_jid_dialog.xml
src/main/res/layout/fragment_conversation.xml
src/main/res/layout/join_conference_dialog.xml
src/main/res/layout/message_received.xml
src/main/res/layout/message_sent.xml
src/main/res/layout/message_status.xml
src/main/res/layout/quickedit.xml
src/main/res/values-ar-rEG/strings.xml
src/main/res/values-bg/strings.xml
src/main/res/values-ca/strings.xml
src/main/res/values-cs/strings.xml
src/main/res/values-de/strings.xml
src/main/res/values-el/strings.xml
src/main/res/values-es/strings.xml
src/main/res/values-eu/strings.xml
src/main/res/values-fa-rIR/strings.xml
src/main/res/values-fr/strings.xml
src/main/res/values-id/strings.xml
src/main/res/values-it/strings.xml
src/main/res/values-iw/strings.xml
src/main/res/values-ja/strings.xml
src/main/res/values-ko/strings.xml
src/main/res/values-nl/strings.xml
src/main/res/values-pl/strings.xml
src/main/res/values-pt/strings.xml
src/main/res/values-ru/strings.xml
src/main/res/values-sk/strings.xml
src/main/res/values-sr/strings.xml
src/main/res/values-sv/strings.xml
src/main/res/values-v21/themes.xml
src/main/res/values-zh-rCN/strings.xml
src/main/res/values/arrays.xml
src/main/res/values/colors.xml
src/main/res/values/dimens.xml
src/main/res/values/strings.xml
src/main/res/values/themes.xml
src/main/res/xml/preferences.xml
Diffstat (limited to 'src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java')
-rw-r--r-- | src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java | 81 |
1 files changed, 76 insertions, 5 deletions
diff --git a/src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java b/src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java index c9e99ce5..c5357a5e 100644 --- a/src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/ChooseContactActivity.java @@ -13,18 +13,22 @@ import android.widget.AbsListView.MultiChoiceModeListener; import android.widget.AdapterView; import android.widget.ListView; -import java.util.Set; -import java.util.HashSet; +import java.util.ArrayList; import java.util.Collections; +import java.util.HashSet; import java.util.List; -import java.util.ArrayList; +import java.util.Set; +import eu.siacs.conversations.Config; import eu.siacs.conversations.R; import eu.siacs.conversations.entities.Account; import eu.siacs.conversations.entities.Contact; import eu.siacs.conversations.entities.ListItem; +import eu.siacs.conversations.xmpp.jid.Jid; public class ChooseContactActivity extends AbstractSearchableListItemActivity { + private List<String> mActivatedAccounts = new ArrayList<String>(); + private List<String> mKnownHosts; private Set<Contact> selected; private Set<String> filterContacts; @@ -109,11 +113,11 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity { final Intent data = new Intent(); final ListItem mListItem = getListItems().get(position); data.putExtra("contact", mListItem.getJid().toString()); - String account = request.getStringExtra("account"); + String account = request.getStringExtra(EXTRA_ACCOUNT); if (account == null && mListItem instanceof Contact) { account = ((Contact) mListItem).getAccount().getJid().toBareJid().toString(); } - data.putExtra("account", account); + data.putExtra(EXTRA_ACCOUNT, account); data.putExtra("conversation", request.getStringExtra("conversation")); data.putExtra("multiple", false); @@ -124,6 +128,15 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity { } + @Override + public boolean onCreateOptionsMenu(final Menu menu) { + super.onCreateOptionsMenu(menu); + final Intent i = getIntent(); + boolean showEnterJid = i != null && i.getBooleanExtra("show_enter_jid", false); + menu.findItem(R.id.action_create_contact).setVisible(showEnterJid); + return true; + } + protected void filterContacts(final String needle) { getListItems().clear(); for (final Account account : xmppConnectionService.getAccounts()) { @@ -149,4 +162,62 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity { return result.toArray(new String[result.size()]); } + + public void refreshUiReal() { + //nothing to do. This Activity doesn't implement any listeners + } + + @Override + public boolean onOptionsItemSelected(MenuItem item) { + switch (item.getItemId()) { + case R.id.action_create_contact: + showEnterJidDialog(); + return true; + } + return super.onOptionsItemSelected(item); + } + + protected void showEnterJidDialog() { + EnterJidDialog dialog = new EnterJidDialog( + this, mKnownHosts, mActivatedAccounts, + getString(R.string.enter_contact), getString(R.string.select), + null, getIntent().getStringExtra(EXTRA_ACCOUNT), true + ); + + dialog.setOnEnterJidDialogPositiveListener(new EnterJidDialog.OnEnterJidDialogPositiveListener() { + @Override + public boolean onEnterJidDialogPositive(Jid accountJid, Jid contactJid) throws EnterJidDialog.JidError { + final Intent request = getIntent(); + final Intent data = new Intent(); + data.putExtra("contact", contactJid.toString()); + data.putExtra(EXTRA_ACCOUNT, accountJid.toString()); + data.putExtra("conversation", + request.getStringExtra("conversation")); + data.putExtra("multiple", false); + setResult(RESULT_OK, data); + finish(); + + return true; + } + }); + + dialog.show(); + } + + @Override + void onBackendConnected() { + filterContacts(); + + this.mActivatedAccounts.clear(); + for (Account account : xmppConnectionService.getAccounts()) { + if (account.getStatus() != Account.State.DISABLED) { + if (Config.DOMAIN_LOCK != null) { + this.mActivatedAccounts.add(account.getJid().getLocalpart()); + } else { + this.mActivatedAccounts.add(account.getJid().toBareJid().toString()); + } + } + } + this.mKnownHosts = xmppConnectionService.getKnownHosts(); + } } |