package com.xabber.android.ui.activity; import android.app.AlertDialog; import android.content.Context; import android.content.DialogInterface; import android.content.Intent; import android.os.Bundle; import android.support.v7.widget.Toolbar; import android.text.InputType; import android.view.Menu; import android.view.MenuItem; import android.widget.EditText; import com.xabber.android.R; import com.xabber.android.data.entity.AccountJid; import com.xabber.android.data.entity.UserJid; import com.xabber.android.data.intent.EntityIntentBuilder; import com.xabber.android.data.roster.RosterContact; import com.xabber.android.data.roster.RosterManager; import com.xabber.android.ui.dialog.ContactDeleteDialogFragment; public class ContactEditActivity extends ContactActivity implements Toolbar.OnMenuItemClickListener { public static Intent createIntent(Context context, AccountJid account, UserJid user) { return new EntityIntentBuilder(context, ContactEditActivity.class) .setAccount(account).setUser(user).build(); } @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); Toolbar toolbar = getToolbar(); RosterContact rosterContact = RosterManager.getInstance().getRosterContact(getAccount(), getUser()); if (rosterContact != null) { toolbar.inflateMenu(R.menu.toolbar_contact); toolbar.setOnMenuItemClickListener(this); toolbar.setOverflowIcon(getResources().getDrawable(R.drawable.ic_overflow_menu_white_24dp)); } } @Override public boolean onCreateOptionsMenu(Menu menu) { RosterContact rosterContact = RosterManager.getInstance().getRosterContact(getAccount(), getUser()); if (rosterContact != null) { getMenuInflater().inflate(R.menu.toolbar_contact, menu); } return true; } @Override public boolean onMenuItemClick(MenuItem item) { return onOptionsItemSelected(item); } @Override public boolean onOptionsItemSelected(MenuItem item) { switch (item.getItemId()) { case R.id.action_edit_alias: editAlias(); return true; case R.id.action_edit_groups: startActivity(GroupEditActivity.createIntent(this, getAccount(), getUser())); return true; case R.id.action_remove_contact: ContactDeleteDialogFragment.newInstance(getAccount(), getUser()) .show(getFragmentManager(), "CONTACT_DELETE"); return true; default: return super.onOptionsItemSelected(item); } } private void editAlias() { AlertDialog.Builder builder = new AlertDialog.Builder(this); builder.setTitle(R.string.edit_alias); final EditText input = new EditText(this); input.setInputType(InputType.TYPE_TEXT_VARIATION_PERSON_NAME); RosterContact rosterContact = RosterManager.getInstance().getRosterContact(getAccount(), getUser()); input.setText(rosterContact.getName()); builder.setView(input); builder.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { RosterManager.getInstance().setName(getAccount(), getUser(), input.getText().toString()); } }); builder.setNegativeButton(android.R.string.cancel, new DialogInterface.OnClickListener() { @Override public void onClick(DialogInterface dialog, int which) { dialog.cancel(); } }); builder.show(); } }