From 1901abd05fc051b776e2bbb10295f936408a0843 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 22 Apr 2016 21:25:06 +0200 Subject: expert setting to manually change presence --- .../java/eu/siacs/conversations/ui/StartConversationActivity.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java') diff --git a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java index 7d650e5b..4a59da21 100644 --- a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java @@ -738,7 +738,7 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU for (Contact contact : account.getRoster().getContacts()) { Presence p = contact.getPresences().getMostAvailablePresence(); Presence.Status s = p == null ? Presence.Status.OFFLINE : p.getStatus(); - if (contact.showInRoster() && contact.match(needle) + if (contact.showInRoster() && contact.match(this, needle) && (!this.mHideOfflineContacts || (needle != null && !needle.trim().isEmpty()) || s.compareTo(Presence.Status.OFFLINE) < 0)) { @@ -756,7 +756,7 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU for (Account account : xmppConnectionService.getAccounts()) { if (account.getStatus() != Account.State.DISABLED) { for (Bookmark bookmark : account.getBookmarks()) { - if (bookmark.match(needle)) { + if (bookmark.match(this, needle)) { this.conferences.add(bookmark); } } -- cgit v1.2.3 From 29616d02a8e97a9044daec286bdfa7c862108fa4 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Wed, 27 Apr 2016 16:43:02 +0200 Subject: removed unused config variables --- .../conversations/ui/StartConversationActivity.java | 17 +++++------------ 1 file changed, 5 insertions(+), 12 deletions(-) (limited to 'src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java') diff --git a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java index 4a59da21..558a9672 100644 --- a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java @@ -390,13 +390,10 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU final View dialogView = getLayoutInflater().inflate(R.layout.join_conference_dialog, null); final Spinner spinner = (Spinner) dialogView.findViewById(R.id.account); final AutoCompleteTextView jid = (AutoCompleteTextView) dialogView.findViewById(R.id.jid); - final boolean lock = Config.LOCK_DOMAINS_IN_CONVERSATIONS && Config.CONFERENCE_DOMAIN_LOCK != null; final TextView jabberIdDesc = (TextView) dialogView.findViewById(R.id.jabber_id); - jabberIdDesc.setText(lock ? R.string.conference_name : R.string.conference_address); - jid.setHint(lock ? R.string.conference_name : R.string.conference_address_example); - if (!lock) { - jid.setAdapter(new KnownHostsAdapter(this, android.R.layout.simple_list_item_1, mKnownConferenceHosts)); - } + jabberIdDesc.setText(R.string.conference_address); + jid.setHint(R.string.conference_address_example); + jid.setAdapter(new KnownHostsAdapter(this, android.R.layout.simple_list_item_1, mKnownConferenceHosts)); if (prefilledJid != null) { jid.append(prefilledJid); } @@ -422,13 +419,9 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU } final Jid conferenceJid; try { - if (lock) { - conferenceJid = Jid.fromParts(jid.getText().toString(),Config.CONFERENCE_DOMAIN_LOCK, null); - } else { - conferenceJid = Jid.fromString(jid.getText().toString()); - } + conferenceJid = Jid.fromString(jid.getText().toString()); } catch (final InvalidJidException e) { - jid.setError(getString(lock ? R.string.invalid_conference_name : R.string.invalid_jid)); + jid.setError(getString(R.string.invalid_jid)); return; } -- cgit v1.2.3 From c7882b7225bc9615aa69066c3182014992ad24d1 Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Fri, 29 Apr 2016 13:48:30 +0200 Subject: port all android drop down list items to our own --- .../eu/siacs/conversations/ui/StartConversationActivity.java | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) (limited to 'src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java') diff --git a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java index 558a9672..78c05e41 100644 --- a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java @@ -393,7 +393,7 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU final TextView jabberIdDesc = (TextView) dialogView.findViewById(R.id.jabber_id); jabberIdDesc.setText(R.string.conference_address); jid.setHint(R.string.conference_address_example); - jid.setAdapter(new KnownHostsAdapter(this, android.R.layout.simple_list_item_1, mKnownConferenceHosts)); + jid.setAdapter(new KnownHostsAdapter(this, R.layout.simple_list_item, mKnownConferenceHosts)); if (prefilledJid != null) { jid.append(prefilledJid); } @@ -487,16 +487,15 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU public static void populateAccountSpinner(Context context, List accounts, Spinner spinner) { if (accounts.size() > 0) { - ArrayAdapter adapter = new ArrayAdapter<>(context, - android.R.layout.simple_spinner_item, accounts); - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + ArrayAdapter adapter = new ArrayAdapter<>(context, R.layout.simple_list_item, accounts); + adapter.setDropDownViewResource(R.layout.simple_list_item); spinner.setAdapter(adapter); spinner.setEnabled(true); } else { ArrayAdapter adapter = new ArrayAdapter<>(context, - android.R.layout.simple_spinner_item, + R.layout.simple_list_item, Arrays.asList(new String[]{context.getString(R.string.no_accounts)})); - adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); + adapter.setDropDownViewResource(R.layout.simple_list_item); spinner.setAdapter(adapter); spinner.setEnabled(false); } -- cgit v1.2.3 From f4369b29ae0d4d3ad562ce6695af6aca8f7416ea Mon Sep 17 00:00:00 2001 From: Daniel Gultsch Date: Thu, 12 May 2016 18:49:54 +0200 Subject: improve keyboard handling. fixes #1387 * start a new Conversations by pressing mod+space * automatically start searching when pressing keys in StartConversationsActivity * when hitting enter when number of search results == 1 open that conversation --- .../ui/StartConversationActivity.java | 53 +++++++++++++++++++--- 1 file changed, 47 insertions(+), 6 deletions(-) (limited to 'src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java') diff --git a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java index 78c05e41..3ab6d1d2 100644 --- a/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java +++ b/src/main/java/eu/siacs/conversations/ui/StartConversationActivity.java @@ -91,7 +91,6 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU private List mKnownHosts; private List mKnownConferenceHosts; private Invite mPendingInvite = null; - private Menu mOptionsMenu; private EditText mSearchEditText; private AtomicBoolean mRequestedContactsPermission = new AtomicBoolean(false); private final int REQUEST_SYNC_CONTACTS = 0x3b28cf; @@ -116,9 +115,7 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU @Override public boolean onMenuItemActionCollapse(MenuItem item) { - InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE); - imm.hideSoftInputFromWindow(mSearchEditText.getWindowToken(), - InputMethodManager.HIDE_IMPLICIT_ONLY); + hideKeyboard(); mSearchEditText.setText(""); filter(null); return true; @@ -169,6 +166,28 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU int count) { } }; + + private TextView.OnEditorActionListener mSearchDone = new TextView.OnEditorActionListener() { + @Override + public boolean onEditorAction(TextView v, int actionId, KeyEvent event) { + if (getActionBar().getSelectedNavigationIndex() == 0) { + if (contacts.size() == 1) { + openConversationForContact((Contact) contacts.get(0)); + } else { + hideKeyboard(); + mContactsListFragment.getListView().requestFocus(); + } + } else { + if (conferences.size() == 1) { + openConversationsForBookmark((Bookmark) conferences.get(0)); + } else { + hideKeyboard(); + mConferenceListFragment.getListView().requestFocus(); + } + } + return true; + } + }; private MenuItem mMenuSearchView; private ListItemAdapter.OnTagClickedListener mOnTagClickedListener = new ListItemAdapter.OnTagClickedListener() { @Override @@ -260,6 +279,10 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU protected void openConversationForContact(int position) { Contact contact = (Contact) contacts.get(position); + openConversationForContact(contact); + } + + protected void openConversationForContact(Contact contact) { Conversation conversation = xmppConnectionService .findOrCreateConversation(contact.getAccount(), contact.getJid(), false); @@ -277,6 +300,10 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU protected void openConversationForBookmark(int position) { Bookmark bookmark = (Bookmark) conferences.get(position); + openConversationsForBookmark(bookmark); + } + + protected void openConversationsForBookmark(Bookmark bookmark) { Jid jid = bookmark.getJid(); if (jid == null) { Toast.makeText(this,R.string.invalid_jid,Toast.LENGTH_SHORT).show(); @@ -503,7 +530,6 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU @Override public boolean onCreateOptionsMenu(Menu menu) { - this.mOptionsMenu = menu; getMenuInflater().inflate(R.menu.start_conversation, menu); MenuItem menuCreateContact = menu.findItem(R.id.action_create_contact); MenuItem menuCreateConference = menu.findItem(R.id.action_join_conference); @@ -515,6 +541,7 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU mSearchEditText = (EditText) mSearchView .findViewById(R.id.search_field); mSearchEditText.addTextChangedListener(mSearchTextWatcher); + mSearchEditText.setOnEditorActionListener(mSearchDone); if (getActionBar().getSelectedNavigationIndex() == 0) { menuCreateConference.setVisible(false); } else { @@ -554,12 +581,26 @@ public class StartConversationActivity extends XmppActivity implements OnRosterU @Override public boolean onKeyUp(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_SEARCH && !event.isLongPress()) { - mOptionsMenu.findItem(R.id.action_search).expandActionView(); + openSearch(); return true; } + int c = event.getUnicodeChar(); + if (c > 32) { + if (mSearchEditText != null && !mSearchEditText.isFocused()) { + openSearch(); + mSearchEditText.append(Character.toString((char) c)); + return true; + } + } return super.onKeyUp(keyCode, event); } + private void openSearch() { + if (mMenuSearchView != null) { + mMenuSearchView.expandActionView(); + } + } + @Override public void onActivityResult(int requestCode, int resultCode, Intent intent) { if ((requestCode & 0xFFFF) == IntentIntegrator.REQUEST_CODE) { -- cgit v1.2.3