From c6b0f0e26cf63c71227c2c881532c5bdf153fa35 Mon Sep 17 00:00:00 2001 From: Saurabh kumar Date: Mon, 13 Apr 2020 03:12:06 +0530 Subject: [PATCH] refactoring code for better support for localization initial commit for extracting resources for all hard coded strings --- .../1.json | 214 ++++++++---------- .../mobile/activities/ACBaseActivity.java | 10 +- .../AddEditPatientActivity.java | 4 +- .../AddEditPatientFragment.java | 19 +- .../community/contact/ContactUsActivity.java | 2 +- .../dashboard/DashboardFragment.java | 18 +- .../dialog/CameraOrGalleryPickerDialog.java | 2 +- .../dialog/CustomFragmentDialog.java | 2 +- .../formdisplay/FormDisplayMainPresenter.java | 6 +- .../formdisplay/FormDisplayPageFragment.java | 2 +- .../formlist/FormListPresenter.java | 5 +- .../LastViewedPatientRecyclerViewAdapter.java | 2 +- .../LastViewedPatientsFragment.java | 2 +- .../activities/login/LoginFragment.java | 2 +- .../activities/login/LoginPresenter.java | 8 +- .../mobile/activities/logs/LogsFragment.java | 2 +- .../MergePatientsRecycleViewAdapter.java | 3 +- .../charts/ChartsViewActivity.java | 4 +- .../PatientDashboardVisitsPresenter.java | 8 +- .../openmrs/mobile/api/EncounterService.java | 11 +- .../openmrs/mobile/api/SyncStateReceiver.java | 3 +- .../org/openmrs/mobile/api/UserService.java | 5 +- .../api/repository/PatientRepository.java | 175 +++++++------- .../databases/entities/ConceptEntity.java | 3 +- .../databases/entities/VisitEntity.java | 4 +- .../PatientBirthdateValidatorWatcher.java | 8 +- .../services/AuthenticateCheckService.java | 5 +- .../services/ConceptDownloadService.java | 4 +- .../content/ContentProvider.java | 6 +- .../openmrs/mobile/utilities/DateUtils.java | 5 +- .../src/main/res/layout/fragment_login.xml | 2 +- .../src/main/res/values/strings.xml | 103 ++++++++- 32 files changed, 376 insertions(+), 273 deletions(-) diff --git a/openmrs-client/schemas/org.openmrs.mobile.databases.AppDatabase/1.json b/openmrs-client/schemas/org.openmrs.mobile.databases.AppDatabase/1.json index f3bb960c2e..ec82bc9e29 100644 --- a/openmrs-client/schemas/org.openmrs.mobile.databases.AppDatabase/1.json +++ b/openmrs-client/schemas/org.openmrs.mobile.databases.AppDatabase/1.json @@ -2,24 +2,12 @@ "formatVersion": 1, "database": { "version": 1, - "identityHash": "f2ba83e78fa9d0190a4a24b5be11b2de", + "identityHash": "2ca31877683087a2cef9a670e3bed3be", "entities": [ { "tableName": "concepts", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`uuid` TEXT NOT NULL, `display` TEXT, `id` INTEGER, `name` TEXT, `_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `datatype_uuid` TEXT, `datatype_display` TEXT, `datatype__id` INTEGER, `conceptClass_uuid` TEXT, `conceptClass_display` TEXT, `conceptClass__id` INTEGER)", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`id` INTEGER, `name` TEXT, `uuid` TEXT, `display` TEXT NOT NULL, `_id` INTEGER, `datatype_uuid` TEXT, `datatype_display` TEXT, `datatype__id` INTEGER, PRIMARY KEY(`id`))", "fields": [ - { - "fieldPath": "uuid", - "columnName": "uuid", - "affinity": "TEXT", - "notNull": true - }, - { - "fieldPath": "display", - "columnName": "display", - "affinity": "TEXT", - "notNull": false - }, { "fieldPath": "id", "columnName": "id", @@ -33,73 +21,55 @@ "notNull": false }, { - "fieldPath": "id", - "columnName": "_id", - "affinity": "INTEGER", - "notNull": true - }, - { - "fieldPath": "datatype.uuid", - "columnName": "datatype_uuid", + "fieldPath": "uuid", + "columnName": "uuid", "affinity": "TEXT", "notNull": false }, { - "fieldPath": "datatype.display", - "columnName": "datatype_display", + "fieldPath": "display", + "columnName": "display", "affinity": "TEXT", - "notNull": false + "notNull": true }, { - "fieldPath": "datatype.id", - "columnName": "datatype__id", + "fieldPath": "id", + "columnName": "_id", "affinity": "INTEGER", "notNull": false }, { - "fieldPath": "conceptClass.uuid", - "columnName": "conceptClass_uuid", + "fieldPath": "datatype.uuid", + "columnName": "datatype_uuid", "affinity": "TEXT", "notNull": false }, { - "fieldPath": "conceptClass.display", - "columnName": "conceptClass_display", + "fieldPath": "datatype.display", + "columnName": "datatype_display", "affinity": "TEXT", "notNull": false }, { - "fieldPath": "conceptClass.id", - "columnName": "conceptClass__id", + "fieldPath": "datatype.id", + "columnName": "datatype__id", "affinity": "INTEGER", "notNull": false } ], "primaryKey": { "columnNames": [ - "_id" + "id" ], - "autoGenerate": true + "autoGenerate": false }, "indices": [], "foreignKeys": [] }, { "tableName": "encounters", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`uuid` TEXT NOT NULL, `display` TEXT, `visit_id` TEXT, `encounterDatetime` TEXT NOT NULL, `type` TEXT, `patient_uuid` TEXT, `form_uuid` TEXT, `_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`visit_id` TEXT, `encounterDatetime` TEXT NOT NULL, `type` TEXT, `patient_uuid` TEXT, `form_uuid` TEXT, `uuid` TEXT, `display` TEXT NOT NULL, `_id` INTEGER PRIMARY KEY AUTOINCREMENT)", "fields": [ - { - "fieldPath": "uuid", - "columnName": "uuid", - "affinity": "TEXT", - "notNull": true - }, - { - "fieldPath": "display", - "columnName": "display", - "affinity": "TEXT", - "notNull": false - }, { "fieldPath": "visitKeyId", "columnName": "visit_id", @@ -130,11 +100,23 @@ "affinity": "TEXT", "notNull": false }, + { + "fieldPath": "uuid", + "columnName": "uuid", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "display", + "columnName": "display", + "affinity": "TEXT", + "notNull": true + }, { "fieldPath": "id", "columnName": "_id", "affinity": "INTEGER", - "notNull": true + "notNull": false } ], "primaryKey": { @@ -148,20 +130,8 @@ }, { "tableName": "locations", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`uuid` TEXT NOT NULL, `display` TEXT, `name` TEXT, `description` TEXT NOT NULL, `address1` TEXT, `address2` TEXT, `city` TEXT, `state` TEXT, `country` TEXT, `postalCode` TEXT, `parentLocationUuid` TEXT, `_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`name` TEXT, `description` TEXT NOT NULL, `address1` TEXT, `address2` TEXT, `city` TEXT, `state` TEXT, `country` TEXT, `postalCode` TEXT, `parentLocationUuid` TEXT, `uuid` TEXT, `display` TEXT NOT NULL, `_id` INTEGER PRIMARY KEY AUTOINCREMENT)", "fields": [ - { - "fieldPath": "uuid", - "columnName": "uuid", - "affinity": "TEXT", - "notNull": true - }, - { - "fieldPath": "display", - "columnName": "display", - "affinity": "TEXT", - "notNull": false - }, { "fieldPath": "name", "columnName": "name", @@ -216,11 +186,23 @@ "affinity": "TEXT", "notNull": false }, + { + "fieldPath": "uuid", + "columnName": "uuid", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "display", + "columnName": "display", + "affinity": "TEXT", + "notNull": true + }, { "fieldPath": "id", "columnName": "_id", "affinity": "INTEGER", - "notNull": true + "notNull": false } ], "primaryKey": { @@ -234,20 +216,8 @@ }, { "tableName": "observations", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`uuid` TEXT NOT NULL, `display` TEXT, `encounter_id` INTEGER NOT NULL, `displayValue` TEXT, `diagnosisOrder` TEXT, `diagnosisList` TEXT, `diagnosisCertainty` TEXT, `diagnosisNote` TEXT, `conceptUuid` TEXT, `_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`encounter_id` INTEGER NOT NULL, `displayValue` TEXT, `diagnosisOrder` TEXT, `diagnosisList` TEXT, `diagnosisCertainty` TEXT, `diagnosisNote` TEXT, `conceptUuid` TEXT, `uuid` TEXT, `display` TEXT NOT NULL, `_id` INTEGER PRIMARY KEY AUTOINCREMENT)", "fields": [ - { - "fieldPath": "uuid", - "columnName": "uuid", - "affinity": "TEXT", - "notNull": true - }, - { - "fieldPath": "display", - "columnName": "display", - "affinity": "TEXT", - "notNull": false - }, { "fieldPath": "encounterKeyID", "columnName": "encounter_id", @@ -290,11 +260,23 @@ "affinity": "TEXT", "notNull": false }, + { + "fieldPath": "uuid", + "columnName": "uuid", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "display", + "columnName": "display", + "affinity": "TEXT", + "notNull": true + }, { "fieldPath": "id", "columnName": "_id", "affinity": "INTEGER", - "notNull": true + "notNull": false } ], "primaryKey": { @@ -308,20 +290,8 @@ }, { "tableName": "patients", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`uuid` TEXT NOT NULL, `display` TEXT, `synced` INTEGER NOT NULL, `identifier` TEXT, `givenName` TEXT, `middleName` TEXT, `familyName` TEXT, `gender` TEXT, `birthDate` TEXT, `deathDate` TEXT, `causeOfDeath` TEXT, `age` TEXT, `photo` TEXT, `address1` TEXT, `address2` TEXT, `city` TEXT, `state` TEXT, `country` TEXT, `postalCode` TEXT, `_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL, `patient_uuid` TEXT, `patient_display` TEXT, `patient_visit_id` TEXT, `patient_encounterDatetime` TEXT, `patient_type` TEXT, `patient_patient_uuid` TEXT, `patient_form_uuid` TEXT, `patient__id` INTEGER)", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`synced` INTEGER NOT NULL, `identifier` TEXT, `givenName` TEXT, `middleName` TEXT, `familyName` TEXT, `gender` TEXT, `birthDate` TEXT, `deathDate` TEXT, `causeOfDeath` TEXT, `age` TEXT, `photo` TEXT, `address1` TEXT, `address2` TEXT, `city` TEXT, `state` TEXT, `country` TEXT, `postalCode` TEXT, `uuid` TEXT, `display` TEXT NOT NULL, `_id` INTEGER PRIMARY KEY AUTOINCREMENT, `patient_visit_id` TEXT, `patient_encounterDatetime` TEXT, `patient_type` TEXT, `patient_patient_uuid` TEXT, `patient_form_uuid` TEXT, `patient_uuid` TEXT, `patient_display` TEXT, `patient__id` INTEGER)", "fields": [ - { - "fieldPath": "uuid", - "columnName": "uuid", - "affinity": "TEXT", - "notNull": true - }, - { - "fieldPath": "display", - "columnName": "display", - "affinity": "TEXT", - "notNull": false - }, { "fieldPath": "synced", "columnName": "synced", @@ -425,21 +395,21 @@ "notNull": false }, { - "fieldPath": "id", - "columnName": "_id", - "affinity": "INTEGER", - "notNull": true - }, - { - "fieldPath": "encounters.uuid", - "columnName": "patient_uuid", + "fieldPath": "uuid", + "columnName": "uuid", "affinity": "TEXT", "notNull": false }, { - "fieldPath": "encounters.display", - "columnName": "patient_display", + "fieldPath": "display", + "columnName": "display", "affinity": "TEXT", + "notNull": true + }, + { + "fieldPath": "id", + "columnName": "_id", + "affinity": "INTEGER", "notNull": false }, { @@ -472,6 +442,18 @@ "affinity": "TEXT", "notNull": false }, + { + "fieldPath": "encounters.uuid", + "columnName": "patient_uuid", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "encounters.display", + "columnName": "patient_display", + "affinity": "TEXT", + "notNull": false + }, { "fieldPath": "encounters.id", "columnName": "patient__id", @@ -490,20 +472,8 @@ }, { "tableName": "visits", - "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`uuid` TEXT NOT NULL, `display` TEXT, `patient_id` INTEGER NOT NULL, `visit_type` TEXT, `visit_place` TEXT, `start_date` INTEGER NOT NULL, `stop_date` TEXT, `_id` INTEGER PRIMARY KEY AUTOINCREMENT NOT NULL)", + "createSql": "CREATE TABLE IF NOT EXISTS `${TABLE_NAME}` (`patient_id` INTEGER NOT NULL, `visit_type` TEXT, `visit_place` TEXT, `start_date` TEXT NOT NULL, `stop_date` TEXT, `uuid` TEXT, `display` TEXT NOT NULL, `_id` INTEGER PRIMARY KEY AUTOINCREMENT)", "fields": [ - { - "fieldPath": "uuid", - "columnName": "uuid", - "affinity": "TEXT", - "notNull": true - }, - { - "fieldPath": "display", - "columnName": "display", - "affinity": "TEXT", - "notNull": false - }, { "fieldPath": "patientKeyID", "columnName": "patient_id", @@ -525,7 +495,7 @@ { "fieldPath": "startDate", "columnName": "start_date", - "affinity": "INTEGER", + "affinity": "TEXT", "notNull": true }, { @@ -534,11 +504,23 @@ "affinity": "TEXT", "notNull": false }, + { + "fieldPath": "uuid", + "columnName": "uuid", + "affinity": "TEXT", + "notNull": false + }, + { + "fieldPath": "display", + "columnName": "display", + "affinity": "TEXT", + "notNull": true + }, { "fieldPath": "id", "columnName": "_id", "affinity": "INTEGER", - "notNull": true + "notNull": false } ], "primaryKey": { @@ -554,7 +536,7 @@ "views": [], "setupQueries": [ "CREATE TABLE IF NOT EXISTS room_master_table (id INTEGER PRIMARY KEY,identity_hash TEXT)", - "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, \"f2ba83e78fa9d0190a4a24b5be11b2de\")" + "INSERT OR REPLACE INTO room_master_table (id,identity_hash) VALUES(42, \"2ca31877683087a2cef9a670e3bed3be\")" ] } } \ No newline at end of file diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/ACBaseActivity.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/ACBaseActivity.java index 716e31e6ad..42ab9ac051 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/ACBaseActivity.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/ACBaseActivity.java @@ -97,8 +97,8 @@ protected void onCreate(Bundle savedInstanceState) { locationList = new ArrayList<>(); Bundle extras = getIntent().getExtras(); if (extras != null) { - Boolean flag = extras.getBoolean("flag"); - String errorReport = extras.getString("error"); + Boolean flag = extras.getBoolean(getString(R.string.boolean_flag)); + String errorReport = extras.getString(getString(R.string.error_report)); if (flag) { showAppCrashDialog(errorReport); } @@ -192,7 +192,7 @@ public boolean onOptionsItemSelected(MenuItem item) { } else if (NetworkUtils.hasNetwork()) { OpenMRS.getInstance().setSyncState(true); setSyncButtonState(true); - Intent intent = new Intent("org.openmrs.mobile.intent.action.SYNC_PATIENTS"); + Intent intent = new Intent(getString(R.string.intent_action_sync_patients)); getApplicationContext().sendBroadcast(intent); ToastUtil.showShortToast(getApplicationContext(), ToastUtil.ToastType.NOTICE, R.string.reconn_server); if (snackbar != null) @@ -390,9 +390,9 @@ public void showAppCrashDialog(String error) { Intent email = new Intent(Intent.ACTION_SEND); email.putExtra(Intent.EXTRA_SUBJECT, R.string.error_email_subject_app_crashed); email.putExtra(Intent.EXTRA_TEXT, error); - email.putExtra(Intent.EXTRA_STREAM, Uri.parse("file://" + filename)); + email.putExtra(Intent.EXTRA_STREAM, Uri.parse(getString(R.string.file_uri_prefix) + filename)); //need this to prompts email client only - email.setType("message/rfc822"); + email.setType(getString(R.string.MIME_type_encapsulated_message)); startActivity(Intent.createChooser(email, getString(R.string.choose_a_email_client))); }); diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/addeditpatient/AddEditPatientActivity.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/addeditpatient/AddEditPatientActivity.java index 8863af9d6e..f0971f93cb 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/addeditpatient/AddEditPatientActivity.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/addeditpatient/AddEditPatientActivity.java @@ -71,10 +71,10 @@ protected void onCreate(Bundle savedInstanceState) { try { applicationInfo = this.getPackageManager().getApplicationInfo(this.getPackageName(), PackageManager.GET_META_DATA); } catch (PackageManager.NameNotFoundException e) { - Log.e("Package Manager",e.getMessage()); + Log.e(getString(R.string.package_manager),e.getMessage()); } Bundle bundle = applicationInfo.metaData; - String googleMapToken = bundle.getString("com.google.android.geo.API_KEY"); + String googleMapToken = bundle.getString(getString(R.string.google_API_key_token)); if (!Places.isInitialized()) { Places.initialize(getApplicationContext(), googleMapToken); } diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/addeditpatient/AddEditPatientFragment.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/addeditpatient/AddEditPatientFragment.java index 1d83d15665..0f3ca47756 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/addeditpatient/AddEditPatientFragment.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/addeditpatient/AddEditPatientFragment.java @@ -54,7 +54,6 @@ import android.view.inputmethod.InputMethodManager; import android.widget.ArrayAdapter; import android.widget.AutoCompleteTextView; -import android.widget.Button; import android.widget.EditText; import android.widget.ImageButton; import android.widget.ImageView; @@ -316,7 +315,7 @@ private Patient updatePatientWithData(Patient patient) { patient.setNames(names); // Add gender - String[] genderChoices = {"M", "F"}; + String[] genderChoices = {getString(R.string.male_gender_indicator), getString(R.string.female_gender_indicator)}; int index = gen.indexOfChild(getActivity().findViewById(gen.getCheckedRadioButtonId())); if (index != -1) { patient.setGender(genderChoices[index]); @@ -490,9 +489,9 @@ private void fillFields(final Patient patient) { DateUtils.DEFAULT_DATE_FORMAT)); } - if (("M").equals(patient.getGender())) { + if ((getString(R.string.male_gender_indicator)).equals(patient.getGender())) { gen.check(R.id.male); - } else if (("F").equals(patient.getGender())) { + } else if ((getString(R.string.female_gender_indicator)).equals(patient.getGender())) { gen.check(R.id.female); } @@ -603,7 +602,7 @@ public void afterTextChanged(Editable s) { else i = new Intent(Intent.ACTION_GET_CONTENT); i.addCategory(Intent.CATEGORY_OPENABLE); - i.setType("image/*"); + i.setType(getString(R.string.MIME_type_image)); startActivityForResult(i, GALLERY_IMAGE_REQUEST); } else { patientImageView.setImageResource(R.drawable.ic_person_grey_500_48dp); @@ -620,14 +619,14 @@ public void afterTextChanged(Editable s) { patientImageView.setOnClickListener(view -> { if (output != null) { Intent i = new Intent(Intent.ACTION_VIEW); - i.setDataAndType(Uri.fromFile(output), "image/jpeg"); + i.setDataAndType(Uri.fromFile(output), getString(R.string.MIME_type_image_jpeg)); startActivity(i); } else if (patientPhoto != null) { Intent intent = new Intent(getContext(), PatientPhotoActivity.class); ByteArrayOutputStream byteArrayOutputStream = new ByteArrayOutputStream(); patientPhoto.compress(Bitmap.CompressFormat.PNG, 0, byteArrayOutputStream); - intent.putExtra("photo", byteArrayOutputStream.toByteArray()); - intent.putExtra("name", patientName); + intent.putExtra(getString(R.string.intent_extras_key_photo), byteArrayOutputStream.toByteArray()); + intent.putExtra(getString(R.string.intent_extras_key_patient_name), patientName); startActivity(intent); } @@ -765,7 +764,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { try { ParcelFileDescriptor parcelFileDescriptor = - getActivity().getContentResolver().openFileDescriptor(data.getData(), "r"); + getActivity().getContentResolver().openFileDescriptor(data.getData(), getString(R.string.file_read_mode)); FileDescriptor fileDescriptor = parcelFileDescriptor.getFileDescriptor(); Bitmap image = BitmapFactory.decodeFileDescriptor(fileDescriptor); parcelFileDescriptor.close(); @@ -775,7 +774,7 @@ public void onActivityResult(int requestCode, int resultCode, Intent data) { patientImageView.setImageBitmap(bitmap); patientImageView.invalidate(); } catch (Exception e) { - logger.e("Error getting image from gallery.", e); + logger.e(getString(R.string.gallery_image_request_failed_message), e); } } } diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/community/contact/ContactUsActivity.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/community/contact/ContactUsActivity.java index 91027aadc8..986fd52567 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/community/contact/ContactUsActivity.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/community/contact/ContactUsActivity.java @@ -45,7 +45,7 @@ protected void onCreate(Bundle savedInstanceState) { binding.contactEmailButton.setOnClickListener(v -> { Intent sendMailIntent = new Intent(Intent.ACTION_SENDTO); - String mailTo = "mailto:".concat(binding.contactEmailText.getText().toString()); + String mailTo = getString(R.string.MIME_type_mail).concat(binding.contactEmailText.getText().toString()); sendMailIntent.setData(Uri.parse(mailTo)); try { startActivity(sendMailIntent); diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/dashboard/DashboardFragment.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/dashboard/DashboardFragment.java index 00ca651ca1..dee59dfbb7 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/dashboard/DashboardFragment.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/dashboard/DashboardFragment.java @@ -67,7 +67,7 @@ public class DashboardFragment extends ACBaseFragment { if (keyCode == KeyEvent.KEYCODE_BACK && getActivity().getClass().equals(LoginActivity.class)) { if (OpenMRS.getInstance().getServerUrl().equals(ApplicationConstants.EMPTY_STRING)) { - OpenMRS.getInstance().getOpenMRSLogger().d("Exit application"); + OpenMRS.getInstance().getOpenMRSLogger().d(getString(R.string.application_exit_logger_message)); getActivity().onBackPressed(); dismiss(); } else { diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/formdisplay/FormDisplayMainPresenter.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/formdisplay/FormDisplayMainPresenter.java index b2f1c0bd7d..d4897ba073 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/formdisplay/FormDisplayMainPresenter.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/formdisplay/FormDisplayMainPresenter.java @@ -10,10 +10,12 @@ package org.openmrs.mobile.activities.formdisplay; +import android.content.res.Resources; import android.os.Bundle; import android.util.SparseArray; import org.joda.time.LocalDateTime; +import org.openmrs.mobile.R; import org.openmrs.mobile.activities.BasePresenter; import org.openmrs.mobile.api.EncounterService; import org.openmrs.mobile.dao.PatientDAO; @@ -21,6 +23,7 @@ import org.openmrs.mobile.models.Encountercreate; import org.openmrs.mobile.models.Obscreate; import org.openmrs.mobile.models.Patient; +import org.openmrs.mobile.models.Resource; import org.openmrs.mobile.utilities.ApplicationConstants; import org.openmrs.mobile.utilities.InputField; import org.openmrs.mobile.utilities.SelectOneField; @@ -118,8 +121,7 @@ public void createEncounter() { if(!mPatient.isSynced()) { mPatient.addEncounters(encountercreate.getId()); new PatientDAO().updatePatient(mPatient.getId(),mPatient); - ToastUtil.error("Patient not yet registered. Form data is saved locally " + - "and will sync when internet connection is restored. "); + ToastUtil.error(Resources.getSystem().getString(R.string.patient_not_resistered_error_message)+Resources.getSystem().getString(R.string.form_data_will_be_synced_later_no_internet_connection_error_message)); mFormDisplayView.enableSubmitButton(true); } else { diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/formdisplay/FormDisplayPageFragment.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/formdisplay/FormDisplayPageFragment.java index 875bd7559e..04db79f3b9 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/formdisplay/FormDisplayPageFragment.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/formdisplay/FormDisplayPageFragment.java @@ -399,7 +399,7 @@ public boolean checkInputFields() { } if (allEmpty) { - ToastUtil.error("All fields cannot be empty"); + ToastUtil.error(getString(R.string.all_fields_empty_error_message)); return false; } return valid; diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/formlist/FormListPresenter.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/formlist/FormListPresenter.java index 18e2ce5376..5afb48b7bf 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/formlist/FormListPresenter.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/formlist/FormListPresenter.java @@ -15,6 +15,9 @@ package org.openmrs.mobile.activities.formlist; +import android.content.res.Resources; + +import org.openmrs.mobile.R; import org.openmrs.mobile.activities.BasePresenter; import org.openmrs.mobile.dao.EncounterDAO; import org.openmrs.mobile.models.EncounterType; @@ -98,7 +101,7 @@ public void listItemClicked(int position, String formName) { String encounterType = encType.getUuid(); view.startFormDisplayActivity(formName, patientId, valueRefString, encounterType); } else { - view.showError("There is no encounter type called " + formName); + view.showError(Resources.getSystem().getString(R.string.no_such_form_name_error_message,formName)); } } diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/lastviewedpatients/LastViewedPatientRecyclerViewAdapter.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/lastviewedpatients/LastViewedPatientRecyclerViewAdapter.java index a83a7855ad..03a8308c39 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/lastviewedpatients/LastViewedPatientRecyclerViewAdapter.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/lastviewedpatients/LastViewedPatientRecyclerViewAdapter.java @@ -386,7 +386,7 @@ public void onResponse() { @Override public void onErrorResponse(String errorMessage) { - ToastUtil.error("Failed to fetch patient data"); + ToastUtil.error(mContext.getString(R.string.failed_fetching_patient_data_error_message)); } }); } diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/lastviewedpatients/LastViewedPatientsFragment.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/lastviewedpatients/LastViewedPatientsFragment.java index 25a2aab696..fb87d2c2d1 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/lastviewedpatients/LastViewedPatientsFragment.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/lastviewedpatients/LastViewedPatientsFragment.java @@ -71,7 +71,7 @@ public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, mPresenter.refresh(); mAdapter.finishActionMode(); }else { - ToastUtil.error("No Internet Connection"); + ToastUtil.error(getString(R.string.no_internet_connection_message)); getActivity().finish(); } }); diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/login/LoginFragment.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/login/LoginFragment.java index 7ad4ac5553..c8ad1bb6a1 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/login/LoginFragment.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/login/LoginFragment.java @@ -426,7 +426,7 @@ public void setUrl(String url) { if (result.isURLValid()) { mPresenter.loadLocations(result.getUrl()); } else { - showInvalidURLSnackbar("Invalid URL"); + showInvalidURLSnackbar(getString(R.string.invalid_URL_message)); } } diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/login/LoginPresenter.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/login/LoginPresenter.java index c027be10a5..9281210d50 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/login/LoginPresenter.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/login/LoginPresenter.java @@ -14,6 +14,8 @@ package org.openmrs.mobile.activities.login; +import android.content.res.Resources; + import java.util.ArrayList; import java.util.List; @@ -153,7 +155,7 @@ public void onResponse() { public void onErrorResponse(String errorMessage) { OpenMRS.getInstance().setVisitTypeUUID(ApplicationConstants.DEFAULT_VISIT_TYPE_UUID); - loginView.showToast("Failed to fetch visit type", + loginView.showToast(Resources.getSystem().getString(R.string.failed_fetching_visit_type_error_message), ToastUtil.ToastType.ERROR); } }); @@ -235,7 +237,7 @@ public void onResponse(@NonNull Call> call, @NonNull Response< loginView.startFormListService(); loginView.setLocationErrorOccurred(false); } else { - loginView.showInvalidURLSnackbar("Failed to fetch server's locations"); + loginView.showInvalidURLSnackbar(Resources.getSystem().getString(R.string.failed_fetching_servers_location)); loginView.setLocationErrorOccurred(true); loginView.initLoginForm(new ArrayList<>(), url); } @@ -258,7 +260,7 @@ public void onFailure(@NonNull Call> call, @NonNull Throwable loginView.initLoginForm(locations, url); loginView.setLocationErrorOccurred(false); } else { - loginView.showToast("Network not available.", ToastUtil.ToastType.ERROR); + loginView.showToast(Resources.getSystem().getString(R.string.no_internet_connection_message), ToastUtil.ToastType.ERROR); loginView.showOpenMRSLogo(); loginView.setLocationErrorOccurred(true); } diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/logs/LogsFragment.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/logs/LogsFragment.java index f68baf4b21..efe14421bc 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/logs/LogsFragment.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/logs/LogsFragment.java @@ -55,7 +55,7 @@ public void fabCopyAll(String textLogs) { fab.setOnClickListener(view -> { setClipboard(getContext(), textLogs); - Toast.makeText(getContext(), "Logs copied to clipboard", + Toast.makeText(getContext(), R.string.logs_copied_to_clipboard_message, Toast.LENGTH_SHORT).show(); }); } diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/matchingpatients/MergePatientsRecycleViewAdapter.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/matchingpatients/MergePatientsRecycleViewAdapter.java index 2b2365a7b7..568a65eec0 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/matchingpatients/MergePatientsRecycleViewAdapter.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/matchingpatients/MergePatientsRecycleViewAdapter.java @@ -15,6 +15,7 @@ package org.openmrs.mobile.activities.matchingpatients; import android.app.Activity; +import android.content.res.Resources; import android.graphics.Color; import android.graphics.Paint; import android.graphics.Typeface; @@ -110,7 +111,7 @@ public PatientViewHolder(View itemView) { mPresenter.removeSelectedPatient(); cardView.setCardBackgroundColor(Color.WHITE); } else { - ToastUtil.notify("You can select only one similar patient"); + ToastUtil.notify(Resources.getSystem().getString(R.string.only_one_patient_can_be_selected_notification_message)); } }); } diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/patientdashboard/charts/ChartsViewActivity.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/patientdashboard/charts/ChartsViewActivity.java index 1a500e8e98..e3fade4123 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/patientdashboard/charts/ChartsViewActivity.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/patientdashboard/charts/ChartsViewActivity.java @@ -44,7 +44,7 @@ protected void onCreate(Bundle savedInstanceState) { } Bundle mBundle = this.getIntent().getBundleExtra("bundle"); try { - JSONObject chartData = new JSONObject(mBundle.getString("vitalName")); + JSONObject chartData = new JSONObject(mBundle.getString(getString(R.string.vital_name_bundle_key))); Iterator dates = chartData.keys(); ArrayList dateList = Lists.newArrayList(dates); //Sorting the date @@ -63,7 +63,7 @@ else if (DateUtils.getDateFromString(lhs).getTime() == DateUtils.getDateFromStri for (Integer i = 0; i < dataArray.length(); i++) { entries.add(new Entry(j, Float.parseFloat((String) dataArray.get(i)))); } - LineDataSet dataSet = new LineDataSet(entries, "Label"); // add entries to dataset + LineDataSet dataSet = new LineDataSet(entries, getString(R.string.dataset_entry_label)); // add entries to dataset dataSet.setCircleColor(R.color.green); dataSet.setValueTextSize(12); List ILdataSet = new ArrayList<>(); diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/activities/patientdashboard/visits/PatientDashboardVisitsPresenter.java b/openmrs-client/src/main/java/org/openmrs/mobile/activities/patientdashboard/visits/PatientDashboardVisitsPresenter.java index dd7cbffe70..200e4a0efb 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/activities/patientdashboard/visits/PatientDashboardVisitsPresenter.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/activities/patientdashboard/visits/PatientDashboardVisitsPresenter.java @@ -14,6 +14,9 @@ package org.openmrs.mobile.activities.patientdashboard.visits; +import android.content.res.Resources; + +import org.openmrs.mobile.R; import org.openmrs.mobile.activities.patientdashboard.PatientDashboardContract; import org.openmrs.mobile.activities.patientdashboard.PatientDashboardMainPresenterImpl; import org.openmrs.mobile.api.repository.VisitRepository; @@ -107,9 +110,8 @@ public void showStartVisitDialog() { if(visit != null){ mPatientVisitsView.showStartVisitDialog(false); } else if (!NetworkUtils.isOnline()) { - mPatientVisitsView.showErrorToast("Cannot start a visit manually in offline mode." + - "If you want to add encounters please do so in the Form Entry section, " + - "they will be synced with an automatic new visit."); + mPatientVisitsView.showErrorToast(Resources.getSystem().getString(R.string.cannot_start_visit_in_offline_mode_error_message) + + Resources.getSystem().getString(R.string.alternate_method_of_adding_encounters_in_offline_mode_error_message)); } else { mPatientVisitsView.showStartVisitDialog(true); } diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/api/EncounterService.java b/openmrs-client/src/main/java/org/openmrs/mobile/api/EncounterService.java index b02dd242ce..45af863488 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/api/EncounterService.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/api/EncounterService.java @@ -13,6 +13,7 @@ import android.app.IntentService; import android.content.Intent; +import org.openmrs.mobile.R; import org.openmrs.mobile.api.repository.VisitRepository; import org.openmrs.mobile.dao.PatientDAO; import org.openmrs.mobile.dao.VisitDAO; @@ -63,8 +64,7 @@ public void addEncounter(final Encountercreate encountercreate, @Nullable Defaul }); } else - ToastUtil.error("No internet connection. Form data is saved locally " + - "and will sync when internet connection is restored. "); + ToastUtil.error(getString(R.string.form_data_will_be_synced_later_no_internet_connection_error_message)); } public void addEncounter(final Encountercreate encountercreate) { @@ -137,7 +137,7 @@ public void onFailure(@NonNull Call call, @NonNull Throwable t) { }); } else { - ToastUtil.error("Sync is off. Turn on sync to save form data."); + ToastUtil.error(getString(R.string.form_data_sync_is_off_message)); } } @@ -163,7 +163,7 @@ private void linkvisit(Long patientid, String formname, Encounter encounter, Enc visitDAO.saveOrUpdate(visit, patientid) .observeOn(AndroidSchedulers.mainThread()) .subscribe(id -> - ToastUtil.success(formname+" data saved successfully")); + ToastUtil.success(getString(R.string.form_data_saved_successfully,formname))); }); } @@ -196,8 +196,7 @@ protected void onHandleIntent(Intent intent) { } else { - ToastUtil.error("No internet connection. Form data is saved locally " + - "and will sync when internet connection is restored. "); + ToastUtil.error(getString(R.string.form_data_will_be_synced_later_no_internet_connection_error_message)); } } diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/api/SyncStateReceiver.java b/openmrs-client/src/main/java/org/openmrs/mobile/api/SyncStateReceiver.java index 3f16a12261..afa6730610 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/api/SyncStateReceiver.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/api/SyncStateReceiver.java @@ -14,12 +14,13 @@ import android.content.Context; import android.content.Intent; +import org.openmrs.mobile.R; import org.openmrs.mobile.utilities.ToastUtil; public class SyncStateReceiver extends BroadcastReceiver{ @Override public void onReceive(Context context, Intent intent) { - ToastUtil.notify("Syncing switched on, attempting to sync patients and form data"); + ToastUtil.notify(context.getString(R.string.patent_and_form_data_sync_resumed)); Intent i=new Intent(context,PatientService.class); context.startService(i); Intent i1=new Intent(context,EncounterService.class); diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/api/UserService.java b/openmrs-client/src/main/java/org/openmrs/mobile/api/UserService.java index a099e072b9..5c595a31d5 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/api/UserService.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/api/UserService.java @@ -14,6 +14,9 @@ package org.openmrs.mobile.api; +import android.content.res.Resources; + +import org.openmrs.mobile.R; import org.openmrs.mobile.application.OpenMRS; import org.openmrs.mobile.models.Results; import org.openmrs.mobile.models.User; @@ -48,7 +51,7 @@ public void onResponse(@NonNull Call> call, @NonNull Response syncPatient(final Patient patient, @Nullable final if (NetworkUtils.isOnline()) { AndroidDeferredManager dm = new AndroidDeferredManager(); dm.when(locationRepository.getLocationUuid(), getIdGenPatientIdentifier(), getPatientIdentifierTypeUuid()) - .done(results -> { - final List identifiers = new ArrayList<>(); - - final PatientIdentifier identifier = new PatientIdentifier(); - identifier.setLocation((Location) results.get(0).getResult()); - identifier.setIdentifier((String) results.get(1).getResult()); - identifier.setIdentifierType((IdentifierType) results.get(2).getResult()); - identifiers.add(identifier); - - patient.setIdentifiers(identifiers); - patient.setUuid(null); - - PatientDto patientDto = patient.getPatientDto(); - - Call call = restApi.createPatient(patientDto); - call.enqueue(new Callback() { - @Override - public void onResponse(@NonNull Call call, @NonNull Response response) { - if (response.isSuccessful()) { - PatientDto newPatient = response.body(); - - patient.setUuid(newPatient.getUuid()); - if (patient.getPhoto() != null) - uploadPatientPhoto(patient); - - new PatientDAO().updatePatient(patient.getId(), patient); - if(!patient.getEncounters().equals("")) - addEncounters(patient); - - deferred.resolve(patient); - - if (callbackListener != null) { - callbackListener.onResponse(); - } - - } else { - ToastUtil.error("Patient[" + patient.getId() + "] cannot be synced due to server error"+ response.message()); - deferred.reject(new RuntimeException("Patient cannot be synced due to server error: " + response.errorBody().toString())); - if (callbackListener != null) { - callbackListener.onErrorResponse(response.message()); - } + .done(results -> { + final List identifiers = new ArrayList<>(); + + final PatientIdentifier identifier = new PatientIdentifier(); + identifier.setLocation((Location) results.get(0).getResult()); + identifier.setIdentifier((String) results.get(1).getResult()); + identifier.setIdentifierType((IdentifierType) results.get(2).getResult()); + identifiers.add(identifier); + + patient.setIdentifiers(identifiers); + patient.setUuid(null); + + PatientDto patientDto = patient.getPatientDto(); + + Call call = restApi.createPatient(patientDto); + call.enqueue(new Callback() { + @Override + public void onResponse(@NonNull Call call, @NonNull Response response) { + if (response.isSuccessful()) { + PatientDto newPatient = response.body(); + + patient.setUuid(newPatient.getUuid()); + if (patient.getPhoto() != null) { + uploadPatientPhoto(patient); } - } - @Override - public void onFailure(@NonNull Call call, @NonNull Throwable t) { - ToastUtil.notify("Patient[" + patient.getId() + "] cannot be synced due to request error: " + t.toString()); - deferred.reject(t); + new PatientDAO().updatePatient(patient.getId(), patient); + if (!patient.getEncounters().equals("")) { + addEncounters(patient); + } + + deferred.resolve(patient); + if (callbackListener != null) { - callbackListener.onErrorResponse(t.getMessage()); + callbackListener.onResponse(); } + } else { + ToastUtil + .error(Resources.getSystem().getString(R.string.patient_cannot_be_synced_due_to_server_error_message, patient.getId(), response.message())); + deferred.reject(new RuntimeException("Patient cannot be synced due to server error: " + response.errorBody().toString())); + if (callbackListener != null) { + callbackListener.onErrorResponse(response.message()); + } + } + } + + @Override + public void onFailure(@NonNull Call call, @NonNull Throwable t) { + ToastUtil.notify(Resources.getSystem().getString(R.string.patient_cannot_be_synced_due_to_request_error_message, patient.getId(), t.toString())); + deferred.reject(t); + if (callbackListener != null) { + callbackListener.onErrorResponse(t.getMessage()); } - }); + } }); + }); } else { - ToastUtil.notify("Sync is off. Patient Registration data is saved locally " + - "and will sync when online mode is restored. "); + ToastUtil.notify(openMrs.getString(R.string.offline_mode_patient_data_saved_locally_notification_message)); if (callbackListener != null) { callbackListener.onResponse(); } @@ -160,32 +162,33 @@ private void uploadPatientPhoto(final Patient patient) { patientPhoto.setPhoto(patient.getPhoto()); patientPhoto.setPerson(patient); Call personPhotoCall = - restApi.uploadPatientPhoto(patient.getUuid(), patientPhoto); + restApi.uploadPatientPhoto(patient.getUuid(), patientPhoto); personPhotoCall.enqueue(new Callback() { @Override public void onResponse(@NonNull Call call, @NonNull Response response) { logger.i(response.message()); if (!response.isSuccessful()) { - ToastUtil.error("Patient photo cannot be synced due to server error: "+ response.message()); + ToastUtil.error(Resources.getSystem().getString(R.string.patient_photo_update_unsuccessful, response.message())); } } + @Override public void onFailure(@NonNull Call call, @NonNull Throwable t) { - ToastUtil.notify("Patient photo cannot be synced due to error: " + t.toString() ); + ToastUtil.notify(Resources.getSystem().getString(R.string.patient_photo_update_unsuccessful, t.toString())); } }); } public void registerPatient(final Patient patient, @Nullable final DefaultResponseCallbackListener callbackListener) { patientDao.savePatient(patient) - .observeOn(AndroidSchedulers.mainThread()) - .subscribe(id -> { - if (callbackListener != null) { - syncPatient(patient, callbackListener); - } else { - syncPatient(patient); - } - }); + .observeOn(AndroidSchedulers.mainThread()) + .subscribe(id -> { + if (callbackListener != null) { + syncPatient(patient, callbackListener); + } else { + syncPatient(patient); + } + }); } /** @@ -203,19 +206,19 @@ public void onResponse(@NonNull Call call, @NonNull Response call, @NonNull Response call, @NonNull Throwable t) { - ToastUtil.notify("Patient " + patient.getPerson().getName().getNameString() - + " cannot be updated due to request error: " + t.toString()); + ToastUtil.notify(Resources.getSystem().getString(R.string.patient_cannot_be_synced_due_to_request_error_message, patient.getId(), t.toString())); if (callbackListener != null) { callbackListener.onErrorResponse(t.getMessage()); } } }); } else { - ToastUtil.notify("Sync is off. Patient Update data is saved locally " + - "and will sync when online mode is restored. "); + ToastUtil.notify(openMrs.getString(R.string.offline_mode_patient_data_saved_locally_notification_message)); if (callbackListener != null) { callbackListener.onResponse(); } @@ -258,19 +259,19 @@ public void onResponse(@NonNull Call call, @NonNull Response call, @NonNull Throwable t) { callbackListener.onErrorResponse(t.getMessage()); } }); } - - public SimplePromise downloadPatientPhotoByUuid(String uuid) { + + public SimplePromise downloadPatientPhotoByUuid(String uuid) { final SimpleDeferredObject deferredObject = new SimpleDeferredObject<>(); Call call = restApi.downloadPatientPhoto(uuid); call.enqueue(new Callback() { @@ -291,6 +292,7 @@ public void onResponse(@NonNull Call call, @NonNull Response call, @NonNull Throwable t) { deferredObject.reject(t); @@ -300,18 +302,16 @@ public void onFailure(@NonNull Call call, @NonNull Throwable t) { } private void addEncounters(Patient patient) { - String enc=patient.getEncounters(); + String enc = patient.getEncounters(); List list = new ArrayList<>(); for (String s : enc.split(",")) list.add(Long.parseLong(s)); - - for(long id:list) - { + for (long id : list) { Encountercreate encountercreate = new Select() - .from(Encountercreate.class) - .where("id = ?",id) - .executeSingle(); + .from(Encountercreate.class) + .where("id = ?", id) + .executeSingle(); encountercreate.setPatient(patient.getUuid()); encountercreate.save(); new EncounterService().addEncounter(encountercreate); @@ -335,7 +335,6 @@ public void onFailure(@NonNull Call call, @NonNull Thro ToastUtil.notify(t.toString()); deferred.reject(t); } - }); return deferred.promise(); @@ -350,7 +349,7 @@ private SimplePromise getPatientIdentifierTypeUuid() { public void onResponse(@NonNull Call> call, @NonNull Response> response) { Results idresList = response.body(); for (IdentifierType result : idresList.getResults()) { - if(result.getDisplay().equals("OpenMRS ID")) { + if (result.getDisplay().equals("OpenMRS ID")) { deferred.resolve(result); return; } @@ -362,9 +361,7 @@ public void onFailure(@NonNull Call> call, @NonNull Thro ToastUtil.notify(t.toString()); deferred.reject(t); } - }); return deferred.promise(); } - } diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/databases/entities/ConceptEntity.java b/openmrs-client/src/main/java/org/openmrs/mobile/databases/entities/ConceptEntity.java index f1924d2fa8..f068e1b4dd 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/databases/entities/ConceptEntity.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/databases/entities/ConceptEntity.java @@ -15,6 +15,7 @@ import androidx.room.PrimaryKey; import org.jetbrains.annotations.NotNull; +import org.openmrs.mobile.databases.tables.ConceptTable; import org.openmrs.mobile.models.Datatype; import org.openmrs.mobile.models.Resource; import androidx.room.ColumnInfo; @@ -22,7 +23,7 @@ import androidx.room.Entity; import androidx.room.RoomWarnings; -@Entity(tableName = "concepts") +@Entity(tableName = ConceptTable.TABLE_NAME) public class ConceptEntity extends Resource { public ConceptEntity() { } diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/databases/entities/VisitEntity.java b/openmrs-client/src/main/java/org/openmrs/mobile/databases/entities/VisitEntity.java index c6b82b35cf..de9183f3f2 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/databases/entities/VisitEntity.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/databases/entities/VisitEntity.java @@ -3,9 +3,11 @@ import androidx.annotation.NonNull; import androidx.room.ColumnInfo; import androidx.room.Entity; + +import org.openmrs.mobile.databases.tables.VisitTable; import org.openmrs.mobile.models.Resource; -@Entity(tableName = "visits") +@Entity(tableName = VisitTable.TABLE_NAME) public class VisitEntity extends Resource { @NonNull diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/listeners/watcher/PatientBirthdateValidatorWatcher.java b/openmrs-client/src/main/java/org/openmrs/mobile/listeners/watcher/PatientBirthdateValidatorWatcher.java index c36b6faa99..fd84051cbe 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/listeners/watcher/PatientBirthdateValidatorWatcher.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/listeners/watcher/PatientBirthdateValidatorWatcher.java @@ -14,10 +14,12 @@ package org.openmrs.mobile.listeners.watcher; +import android.content.res.Resources; import android.text.Editable; import android.text.TextWatcher; import android.widget.EditText; +import org.openmrs.mobile.R; import org.openmrs.mobile.utilities.ApplicationConstants; import org.openmrs.mobile.utilities.StringUtils; import org.openmrs.mobile.utilities.ToastUtil; @@ -48,13 +50,13 @@ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) { public void afterTextChanged(Editable editable) { eddob.getText().clear(); if (editable.length() > 3) { - ToastUtil.error("Input is too big"); + ToastUtil.error(Resources.getSystem().getString(R.string.input_too_big_error_message)); edmonth.getText().clear(); edyr.getText().clear(); } else { - if (StringUtils.notEmpty(editable.toString()) && Integer.parseInt(editable.toString()) > ApplicationConstants.RegisterPatientRequirements.MAX_PATIENT_AGE) { - ToastUtil.error("Patient's age must be between 0 and " + ApplicationConstants.RegisterPatientRequirements.MAX_PATIENT_AGE); + if (StringUtils.notEmpty(editable.toString()) && (Integer.parseInt(editable.toString()) > ApplicationConstants.RegisterPatientRequirements.MAX_PATIENT_AGE)) { + ToastUtil.error(Resources.getSystem().getString(R.string.patient_age_out_of_bounds_error_message,ApplicationConstants.RegisterPatientRequirements.MAX_PATIENT_AGE)); edmonth.getText().clear(); edyr.getText().clear(); } diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/services/AuthenticateCheckService.java b/openmrs-client/src/main/java/org/openmrs/mobile/services/AuthenticateCheckService.java index 37ce753a06..110897d0b5 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/services/AuthenticateCheckService.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/services/AuthenticateCheckService.java @@ -22,6 +22,7 @@ import android.os.IBinder; import android.util.Log; +import org.openmrs.mobile.R; import org.openmrs.mobile.api.RestApi; import org.openmrs.mobile.api.RestServiceBuilder; import org.openmrs.mobile.application.OpenMRS; @@ -110,13 +111,13 @@ public void onResponse(@NonNull Call call, @NonNull Response r } } } else { - ToastUtil.error("Error in AuthenticateCheckService Response"); + ToastUtil.error(getString(R.string.authenticate_check_service_error_response_message)); } } @Override public void onFailure(@NonNull Call call, @NonNull Throwable t) { - ToastUtil.error("Error in AuthenticateCheckService"); + ToastUtil.error(getString(R.string.authenticate_service_error_message)); } }); } else { diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/services/ConceptDownloadService.java b/openmrs-client/src/main/java/org/openmrs/mobile/services/ConceptDownloadService.java index b36c26aeb6..7bd2fb96d9 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/services/ConceptDownloadService.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/services/ConceptDownloadService.java @@ -89,8 +89,8 @@ private void showNotification(int downloadedConcepts) { Bitmap icon = BitmapFactory.decodeResource(getResources(), R.drawable.ic_openmrs); Notification notification = new NotificationCompat.Builder(this) - .setContentTitle("Downloading Concepts") - .setTicker("OpenMRS Android Client") + .setContentTitle(getString(R.string.downloading_concepts_notification_message)) + .setTicker(getString(R.string.accessibility_services_app_name_message)) .setContentText(String.valueOf(downloadedConcepts)) .setSmallIcon(R.drawable.ic_stat_notify_download) .setLargeIcon( diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/utilities/ActiveAndroid/content/ContentProvider.java b/openmrs-client/src/main/java/org/openmrs/mobile/utilities/ActiveAndroid/content/ContentProvider.java index 31f92d0f50..19924670bf 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/utilities/ActiveAndroid/content/ContentProvider.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/utilities/ActiveAndroid/content/ContentProvider.java @@ -16,11 +16,13 @@ import android.content.ContentValues; import android.content.UriMatcher; +import android.content.res.Resources; import android.database.Cursor; import android.net.Uri; import android.util.SparseArray; import org.jetbrains.annotations.NotNull; +import org.openmrs.mobile.R; import org.openmrs.mobile.utilities.ActiveAndroid.ActiveAndroid; import org.openmrs.mobile.utilities.ActiveAndroid.Cache; import org.openmrs.mobile.utilities.ActiveAndroid.Configuration; @@ -100,13 +102,13 @@ public String getType(@NotNull Uri uri) { final boolean single = ((match % 2) == 0); StringBuilder mimeType = new StringBuilder(); - mimeType.append("vnd"); + mimeType.append(Resources.getSystem().getString(R.string.MIME_type_vendor_specific)); mimeType.append("."); mimeType.append(sAuthority); mimeType.append("."); mimeType.append(single ? "item" : "dir"); mimeType.append("/"); - mimeType.append("vnd"); + mimeType.append(Resources.getSystem().getString(R.string.MIME_type_vendor_specific)); mimeType.append("."); mimeType.append(sAuthority); mimeType.append("."); diff --git a/openmrs-client/src/main/java/org/openmrs/mobile/utilities/DateUtils.java b/openmrs-client/src/main/java/org/openmrs/mobile/utilities/DateUtils.java index a26b920b01..45a96f8225 100644 --- a/openmrs-client/src/main/java/org/openmrs/mobile/utilities/DateUtils.java +++ b/openmrs-client/src/main/java/org/openmrs/mobile/utilities/DateUtils.java @@ -15,11 +15,14 @@ package org.openmrs.mobile.utilities; import android.annotation.SuppressLint; +import android.content.res.Resources; import org.joda.time.DateTime; import org.joda.time.format.DateTimeFormat; import org.joda.time.format.DateTimeFormatter; +import org.openmrs.mobile.R; import org.openmrs.mobile.application.OpenMRS; +import org.openmrs.mobile.models.Resource; import java.text.DateFormat; import java.text.ParseException; @@ -245,7 +248,7 @@ public static boolean isValidFormat(String format, String dateAsString) { date = null; } } catch (ParseException exception) { - OpenMRS.getInstance().getOpenMRSLogger().w("Failed to validate date format :" + dateAsString + " caused by " + exception.toString()); + OpenMRS.getInstance().getOpenMRSLogger().w(Resources.getSystem().getString(R.string.date_validate_error_message,dateAsString,exception.toString())); } return date != null; } diff --git a/openmrs-client/src/main/res/layout/fragment_login.xml b/openmrs-client/src/main/res/layout/fragment_login.xml index 239975631d..4850d3ce09 100644 --- a/openmrs-client/src/main/res/layout/fragment_login.xml +++ b/openmrs-client/src/main/res/layout/fragment_login.xml @@ -74,7 +74,7 @@ android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginBottom="20dp" - android:hint="Url Address" + android:hint="@string/url_address" android:inputType="textUri" android:maxLines="1" android:textColorHint="@color/green" diff --git a/openmrs-client/src/main/res/values/strings.xml b/openmrs-client/src/main/res/values/strings.xml index db914969a0..56277013bb 100644 --- a/openmrs-client/src/main/res/values/strings.xml +++ b/openmrs-client/src/main/res/values/strings.xml @@ -365,7 +365,7 @@ No Unknown - + helpdesk@openmrs.com Go To Forum Go To IRC @@ -376,4 +376,105 @@ https://wiki.openmrs.org/display/IRC/Home Contact Us There are no email clients installed. + + + Url Address + flag + error + Package Manager + com.google.android.geo.API_KEY + file:// + M + F + image/* + image/jpeg + photo + name + r + org.openmrs.mobile.intent.action.SYNC_PATIENTS + message/rfc822 + Error getting image from gallery. + Error in AuthenticateCheckService Response + Error in AuthenticateCheckService + + + Take a photo + Choose another + Remove photo + vitalName + + + Label + + + Downloading Concepts + OpenMRS Android Client + + + mailto: + vnd + + + Exit application + + + Couldn\'t fetch user data + + + OpenMRSPrefFile + Click here to search through all the patients + Find Patients + Active Visits + Click here to get the list of all the currently active visits + Register Patient + Click here to register a new patient + Form Entry + Click here to capture vitals for a patient on a visit + + + Failed to validate date format : %1$s caused by %2$s + + + \"No internet connection. Form data is saved locally and will sync when internet connection is restored. \" + Sync is off. Turn on sync to save form data. + %1$s data saved successfully + \"Patient not yet registered. \" + + + All fields cannot be empty + There is no encounter type called %1$s + + + Failed to fetch patient data + + + Invalid URL + + + Failed to fetch visit type + Failed to fetch server\'s locations + + + Logs copied to clipboard + + + You can select only one similar patient + + + Input is too big + Patient\'s age must be between 0 and %1$i + + + Cannot start a visit manually in offline mode. + If you want to add encounters please do so in the Form Entry section, they will be synced with an automatic new visit. + + + "Patient[ %1$i ] cannot be synced due to server error %2$s + "Patient[ %1$i ] cannot be synced due to request error %2$s + Patient %1$s Updated + Patient %1$s cannot be updated due to server error will retry sync %2$s + Patient %1$s cannot be updated due to request error will retry sync %2$s + Patient photo cannot be synced due to server error: %1$s + Sync is off. Patient Update data is saved locally and will sync when online mode is restored. + Syncing switched on, attempting to sync patients and form data