Advertisement
gonzalob

Untitled

Mar 20th, 2023
579
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 60.88 KB | None | 0 0
  1. package com.emer.beneficiary.ui.medicalServices.physicalTherapy;
  2.  
  3. import static com.emer.beneficiary.app.Utils.getEditTextFilterLetterAndSpaces;
  4.  
  5. import android.annotation.SuppressLint;
  6. import android.app.DatePickerDialog;
  7. import android.content.Intent;
  8. import android.content.SharedPreferences;
  9. import android.os.Bundle;
  10. import android.text.InputFilter;
  11. import android.text.InputType;
  12. import android.util.Log;
  13. import android.view.View;
  14. import android.widget.AdapterView;
  15. import android.widget.ArrayAdapter;
  16. import android.widget.DatePicker;
  17. import android.widget.Toast;
  18.  
  19. import androidx.annotation.Nullable;
  20. import androidx.appcompat.app.AppCompatActivity;
  21. import androidx.fragment.app.FragmentManager;
  22. import androidx.room.Room;
  23.  
  24. import com.emer.beneficiary.R;
  25. import com.emer.beneficiary.app.IDialog;
  26. import com.emer.beneficiary.app.Params;
  27. import com.emer.beneficiary.app.ProviderPreferences;
  28. import com.emer.beneficiary.data.AppDatabase;
  29. import com.emer.beneficiary.data.KinesiologyZoneEntity;
  30. import com.emer.beneficiary.data.PhysicalTherapyForm;
  31. import com.emer.beneficiary.databinding.ActivityPhysicalTherapyBinding;
  32. import com.emer.beneficiary.databinding.RowDropdownMenuBinding;
  33. import com.emer.beneficiary.databinding.RowInputTextSignUpBinding;
  34. import com.emer.beneficiary.endpoints.generalData.model.GeneralData;
  35. import com.emer.beneficiary.endpoints.generalData.presentation.GeneralDataPresenter;
  36. import com.emer.beneficiary.endpoints.generalData.presentation.GeneralDataView;
  37. import com.emer.beneficiary.endpoints.healthInsurances.model.HealthInsurance;
  38. import com.emer.beneficiary.endpoints.healthInsurances.presentation.HealthInsurancePresenter;
  39. import com.emer.beneficiary.endpoints.healthInsurances.presentation.HealthInsurancesView;
  40. import com.emer.beneficiary.endpoints.requestServices.model.RequestService;
  41. import com.emer.beneficiary.endpoints.requestServices.model.Zone;
  42. import com.emer.beneficiary.ui.adapter.ZonesSelectedAdapter;
  43. import com.emer.beneficiary.ui.dialog.DatePickerFragment;
  44. import com.emer.beneficiary.ui.dialog.PopUpCopago;
  45. import com.emer.beneficiary.ui.dialog.SelectCoverageFragment;
  46. import com.wdullaer.materialdatetimepicker.time.TimePickerDialog;
  47.  
  48. import java.text.SimpleDateFormat;
  49. import java.util.ArrayList;
  50. import java.util.Calendar;
  51. import java.util.Date;
  52. import java.util.List;
  53.  
  54. import javax.inject.Inject;
  55.  
  56. import dagger.hilt.android.AndroidEntryPoint;
  57.  
  58. @AndroidEntryPoint
  59. public class PhysicalTherapyActivity extends AppCompatActivity implements
  60.         ZonesSelectedAdapter.OnItemClickListener, View.OnClickListener,
  61.         HealthInsurancesView,GeneralDataView,
  62.         IDialog, PopUpCopago.IPopUpCopago
  63. {
  64.  
  65.     private ActivityPhysicalTherapyBinding binding;
  66.  
  67.     private TimePickerDialog tpd;
  68.  
  69.     private AppDatabase db;
  70.  
  71.     private String countFrequency;
  72.     private String unitFrequency;
  73.     private Integer idUnitFrequency;
  74.     private String countDuration;
  75.     private String unitDuration;
  76.     private String diagnostic;
  77.     private String professionalName;
  78.     private String professionalSurname;
  79.     private String enrollmentType;
  80.     private Integer idEnrollmentType;
  81.     private String numberEnrollment;
  82.     private String dateIssue;
  83.     private String mhourStart;
  84.     private String mhourEnd;
  85.     private String observations;
  86.  
  87.     ZonesSelectedAdapter zonesSelectedAdapter;
  88.  
  89.     KinesiologyZoneEntity kinesiologyZoneEntity;
  90.  
  91.     private int editCodeValue = 0;
  92.  
  93.     @Inject
  94.     HealthInsurancePresenter healthInsurancePresenter;
  95.  
  96.     @Inject
  97.     GeneralDataPresenter generalDataPresenter;
  98.  
  99.     List<Zone> zoneList;
  100.  
  101.     boolean firstUse = true;
  102.  
  103.     List<GeneralData> generalDataList;
  104.  
  105.     boolean front = true;
  106.     private int serviceId;
  107.  
  108.     @Override
  109.     protected void onCreate(@Nullable Bundle savedInstanceState) {
  110.         super.onCreate(savedInstanceState);
  111.         binding = ActivityPhysicalTherapyBinding.inflate(getLayoutInflater());
  112.         setContentView(binding.getRoot());
  113.  
  114.         zoneList = new ArrayList<>();
  115.         db = Room.databaseBuilder(getApplicationContext(), AppDatabase.class, "database-name").allowMainThreadQueries().build();
  116.  
  117.         SharedPreferences sharedPreferences = getSharedPreferences(Params.ID_PREFERENCES, MODE_PRIVATE);
  118.         serviceId = sharedPreferences.getInt(Params.medicalServicesId, 0);
  119.  
  120.         generalDataPresenter.setView(this);
  121.         generalDataPresenter.onContinueButtonPressed();
  122.         healthInsurancePresenter.setView(this);
  123.         healthInsurancePresenter.getHealthInsurance(String.valueOf(serviceId));
  124.  
  125.         String service = sharedPreferences.getString(Params.medicalServicesName, "");
  126.         binding.toolbar.text.setText(service);
  127.  
  128.  
  129.         kinesiologyZoneEntity = new KinesiologyZoneEntity();
  130.  
  131.         Bundle b = getIntent().getExtras();
  132.         if (b != null) {
  133.             editCodeValue = getIntent().getExtras().getInt(Params.EDIT_CODE);
  134.         }
  135.  
  136.         if (editCodeValue == 1) {
  137.             if (b != null)
  138.             {
  139.                 getInfoToModify();
  140.             }
  141.         }
  142.         else
  143.         {
  144.             DataSummaryKinesiologyActivity.requestService = new RequestService();
  145.             db.userDao().deleteAllZones();
  146.             binding.physicalTherapy.optionOne.setChecked(true);
  147.             binding.physicalTherapy.buttonsGeneral.setVisibility(View.GONE);
  148.             binding.physicalTherapy.touchFrontalZone.root.setVisibility(View.GONE);
  149.             binding.physicalTherapy.zonesSelected.setVisibility(View.GONE);
  150.         }
  151.  
  152.         binding.physicalTherapy.btnDorsalZone.setBackgroundTintList(getApplicationContext().getResources().getColorStateList(R.color.fill_button_take_again));
  153.         binding.physicalTherapy.btnDorsalZone.setTextColor(getApplicationContext().getResources().getColor(R.color.stroke_button_take_again));
  154.         binding.hoursPreferences.startInput.inputText.setFocusable(false);
  155.         binding.hoursPreferences.endInput.inputText.setFocusable(false);
  156.         binding.llRequestService.duration.endInput.inputText.setFocusable(false);
  157.         binding.llRequestService.duration.endInput.inputText.setClickable(false);
  158.         binding.inputDateIssue.inputText.setFocusable(false);
  159.         binding.llRequestService.duration.endInput.inputText.setBackgroundTintList(getApplicationContext().getResources().getColorStateList(R.color.white));
  160.         binding.llRequestService.duration.endInput.outlinedTextField.setBackgroundTintList(getApplicationContext().getResources().getColorStateList(R.color.white));
  161.  
  162.         //Add end icons
  163.         binding.hoursPreferences.startInput.inputText.setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, getDrawable(R.drawable.ic_reloj), null);
  164.         binding.hoursPreferences.endInput.inputText.setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, getDrawable(R.drawable.ic_reloj), null);
  165.         binding.inputDateIssue.inputText.setCompoundDrawablesRelativeWithIntrinsicBounds(null, null, getDrawable(R.drawable.ic_calendario), null);
  166.  
  167.         //InputType
  168.         binding.llRequestService.startInput.inputText.setInputType(InputType.TYPE_CLASS_NUMBER);
  169.         binding.llRequestService.duration.startInput.inputText.setInputType(InputType.TYPE_CLASS_NUMBER);
  170.         binding.numberEnrollment.inputText.setInputType(InputType.TYPE_CLASS_NUMBER);
  171.         //binding.inputDateIssue.inputText.setInputType(InputType.TYPE_TEXT_VARIATION_PERSON_NAME);
  172.  
  173.         //MaxLengths
  174.         binding.llRequestService.startInput.inputText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(2)});
  175.         binding.llRequestService.duration.startInput.inputText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(2)});
  176.         binding.numberEnrollment.inputText.setFilters(new InputFilter[]{new InputFilter.LengthFilter(20)});
  177.  
  178.  
  179.         setPropertiesOfView();
  180.         setActions();
  181.         addZonesSelected();
  182.         setUpRecyclerView();
  183.  
  184.         if (serviceId == 9)
  185.         {
  186.             binding.physicalTherapy.getRoot().setVisibility(View.GONE);
  187.             binding.DescriptionActivityPhysicalTherapy.setText("Elija la frecuencia y duración de tratamiento");
  188.         }
  189.  
  190.         if (serviceId == 2)
  191.         {
  192.             binding.physicalTherapy.getRoot().setVisibility(View.GONE);
  193.             binding.DescriptionActivityPhysicalTherapy.setVisibility(View.GONE);
  194.             binding.llRequestService.getRoot().setVisibility(View.GONE);
  195.             binding.hoursPreferences.getRoot().setVisibility(View.GONE);
  196.             binding.observations.header.setText("Diagnóstico");
  197.         }
  198.     }
  199.  
  200.     private void getInfoToModify() {
  201.         String countFrequencyPreferences = getIntent().getExtras().getString(Params.count_frequencyPreference);
  202.         String unitFrequencyPreferences = getIntent().getExtras().getString(Params.unit_frequencyPreference);
  203.         String duration = getIntent().getExtras().getString(Params.duration);
  204.         String diagnostic = getIntent().getExtras().getString(Params.diagnostic);
  205.         String nameProfessional = getIntent().getExtras().getString(Params.nameProfessional);
  206.         String surnameProfessional = getIntent().getExtras().getString(Params.surnameProfessional);
  207.         String enrollmentType = getIntent().getExtras().getString(Params.enrollmentType);
  208.         String numberEnrollment = getIntent().getExtras().getString(Params.numberEnrollment);
  209.         String dateIssue = getIntent().getExtras().getString(Params.dateIssue);
  210.         String hourStart = getIntent().getExtras().getString(Params.hourStart);
  211.         String hourEnd = getIntent().getExtras().getString(Params.hourEnd);
  212.         String observations = getIntent().getExtras().getString(Params.observations);
  213.  
  214.         idEnrollmentType = getIntent().getExtras().getInt("idEnrollmentType");
  215.         idUnitFrequency = getIntent().getExtras().getInt("idUnitFrequency");
  216.  
  217.  
  218.         binding.llRequestService.startInput.inputText.setText(countFrequencyPreferences);
  219.         binding.llRequestService.endInput.autoComplete.setText(unitFrequencyPreferences);
  220.         binding.llRequestService.duration.startInput.inputText.setText(duration);
  221.         binding.llRequestService.diagnostic.editText.setText(diagnostic);
  222.         binding.nameProfessional.inputText.setText(nameProfessional);
  223.         binding.surnameProfessional.inputText.setText(surnameProfessional);
  224.         binding.enrollmentType.autoComplete.setText(enrollmentType);
  225.         binding.numberEnrollment.inputText.setText(numberEnrollment);
  226.         binding.inputDateIssue.inputText.setText(dateIssue);
  227.         binding.hoursPreferences.startInput.inputText.setText(hourStart);
  228.         binding.hoursPreferences.endInput.inputText.setText(hourEnd);
  229.         binding.observations.editText.setText(observations);
  230.  
  231.         zoneList = db.userDao().getKinesiologyZoneList();
  232.  
  233.         ProviderPreferences preferences = new ProviderPreferences(getApplicationContext());
  234.         boolean rehaGeneral = preferences.getBoolean("rehaGeneral");
  235.  
  236.         if (rehaGeneral)
  237.         {
  238.             binding.physicalTherapy.optionOne.setChecked(true);
  239.             binding.physicalTherapy.optionTwo.setChecked(false);
  240.             binding.physicalTherapy.buttonsGeneral.setVisibility(View.GONE);
  241.             binding.physicalTherapy.touchFrontalZone.root.setVisibility(View.GONE);
  242.             binding.physicalTherapy.zonesSelected.setVisibility(View.GONE);
  243.         }
  244.         else
  245.         {
  246.             binding.physicalTherapy.optionOne.setChecked(false);
  247.             binding.physicalTherapy.optionTwo.setChecked(true);
  248.  
  249.             binding.physicalTherapy.buttonsGeneral.setVisibility(View.VISIBLE);
  250.                 binding.physicalTherapy.touchFrontalZone.root.setVisibility(View.VISIBLE);
  251.                 binding.physicalTherapy.zonesSelected.setVisibility(View.VISIBLE);
  252.  
  253.         }
  254.  
  255.         setUpRecyclerView();
  256.  
  257.         for (Zone z : zoneList)
  258.         {
  259.             markZone(z.getZoneName());
  260.         }
  261.  
  262.     }
  263.  
  264.     private void showDialog(ArrayList<HealthInsurance> list) {
  265.         if (editCodeValue == 0) {
  266.             Log.d("HealthInsurance", "HealthInsurance" + list.toString());
  267.  
  268.             FragmentManager fm = getSupportFragmentManager();
  269.             SelectCoverageFragment selectCoverageFragment = SelectCoverageFragment.newInstance(list);
  270.             selectCoverageFragment.show(fm, "selectCoverage");
  271.         }
  272.         if (editCodeValue == 1) {
  273.             //Don't anything
  274.         }
  275.     }
  276.  
  277.     private void onSaveData() {
  278.         bindUI();
  279.         runOnUiThread(() -> {
  280.             PhysicalTherapyForm form = new PhysicalTherapyForm();
  281.             form.setCountFrequency(countFrequency);
  282.             form.setUnitFrequency(unitFrequency);
  283.             form.setCountDuration(countDuration);
  284.             form.setSessionDuration(unitDuration);
  285.             form.setDiagnostic(diagnostic);
  286.             form.setNameOfProfessional(professionalName);
  287.             form.setSurnameOfProfessional(professionalSurname);
  288.             form.setEnrollmentType(enrollmentType);
  289.             form.setNumberEnrollment(numberEnrollment);
  290.             form.setDateIssue(dateIssue);
  291.             form.setHourStart(mhourStart);
  292.             form.setHourEnd(mhourEnd);
  293.             form.setObservations(observations);
  294.             form.setIdUnitFrequency(idUnitFrequency);
  295.             form.setIdEnrollmentType(idEnrollmentType);
  296.  
  297.             ProviderPreferences preferences = new ProviderPreferences(getApplicationContext());
  298.  
  299.             if (binding.physicalTherapy.optionOne.isChecked())
  300.             {
  301.                 preferences.setaBoolean("rehaGeneral",true);
  302.             }
  303.             else
  304.             {
  305.                 preferences.setaBoolean("rehaGeneral",false);
  306.             }
  307.  
  308.             db.userDao().insertPhysicalTherapyForm(form);
  309.  
  310.             for (Zone z : zoneList) {
  311.                 db.userDao().insertZone(z);
  312.             }
  313.  
  314.  
  315.             if (editCodeValue == 0)
  316.             {
  317.                 if (serviceId != 2)
  318.                 {
  319.                     startActivity(new Intent(PhysicalTherapyActivity.this, AttachFileKinesiology.class));
  320.                 }
  321.                 else
  322.                 {
  323.                     FragmentManager fm = getSupportFragmentManager();
  324.                     PopUpCopago popUpCopago = PopUpCopago.newInstance();
  325.                     popUpCopago.show(fm, "selectCoverage");
  326.                 }
  327.             }
  328.             if (editCodeValue == 1) {
  329.                 startActivity(new Intent(PhysicalTherapyActivity.this, DataSummaryKinesiologyActivity.class));
  330.             }
  331.  
  332.         });
  333.     }
  334.  
  335.     private void bindUI() {
  336.         countFrequency = binding.llRequestService.startInput.inputText.getText().toString();
  337.         unitFrequency = binding.llRequestService.endInput.autoComplete.getText().toString();
  338.         countDuration = binding.llRequestService.duration.startInput.inputText.getText().toString();
  339.         unitDuration = binding.llRequestService.duration.startInput.inputText.getText().toString();
  340.         diagnostic = binding.llRequestService.diagnostic.editText.getText().toString();
  341.         professionalName = binding.nameProfessional.inputText.getText().toString();
  342.         professionalSurname = binding.surnameProfessional.inputText.getText().toString();
  343.         enrollmentType = binding.enrollmentType.autoComplete.getText().toString();
  344.         numberEnrollment = binding.numberEnrollment.inputText.getText().toString();
  345.         dateIssue = binding.inputDateIssue.inputText.getText().toString();
  346.         mhourStart = binding.hoursPreferences.startInput.inputText.getText().toString();
  347.         mhourEnd = binding.hoursPreferences.endInput.inputText.getText().toString();
  348.         observations = binding.observations.editText.getText().toString();
  349.  
  350.     }
  351.  
  352.     private Boolean hasErrors()
  353.     {
  354.         bindUI();
  355.         ArrayList<Boolean> states = new ArrayList<>();
  356.  
  357.         if (serviceId != 2)
  358.         {
  359.             states.add(unitDuration.isEmpty());
  360.             states.add(mhourStart.isEmpty());
  361.             states.add(mhourEnd.isEmpty());
  362.         }
  363.  
  364.         states.add(professionalName.isEmpty());
  365.         states.add(professionalSurname.isEmpty());
  366.         states.add(enrollmentType.isEmpty());
  367.         states.add(numberEnrollment.isEmpty());
  368.         states.add(dateIssue.isEmpty());
  369.  
  370.         setUIWhenErrorOccurred();
  371.  
  372.         return states.contains(true);
  373.  
  374.     }
  375.  
  376.     private void setUIWhenErrorOccurred() {
  377.         bindUI();
  378.         setError(mhourEnd, binding.hoursPreferences.endInput);
  379.         setError(mhourStart, binding.hoursPreferences.startInput);
  380.         setError(numberEnrollment, binding.numberEnrollment);
  381.         setError(professionalSurname, binding.surnameProfessional);
  382.         setError(professionalName, binding.nameProfessional);
  383.         setError(unitDuration, binding.llRequestService.duration.startInput);
  384.         setError(dateIssue, binding.inputDateIssue);
  385.         setError(enrollmentType,binding.enrollmentType);
  386.  
  387.     }
  388.  
  389.     private void setError(String value, RowInputTextSignUpBinding rowInputTextSignUpBinding) {
  390.         if (value.isEmpty()) {
  391.             rowInputTextSignUpBinding.inputText.setBackground(getDrawable(R.drawable.drawable_background_inputs_error));
  392.             rowInputTextSignUpBinding.tvError.setVisibility(View.VISIBLE);
  393.         }
  394.         if (!value.isEmpty())
  395.         {
  396.             rowInputTextSignUpBinding.inputText.setBackground(getDrawable(R.drawable.drawable_background_inputs_text));
  397.             rowInputTextSignUpBinding.tvError.setVisibility(View.GONE);
  398.         }
  399.     }
  400.  
  401.     private void setError(String value, RowDropdownMenuBinding rowInputTextSignUpBinding) {
  402.         if (value.isEmpty()) {
  403.             rowInputTextSignUpBinding.menu.setBackground(getDrawable(R.drawable.drawable_background_inputs_error));
  404.             rowInputTextSignUpBinding.tvError.setVisibility(View.VISIBLE);
  405.         }
  406.         if (!value.isEmpty())
  407.         {
  408.             rowInputTextSignUpBinding.menu.setBackground(getDrawable(R.drawable.drawable_background_inputs_text));
  409.             rowInputTextSignUpBinding.tvError.setVisibility(View.GONE);
  410.         }
  411.     }
  412.  
  413.     private void addZonesSelected() {
  414.         binding.physicalTherapy.touchFrontalZone.head.setOnClickListener(this);
  415.         binding.physicalTherapy.touchFrontalZone.neck.setOnClickListener(this);
  416.         binding.physicalTherapy.touchFrontalZone.shoulderLeft.setOnClickListener(this);
  417.         binding.physicalTherapy.touchFrontalZone.shoulderRight.setOnClickListener(this);
  418.         binding.physicalTherapy.touchFrontalZone.lungLeft.setOnClickListener(this);
  419.         binding.physicalTherapy.touchFrontalZone.lungRight.setOnClickListener(this);
  420.         binding.physicalTherapy.touchFrontalZone.elbowLeft.setOnClickListener(this);
  421.         binding.physicalTherapy.touchFrontalZone.elbowRight.setOnClickListener(this);
  422.         binding.physicalTherapy.touchFrontalZone.abdomen.setOnClickListener(this);
  423.         binding.physicalTherapy.touchFrontalZone.forearmLeft.setOnClickListener(this);
  424.         binding.physicalTherapy.touchFrontalZone.forearmRight.setOnClickListener(this);
  425.         binding.physicalTherapy.touchFrontalZone.back.setOnClickListener(this);
  426.         binding.physicalTherapy.touchFrontalZone.hips.setOnClickListener(this);
  427.         binding.physicalTherapy.touchFrontalZone.sacroiliac.setOnClickListener(this);
  428.         binding.physicalTherapy.touchFrontalZone.thighLeft.setOnClickListener(this);
  429.         binding.physicalTherapy.touchFrontalZone.thighRight.setOnClickListener(this);
  430.         binding.physicalTherapy.touchFrontalZone.kneeLeft.setOnClickListener(this);
  431.         binding.physicalTherapy.touchFrontalZone.kneeRight.setOnClickListener(this);
  432.         binding.physicalTherapy.touchFrontalZone.legLeft.setOnClickListener(this);
  433.         binding.physicalTherapy.touchFrontalZone.legRight.setOnClickListener(this);
  434.         binding.physicalTherapy.touchFrontalZone.footLeft.setOnClickListener(this);
  435.         binding.physicalTherapy.touchFrontalZone.footRight.setOnClickListener(this);
  436.     }
  437.  
  438.     private void setUpRecyclerView() {
  439.         zonesSelectedAdapter = new ZonesSelectedAdapter(zoneList);
  440.         binding.physicalTherapy.zonesSelected.setAdapter(zonesSelectedAdapter);
  441.         zonesSelectedAdapter.setListener(this);
  442.     }
  443.  
  444.     private void setTimePickerStart() {
  445.  
  446.         Calendar calendar = Calendar.getInstance();
  447.         int hour = calendar.get(Calendar.HOUR_OF_DAY);
  448.         int minute = calendar.get(Calendar.MINUTE);
  449.         if (!firstUse)
  450.         {
  451.             hour = Integer.parseInt(binding.hoursPreferences.startInput.inputText.getText().toString().split(":")[0]);
  452.             minute = Integer.parseInt(binding.hoursPreferences.startInput.inputText.getText().toString().split(":")[1]);
  453.  
  454.         }
  455.         else
  456.         {
  457.             firstUse = false;
  458.         }
  459.  
  460.         tpd = null;
  461.  
  462.         tpd = TimePickerDialog.newInstance(
  463.                     new TimePickerDialog.OnTimeSetListener()
  464.                     {
  465.                         @Override
  466.                         public void onTimeSet(TimePickerDialog view, int hourOfDay, int minute, int second)
  467.                         {
  468.                             String hora = "" + hourOfDay;
  469.                             if (hourOfDay < 9) {
  470.                                 hora = "0" + hourOfDay;
  471.                             }
  472.  
  473.                             String minuto = "" + minute;
  474.                             if (minute < 9) {
  475.                                 minuto = "0" + minute;
  476.                             }
  477.  
  478.                             String timeSelected = hora + ":" + minuto;
  479.  
  480.                             Log.d("tiempo", timeSelected);
  481.  
  482.                             binding.hoursPreferences.startInput.inputText.setText(timeSelected);
  483.  
  484.                             Calendar calendar = Calendar.getInstance();
  485.                             calendar.set(Calendar.HOUR_OF_DAY, hourOfDay);
  486.                             calendar.add(Calendar.HOUR_OF_DAY, 4);
  487.  
  488.                             String horaFinS = "" + calendar.get(Calendar.HOUR_OF_DAY);
  489.                             if (calendar.get(Calendar.HOUR_OF_DAY) < 9) {
  490.                                 horaFinS = "0" + horaFinS;
  491.                             }
  492.  
  493.                             timeSelected = horaFinS + ":" + minuto;
  494.  
  495.                             Log.d("tiempo", timeSelected);
  496.  
  497.                             binding.hoursPreferences.endInput.inputText.setText(timeSelected);
  498.                         }
  499.                     },
  500.                     hour,
  501.                     minute,
  502.                     true
  503.             );
  504.         tpd.setTimeInterval(1, 30, 60);
  505.         tpd.setAccentColor(getResources().getColor(R.color.primaryColor));
  506.         tpd.setTitle("Ingrese la hora");
  507.         tpd.show(getSupportFragmentManager(), "Timepickerdialog");
  508.     }
  509.  
  510.     private void setInputCalendar() {
  511.         DatePickerFragment newFragment = DatePickerFragment.newInstance(new DatePickerDialog.OnDateSetListener() {
  512.             @Override
  513.             public void onDateSet(DatePicker datePicker, int year, int month, int day) {
  514.                 // +1 because January is zero
  515.                 String mDay = String.valueOf(day);
  516.                 String mMonth = ""+(month+1);
  517.  
  518.                 if (day <= 9)
  519.                 {
  520.                     mDay = "0" + day;
  521.                 }
  522.                 if ((month+1) <= 9)
  523.                 {
  524.                     mMonth = "0" + (month + 1);
  525.                 }
  526.  
  527.                 final String selectedDate = mDay + "/" + mMonth + "/" + year;
  528.  
  529.                 try {
  530.  
  531.                     Date date1 = new SimpleDateFormat("dd/MM/yyyy").parse(selectedDate);
  532.                     Date hoy = new Date();
  533.                     Date dias60 = getTiempoVencimiento();
  534.  
  535.                     if (date1.after(hoy))
  536.                     {
  537.                         binding.inputDateIssue.tvError.setText("No se puede elegir una fecha posterior a hoy");
  538.                         binding.inputDateIssue.tvError.setVisibility(View.VISIBLE);
  539.                     }
  540.                     else if (date1.before(dias60))
  541.                     {
  542.                         binding.inputDateIssue.tvError.setText("La fecha no puede ser mayor a los "+getDiasTiempoVencimiento()+ " días de emisión");
  543.                         binding.inputDateIssue.tvError.setVisibility(View.VISIBLE);
  544.                     }
  545.                     else
  546.                     {
  547.                         binding.inputDateIssue.tvError.setVisibility(View.GONE);
  548.                         binding.inputDateIssue.inputText.setText(selectedDate.trim());
  549.                     }
  550.  
  551.                 }
  552.                 catch (Exception ex)
  553.                 {
  554.                     ex.printStackTrace();
  555.                 }
  556.             }
  557.         });
  558.         newFragment.show(getSupportFragmentManager(), "datePicker");
  559.     }
  560.  
  561.     private Date getTiempoVencimiento()
  562.     {
  563.         Calendar c = Calendar.getInstance();
  564.  
  565.         int days = -365;
  566.  
  567.         if (serviceId != 2)
  568.         {
  569.             days = -60;
  570.         }
  571.  
  572.         c.add(Calendar.DATE,days);
  573.  
  574.         return c.getTime();
  575.     }
  576.  
  577.     private int getDiasTiempoVencimiento()
  578.     {
  579.         int days = 0;
  580.  
  581.         if (serviceId != 2)
  582.         {
  583.             days = -60;
  584.         }
  585.  
  586.         return days;
  587.     }
  588.  
  589.     private void setActions() {
  590.  
  591.         binding.toolbar.buttonBack.setOnClickListener(new View.OnClickListener() {
  592.             @Override
  593.             public void onClick(View v) {
  594.                 onBackPressed();
  595.             }
  596.         });
  597.  
  598.         binding.btnContinue.setOnClickListener(new View.OnClickListener() {
  599.             @Override
  600.             public void onClick(View v) {
  601.                 if (!hasErrors())
  602.                 {
  603.                     onSaveData();
  604.                 }
  605.             }
  606.         });
  607.  
  608.         binding.physicalTherapy.optionOne.setOnClickListener(new View.OnClickListener() {
  609.             @Override
  610.             public void onClick(View v) {
  611.                 binding.physicalTherapy.buttonsGeneral.setVisibility(View.GONE);
  612.                 binding.physicalTherapy.touchFrontalZone.root.setVisibility(View.GONE);
  613.                 binding.physicalTherapy.zonesSelected.setVisibility(View.GONE);
  614.             }
  615.         });
  616.  
  617.         binding.physicalTherapy.optionTwo.setOnClickListener(new View.OnClickListener() {
  618.             @Override
  619.             public void onClick(View v) {
  620.                 binding.physicalTherapy.buttonsGeneral.setVisibility(View.VISIBLE);
  621.                 binding.physicalTherapy.touchFrontalZone.root.setVisibility(View.VISIBLE);
  622.                 binding.physicalTherapy.zonesSelected.setVisibility(View.VISIBLE);
  623.  
  624.                 binding.physicalTherapy.btnDorsalZone.setOnClickListener(new View.OnClickListener() {
  625.                     @Override
  626.                     public void onClick(View v)
  627.                     {
  628.                         front = false;
  629.                         changeLateralidad();
  630.                     }
  631.                 });
  632.  
  633.                 binding.physicalTherapy.btnFrontalZone.setOnClickListener(new View.OnClickListener() {
  634.                     @Override
  635.                     public void onClick(View v)
  636.                     {
  637.                         front = true;
  638.                         changeLateralidad();
  639.                     }
  640.                 });
  641.             }
  642.         });
  643.  
  644.  
  645.         binding.inputDateIssue.inputText.setOnClickListener(new View.OnClickListener() {
  646.             @Override
  647.             public void onClick(View v) {
  648.                 setInputCalendar();
  649.             }
  650.         });
  651.  
  652.         binding.inputDateIssue.outlinedTextField.setOnClickListener(new View.OnClickListener() {
  653.             @Override
  654.             public void onClick(View v) {
  655.                 setInputCalendar();
  656.             }
  657.         });
  658.  
  659.         binding.hoursPreferences.startInput.inputText.setOnClickListener(new View.OnClickListener() {
  660.             @Override
  661.             public void onClick(View v) {
  662.                 setTimePickerStart();
  663.             }
  664.         });
  665.  
  666.         binding.hoursPreferences.startInput.outlinedTextField.setOnClickListener(new View.OnClickListener() {
  667.             @Override
  668.             public void onClick(View v) {
  669.                 setTimePickerStart();
  670.             }
  671.         });
  672.  
  673.     }
  674.  
  675.     private void changeLateralidad()
  676.     {
  677.         if (front)
  678.         {
  679.             //botones
  680.             binding.physicalTherapy.btnFrontalZone.setBackgroundTintList(getApplicationContext().getResources().getColorStateList(R.color.stroke_button_take_again));
  681.             binding.physicalTherapy.btnFrontalZone.setTextColor(getApplicationContext().getResources().getColor(R.color.white));
  682.  
  683.             binding.physicalTherapy.btnDorsalZone.setBackgroundTintList(getApplicationContext().getResources().getColorStateList(R.color.fill_button_take_again));
  684.             binding.physicalTherapy.btnDorsalZone.setTextColor(getApplicationContext().getResources().getColor(R.color.stroke_button_take_again));
  685.  
  686.             //dibujos
  687.             binding.physicalTherapy.touchFrontalZone.back.setVisibility(View.GONE);
  688.             binding.physicalTherapy.touchFrontalZone.viewGroup.setVisibility(View.VISIBLE);
  689.  
  690.             for (Zone zone : zoneList)
  691.             {
  692.                 markZone(zone.getZoneName());
  693.  
  694.                 if ((zone.getZoneName().toLowerCase().contains("derecho"))||(zone.getZoneName().toLowerCase().contains("derecha")))
  695.                 {
  696.                     String newZone = zone.getZoneName().replace("Derecho","Izquierdo");
  697.                     newZone = newZone.replace("Derecha","Izquierda");
  698.  
  699.                     resetState(newZone);
  700.  
  701.                     if (zoneList.contains(new Zone("1",newZone)))
  702.                     {
  703.                         markZone(newZone);
  704.                     }
  705.                 }
  706.  
  707.                 if ((zone.getZoneName().toLowerCase().contains("izquierdo"))||(zone.getZoneName().toLowerCase().contains("izquierda")))
  708.                 {
  709.                     String newZone = zone.getZoneName().replace("Izquierdo","Derecho");
  710.                     newZone = newZone.replace("Izquierda","Derecha");
  711.  
  712.                     resetState(newZone);
  713.  
  714.                     if (zoneList.contains(new Zone("1",newZone))) {
  715.                         markZone(newZone);
  716.                     }
  717.                 }
  718.  
  719.             }
  720.         }
  721.         else
  722.         {
  723.             //botones
  724.             binding.physicalTherapy.btnDorsalZone.setBackgroundTintList(getApplicationContext().getResources().getColorStateList(R.color.stroke_button_take_again));
  725.             binding.physicalTherapy.btnDorsalZone.setTextColor(getApplicationContext().getResources().getColor(R.color.white));
  726.  
  727.             binding.physicalTherapy.btnFrontalZone.setBackgroundTintList(getApplicationContext().getResources().getColorStateList(R.color.fill_button_take_again));
  728.             binding.physicalTherapy.btnFrontalZone.setTextColor(getApplicationContext().getResources().getColor(R.color.stroke_button_take_again));
  729.  
  730.             //dibujos
  731.             binding.physicalTherapy.touchFrontalZone.viewGroup.setVisibility(View.GONE);
  732.             binding.physicalTherapy.touchFrontalZone.back.setVisibility(View.VISIBLE);
  733.  
  734.             for (Zone zone : zoneList)
  735.             {
  736.                 if ((zone.getZoneName().toLowerCase().contains("derecho"))||(zone.getZoneName().toLowerCase().contains("derecha")))
  737.                 {
  738.                     String newZone = zone.getZoneName().replace("Derecho","Izquierdo");
  739.                     newZone = newZone.replace("Derecha","Izquierda");
  740.  
  741.                     markZone(newZone);
  742.  
  743.                     resetState(zone.getZoneName());
  744.  
  745.                     if (zoneList.contains(new Zone("1",newZone)))
  746.                     {
  747.                         markZone(zone.getZoneName());
  748.                     }
  749.                 }
  750.  
  751.                 if ((zone.getZoneName().toLowerCase().contains("izquierdo"))||(zone.getZoneName().toLowerCase().contains("izquierda")))
  752.                 {
  753.  
  754.                     String newZone = zone.getZoneName().replace("Izquierdo","Derecho");
  755.                     newZone = newZone.replace("Izquierda","Derecha");
  756.  
  757.                     markZone(newZone);
  758.  
  759.                     resetState(zone.getZoneName());
  760.  
  761.                     if (zoneList.contains(new Zone("1",newZone)))
  762.                     {
  763.                         markZone(zone.getZoneName());
  764.                     }
  765.  
  766.                 }
  767.  
  768.  
  769.             }
  770.  
  771.         }
  772.     }
  773.  
  774.     private void setPropertiesOfView() {
  775.         //binding.toolbar.text.setText(R.string.toolbar_kinesiology);
  776.  
  777.         //Section 1
  778.         binding.llRequestService.header.setText(R.string.header_one_kinesiology);
  779.         binding.llRequestService.startInput.outlinedTextField.setHint(R.string.amount_kinesiology);
  780.         binding.llRequestService.startInput.inputText.setInputType(InputType.TYPE_CLASS_NUMBER);
  781.         binding.llRequestService.endInput.menu.setHint(R.string.unit_kinesiology);
  782.  
  783.         //Section 2
  784.         binding.llRequestService.duration.header.setText(R.string.header_two_kinesilogy);
  785.         binding.llRequestService.duration.startInput.outlinedTextField.setHint(R.string.amount_obligatory_kinesiology);
  786.         binding.llRequestService.duration.endInput.outlinedTextField.setHint(R.string.sessions_kinesiology);
  787.  
  788.         //Section 3
  789.         binding.llRequestService.diagnostic.header.setText(R.string.header_three_kinesiology);
  790.         binding.llRequestService.diagnostic.editText.setHint(R.string.hint_diagnostic_kinesiology);
  791.  
  792.         //Section 4
  793.         binding.professionalInfo.setText(R.string.header_four_kinesiology);
  794.         binding.nameProfessional.outlinedTextField.setHint(R.string.name_obligatory);
  795.         binding.surnameProfessional.outlinedTextField.setHint(R.string.surname_obligatory);
  796.         binding.enrollmentType.menu.setHint(R.string.type_enrollment);
  797.         binding.numberEnrollment.outlinedTextField.setHint(R.string.number_enrollment);
  798.  
  799.         binding.nameProfessional.inputText.setFilters(new InputFilter[]{getEditTextFilterLetterAndSpaces()});
  800.         binding.surnameProfessional.inputText.setFilters(new InputFilter[]{getEditTextFilterLetterAndSpaces()});
  801.  
  802.         //Section 5
  803.         binding.dateIssue.setText(R.string.header_five_kinesiology);
  804.         binding.inputDateIssue.outlinedTextField.setHint(R.string.date_format_kinesiology);
  805.  
  806.         //Section 6
  807.         binding.hoursPreferences.header.setText(R.string.header_six_kinesiology);
  808.         binding.hoursPreferences.startInput.outlinedTextField.setHint(R.string.hour_start_kinesiology);
  809.         binding.hoursPreferences.startInput.outlinedTextField.setEndIconDrawable(R.drawable.ic_reloj);
  810.         binding.hoursPreferences.endInput.outlinedTextField.setHint(R.string.hour_end_kinesiology);
  811.         binding.hoursPreferences.endInput.outlinedTextField.setEndIconDrawable(R.drawable.ic_reloj);
  812.  
  813.         //Section 7
  814.         binding.observations.header.setText(R.string.header_seven_kinesiology);
  815.         binding.observations.editText.setHint(R.string.hint_observations_kinesiology);
  816.  
  817.         //Section 8
  818.         binding.physicalTherapy.zoneKinesiology.setText(R.string.header_height_kinesiology);
  819.         binding.physicalTherapy.optionOne.setText(R.string.general_rehabilitation_kinesiology);
  820.         binding.physicalTherapy.optionTwo.setText(R.string.specific_rehabilitation_kinesiology);
  821.         binding.physicalTherapy.btnFrontalZone.setText(R.string.frontal_zone_kinesiology);
  822.         binding.physicalTherapy.btnDorsalZone.setText(R.string.dorsal_zone_kinesiology);
  823.     }
  824.  
  825.     @Override
  826.     public void onItemClick(Zone zone, int position) {
  827.         zoneList.remove(zone);
  828.         resetState(zone.getZoneName());
  829.         zonesSelectedAdapter.notifyItemRemoved(position);
  830.         zonesSelectedAdapter.notifyDataSetChanged();
  831.  
  832.     }
  833.  
  834.     private void resetState(String zoneName) {
  835.         switch (zoneName) {
  836.             case Params.head:
  837.                 binding.physicalTherapy.touchFrontalZone.head.setImageDrawable(getDrawable(R.drawable.ic_caraycabeza_svg));
  838.                 break;
  839.             case Params.neck:
  840.                 binding.physicalTherapy.touchFrontalZone.neck.setImageDrawable(getDrawable(R.drawable.ic_cuello_svg));
  841.                 break;
  842.  
  843.             case Params.lungLeft:
  844.                 binding.physicalTherapy.touchFrontalZone.lungRight.setImageDrawable(getDrawable(R.drawable.ic_pulmonder_svg));
  845.                 break;
  846.             case Params.lungRight:
  847.                 binding.physicalTherapy.touchFrontalZone.lungLeft.setImageDrawable(getDrawable(R.drawable.ic_pulmonizq_svg));
  848.                 break;
  849.  
  850.             case Params.shoulderRight:
  851.                 binding.physicalTherapy.touchFrontalZone.shoulderLeft.setImageDrawable(getDrawable(R.drawable.ic_hombroizq_svg));
  852.                 break;
  853.             case Params.shoulderLeft:
  854.                 binding.physicalTherapy.touchFrontalZone.shoulderRight.setImageDrawable(getDrawable(R.drawable.ic_hombroder_svg));
  855.                 break;
  856.  
  857.             case Params.elbowRight:
  858.                 binding.physicalTherapy.touchFrontalZone.elbowLeft.setImageDrawable(getDrawable(R.drawable.ic_codoizq_svg));
  859.                 break;
  860.             case Params.elbowLeft:
  861.                 binding.physicalTherapy.touchFrontalZone.elbowRight.setImageDrawable(getDrawable(R.drawable.ic_cododer_svg));
  862.                 break;
  863.  
  864.             case Params.abdomen:
  865.                 binding.physicalTherapy.touchFrontalZone.abdomen.setImageDrawable(getDrawable(R.drawable.ic_abdomen_svg));
  866.                 break;
  867.  
  868.             case Params.foreArmRight:
  869.                 binding.physicalTherapy.touchFrontalZone.forearmLeft.setImageDrawable(getDrawable(R.drawable.ic_antebrazoizq_svg));
  870.                 break;
  871.             case Params.foreArmLeft:
  872.                 binding.physicalTherapy.touchFrontalZone.forearmRight.setImageDrawable(getDrawable(R.drawable.ic_antebrazoder_svg));
  873.                 break;
  874.  
  875.             case Params.back:
  876.                 binding.physicalTherapy.touchFrontalZone.back.setImageDrawable(getDrawable(R.drawable.ic_espalda_svg));
  877.                 break;
  878.  
  879.             case Params.hips:
  880.                 binding.physicalTherapy.touchFrontalZone.hips.setImageDrawable(getDrawable(R.drawable.ic_cadera_svg));
  881.                 break;
  882.  
  883.             case Params.sacroiliac:
  884.                 binding.physicalTherapy.touchFrontalZone.sacroiliac.setImageDrawable(getDrawable(R.drawable.ic_sacroiliaco_svg));
  885.                 break;
  886.  
  887.             case Params.thighRight:
  888.                 binding.physicalTherapy.touchFrontalZone.thighLeft.setImageDrawable(getDrawable(R.drawable.ic_musloizq_svg));
  889.                 break;
  890.             case Params.thighLeft:
  891.                 binding.physicalTherapy.touchFrontalZone.thighRight.setImageDrawable(getDrawable(R.drawable.ic_musloder_svg));
  892.                 break;
  893.  
  894.             case Params.kneeRight:
  895.                 binding.physicalTherapy.touchFrontalZone.kneeLeft.setImageDrawable(getDrawable(R.drawable.ic_rodillaizq_svg));
  896.                 break;
  897.             case Params.kneeLeft:
  898.                 binding.physicalTherapy.touchFrontalZone.kneeRight.setImageDrawable(getDrawable(R.drawable.ic_rodillareder_png));
  899.                 break;
  900.  
  901.             case Params.legRight:
  902.                 binding.physicalTherapy.touchFrontalZone.legLeft.setImageDrawable(getDrawable(R.drawable.ic_piernaizq_svg));
  903.                 break;
  904.             case Params.legLeft:
  905.                 binding.physicalTherapy.touchFrontalZone.legRight.setImageDrawable(getDrawable(R.drawable.ic_pierna_svg));
  906.                 break;
  907.  
  908.             case Params.footRight:
  909.                 binding.physicalTherapy.touchFrontalZone.footLeft.setImageDrawable(getDrawable(R.drawable.ic_pieizq_svg));
  910.                 break;
  911.             case Params.footLeft:
  912.                 binding.physicalTherapy.touchFrontalZone.footRight.setImageDrawable(getDrawable(R.drawable.ic_pieder_svg));
  913.                 break;
  914.  
  915.             default:
  916.                 break;
  917.         }
  918.     }
  919.  
  920.     private boolean checkDataNotEqual(int id, String text, boolean isFront) {
  921.         boolean agregado;
  922.         if (zoneList.isEmpty()) {
  923.             Zone zone = new Zone();
  924.             zone.setZoneId("" + id);
  925.             zone.setZoneName(text);
  926.             zone.setFront(isFront);
  927.             zoneList.add(zone);
  928.             agregado = true;
  929.         } else {
  930.             int pos = 0;
  931.             int i = 0;
  932.             agregado = true;
  933.             for (Zone z : zoneList) {
  934.                 if (z.getZoneName().equalsIgnoreCase(text)) {
  935.                     agregado = false;
  936.                     pos = i;
  937.                 }
  938.                 i++;
  939.             }
  940.  
  941.             if (agregado) {
  942.                 Zone zone = new Zone();
  943.                 zone.setZoneId("" + id);
  944.                 zone.setZoneName(text);
  945.                 zone.setFront(isFront);
  946.                 zoneList.add(zone);
  947.             } else {
  948.                 zoneList.remove(pos);
  949.                 resetState(text);
  950.             }
  951.         }
  952.  
  953.         zonesSelectedAdapter.notifyDataSetChanged();
  954.         return agregado;
  955.     }
  956.  
  957.     @SuppressLint("NonConstantResourceId")
  958.     @Override
  959.     public void onClick(View v) {
  960.  
  961.         switch (v.getId()) {
  962.             case R.id.head:
  963.                 //CABEZA
  964.                 KinesiologyZoneEntity head = new KinesiologyZoneEntity();
  965.                 head.setId_kinesiologyZone(1);
  966.                 head.setText("Cabeza");
  967.  
  968.  
  969.                 if (checkDataNotEqual(head.getId_kinesiologyZone(), head.getText(), true)) {
  970.                     binding.physicalTherapy.touchFrontalZone.head.setImageDrawable(getDrawable(R.drawable.ic_cabezaseleccionada_svg));
  971.                 }
  972.                 break;
  973.             case R.id.neck:
  974.                 //CUELLO
  975.                 KinesiologyZoneEntity neck = new KinesiologyZoneEntity();
  976.                 neck.setId_kinesiologyZone(2);
  977.                 neck.setText("Cuello");
  978.  
  979.                 if (checkDataNotEqual(neck.getId_kinesiologyZone(), neck.getText(), true)) {
  980.                     binding.physicalTherapy.touchFrontalZone.neck.setImageDrawable(getDrawable(R.drawable.ic_cuelloseleccionado_svg));
  981.                 }
  982.  
  983.                 break;
  984.             case R.id.lungLeft:
  985.                 KinesiologyZoneEntity lungLeft = new KinesiologyZoneEntity();
  986.                 lungLeft.setId_kinesiologyZone(3);
  987.                 lungLeft.setText("Pulmón Derecho");
  988.  
  989.  
  990.                 if (checkDataNotEqual(lungLeft.getId_kinesiologyZone(), lungLeft.getText(), true)) {
  991.                     binding.physicalTherapy.touchFrontalZone.lungLeft.setImageDrawable(getDrawable(R.drawable.ic_pechoizqselecionado_svg));
  992.                 }
  993.                 //PULMON IZQ
  994.                 break;
  995.             case R.id.lungRight:
  996.                 KinesiologyZoneEntity lungRight = new KinesiologyZoneEntity();
  997.                 lungRight.setId_kinesiologyZone(4);
  998.                 lungRight.setText("Pulmón Izquierdo");
  999.  
  1000.                 if (checkDataNotEqual(lungRight.getId_kinesiologyZone(), lungRight.getText(), true)) {
  1001.                     binding.physicalTherapy.touchFrontalZone.lungRight.setImageDrawable(getDrawable(R.drawable.ic_pechoderseleccionado_svg));
  1002.                 }
  1003.                 //PULMON DER
  1004.                 break;
  1005.             case R.id.shoulderLeft:
  1006.                 KinesiologyZoneEntity shoulderLeft = new KinesiologyZoneEntity();
  1007.                 shoulderLeft.setId_kinesiologyZone(5);
  1008.                 shoulderLeft.setText("Hombro Derecho");
  1009.  
  1010.                 if (checkDataNotEqual(shoulderLeft.getId_kinesiologyZone(), shoulderLeft.getText(), true)) {
  1011.                     binding.physicalTherapy.touchFrontalZone.shoulderLeft.setImageDrawable(getDrawable(R.drawable.ic_hombroizqseleccionado_svg));
  1012.                 }
  1013.                 //HOMBRO IZQ
  1014.                 break;
  1015.             case R.id.shoulderRight:
  1016.                 KinesiologyZoneEntity shoulderRight = new KinesiologyZoneEntity();
  1017.                 shoulderRight.setId_kinesiologyZone(6);
  1018.                 shoulderRight.setText("Hombro Izquierdo");
  1019.  
  1020.  
  1021.                 if (checkDataNotEqual(shoulderRight.getId_kinesiologyZone(), shoulderRight.getText(), true)) {
  1022.                     binding.physicalTherapy.touchFrontalZone.shoulderRight.setImageDrawable(getDrawable(R.drawable.ic_hombroderseleciconado_svg));
  1023.                 }
  1024.                 break;
  1025.             case R.id.elbowLeft:
  1026.                 KinesiologyZoneEntity elbowLeft = new KinesiologyZoneEntity();
  1027.                 elbowLeft.setId_kinesiologyZone(7);
  1028.                 elbowLeft.setText("Codo Derecho");
  1029.  
  1030.  
  1031.                 if (checkDataNotEqual(elbowLeft.getId_kinesiologyZone(), elbowLeft.getText(), true)) {
  1032.                     binding.physicalTherapy.touchFrontalZone.elbowLeft.setImageDrawable(getDrawable(R.drawable.ic_codoizqseleccionado_svg));
  1033.                 }
  1034.                 //CODO IZQ
  1035.                 break;
  1036.             case R.id.elbowRight:
  1037.                 KinesiologyZoneEntity elbowRight = new KinesiologyZoneEntity();
  1038.                 elbowRight.setId_kinesiologyZone(8);
  1039.                 elbowRight.setText("Codo Izquierdo");
  1040.  
  1041.  
  1042.                 if (checkDataNotEqual(elbowRight.getId_kinesiologyZone(), elbowRight.getText(), true)) {
  1043.                     binding.physicalTherapy.touchFrontalZone.elbowRight.setImageDrawable(getDrawable(R.drawable.ic_codoseleccionado_svg));
  1044.                 }
  1045.                 //CODO DER
  1046.                 break;
  1047.             case R.id.abdomen:
  1048.                 KinesiologyZoneEntity abdomen = new KinesiologyZoneEntity();
  1049.                 abdomen.setId_kinesiologyZone(9);
  1050.                 abdomen.setText("Abdomen");
  1051.  
  1052.  
  1053.                 if (checkDataNotEqual(abdomen.getId_kinesiologyZone(), abdomen.getText(), true)) {
  1054.                     binding.physicalTherapy.touchFrontalZone.abdomen.setImageDrawable(getDrawable(R.drawable.ic_abdomenseleccionado_svg));
  1055.                 }
  1056.                 //Abdomen
  1057.                 break;
  1058.             case R.id.forearmLeft:
  1059.                 KinesiologyZoneEntity foreArmLeft = new KinesiologyZoneEntity();
  1060.                 foreArmLeft.setId_kinesiologyZone(10);
  1061.                 foreArmLeft.setText("Antebrazo Derecho");
  1062.  
  1063.                 //Ante brazo izq
  1064.                 if (checkDataNotEqual(foreArmLeft.getId_kinesiologyZone(), foreArmLeft.getText(), true)) {
  1065.                     binding.physicalTherapy.touchFrontalZone.forearmLeft.setImageDrawable(getDrawable(R.drawable.ic_antebrazoizqseleccionado_svg));
  1066.                 }
  1067.                 break;
  1068.             case R.id.forearmRight:
  1069.                 KinesiologyZoneEntity foreArmRight = new KinesiologyZoneEntity();
  1070.                 foreArmRight.setId_kinesiologyZone(11);
  1071.                 foreArmRight.setText("Antebrazo Izquierdo");
  1072.  
  1073.                 if (checkDataNotEqual(foreArmRight.getId_kinesiologyZone(), foreArmRight.getText(), true)) {
  1074.                     binding.physicalTherapy.touchFrontalZone.forearmRight.setImageDrawable(getDrawable(R.drawable.ic_antebrazoderseleccionado_svg));
  1075.                 }
  1076.                 //Antebrazo der
  1077.                 break;
  1078.             case R.id.back:
  1079.                 KinesiologyZoneEntity back = new KinesiologyZoneEntity();
  1080.                 back.setId_kinesiologyZone(12);
  1081.                 back.setText("Espalda");
  1082.  
  1083.                 if (checkDataNotEqual(back.getId_kinesiologyZone(), back.getText(), false)) {
  1084.                     binding.physicalTherapy.touchFrontalZone.back.setImageDrawable(getDrawable(R.drawable.ic_espaldaseleccionada_svg));
  1085.                 }
  1086.                 //Espalda
  1087.                 break;
  1088.             case R.id.hips:
  1089.                 KinesiologyZoneEntity hips = new KinesiologyZoneEntity();
  1090.                 hips.setId_kinesiologyZone(13);
  1091.                 hips.setText("Cadera");
  1092.  
  1093.                 if (checkDataNotEqual(hips.getId_kinesiologyZone(), hips.getText(), true)) {
  1094.                     binding.physicalTherapy.touchFrontalZone.hips.setImageDrawable(getDrawable(R.drawable.ic_caderaseleccionao_svg));
  1095.                 }
  1096.                 //cadera
  1097.                 break;
  1098.             case R.id.sacroiliac:
  1099.                 KinesiologyZoneEntity sacroiliac = new KinesiologyZoneEntity();
  1100.                 sacroiliac.setId_kinesiologyZone(14);
  1101.                 sacroiliac.setText("Sacroilíaco");
  1102.  
  1103.                 if (checkDataNotEqual(sacroiliac.getId_kinesiologyZone(), sacroiliac.getText(), true)) {
  1104.                     binding.physicalTherapy.touchFrontalZone.sacroiliac.setImageDrawable(getDrawable(R.drawable.ic_sacroiliacoseleccionado_svg));
  1105.                 }
  1106.                 //Sacroiliaco
  1107.                 break;
  1108.             case R.id.thighLeft:
  1109.                 KinesiologyZoneEntity thighLeft = new KinesiologyZoneEntity();
  1110.                 thighLeft.setId_kinesiologyZone(15);
  1111.                 thighLeft.setText("Muslo Derecho");
  1112.  
  1113.                 if (checkDataNotEqual(thighLeft.getId_kinesiologyZone(), thighLeft.getText(), true)) {
  1114.                     binding.physicalTherapy.touchFrontalZone.thighLeft.setImageDrawable(getDrawable(R.drawable.ic_musloizqseleccionado_svg));
  1115.                 }
  1116.                 //Muslo izq
  1117.                 break;
  1118.             case R.id.thighRight:
  1119.                 KinesiologyZoneEntity thighRight = new KinesiologyZoneEntity();
  1120.                 thighRight.setId_kinesiologyZone(16);
  1121.                 thighRight.setText("Muslo Izquierdo");
  1122.  
  1123.                 if (checkDataNotEqual(thighRight.getId_kinesiologyZone(), thighRight.getText(), true)) {
  1124.                     binding.physicalTherapy.touchFrontalZone.thighRight.setImageDrawable(getDrawable(R.drawable.ic_musloderseleccionado_svg));
  1125.                 }
  1126.                 //Muslo der
  1127.                 break;
  1128.             case R.id.kneeLeft:
  1129.                 KinesiologyZoneEntity kneeLeft = new KinesiologyZoneEntity();
  1130.                 kneeLeft.setId_kinesiologyZone(17);
  1131.                 kneeLeft.setText("Rodilla Derecha");
  1132.  
  1133.                 if (checkDataNotEqual(kneeLeft.getId_kinesiologyZone(), kneeLeft.getText(), true)) {
  1134.                     binding.physicalTherapy.touchFrontalZone.kneeLeft.setImageDrawable(getDrawable(R.drawable.ic_rodillaizqseleccionado_png));
  1135.                 }
  1136.                 //rodilla izq
  1137.                 break;
  1138.             case R.id.kneeRight:
  1139.                 KinesiologyZoneEntity kneeRight = new KinesiologyZoneEntity();
  1140.                 kneeRight.setId_kinesiologyZone(18);
  1141.                 kneeRight.setText("Rodilla Izquierda");
  1142.  
  1143.                 if (checkDataNotEqual(kneeRight.getId_kinesiologyZone(), kneeRight.getText(), true)) {
  1144.                     binding.physicalTherapy.touchFrontalZone.kneeRight.setImageDrawable(getDrawable(R.drawable.ic_rodilladerseleccionada_svg));
  1145.                 }
  1146.                 //rodilla der
  1147.                 break;
  1148.             case R.id.legLeft:
  1149.                 KinesiologyZoneEntity legLeft = new KinesiologyZoneEntity();
  1150.                 legLeft.setId_kinesiologyZone(19);
  1151.                 legLeft.setText("Pierna Derecha");
  1152.  
  1153.                 if (checkDataNotEqual(legLeft.getId_kinesiologyZone(), legLeft.getText(), true)) {
  1154.                     binding.physicalTherapy.touchFrontalZone.legLeft.setImageDrawable(getDrawable(R.drawable.ic_piernaizqseleccionada_svg));
  1155.                 }
  1156.                 //pierna izq
  1157.                 break;
  1158.             case R.id.legRight:
  1159.                 KinesiologyZoneEntity legRight = new KinesiologyZoneEntity();
  1160.                 legRight.setId_kinesiologyZone(20);
  1161.                 legRight.setText("Pierna Izquierda");
  1162.  
  1163.                 if (checkDataNotEqual(legRight.getId_kinesiologyZone(), legRight.getText(), true)) {
  1164.                     binding.physicalTherapy.touchFrontalZone.legRight.setImageDrawable(getDrawable(R.drawable.ic_piernaderseleccionada_svg));
  1165.                 }
  1166.                 //pierna der
  1167.                 break;
  1168.             case R.id.footLeft:
  1169.                 KinesiologyZoneEntity footLeft = new KinesiologyZoneEntity();
  1170.                 footLeft.setId_kinesiologyZone(21);
  1171.                 footLeft.setText("Pie Derecho");
  1172.  
  1173.                 if (checkDataNotEqual(footLeft.getId_kinesiologyZone(), footLeft.getText(), true)) {
  1174.                     binding.physicalTherapy.touchFrontalZone.footLeft.setImageDrawable(getDrawable(R.drawable.ic_pieizqseleccionado_svg));
  1175.                 }
  1176.                 //pie izq
  1177.                 break;
  1178.             case R.id.footRight:
  1179.                 KinesiologyZoneEntity footRight = new KinesiologyZoneEntity();
  1180.                 footRight.setId_kinesiologyZone(22);
  1181.                 footRight.setText("Pie Izquierdo");
  1182.  
  1183.                 if (checkDataNotEqual(footRight.getId_kinesiologyZone(), footRight.getText(), true)) {
  1184.                     binding.physicalTherapy.touchFrontalZone.footRight.setImageDrawable(getDrawable(R.drawable.ic_piederseleccionado_svg));
  1185.                 }
  1186.                 break;
  1187.             default:
  1188.                 break;
  1189.         }
  1190.     }
  1191.  
  1192.     @Override
  1193.     public void showHealthInsuranceSucceeded(ArrayList<HealthInsurance> healthInsurance) {
  1194.         if (healthInsurance.size() > 0)
  1195.         showDialog(healthInsurance);
  1196.         else
  1197.             Toast.makeText(this, "No se encontraron obras sociales", Toast.LENGTH_SHORT).show();
  1198.     }
  1199.  
  1200.     @Override
  1201.     public void showHealthInsuranceFailure(String message) {
  1202.         Toast.makeText(getApplicationContext(), message, Toast.LENGTH_SHORT).show();
  1203.     }
  1204.  
  1205.     private void markZone(String text)
  1206.     {
  1207.         if (text.equals("Cabeza"))
  1208.         {
  1209.             binding.physicalTherapy.touchFrontalZone.head.setImageDrawable(getDrawable(R.drawable.ic_cabezaseleccionada_svg));
  1210.         }
  1211.  
  1212.         if (text.equals("Cuello"))
  1213.         {
  1214.             binding.physicalTherapy.touchFrontalZone.neck.setImageDrawable(getDrawable(R.drawable.ic_cuelloseleccionado_svg));
  1215.         }
  1216.  
  1217.         if (text.equals("Pulmón Derecho"))
  1218.         {
  1219.             binding.physicalTherapy.touchFrontalZone.lungLeft.setImageDrawable(getDrawable(R.drawable.ic_pechoizqselecionado_svg));
  1220.         }
  1221.  
  1222.         if (text.equals("Pulmón Izquierdo"))
  1223.         {
  1224.             binding.physicalTherapy.touchFrontalZone.lungRight.setImageDrawable(getDrawable(R.drawable.ic_pechoderseleccionado_svg));
  1225.         }
  1226.  
  1227.         if (text.equals("Hombro Derecho"))
  1228.         {
  1229.             binding.physicalTherapy.touchFrontalZone.shoulderLeft.setImageDrawable(getDrawable(R.drawable.ic_hombroizqseleccionado_svg));
  1230.         }
  1231.  
  1232.         if (text.equals("Hombro Izquierdo"))
  1233.         {
  1234.             binding.physicalTherapy.touchFrontalZone.shoulderRight.setImageDrawable(getDrawable(R.drawable.ic_hombroderseleciconado_svg));
  1235.         }
  1236.  
  1237.         if (text.equals("Codo Derecho"))
  1238.         {
  1239.             binding.physicalTherapy.touchFrontalZone.elbowLeft.setImageDrawable(getDrawable(R.drawable.ic_codoizqseleccionado_svg));
  1240.         }
  1241.  
  1242.         if (text.equals("Codo Izquierdo"))
  1243.         {
  1244.             binding.physicalTherapy.touchFrontalZone.elbowRight.setImageDrawable(getDrawable(R.drawable.ic_codoseleccionado_svg));
  1245.         }
  1246.  
  1247.         if (text.equals("Abdomen"))
  1248.         {
  1249.             binding.physicalTherapy.touchFrontalZone.abdomen.setImageDrawable(getDrawable(R.drawable.ic_abdomenseleccionado_svg));
  1250.         }
  1251.  
  1252.         if (text.equals("Antebrazo Derecho"))
  1253.         {
  1254.             binding.physicalTherapy.touchFrontalZone.forearmLeft.setImageDrawable(getDrawable(R.drawable.ic_antebrazoizqseleccionado_svg));
  1255.         }
  1256.  
  1257.         if (text.equals("Antebrazo Izquierdo"))
  1258.         {
  1259.             binding.physicalTherapy.touchFrontalZone.forearmRight.setImageDrawable(getDrawable(R.drawable.ic_antebrazoderseleccionado_svg));
  1260.         }
  1261.  
  1262.         if (text.equals("Muslo Derecho"))
  1263.         {
  1264.             binding.physicalTherapy.touchFrontalZone.thighLeft.setImageDrawable(getDrawable(R.drawable.ic_musloizqseleccionado_svg));
  1265.         }
  1266.  
  1267.         if (text.equals("Muslo Izquierdo"))
  1268.         {
  1269.             binding.physicalTherapy.touchFrontalZone.thighRight.setImageDrawable(getDrawable(R.drawable.ic_musloderseleccionado_svg));
  1270.         }
  1271.  
  1272.         if (text.equals("Rodilla Izquierda"))
  1273.         {
  1274.             binding.physicalTherapy.touchFrontalZone.kneeLeft.setImageDrawable(getDrawable(R.drawable.ic_rodillaizqseleccionado_png));
  1275.         }
  1276.  
  1277.         if (text.equals("Rodilla Derecha"))
  1278.         {
  1279.             binding.physicalTherapy.touchFrontalZone.kneeLeft.setImageDrawable(getDrawable(R.drawable.ic_rodilladerseleccionada_svg));
  1280.         }
  1281.  
  1282.         if (text.equals("Pierna Izquierda"))
  1283.         {
  1284.             binding.physicalTherapy.touchFrontalZone.legLeft.setImageDrawable(getDrawable(R.drawable.ic_piernaizqseleccionada_svg));
  1285.         }
  1286.  
  1287.         if (text.equals("Pierna Derecha"))
  1288.         {
  1289.             binding.physicalTherapy.touchFrontalZone.legRight.setImageDrawable(getDrawable(R.drawable.ic_piernaderseleccionada_svg));
  1290.         }
  1291.  
  1292.         if (text.equals("Pie Derecho"))
  1293.         {
  1294.             binding.physicalTherapy.touchFrontalZone.footLeft.setImageDrawable(getDrawable(R.drawable.ic_pieizqseleccionado_svg));
  1295.         }
  1296.  
  1297.         if (text.equals("Pie Izquierdo"))
  1298.         {
  1299.             binding.physicalTherapy.touchFrontalZone.footRight.setImageDrawable(getDrawable(R.drawable.ic_piederseleccionado_svg));
  1300.         }
  1301.  
  1302.         if (text.equals("Espalda"))
  1303.         {
  1304.             binding.physicalTherapy.touchFrontalZone.back.setImageDrawable(getDrawable(R.drawable.ic_espaldaseleccionada_svg));
  1305.         }
  1306.  
  1307.         if (text.equals("Cadera"))
  1308.         {
  1309.             binding.physicalTherapy.touchFrontalZone.hips.setImageDrawable(getDrawable(R.drawable.ic_caderaseleccionao_svg));
  1310.         }
  1311.  
  1312.         if (text.equals("Sacroilíaco"))
  1313.         {
  1314.             binding.physicalTherapy.touchFrontalZone.sacroiliac.setImageDrawable(getDrawable(R.drawable.ic_sacroiliacoseleccionado_svg));
  1315.         }
  1316.     }
  1317.  
  1318.  
  1319.     @Override
  1320.     public void showGeneralDataSucceeded(List<GeneralData> lista) {
  1321.         runOnUiThread(new Runnable() {
  1322.             @Override
  1323.             public void run() {
  1324.                     generalDataList = lista;
  1325.                     setAutoComplete();
  1326.             }
  1327.         });
  1328.     }
  1329.  
  1330.     void setAutoComplete()
  1331.     {
  1332.         ArrayAdapter arrayAdapter= new ArrayAdapter(PhysicalTherapyActivity.this,
  1333.                 com.emer.beneficiary.R.layout.row_list_item,findValues("TimeUnitActive"));
  1334.  
  1335.         binding.llRequestService.endInput.autoComplete.setAdapter(arrayAdapter);
  1336.  
  1337.         binding.llRequestService.endInput.autoComplete.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  1338.             @Override
  1339.             public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
  1340.                 String strName = arrayAdapter.getItem(i).toString();
  1341.                 Log.d("data",strName); //Masculino
  1342.                 String getId_interno  = ""+generalDataList.get(Integer.parseInt(findId("TimeUnitActive",strName))).getId_interno();
  1343.                 Log.d("data",getId_interno); //0
  1344.                 idUnitFrequency = Integer.parseInt(getId_interno);
  1345.             }
  1346.         });
  1347.  
  1348.         ArrayAdapter arrayAdapterMatricula = new ArrayAdapter(PhysicalTherapyActivity.this,
  1349.                 com.emer.beneficiary.R.layout.row_list_item,findValues("professional_information_licence"));
  1350.  
  1351.  
  1352.         binding.enrollmentType.autoComplete.setAdapter(arrayAdapterMatricula);
  1353.  
  1354.         binding.enrollmentType.autoComplete.setOnItemClickListener(new AdapterView.OnItemClickListener() {
  1355.             @Override
  1356.             public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) {
  1357.                 String strName = arrayAdapterMatricula.getItem(i).toString();
  1358.                 Log.d("data",strName); //Masculino
  1359.                 String getId_interno  = ""+generalDataList.get(Integer.parseInt(findId("professional_information_licence",strName))).getId_interno();
  1360.                 Log.d("data",getId_interno); //0
  1361.                 idEnrollmentType = Integer.parseInt(getId_interno);
  1362.             }
  1363.         });
  1364.     }
  1365.  
  1366.     ArrayList<String> findValues(String key)
  1367.     {
  1368.         ArrayList<String> stringArrayList = new ArrayList<>();
  1369.         for (int i= 0; i<generalDataList.size();i++)
  1370.         {
  1371.             if (generalDataList.get(i).getType().equals(key))
  1372.             {
  1373.                 stringArrayList.add(generalDataList.get(i).getValue());
  1374.             }
  1375.         }
  1376.         return stringArrayList;
  1377.     }
  1378.  
  1379.     String findId(String key, String value)
  1380.     {
  1381.         String pos = "0";
  1382.         for (int i= 0; i<generalDataList.size();i++)
  1383.         {
  1384.             if (generalDataList.get(i).getType().equals(key) && generalDataList.get(i).getValue().equals(value))
  1385.             {
  1386.                 pos = ""+i;
  1387.             }
  1388.         }
  1389.         return pos;
  1390.     }
  1391.  
  1392.     @Override
  1393.     public void showGeneralDataError(String message) {
  1394.         Toast.makeText(PhysicalTherapyActivity.this, message, Toast.LENGTH_SHORT).show();
  1395.     }
  1396.  
  1397.     @Override
  1398.     public void onDismiss() {
  1399.         Toast.makeText(this, "Debe seleccionar al menos una opcion", Toast.LENGTH_SHORT).show();
  1400.         finish();
  1401.     }
  1402.  
  1403.     @Override
  1404.     public void onDismissOk() {
  1405.        
  1406.     }
  1407.  
  1408.     //copado - lab
  1409.  
  1410.     @Override
  1411.     public void onYesClick()
  1412.     {
  1413.         startActivity(new Intent(PhysicalTherapyActivity.this, AttachFileKinesiology.class));
  1414.     }
  1415.  
  1416.     @Override
  1417.     public void onNoClick()
  1418.     {
  1419.         finish();
  1420.     }
  1421. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement