content: package im.actor.sdk.controllers.contacts;
  
  import android.app.AlertDialog;
  import android.content.DialogInterface;
  import android.os.Bundle;
  import android.view.LayoutInflater;
  import android.view.View;
  import android.view.ViewGroup;
  import android.widget.TextView;
  
  import im.actor.core.entity.Contact;
  import im.actor.core.viewmodel.CommandCallback;
  import im.actor.sdk.ActorSDK;
  import im.actor.sdk.R;
  import im.actor.sdk.controllers.Intents;
  
  import static im.actor.sdk.util.ActorSDKMessenger.messenger;
  
  public class ContactsFragment extends BaseContactFragment {
  
      public ContactsFragment() {
          super(false, false, false);
          setRootFragment(true);
          setHomeAsUp(true);
          setTitle(R.string.contacts_title);
      }
  
      @Override
      public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
          View res = onCreateContactsView(R.layout.fragment_contacts, inflater, container, savedInstanceState);
          res.setBackgroundColor(ActorSDK.sharedActor().style.getMainBackgroundColor());
          res.findViewById(R.id.emptyCollection).setBackgroundColor(ActorSDK.sharedActor().style.getMainBackgroundColor());
  
          res.findViewById(R.id.inviteButton).setOnClickListener(new View.OnClickListener() {
              @Override
              public void onClick(View v) {
                  sendInvites();
              }
          });
          ((TextView) res.findViewById(R.id.no_contacts_text)).setTextColor(ActorSDK.sharedActor().style.getTextSecondaryAccentColor());
          ((TextView) res.findViewById(R.id.no_contacts_text)).setText(getString(R.string.contacts_empty_invite_hint).replace("{appName}", ActorSDK.sharedActor().getAppName()));
          ((TextView) res.findViewById(R.id.add_contact_hint_text)).setTextColor(ActorSDK.sharedActor().style.getTextSecondaryAccentColor());
          return res;
      }
  
      @Override
      public void onItemClicked(Contact contact) {
          getActivity().startActivity(Intents.openPrivateDialog(contact.getUid(), true, getActivity()));
      }
  
      @Override
      public boolean onItemLongClicked(final Contact contact) {
          new AlertDialog.Builder(getActivity())
                  .setItems(new CharSequence[]{
                          getString(R.string.contacts_menu_remove).replace("{0}", contact.getName()),
                          getString(R.string.contacts_menu_edit),
                  }, (dialog, which) -> {
                      if (which == 0) {
                          new AlertDialog.Builder(getActivity())
                                  .setMessage(getString(R.string.alert_remove_contact_text).replace("{0}", contact.getName()))
                                  .setPositiveButton(R.string.alert_remove_contact_yes, new DialogInterface.OnClickListener() {
                                      @Override
                                      public void onClick(DialogInterface dialog, int which) {
                                          execute(messenger().removeContact(contact.getUid()), R.string.contacts_menu_remove_progress, new CommandCallback<Boolean>() {
                                              @Override
                                              public void onResult(Boolean res) {
  
                                              }
  
                                              @Override
                                              public void onError(Exception e) {
  
                                              }
                                          });
                                      }
                                  })
                                  .setNegativeButton(R.string.dialog_cancel, null)
                                  .show()
                                  .setCanceledOnTouchOutside(true);
                      } else if (which == 1) {
                          startActivity(Intents.editUserName(contact.getUid(), getActivity()));
                      }
                  })
                  .show()
                  .setCanceledOnTouchOutside(true);
          return true;
      }
  }
  