aboutsummaryrefslogtreecommitdiffstats
path: root/src/main/java/de/pixart/messenger/ui/ChooseContactActivity.java
diff options
context:
space:
mode:
authorChristian Schneppe <christian@pix-art.de>2018-04-03 21:14:17 +0200
committerChristian Schneppe <christian@pix-art.de>2018-04-03 21:14:17 +0200
commit035f2ce97395d60448be7e751f586080e39d4c31 (patch)
tree9e4669954701a24ae656bd5653a43a466846c03f /src/main/java/de/pixart/messenger/ui/ChooseContactActivity.java
parenta311e0912f9bb6d45b43ed61031f7470546c32b6 (diff)
use fab in choose contact activity. scan qr not yet working
Diffstat (limited to 'src/main/java/de/pixart/messenger/ui/ChooseContactActivity.java')
-rw-r--r--src/main/java/de/pixart/messenger/ui/ChooseContactActivity.java129
1 files changed, 61 insertions, 68 deletions
diff --git a/src/main/java/de/pixart/messenger/ui/ChooseContactActivity.java b/src/main/java/de/pixart/messenger/ui/ChooseContactActivity.java
index 4450c8759..647330c71 100644
--- a/src/main/java/de/pixart/messenger/ui/ChooseContactActivity.java
+++ b/src/main/java/de/pixart/messenger/ui/ChooseContactActivity.java
@@ -13,7 +13,6 @@ import android.view.MenuItem;
import android.view.View;
import android.view.inputmethod.InputMethodManager;
import android.widget.AbsListView.MultiChoiceModeListener;
-import android.widget.AdapterView;
import android.widget.ListView;
import java.util.ArrayList;
@@ -32,12 +31,32 @@ import de.pixart.messenger.entities.MucOptions;
import rocks.xmpp.addr.Jid;
public class ChooseContactActivity extends AbstractSearchableListItemActivity {
+ public static final String EXTRA_TITLE_RES_ID = "extra_title_res_id";
private List<String> mActivatedAccounts = new ArrayList<>();
private List<String> mKnownHosts;
-
private Set<Contact> selected;
private Set<String> filterContacts;
- public static final String EXTRA_TITLE_RES_ID = "extra_title_res_id";
+
+ public static Intent create(Activity activity, Conversation conversation) {
+ final Intent intent = new Intent(activity, ChooseContactActivity.class);
+ List<String> contacts = new ArrayList<>();
+ if (conversation.getMode() == Conversation.MODE_MULTI) {
+ for (MucOptions.User user : conversation.getMucOptions().getUsers(false)) {
+ Jid jid = user.getRealJid();
+ if (jid != null) {
+ contacts.add(jid.asBareJid().toString());
+ }
+ }
+ } else {
+ contacts.add(conversation.getJid().asBareJid().toString());
+ }
+ intent.putExtra("filter_contacts", contacts.toArray(new String[contacts.size()]));
+ intent.putExtra("conversation", conversation.getUuid());
+ intent.putExtra("multiple", true);
+ intent.putExtra("show_enter_jid", true);
+ intent.putExtra(EXTRA_ACCOUNT, conversation.getAccount().getJid().asBareJid().toString());
+ return intent;
+ }
@Override
public void onCreate(final Bundle savedInstanceState) {
@@ -60,8 +79,7 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity {
@Override
public boolean onCreateActionMode(ActionMode mode, Menu menu) {
final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
- imm.hideSoftInputFromWindow(getSearchEditText().getWindowToken(),
- InputMethodManager.HIDE_IMPLICIT_ONLY);
+ imm.hideSoftInputFromWindow(getSearchEditText().getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.select_multiple, menu);
selected = new HashSet<>();
@@ -109,32 +127,32 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity {
});
}
- getListView().setOnItemClickListener(new AdapterView.OnItemClickListener() {
- @Override
- public void onItemClick(final AdapterView<?> parent, final View view,
- final int position, final long id) {
- final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
- imm.hideSoftInputFromWindow(getSearchEditText().getWindowToken(),
- InputMethodManager.HIDE_IMPLICIT_ONLY);
- final Intent request = getIntent();
- final Intent data = new Intent();
- final ListItem mListItem = getListItems().get(position);
- data.putExtra("contact", mListItem.getJid().toString());
- String account = request.getStringExtra(EXTRA_ACCOUNT);
- if (account == null && mListItem instanceof Contact) {
- account = ((Contact) mListItem).getAccount().getJid().asBareJid().toString();
- }
- data.putExtra(EXTRA_ACCOUNT, account);
- data.putExtra("conversation",
- request.getStringExtra("conversation"));
- data.putExtra("multiple", false);
- data.putExtra("subject", request.getStringExtra("subject"));
- setResult(RESULT_OK, data);
- finish();
+ getListView().setOnItemClickListener((parent, view, position, id) -> {
+ final InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
+ imm.hideSoftInputFromWindow(getSearchEditText().getWindowToken(), InputMethodManager.HIDE_IMPLICIT_ONLY);
+ final Intent request = getIntent();
+ final Intent data = new Intent();
+ final ListItem mListItem = getListItems().get(position);
+ data.putExtra("contact", mListItem.getJid().toString());
+ String account = request.getStringExtra(EXTRA_ACCOUNT);
+ if (account == null && mListItem instanceof Contact) {
+ account = ((Contact) mListItem).getAccount().getJid().asBareJid().toString();
}
+ data.putExtra(EXTRA_ACCOUNT, account);
+ data.putExtra("conversation", request.getStringExtra("conversation"));
+ data.putExtra("multiple", false);
+ data.putExtra("subject", request.getStringExtra("subject"));
+ setResult(RESULT_OK, data);
+ finish();
});
-
+ final Intent i = getIntent();
+ boolean showEnterJid = i != null && i.getBooleanExtra("show_enter_jid", false);
+ if (showEnterJid) {
+ this.binding.fab.setOnClickListener((v) -> showEnterJidDialog());
+ } else {
+ this.binding.fab.setVisibility(View.GONE);
+ }
}
@Override
@@ -158,7 +176,7 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity {
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);
+ menu.findItem(R.id.action_scan_qr_code).setVisible(showEnterJid);
return true;
}
@@ -191,7 +209,6 @@ 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
}
@@ -199,8 +216,8 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity {
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
- case R.id.action_create_contact:
- showEnterJidDialog();
+ case R.id.action_scan_qr_code:
+ ScanActivity.scan(this);
return true;
}
return super.onOptionsItemSelected(item);
@@ -213,22 +230,19 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity {
null, getIntent().getStringExtra(EXTRA_ACCOUNT), true, xmppConnectionService.multipleAccounts()
);
- 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);
- data.putExtra("subject", request.getStringExtra("subject"));
- setResult(RESULT_OK, data);
- finish();
+ dialog.setOnEnterJidDialogPositiveListener((accountJid, contactJid) -> {
+ 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);
+ data.putExtra("subject", request.getStringExtra("subject"));
+ setResult(RESULT_OK, data);
+ finish();
- return true;
- }
+ return true;
});
dialog.show();
@@ -250,25 +264,4 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity {
}
this.mKnownHosts = xmppConnectionService.getKnownHosts();
}
-
- public static Intent create(Activity activity, Conversation conversation) {
- final Intent intent = new Intent(activity, ChooseContactActivity.class);
- List<String> contacts = new ArrayList<>();
- if (conversation.getMode() == Conversation.MODE_MULTI) {
- for (MucOptions.User user : conversation.getMucOptions().getUsers(false)) {
- Jid jid = user.getRealJid();
- if (jid != null) {
- contacts.add(jid.asBareJid().toString());
- }
- }
- } else {
- contacts.add(conversation.getJid().asBareJid().toString());
- }
- intent.putExtra("filter_contacts", contacts.toArray(new String[contacts.size()]));
- intent.putExtra("conversation", conversation.getUuid());
- intent.putExtra("multiple", true);
- intent.putExtra("show_enter_jid", true);
- intent.putExtra(EXTRA_ACCOUNT, conversation.getAccount().getJid().asBareJid().toString());
- return intent;
- }
}