PasswordDialogFragment.java 3.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495
  1. package com.epson.memcardacc;
  2. import android.app.AlertDialog;
  3. import android.app.Dialog;
  4. import android.content.DialogInterface;
  5. import android.os.Bundle;
  6. import android.view.KeyEvent;
  7. import android.view.View;
  8. import android.view.ViewGroup;
  9. import android.widget.EditText;
  10. import android.widget.ImageButton;
  11. import android.widget.TextView;
  12. public class PasswordDialogFragment extends DialogFragment implements DialogInterface.OnKeyListener {
  13. private static final String ARG_KEY_FIRST_AUTHENTICATION = "first_authentication";
  14. private TextView mMessage;
  15. private EditText mPasswordEdit;
  16. private EditText mUserNameEdit;
  17. public interface Callback {
  18. void onNegativeClicked();
  19. void onPositiveClicked(String str, String str2);
  20. }
  21. public static PasswordDialogFragment newInstance(boolean z) {
  22. PasswordDialogFragment passwordDialogFragment = new PasswordDialogFragment();
  23. Bundle bundle = new Bundle();
  24. bundle.putBoolean(ARG_KEY_FIRST_AUTHENTICATION, z);
  25. passwordDialogFragment.setArguments(bundle);
  26. return passwordDialogFragment;
  27. }
  28. public Dialog onCreateDialog(Bundle bundle) {
  29. Bundle arguments = getArguments();
  30. boolean z = true;
  31. if (arguments != null) {
  32. z = arguments.getBoolean(ARG_KEY_FIRST_AUTHENTICATION, true);
  33. }
  34. AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
  35. View inflate = View.inflate(getActivity(), R.layout.fragment_password_dialog, (ViewGroup) null);
  36. mMessage = (TextView) inflate.findViewById(R.id.password_message);
  37. mMessage.setText(z ? R.string.memcard_password_input_message : R.string.memcard_password_incorrect_message);
  38. mUserNameEdit = (EditText) inflate.findViewById(R.id.memcardUsername);
  39. mPasswordEdit = (EditText) inflate.findViewById(R.id.memcardPassword);
  40. ((ImageButton) inflate.findViewById(R.id.imageButton1)).setOnClickListener(new View.OnClickListener() {
  41. public void onClick(View view) {
  42. PasswordDialogFragment.mUserNameEdit.getText().clear();
  43. }
  44. });
  45. ((ImageButton) inflate.findViewById(R.id.imageButton2)).setOnClickListener(new View.OnClickListener() {
  46. public void onClick(View view) {
  47. PasswordDialogFragment.mPasswordEdit.getText().clear();
  48. }
  49. });
  50. builder.setView(inflate).setPositiveButton(R.string.str_ok, new DialogInterface.OnClickListener() {
  51. public void onClick(DialogInterface dialogInterface, int i) {
  52. String userName = getUserName();
  53. String password = getPassword();
  54. CifsAccess.setSmbAuthInfo(new SmbAuthInfo(userName, password));
  55. ((Callback) getActivity()).onPositiveClicked(userName, password);
  56. }
  57. }).setNegativeButton(R.string.str_cancel, new DialogInterface.OnClickListener() {
  58. public void onClick(DialogInterface dialogInterface, int i) {
  59. cancelAuthentication();
  60. }
  61. }).setTitle(R.string.str_enter_pass);
  62. AlertDialog create = builder.create();
  63. create.setCanceledOnTouchOutside(false);
  64. create.setOnKeyListener(this);
  65. return create;
  66. }
  67. public void cancelAuthentication() {
  68. ((Callback) getActivity()).onNegativeClicked();
  69. }
  70. public String getPassword() {
  71. return mPasswordEdit.getText().toString();
  72. }
  73. public String getUserName() {
  74. return mUserNameEdit.getText().toString();
  75. }
  76. public boolean onKey(DialogInterface dialogInterface, int i, KeyEvent keyEvent) {
  77. if (i != 4) {
  78. return false;
  79. }
  80. cancelAuthentication();
  81. dismiss();
  82. return true;
  83. }
  84. }