diff --git a/app/src/main/java/com/example/acloc/activity/AddNewPlaceActivity.java b/app/src/main/java/com/example/acloc/activity/AddNewPlaceActivity.java
index 1e5193c..3568a5e 100644
--- a/app/src/main/java/com/example/acloc/activity/AddNewPlaceActivity.java
+++ b/app/src/main/java/com/example/acloc/activity/AddNewPlaceActivity.java
@@ -227,7 +227,7 @@ public class AddNewPlaceActivity extends AppCompatActivity implements View.OnCli
private void onClickBtnSubmit() {
View[] views = {etPlaceName, etLatitude, etLongitude, etAddress, etPlaceDescription};
- if (Helper.isEmptyFieldValidation(views)) {
+ if (Helper.isEmptyFieldValidation(context, views)) {
setInputDataToEntity();
if (place_uuid != null && !place_uuid.isEmpty()) {
diff --git a/app/src/main/java/com/example/acloc/activity/AddReportActivity.java b/app/src/main/java/com/example/acloc/activity/AddReportActivity.java
index 48ed373..2bb9cdb 100644
--- a/app/src/main/java/com/example/acloc/activity/AddReportActivity.java
+++ b/app/src/main/java/com/example/acloc/activity/AddReportActivity.java
@@ -2,7 +2,6 @@ package com.example.acloc.activity;
import static com.example.acloc.utility.Constants.BASE_URL;
-import android.app.Dialog;
import android.content.Context;
import android.content.Intent;
import android.graphics.PorterDuff;
@@ -273,7 +272,7 @@ public class AddReportActivity extends AppCompatActivity implements View.OnClick
private void onClickBtnSubmit() {
View[] views = {etPlaceName, etDescription};
- if (Helper.isEmptyFieldValidation(views) && isValidateRating()) {
+ if (Helper.isEmptyFieldValidation(context, views) && isValidateRating()) {
setInputDataToEntity();
if (report_uuid != null && !report_uuid.isEmpty()) {
diff --git a/app/src/main/java/com/example/acloc/activity/LoginActivity.java b/app/src/main/java/com/example/acloc/activity/LoginActivity.java
index cda1e93..62fa09c 100644
--- a/app/src/main/java/com/example/acloc/activity/LoginActivity.java
+++ b/app/src/main/java/com/example/acloc/activity/LoginActivity.java
@@ -53,7 +53,7 @@ public class LoginActivity extends AppCompatActivity implements View.OnClickList
Helper.goTo(this, MainActivity.class);
finish();
} else {
- // Optionally force logout if token expired
+ // force logout if token expired
SharedPref.setIsLoggedIn(this, false);
SharedPref.setAccessToken(this, ""); // clear token
setContentView(R.layout.activity_login);
@@ -112,7 +112,7 @@ public class LoginActivity extends AppCompatActivity implements View.OnClickList
private void onClickBtnLogin() {
View[] views = {etUsername, etPassword};
- if (Helper.isEmptyFieldValidation(views)) {
+ if (Helper.isEmptyFieldValidation(context, views)) {
setInputDataToEntity();
loginUserWithRetrofit();
}
diff --git a/app/src/main/java/com/example/acloc/activity/PlaceDetailActivity.java b/app/src/main/java/com/example/acloc/activity/PlaceDetailActivity.java
index ee708fb..d1ff42b 100644
--- a/app/src/main/java/com/example/acloc/activity/PlaceDetailActivity.java
+++ b/app/src/main/java/com/example/acloc/activity/PlaceDetailActivity.java
@@ -78,7 +78,7 @@ public class PlaceDetailActivity extends AppCompatActivity implements View.OnCli
super.onResume();
if (adapter != null) {
setDataVisibility(false);
- adapter.clearReports(); // Safe way to clear and notify
+ adapter.clearReports(); // clear and notify
}
if (context != null) loadData();
diff --git a/app/src/main/java/com/example/acloc/dialog/AlertChangePasswordDialog.java b/app/src/main/java/com/example/acloc/dialog/AlertChangePasswordDialog.java
index b480bb2..5f2707f 100644
--- a/app/src/main/java/com/example/acloc/dialog/AlertChangePasswordDialog.java
+++ b/app/src/main/java/com/example/acloc/dialog/AlertChangePasswordDialog.java
@@ -91,7 +91,7 @@ public class AlertChangePasswordDialog implements View.OnClickListener {
private void onClickBtnUpdate() {
View[] views = {etOldPassword, etNewPassword};
- if (Helper.isEmptyFieldValidation(views) && Helper.isPasswordValid(etNewPassword)) {
+ if (Helper.isEmptyFieldValidation(context, views) && Helper.isPasswordValid(context, etNewPassword)) {
String username = SharedPref.getUserName(context);
String oldPassword = Helper.getStringFromInput(etOldPassword);
String newPassword = Helper.getStringFromInput(etNewPassword);
diff --git a/app/src/main/java/com/example/acloc/dialog/AlertViewAddNewPlaceDialog.java b/app/src/main/java/com/example/acloc/dialog/AlertViewAddNewPlaceDialog.java
index 04d1326..4d5cf03 100644
--- a/app/src/main/java/com/example/acloc/dialog/AlertViewAddNewPlaceDialog.java
+++ b/app/src/main/java/com/example/acloc/dialog/AlertViewAddNewPlaceDialog.java
@@ -115,7 +115,7 @@ public class AlertViewAddNewPlaceDialog implements View.OnClickListener {
private void onClickBtnSubmit() {
View[] views = {etPlaceName, etLatitude, etLongitude, etAddress, etPlaceDescription};
- if (Helper.isEmptyFieldValidation(views)) {
+ if (Helper.isEmptyFieldValidation(context, views)) {
setInputDataToEntity();
if (place_uuid != null && !place_uuid.isEmpty()) {
diff --git a/app/src/main/java/com/example/acloc/dialog/AlertViewOrUpdateProfileDialog.java b/app/src/main/java/com/example/acloc/dialog/AlertViewOrUpdateProfileDialog.java
index 36b7738..dcb29fd 100644
--- a/app/src/main/java/com/example/acloc/dialog/AlertViewOrUpdateProfileDialog.java
+++ b/app/src/main/java/com/example/acloc/dialog/AlertViewOrUpdateProfileDialog.java
@@ -115,7 +115,7 @@ public class AlertViewOrUpdateProfileDialog implements View.OnClickListener {
private void onClickBtnUpdate() {
View[] views = {etUsername, etEmail};
- if (Helper.isEmptyFieldValidation(views) && Helper.isEmailValid(etEmail)) {
+ if (Helper.isEmptyFieldValidation(context, views) && Helper.isEmailValid(context, etEmail)) {
setInputDataToEntity();
String uuid = SharedPref.getUserUid(context);
updateUserWithRetrofit(uuid, entity.getUsername(), entity.getEmail());
diff --git a/app/src/main/java/com/example/acloc/utility/Helper.java b/app/src/main/java/com/example/acloc/utility/Helper.java
index 3f79400..0832931 100644
--- a/app/src/main/java/com/example/acloc/utility/Helper.java
+++ b/app/src/main/java/com/example/acloc/utility/Helper.java
@@ -14,6 +14,7 @@ import com.google.android.material.snackbar.Snackbar;
import com.google.android.material.textfield.MaterialAutoCompleteTextView;
import com.google.android.material.textfield.TextInputEditText;
import com.google.android.material.textfield.TextInputLayout;
+import com.ieslamar.acloc.R;
import java.io.Serializable;
import java.text.SimpleDateFormat;
@@ -49,17 +50,6 @@ public class Helper {
intent.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK | Intent.FLAG_ACTIVITY_CLEAR_TASK);
context.startActivity(intent);
- // No need to finish explicitly here, flags handle it
- if (context instanceof Activity) {
- ((Activity) context).finish();
- }
- }
-
- public static void goToAndFinish(Context context, Class> activity, String key, Serializable object) {
- Intent intent = new Intent(context, activity);
- intent.putExtra(key, object);
- context.startActivity(intent);
-
if (context instanceof Activity) {
((Activity) context).finish();
}
@@ -75,6 +65,16 @@ public class Helper {
// }
}
+ public static void goToAndFinish(Context context, Class> activity, String key, Serializable object) {
+ Intent intent = new Intent(context, activity);
+ intent.putExtra(key, object);
+ context.startActivity(intent);
+
+ if (context instanceof Activity) {
+ ((Activity) context).finish();
+ }
+ }
+
public static int getIntValueFromString(String value) {
try {
return Integer.parseInt(value);
@@ -137,7 +137,7 @@ public class Helper {
return isValidate;
}
- public static boolean isEmptyFieldValidation(View[] inputFields) {
+ public static boolean isEmptyFieldValidation(Context context, View[] inputFields) {
boolean isValidate = true;
try {
for (View view : inputFields) {
@@ -156,13 +156,13 @@ public class Helper {
if (inputText.isEmpty()) {
if (textInputLayout != null) {
- textInputLayout.setError("Please " + textInputLayout.getHint());
+ textInputLayout.setError(context.getString(R.string.please) +" "+ textInputLayout.getHint());
textInputLayout.setErrorEnabled(true);
} else {
if (view instanceof TextInputEditText) {
- ((TextInputEditText) view).setError("Empty");
+ ((TextInputEditText) view).setError(context.getString(R.string.empty));
} else if (view instanceof MaterialAutoCompleteTextView) {
- ((MaterialAutoCompleteTextView) view).setError("Empty");
+ ((MaterialAutoCompleteTextView) view).setError(context.getString(R.string.empty));
}
}
isValidate = false;
@@ -185,7 +185,7 @@ public class Helper {
return isValidate;
}
- public static boolean isEmailValid(View emailView) {
+ public static boolean isEmailValid(Context context, View emailView) {
boolean isValidate = true;
try {
TextInputLayout textInputLayout = null;
@@ -204,13 +204,13 @@ public class Helper {
// Regex for email validation
if (!emailText.matches("^[a-zA-Z0-9._%+-]+@[a-zA-Z0-9.-]+\\.[a-zA-Z]{2,6}$")) {
if (textInputLayout != null) {
- textInputLayout.setError("Invalid Email Address");
+ textInputLayout.setError(context.getString(R.string.invalid_email_address));
textInputLayout.setErrorEnabled(true);
} else {
if (emailView instanceof TextInputEditText) {
- ((TextInputEditText) emailView).setError("Invalid Email Address");
+ ((TextInputEditText) emailView).setError(context.getString(R.string.invalid_email_address));
} else if (emailView instanceof MaterialAutoCompleteTextView) {
- ((MaterialAutoCompleteTextView) emailView).setError("Invalid Email Address");
+ ((MaterialAutoCompleteTextView) emailView).setError(context.getString(R.string.invalid_email_address));
}
}
isValidate = false;
@@ -232,7 +232,7 @@ public class Helper {
return isValidate;
}
- public static boolean isPasswordValid(View passwordView) {
+ public static boolean isPasswordValid(Context context, View passwordView) {
boolean isValidate = true;
try {
TextInputLayout textInputLayout = null;
@@ -253,13 +253,13 @@ public class Helper {
if (!passwordText.matches(passwordPattern)) {
if (textInputLayout != null) {
- textInputLayout.setError("Password must be at least 6 characters, include 1 uppercase, 1 lowercase, 1 digit, and 1 special character.");
+ textInputLayout.setError(context.getString(R.string.password_validation_requirement));
textInputLayout.setErrorEnabled(true);
} else {
if (passwordView instanceof TextInputEditText) {
- ((TextInputEditText) passwordView).setError("Password must be at least 6 characters, include 1 uppercase, 1 lowercase, 1 digit, and 1 special character.");
+ ((TextInputEditText) passwordView).setError(context.getString(R.string.password_validation_requirement));
} else if (passwordView instanceof MaterialAutoCompleteTextView) {
- ((MaterialAutoCompleteTextView) passwordView).setError("Password must be at least 6 characters, include 1 uppercase, 1 lowercase, 1 digit, and 1 special character.");
+ ((MaterialAutoCompleteTextView) passwordView).setError(context.getString(R.string.password_validation_requirement));
}
}
isValidate = false;
diff --git a/app/src/main/res/values-es/strings.xml b/app/src/main/res/values-es/strings.xml
index e191eaa..fcedf0f 100644
--- a/app/src/main/res/values-es/strings.xml
+++ b/app/src/main/res/values-es/strings.xml
@@ -170,6 +170,10 @@
Error de análisis
Ningún lugar encontrado cerca de esta dirección
Lugar no encontrado
+ Dirección de correo no válida
+ Por favor
+ Vacío
+ La contraseña debe tener al menos 6 caracteres, incluir 1 mayúscula, 1 minúscula, 1 dígito y 1 carácter especial.
\ No newline at end of file
diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml
index 2749725..9ce168f 100644
--- a/app/src/main/res/values/strings.xml
+++ b/app/src/main/res/values/strings.xml
@@ -173,6 +173,10 @@
Response parsing error
No places found near this location
Location not found
+ Invalid email address
+ Please
+ Empty
+ Password must be at least 6 characters, include 1 uppercase, 1 lowercase, 1 digit, and 1 special character.
\ No newline at end of file