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();
}
}