private void doCreateText() { Log.d(TAG, "Trying to resolve name " + mRecipient.getText().toString()); if (recipientNo != 0) { new CreateTextTask().execute(); } else { ConfInfo[] users = mKom.getUsers(mRecipient.getText().toString()); ConfInfo[] confs = mKom.getConferences(mRecipient.getText().toString()); final ConfInfo[] conferences = new ConfInfo[users.length + confs.length]; if (users.length > 0) { for (int i = 0; i < users.length; i++) { conferences[i] = users[i]; } } if (confs.length > 0) { for (int i = 0; i < confs.length; i++) { conferences[i + users.length] = confs[i]; } } if (conferences != null) { if (conferences.length > 1) { Log.d(TAG, "Ambigous name"); final CharSequence[] items = new CharSequence[conferences.length]; for (int i = 0; i < conferences.length; i++) { items[i] = new String(conferences[i].getNameString()); Log.d(TAG, "Name " + i + ":" + items[i]); } AlertDialog.Builder builder = new AlertDialog.Builder(CreateNewIM.this); builder.setTitle(getString(R.string.pick_a_name)); builder.setSingleChoiceItems( items, -1, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int item) { Toast.makeText(getApplicationContext(), items[item], Toast.LENGTH_SHORT).show(); dialog.cancel(); recipientNo = conferences[item].confNo; Log.d( TAG, "Selected confNo:" + recipientNo + ":" + new String(conferences[item].getNameString())); doCreateText(); } }); AlertDialog alert = builder.create(); alert.show(); } else if (conferences.length < 1) { Log.e(TAG, "No such recipient:" + mRecipient.getText().toString()); } else { recipientNo = conferences[0].confNo; new CreateTextTask().execute(); } } } }
@Override protected ConfInfo[] doInBackground(final Void... args) { try { switch (mLookupType) { case LOOKUP_USERS: return mKom.getSession().lookupName(mRecip, true, false); case LOOKUP_CONFERENCES: return mKom.getSession().lookupName(mRecip, false, true); case LOOKUP_BOTH: return mKom.getSession().lookupName(mRecip, true, true); default: return null; } } catch (final RpcFailure e) { return null; } catch (final IOException e) { return null; } }