@@ -26,17 +26,11 @@ public class BlocklistActivity extends AbstractSearchableListItemActivity implem
@Override
public void onCreate(final Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
- getListView().setOnItemLongClickListener(new AdapterView.OnItemLongClickListener() {
-
- @Override
- public boolean onItemLongClick(final AdapterView<?> parent,
- final View view,
- final int position,
- final long id) {
- BlockContactDialog.show(BlocklistActivity.this, (Contact) getListItems().get(position));
- return true;
- }
+ getListView().setOnItemLongClickListener((parent, view, position, id) -> {
+ BlockContactDialog.show(BlocklistActivity.this, (Contact) getListItems().get(position));
+ return true;
});
+ this.binding.fab.setOnClickListener((v)->showEnterJidDialog());
}
@Override
@@ -66,23 +60,6 @@ public class BlocklistActivity extends AbstractSearchableListItemActivity implem
getListItemAdapter().notifyDataSetChanged();
}
- @Override
- public boolean onCreateOptionsMenu(final Menu menu) {
- super.onCreateOptionsMenu(menu);
- menu.findItem(R.id.action_block_jid).setVisible(true);
- return true;
- }
-
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case R.id.action_block_jid:
- showEnterJidDialog();
- return true;
- }
- return super.onOptionsItemSelected(item);
- }
-
protected void showEnterJidDialog() {
EnterJidDialog dialog = new EnterJidDialog(
this, mKnownHosts, null,
@@ -90,15 +67,12 @@ public class BlocklistActivity extends AbstractSearchableListItemActivity implem
null, account.getJid().asBareJid().toString(), true
);
- dialog.setOnEnterJidDialogPositiveListener(new EnterJidDialog.OnEnterJidDialogPositiveListener() {
- @Override
- public boolean onEnterJidDialogPositive(Jid accountJid, Jid contactJid) throws EnterJidDialog.JidError {
- Contact contact = account.getRoster().getContact(contactJid);
- if (xmppConnectionService.sendBlockRequest(contact, false)) {
- Toast.makeText(BlocklistActivity.this,R.string.corresponding_conversations_closed,Toast.LENGTH_SHORT).show();
- }
- return true;
+ dialog.setOnEnterJidDialogPositiveListener((accountJid, contactJid) -> {
+ Contact contact = account.getRoster().getContact(contactJid);
+ if (xmppConnectionService.sendBlockRequest(contact, false)) {
+ Toast.makeText(BlocklistActivity.this, R.string.corresponding_conversations_closed, Toast.LENGTH_SHORT).show();
}
+ return true;
});
dialog.show();
@@ -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 eu.siacs.conversations.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) {
@@ -53,15 +72,14 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity {
getListView().setMultiChoiceModeListener(new MultiChoiceModeListener() {
@Override
- public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
+ public boolean onPrepareActionMode(ActionMode mode, Menu menu) {
return false;
}
@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<>();
@@ -74,7 +92,7 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity {
@Override
public boolean onActionItemClicked(ActionMode mode, MenuItem item) {
- switch(item.getItemId()) {
+ switch (item.getItemId()) {
case R.id.selection_submit:
final Intent request = getIntent();
final Intent data = new Intent();
@@ -83,7 +101,7 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity {
String[] selection = getSelectedContactJids();
data.putExtra("contacts", selection);
data.putExtra("multiple", true);
- data.putExtra(EXTRA_ACCOUNT,request.getStringExtra(EXTRA_ACCOUNT));
+ data.putExtra(EXTRA_ACCOUNT, request.getStringExtra(EXTRA_ACCOUNT));
data.putExtra("subject", request.getStringExtra("subject"));
setResult(RESULT_OK, data);
finish();
@@ -109,32 +127,31 @@ 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
@@ -142,7 +159,7 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity {
super.onStart();
Intent intent = getIntent();
@StringRes
- int res = intent != null ? intent.getIntExtra(EXTRA_TITLE_RES_ID,R.string.title_activity_choose_contact) : R.string.title_activity_choose_contact;
+ int res = intent != null ? intent.getIntExtra(EXTRA_TITLE_RES_ID, R.string.title_activity_choose_contact) : R.string.title_activity_choose_contact;
ActionBar bar = getSupportActionBar();
if (bar != null) {
try {
@@ -158,7 +175,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 +208,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 +215,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);
@@ -208,27 +224,24 @@ public class ChooseContactActivity extends AbstractSearchableListItemActivity {
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
+ 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);
- 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();
@@ -249,25 +262,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;
- }
}