diff --git a/app/src/main/java/i2p/bote/android/NewEmailFragment.java b/app/src/main/java/i2p/bote/android/NewEmailFragment.java index 33f2a98..27e32a2 100644 --- a/app/src/main/java/i2p/bote/android/NewEmailFragment.java +++ b/app/src/main/java/i2p/bote/android/NewEmailFragment.java @@ -312,21 +312,11 @@ public class NewEmailFragment extends Fragment { Address[] rcpts = email.getAllRecipients(); if (rcpts == null || rcpts.length == 0) { // No recipients - DialogFragment df = new DialogFragment() { - @Override - public Dialog onCreateDialog(Bundle savedInstanceState) { - AlertDialog.Builder builder = new AlertDialog.Builder(getActivity()); - builder.setMessage(R.string.add_one_recipient) - .setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() { - public void onClick(DialogInterface dialog, int which) { - dialog.dismiss(); - } - }); - return builder.create(); - } - }; - df.show(getActivity().getSupportFragmentManager(), "norecipients"); + mRecipients.setError(getActivity().getString(R.string.add_one_recipient)); + mRecipients.requestFocus(); return false; + } else { + mRecipients.setError(null); } email.setSubject(mSubject.getText().toString(), "UTF-8"); diff --git a/app/src/main/java/i2p/bote/android/addressbook/EditContactFragment.java b/app/src/main/java/i2p/bote/android/addressbook/EditContactFragment.java index 019d7d4..6fcbdd3 100644 --- a/app/src/main/java/i2p/bote/android/addressbook/EditContactFragment.java +++ b/app/src/main/java/i2p/bote/android/addressbook/EditContactFragment.java @@ -136,6 +136,15 @@ public class EditContactFragment extends EditPictureFragment { String destination = mDestinationField.getText().toString(); String text = mTextField.getText().toString(); + // Check fields + if (destination.isEmpty()) { + mDestinationField.setError(getActivity().getString(R.string.this_field_is_required)); + mDestinationField.requestFocus(); + return true; + } else { + mDestinationField.setError(null); + } + mError.setText(""); try { @@ -144,8 +153,15 @@ public class EditContactFragment extends EditPictureFragment { if (mDestination == null) // Only set if adding new contact getActivity().setResult(Activity.RESULT_OK); getActivity().finish(); - } else - mError.setText(err); + } else { + if (err.startsWith("No Email Destination found in string:") || + err.startsWith("Not a valid Email Destination:")) { + mDestinationField.setError(getActivity().getString(R.string.not_a_valid_bote_address)); + mDestinationField.requestFocus(); + } else { + mError.setText(err); + } + } } catch (PasswordException e) { // TODO Auto-generated catch block e.printStackTrace(); diff --git a/app/src/main/java/i2p/bote/android/config/IdentityShipFragment.java b/app/src/main/java/i2p/bote/android/config/IdentityShipFragment.java index c844674..4a425fe 100644 --- a/app/src/main/java/i2p/bote/android/config/IdentityShipFragment.java +++ b/app/src/main/java/i2p/bote/android/config/IdentityShipFragment.java @@ -190,13 +190,24 @@ public abstract class IdentityShipFragment extends Fragment { if (encrypt) { password = mPassword.getText().toString(); String confirmPassword = mConfirmPassword.getText().toString(); + if (password.isEmpty()) { - mError.setText(R.string.password_empty); + mPassword.setError(getActivity().getString(R.string.this_field_is_required)); + mPassword.requestFocus(); + return; + } else + mPassword.setError(null); + + if (confirmPassword.isEmpty()) { + mConfirmPassword.setError(getActivity().getString(R.string.this_field_is_required)); + mConfirmPassword.requestFocus(); return; } else if (!password.equals(confirmPassword)) { - mError.setText(R.string.passwords_do_not_match); + mConfirmPassword.setError(getActivity().getString(R.string.passwords_do_not_match)); + mConfirmPassword.requestFocus(); return; - } + } else + mConfirmPassword.setError(null); } File exportFile = new File(Environment.getExternalStoragePublicDirectory( @@ -204,9 +215,13 @@ public abstract class IdentityShipFragment extends Fragment { ), exportFilename + suffix); if (exportFile.exists()) { // TODO ask to rename or overwrite - mError.setText(R.string.file_exists); + mExportFilename.setError(getActivity().getString(R.string.file_exists)); + mExportFilename.requestFocus(); + return; } else - exportIdentities(exportFile, password); + mExportFilename.setError(null); + + exportIdentities(exportFile, password); } }); } diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index f667749..65e7034 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -131,6 +131,7 @@ Failed to read Email Destination file. Could not find Email Destination file. Save contact + This is not a valid Bote address Delete contact? Network information is not available because Bote hasn\'t started connecting to the network yet. Bote is waiting for the I2P router to start up and be ready. @@ -183,7 +184,6 @@ Delete identity? Identity saved Export identities - Password is empty Passwords do not match File exists Exporting identities @@ -193,5 +193,6 @@ No identities were found. No identities were found. Is the file encrypted? Identities imported + This field is required