Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -110,7 +110,6 @@

@RuntimePermissions
public class AddEditPatientFragment extends ACBaseFragment<AddEditPatientContract.Presenter> implements AddEditPatientContract.View, CameraOrGalleryPickerDialog.onInputSelected {

AlertDialog alertDialog;
private FragmentPatientInfoBinding binding;
private LocalDate birthDate;
Expand Down Expand Up @@ -170,8 +169,8 @@ public void setErrorsVisibility(boolean givenNameError,

dateTimeFormatter = DateTimeFormat.forPattern(DateUtils.DEFAULT_DATE_FORMAT);
String minimumDate = DateTime.now().minusYears(
ApplicationConstants.RegisterPatientRequirements.MAX_PATIENT_AGE)
.toString(dateTimeFormatter);
ApplicationConstants.RegisterPatientRequirements.MAX_PATIENT_AGE)
.toString(dateTimeFormatter);
String maximumDate = DateTime.now().toString(dateTimeFormatter);
if (binding.unidentifiedCheckbox.isChecked()) {
binding.dobError.setText(getString(R.string.dob_error_for_unidentified));
Expand Down Expand Up @@ -209,21 +208,20 @@ private Patient updatePatientWithData(Patient patient) {

List<PersonAddress> addresses = new ArrayList<>();
patient.setAddresses(addresses);

} else {
// Validate address
if (ViewUtils.isEmpty(binding.addressOne)
&& ViewUtils.isEmpty(binding.addressTwo)
&& ViewUtils.isEmpty(binding.cityAutoComplete)
&& ViewUtils.isEmpty(binding.postalCode)
&& ViewUtils.isCountryCodePickerEmpty(binding.countryCodeSpinner)
&& ViewUtils.isEmpty(binding.stateAutoComplete)) {
&& ViewUtils.isEmpty(binding.addressTwo)
&& ViewUtils.isEmpty(binding.cityAutoComplete)
&& ViewUtils.isEmpty(binding.postalCode)
&& ViewUtils.isCountryCodePickerEmpty(binding.countryCodeSpinner)
&& ViewUtils.isEmpty(binding.stateAutoComplete)) {

binding.addressError.setText(R.string.atleastone);
binding.textInputLayoutAddress.setErrorEnabled(true);
binding.textInputLayoutAddress.setError(getString(R.string.atleastone));
} else if (!ViewUtils.validateText(ViewUtils.getInput(binding.addressOne), ViewUtils.ILLEGAL_ADDRESS_CHARACTERS)
|| !ViewUtils.validateText(ViewUtils.getInput(binding.addressTwo), ViewUtils.ILLEGAL_ADDRESS_CHARACTERS)) {
|| !ViewUtils.validateText(ViewUtils.getInput(binding.addressTwo), ViewUtils.ILLEGAL_ADDRESS_CHARACTERS)) {

binding.addressError.setText(getString(R.string.addr_invalid_error));
binding.textInputLayoutAddress.setErrorEnabled(true);
Expand Down Expand Up @@ -312,7 +310,7 @@ private Patient updatePatientWithData(Patient patient) {
String unvalidatedDate = binding.dobEditText.getText().toString().trim();

DateTime minDateOfBirth = DateTime.now().minusYears(
ApplicationConstants.RegisterPatientRequirements.MAX_PATIENT_AGE);
ApplicationConstants.RegisterPatientRequirements.MAX_PATIENT_AGE);
DateTime maxDateOfBirth = DateTime.now();

if (DateUtils.validateDate(unvalidatedDate, minDateOfBirth, maxDateOfBirth)) {
Expand Down Expand Up @@ -404,16 +402,16 @@ public void showUpgradeRegistrationModuleInfo() {
@Override
public boolean areFieldsNotEmpty() {
return (!ViewUtils.isEmpty(binding.firstName) ||
(!ViewUtils.isEmpty(binding.middlename)) ||
(!ViewUtils.isEmpty(binding.surname)) ||
(!ViewUtils.isEmpty(binding.dobEditText)) ||
(!ViewUtils.isEmpty(binding.estimatedYear)) ||
(!ViewUtils.isEmpty(binding.addressOne)) ||
(!ViewUtils.isEmpty(binding.addressTwo)) ||
(!ViewUtils.isEmpty(binding.cityAutoComplete)) ||
(!ViewUtils.isEmpty(binding.stateAutoComplete)) ||
(!ViewUtils.isCountryCodePickerEmpty(binding.countryCodeSpinner)) ||
(!ViewUtils.isEmpty(binding.postalCode)));
(!ViewUtils.isEmpty(binding.middlename)) ||
(!ViewUtils.isEmpty(binding.surname)) ||
(!ViewUtils.isEmpty(binding.dobEditText)) ||
(!ViewUtils.isEmpty(binding.estimatedYear)) ||
(!ViewUtils.isEmpty(binding.addressOne)) ||
(!ViewUtils.isEmpty(binding.addressTwo)) ||
(!ViewUtils.isEmpty(binding.cityAutoComplete)) ||
(!ViewUtils.isEmpty(binding.stateAutoComplete)) ||
(!ViewUtils.isCountryCodePickerEmpty(binding.countryCodeSpinner)) ||
(!ViewUtils.isEmpty(binding.postalCode)));
}

@Override
Expand Down Expand Up @@ -489,7 +487,7 @@ private void fillFields(final Patient patient) {
if (StringUtils.notNull(patient.getBirthdate()) || StringUtils.notEmpty(patient.getBirthdate())) {
bdt = DateUtils.convertTimeString(patient.getBirthdate());
binding.dobEditText.setText(DateUtils.convertTime(DateUtils.convertTime(bdt.toString(), DateUtils.OPEN_MRS_REQUEST_FORMAT),
DateUtils.DEFAULT_DATE_FORMAT));
DateUtils.DEFAULT_DATE_FORMAT));
}

if ((StringValue.MALE).equals(patient.getGender())) {
Expand Down Expand Up @@ -528,7 +526,7 @@ private void addSuggestionsToCities() {
if (resourceId != 0) {
String[] states = getContext().getResources().getStringArray(resourceId);
ArrayAdapter<String> state_adapter = new ArrayAdapter<>(getContext(),
android.R.layout.simple_dropdown_item_1line, states);
android.R.layout.simple_dropdown_item_1line, states);
binding.stateAutoComplete.setAdapter(state_adapter);
}
}
Expand Down Expand Up @@ -596,8 +594,9 @@ public void afterTextChanged(Editable s) {

binding.capturePhoto.setOnClickListener(view -> {
boolean showRemoveButton = true;
if (patientPhoto == null)
if (patientPhoto == null) {
showRemoveButton = false;
}
CameraOrGalleryPickerDialog cameraOrGalleryPickerDialog = new CameraOrGalleryPickerDialog(showRemoveButton);
cameraOrGalleryPickerDialog.setTargetFragment(AddEditPatientFragment.this, 1000);
cameraOrGalleryPickerDialog.show(getFragmentManager(), "tag");
Expand Down Expand Up @@ -637,11 +636,11 @@ public void onTextChanged(CharSequence s, int start, int before, int count) {
AutocompleteSessionToken token = AutocompleteSessionToken.newInstance();

FindAutocompletePredictionsRequest request = FindAutocompletePredictionsRequest.builder()
.setCountry(binding.countryCodeSpinner.getSelectedCountryNameCode().toLowerCase())
.setTypeFilter(TypeFilter.CITIES)
.setSessionToken(token)
.setQuery(binding.cityAutoComplete.getText().toString())
.build();
.setCountry(binding.countryCodeSpinner.getSelectedCountryNameCode().toLowerCase())
.setTypeFilter(TypeFilter.CITIES)
.setSessionToken(token)
.setQuery(binding.cityAutoComplete.getText().toString())
.build();

placesClient.findAutocompletePredictions(request).addOnSuccessListener(response -> {
binding.cityProgressBar.setVisibility(View.GONE);
Expand Down Expand Up @@ -734,10 +733,11 @@ public void performFunction(int position) {
}

Intent i;
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT)
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.KITKAT) {
i = new Intent(Intent.ACTION_OPEN_DOCUMENT);
else
} else {
i = new Intent(Intent.ACTION_GET_CONTENT);
}
i.addCategory(Intent.CATEGORY_OPENABLE);
i.setType("image/*");
startActivityForResult(i, ApplicationConstants.RequestCodes.GALLERY_IMAGE_REQUEST);
Expand All @@ -762,22 +762,22 @@ public void capturePhoto() {
@OnShowRationale({Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE})
public void showRationaleForCamera(final PermissionRequest request) {
new AlertDialog.Builder(getActivity())
.setMessage(R.string.permission_camera_rationale)
.setPositiveButton(R.string.button_allow, (dialog, which) -> request.proceed())
.setNegativeButton(R.string.button_deny, (dialog, button) -> request.cancel())
.show();
.setMessage(R.string.permission_camera_rationale)
.setPositiveButton(R.string.button_allow, (dialog, which) -> request.proceed())
.setNegativeButton(R.string.button_deny, (dialog, button) -> request.cancel())
.show();
}

@OnPermissionDenied({Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE})
public void showDeniedForCamera() {
createSnackbarLong(R.string.permission_camera_denied)
.show();
.show();
}

@OnNeverAskAgain({Manifest.permission.CAMERA, Manifest.permission.WRITE_EXTERNAL_STORAGE})
public void showNeverAskForCamera() {
createSnackbarLong(R.string.permission_camera_neverask)
.show();
.show();
}

private Snackbar createSnackbarLong(int stringId) {
Expand Down Expand Up @@ -823,8 +823,8 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) {

private void openCropActivity(Uri sourceUri, Uri destinationUri) {
UCrop.of(sourceUri, destinationUri)
.withAspectRatio(ApplicationConstants.ASPECT_RATIO_FOR_CROPPING, ApplicationConstants.ASPECT_RATIO_FOR_CROPPING)
.start(getActivity(), AddEditPatientFragment.this);
.withAspectRatio(ApplicationConstants.ASPECT_RATIO_FOR_CROPPING, ApplicationConstants.ASPECT_RATIO_FOR_CROPPING)
.start(getActivity(), AddEditPatientFragment.this);
}

private String getUniqueImageFileName() {
Expand Down Expand Up @@ -879,11 +879,11 @@ public boolean onOptionsItemSelected(MenuItem item) {
break;
case R.id.actionReset:
new AlertDialog.Builder(getActivity())
.setTitle(R.string.dialog_title_reset_patient)
.setMessage(R.string.reset_dialog_message)
.setPositiveButton(R.string.dialog_button_ok, (DialogInterface dialogInterface, int i) -> resetAction())
.setNegativeButton(R.string.dialog_button_cancel, null)
.show();
.setTitle(R.string.dialog_title_reset_patient)
.setMessage(R.string.reset_dialog_message)
.setPositiveButton(R.string.dialog_button_ok, (DialogInterface dialogInterface, int i) -> resetAction())
.setNegativeButton(R.string.dialog_button_cancel, null)
.show();
break;
default:
// Do nothing
Expand All @@ -899,15 +899,15 @@ private void submitAction() {
alertDialogBuilder.setTitle(R.string.mark_patient_deceased);
// set dialog message
alertDialogBuilder
.setMessage(R.string.mark_patient_deceased_notice)
.setCancelable(false)
.setPositiveButton(R.string.mark_patient_deceased_proceed, (dialog, id) -> {
dialog.cancel();
mPresenter.confirmUpdate(updatePatient(updatedPatient));
})
.setNegativeButton(R.string.dialog_button_cancel, (dialog, id) -> {
alertDialog.cancel();
});
.setMessage(R.string.mark_patient_deceased_notice)
.setCancelable(false)
.setPositiveButton(R.string.mark_patient_deceased_proceed, (dialog, id) -> {
dialog.cancel();
mPresenter.confirmUpdate(updatePatient(updatedPatient));
})
.setNegativeButton(R.string.dialog_button_cancel, (dialog, id) -> {
alertDialog.cancel();
});
alertDialog = alertDialogBuilder.create();
alertDialog.show();
} else {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@
import org.openmrs.mobile.api.RestServiceBuilder;
import org.openmrs.mobile.api.repository.PatientRepository;
import org.openmrs.mobile.dao.PatientDAO;
import org.openmrs.mobile.listeners.retrofit.DefaultResponseCallback;
import org.openmrs.mobile.listeners.retrofitcallbacks.DefaultResponseCallback;
import org.openmrs.mobile.listeners.retrofitcallbacks.PatientDeferredResponseCallback;
import org.openmrs.mobile.models.ConceptAnswers;
import org.openmrs.mobile.models.Module;
import org.openmrs.mobile.models.Patient;
Expand Down Expand Up @@ -143,13 +144,14 @@ private boolean validate(Patient patient) {

if (!isPatientUnidentified) {

mPatientInfoView.setErrorsVisibility(givenNameError, familyNameError, dateOfBirthError, genderError, addressError, countryError, countryNull, stateError, cityError, postalError);
mPatientInfoView
.setErrorsVisibility(givenNameError, familyNameError, dateOfBirthError, genderError, addressError, countryError, countryNull, stateError, cityError, postalError);

// Validate names
PersonName currentPersonName = patient.getName();

if (StringUtils.isBlank(currentPersonName.getGivenName())
|| !ViewUtils.validateText(currentPersonName.getGivenName(), ViewUtils.ILLEGAL_CHARACTERS)) {
|| !ViewUtils.validateText(currentPersonName.getGivenName(), ViewUtils.ILLEGAL_CHARACTERS)) {
givenNameError = true;
}

Expand All @@ -159,7 +161,7 @@ private boolean validate(Patient patient) {
}

if (StringUtils.isBlank(currentPersonName.getFamilyName())
|| !ViewUtils.validateText(currentPersonName.getFamilyName(), ViewUtils.ILLEGAL_CHARACTERS)) {
|| !ViewUtils.validateText(currentPersonName.getFamilyName(), ViewUtils.ILLEGAL_CHARACTERS)) {
familyNameError = true;
}

Expand All @@ -168,9 +170,9 @@ private boolean validate(Patient patient) {
String patientAddress2 = patient.getAddress().getAddress2();

if ((StringUtils.isBlank(patientAddress1)
&& StringUtils.isBlank(patientAddress2)
|| !ViewUtils.validateText(patientAddress1, ViewUtils.ILLEGAL_ADDRESS_CHARACTERS)
|| !ViewUtils.validateText(patientAddress2, ViewUtils.ILLEGAL_ADDRESS_CHARACTERS))) {
&& StringUtils.isBlank(patientAddress2)
|| !ViewUtils.validateText(patientAddress1, ViewUtils.ILLEGAL_ADDRESS_CHARACTERS)
|| !ViewUtils.validateText(patientAddress2, ViewUtils.ILLEGAL_ADDRESS_CHARACTERS))) {
addressError = true;
}

Expand Down Expand Up @@ -208,14 +210,14 @@ private boolean validate(Patient patient) {
return true;
} else {
mPatientInfoView
.setErrorsVisibility(givenNameError, familyNameError, dateOfBirthError, addressError, countryError, genderError, countryNull, stateError, cityError, postalError);
.setErrorsVisibility(givenNameError, familyNameError, dateOfBirthError, addressError, countryError, genderError, countryNull, stateError, cityError, postalError);
return false;
}
}

@Override
public void registerPatient() {
patientRepository.registerPatient(mPatient, new DefaultResponseCallback() {
patientRepository.registerPatient(mPatient, new PatientDeferredResponseCallback() {
@Override
public void onResponse() {
mPatientInfoView.startPatientDashbordActivity(mPatient);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,9 +25,9 @@ import org.openmrs.mobile.application.OpenMRS
import org.openmrs.mobile.dao.PatientDAO
import org.openmrs.mobile.databases.AppDatabase
import org.openmrs.mobile.databases.entities.LocationEntity
import org.openmrs.mobile.listeners.retrofit.DefaultResponseCallback
import org.openmrs.mobile.listeners.retrofit.EncounterResponseCallback
import org.openmrs.mobile.listeners.retrofit.LocationResponseCallback
import org.openmrs.mobile.listeners.retrofitcallbacks.DefaultResponseCallback
import org.openmrs.mobile.listeners.retrofitcallbacks.EncounterResponseCallback
import org.openmrs.mobile.listeners.retrofitcallbacks.LocationResponseCallback
import org.openmrs.mobile.models.Patient
import org.openmrs.mobile.models.Provider
import org.openmrs.mobile.models.Resource
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@
import org.openmrs.mobile.application.OpenMRS;
import org.openmrs.mobile.dao.PatientDAO;
import org.openmrs.mobile.databases.AppDatabase;
import org.openmrs.mobile.listeners.retrofit.DefaultResponseCallback;
import org.openmrs.mobile.listeners.retrofitcallbacks.DefaultResponseCallback;
import org.openmrs.mobile.models.Encountercreate;
import org.openmrs.mobile.models.Obscreate;
import org.openmrs.mobile.models.Patient;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -35,7 +35,7 @@
import org.openmrs.mobile.api.repository.PatientRepository;
import org.openmrs.mobile.api.repository.VisitRepository;
import org.openmrs.mobile.dao.PatientDAO;
import org.openmrs.mobile.listeners.retrofit.DownloadPatientCallback;
import org.openmrs.mobile.listeners.retrofitcallbacks.DownloadPatientCallback;
import org.openmrs.mobile.models.Patient;
import org.openmrs.mobile.utilities.DateUtils;
import org.openmrs.mobile.utilities.ToastUtil;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
import org.openmrs.mobile.api.RestServiceBuilder;
import org.openmrs.mobile.api.repository.PatientRepository;
import org.openmrs.mobile.dao.PatientDAO;
import org.openmrs.mobile.listeners.retrofit.PatientResponseCallback;
import org.openmrs.mobile.listeners.retrofitcallbacks.PatientResponseCallback;
import org.openmrs.mobile.models.Link;
import org.openmrs.mobile.models.Patient;
import org.openmrs.mobile.models.Results;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@
import org.openmrs.mobile.application.OpenMRSLogger;
import org.openmrs.mobile.dao.LocationDAO;
import org.openmrs.mobile.databases.entities.LocationEntity;
import org.openmrs.mobile.listeners.retrofit.GetVisitTypeCallback;
import org.openmrs.mobile.listeners.retrofitcallbacks.GetVisitTypeCallback;
import org.openmrs.mobile.models.Results;
import org.openmrs.mobile.models.Session;
import org.openmrs.mobile.models.VisitType;
Expand Down
Loading