Пример #1
0
  @Override
  public Dialog onCreateDialog(Bundle savedInstanceState) {
    AlertDialog.Builder adb = new AlertDialog.Builder(getActivity());
    Settings settings = Settings.getInstance(getActivity());

    String actionName;
    switch (getAction()) {
      case ADD_ACTION:
        actionName = getString(R.string.add);
        break;
      case EDIT_ACTION:
        actionName = getString(R.string.edit);
        break;
      case CONNECT_ACTION:
        actionName = getString(R.string.connect);
        break;
      default:
        throw new RuntimeException("Unknown action " + getAction());
    }
    adb.setPositiveButton(actionName, null);
    adb.setNegativeButton(android.R.string.cancel, null);

    LayoutInflater inflater = LayoutInflater.from(getActivity());
    View view = inflater.inflate(R.layout.dialog_server_edit, null, false);

    TextView titleLabel = (TextView) view.findViewById(R.id.server_edit_name_title);
    mNameEdit = (EditText) view.findViewById(R.id.server_edit_name);
    mHostEdit = (EditText) view.findViewById(R.id.server_edit_host);
    mPortEdit = (EditText) view.findViewById(R.id.server_edit_port);
    mUsernameEdit = (EditText) view.findViewById(R.id.server_edit_username);
    mUsernameEdit.setHint(settings.getDefaultUsername());
    mPasswordEdit = (EditText) view.findViewById(R.id.server_edit_password);

    Server oldServer = getServer();
    if (oldServer != null) {
      mNameEdit.setText(oldServer.getName());
      mHostEdit.setText(oldServer.getHost());
      mPortEdit.setText(String.valueOf(oldServer.getPort()));
      mUsernameEdit.setText(oldServer.getUsername());
      mPasswordEdit.setText(oldServer.getPassword());
    }

    if (shouldIgnoreTitle()) {
      titleLabel.setVisibility(View.GONE);
      mNameEdit.setVisibility(View.GONE);
    }

    // Fixes issues with text colour on light themes with pre-honeycomb devices.
    adb.setInverseBackgroundForced(true);

    adb.setView(view);

    return adb.create();
  }