diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index fb7f4a8..b589d56 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -1,6 +1,6 @@
-
+
\ No newline at end of file
diff --git a/.idea/misc.xml b/.idea/misc.xml
index bdd9278..773fe0f 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,7 +1,6 @@
-
-
+
diff --git a/app/build.gradle b/app/build.gradle
index a7716cd..2b112d7 100644
--- a/app/build.gradle
+++ b/app/build.gradle
@@ -86,6 +86,8 @@ dependencies {
implementation 'com.github.dhaval2404:imagepicker:2.1'
+ implementation 'com.googlecode.libphonenumber:libphonenumber:8.12.32'
+
implementation 'androidx.appcompat:appcompat:1.6.0'
implementation 'com.google.android.material:material:1.8.0'
implementation 'androidx.constraintlayout:constraintlayout:2.1.4'
diff --git a/app/src/main/java/com/ssb/simplitend/apputils/AppUtil.java b/app/src/main/java/com/ssb/simplitend/apputils/AppUtil.java
index 37c0dda..ec012d0 100644
--- a/app/src/main/java/com/ssb/simplitend/apputils/AppUtil.java
+++ b/app/src/main/java/com/ssb/simplitend/apputils/AppUtil.java
@@ -26,7 +26,6 @@ public abstract class AppUtil {
private static final String TAG = "AppUtil";
// fields
-
public static final String USER_DETAILS = "user_details";
public static final String USER_TOKEN = "user_token";
diff --git a/app/src/main/java/com/ssb/simplitend/apputils/EditTextErrorRemover.java b/app/src/main/java/com/ssb/simplitend/apputils/EditTextErrorRemover.java
new file mode 100644
index 0000000..0c1cd29
--- /dev/null
+++ b/app/src/main/java/com/ssb/simplitend/apputils/EditTextErrorRemover.java
@@ -0,0 +1,41 @@
+package com.ssb.simplitend.apputils;
+
+import android.text.Editable;
+import android.text.TextWatcher;
+import android.widget.EditText;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+
+public class EditTextErrorRemover implements TextWatcher {
+
+ private final ArrayList editTexts;
+
+ public EditTextErrorRemover(EditText... editText){
+ this.editTexts = new ArrayList<>();
+
+ editTexts.addAll(Arrays.asList(editText));
+
+ for (EditText e: editText){
+ e.addTextChangedListener(this);
+ }
+
+ }
+
+ @Override
+ public void beforeTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+ }
+
+ @Override
+ public void onTextChanged(CharSequence charSequence, int i, int i1, int i2) {
+
+ }
+
+ @Override
+ public void afterTextChanged(Editable editable) {
+ for (EditText editText: editTexts){
+ editText.setError(null);
+ }
+ }
+}
diff --git a/app/src/main/java/com/ssb/simplitend/patientprofile/PatientProfileAPIService.java b/app/src/main/java/com/ssb/simplitend/patientprofile/PatientProfileAPIService.java
index 56c6131..6009e4e 100644
--- a/app/src/main/java/com/ssb/simplitend/patientprofile/PatientProfileAPIService.java
+++ b/app/src/main/java/com/ssb/simplitend/patientprofile/PatientProfileAPIService.java
@@ -6,6 +6,8 @@ import com.ssb.simplitend.patientprofile.medreminder.mvvm.models.Reminder;
import com.ssb.simplitend.patientprofile.medreminder.mvvm.models.ReminderResult;
import com.ssb.simplitend.patientprofile.setuproutine.mvvm.RoutineDetails;
import com.ssb.simplitend.welcome.mvvm.models.CallResponse;
+import com.ssb.simplitend.welcome.mvvm.models.PatientData;
+import com.ssb.simplitend.welcome.mvvm.models.PatientResult;
import java.util.List;
import java.util.Map;
@@ -23,6 +25,9 @@ import retrofit2.http.Query;
public interface PatientProfileAPIService {
+ @GET("api/auth-user-data")
+ Call> getUsrProfileProgress(@Header("Authorization") String token);
+
@GET("api/patient-reminder-list/{id}")
Call>> getRemindersList(@Path("id") int patient_id,
@Query("weekday") int week_day,
diff --git a/app/src/main/java/com/ssb/simplitend/patientprofile/ProfileContracts.java b/app/src/main/java/com/ssb/simplitend/patientprofile/ProfileContracts.java
index 85b8bf8..7be5a78 100644
--- a/app/src/main/java/com/ssb/simplitend/patientprofile/ProfileContracts.java
+++ b/app/src/main/java/com/ssb/simplitend/patientprofile/ProfileContracts.java
@@ -4,12 +4,19 @@ import com.ssb.simplitend.patientprofile.medicalinfo.mvvm.MedicationInfo;
import com.ssb.simplitend.patientprofile.medreminder.mvvm.models.FreqNMedTypeResult;
import com.ssb.simplitend.patientprofile.medreminder.mvvm.models.ReminderResult;
import com.ssb.simplitend.patientprofile.setuproutine.mvvm.RoutineDetails;
+import com.ssb.simplitend.welcome.mvvm.models.PatientData;
import java.util.List;
public interface ProfileContracts {
+ interface ProfileProgressCallback{
+ void onProfileProgressFetched(PatientData patientData);
+
+ void onProfileProgressFetchFailed(Throwable t, String message);
+ }
+
interface GetRemindersListCallback {
void onRemindersListFetched(List reminderResult);
diff --git a/app/src/main/java/com/ssb/simplitend/patientprofile/ProfileProgressFragment.java b/app/src/main/java/com/ssb/simplitend/patientprofile/ProfileProgressFragment.java
index 350ff49..6b4ae34 100644
--- a/app/src/main/java/com/ssb/simplitend/patientprofile/ProfileProgressFragment.java
+++ b/app/src/main/java/com/ssb/simplitend/patientprofile/ProfileProgressFragment.java
@@ -1,10 +1,12 @@
package com.ssb.simplitend.patientprofile;
+import android.app.ProgressDialog;
import android.content.Intent;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -12,15 +14,25 @@ import androidx.fragment.app.Fragment;
import androidx.navigation.Navigation;
import com.ssb.simplitend.R;
+import com.ssb.simplitend.apputils.AppUtil;
+import com.ssb.simplitend.apputils.RetrofitHelper;
import com.ssb.simplitend.careperson_dashboard.DashBoardActivityCP;
import com.ssb.simplitend.databinding.ProfileProgressFragmentBinding;
+import com.ssb.simplitend.welcome.mvvm.models.CallResponse;
+import com.ssb.simplitend.welcome.mvvm.models.PatientData;
-public class ProfileProgressFragment extends Fragment {
+import retrofit2.Call;
+import retrofit2.Callback;
+import retrofit2.Response;
+
+public class ProfileProgressFragment extends Fragment implements ProfileContracts.ProfileProgressCallback {
// view binding
protected ProfileProgressFragmentBinding binding;
- public ProfileProgressFragment(){
+ private ProgressDialog progressDialog;
+
+ public ProfileProgressFragment() {
// required empty const.
}
@@ -29,9 +41,6 @@ public class ProfileProgressFragment extends Fragment {
public View onCreateView(@NonNull LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
binding = ProfileProgressFragmentBinding.inflate(inflater, container, false);
-// binding.medReminderImg.setImageResource(0);
-// binding.medReminderImg.setBackgroundResource(R.drawable.ic_done);
-
initProgress();
clickEvents();
@@ -40,10 +49,46 @@ public class ProfileProgressFragment extends Fragment {
}
private void initProgress() {
+
+ progressDialog = new ProgressDialog(requireContext());
+ progressDialog.setTitle("Please wait...");
+ progressDialog.setMessage("while we load the profile progress.");
+ progressDialog.setCancelable(false);
+ progressDialog.show();
+
+ PatientProfileAPIService apiService = RetrofitHelper.getRetrofit().create(PatientProfileAPIService.class);
+
+ String token = "Bearer " + AppUtil.getUserToken(requireContext());
+
+ apiService.getUsrProfileProgress(token)
+ .enqueue(new Callback>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ if (response.body() != null) {
+ if (response.body().status != 200 || response.body().result == null) {
+ onProfileProgressFetchFailed(new Exception(), response.body().message);
+ return;
+ }
+
+ onProfileProgressFetched(response.body().result);
+ } else {
+ onProfileProgressFetchFailed(new Exception(), "Please try again later.");
+ }
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ onProfileProgressFetchFailed(new Exception(), "Please try again later.");
+ }
+ });
}
private void clickEvents() {
+ binding.addContact.setOnClickListener(v ->
+ Navigation.findNavController(v).navigate(R.id.action_profileProgressFragment_to_addContactFragment)
+ );
+
binding.medicReminder.setOnClickListener(v ->
Navigation.findNavController(v).navigate(R.id.action_profileProgressFragment_to_reminderFragment)
);
@@ -64,4 +109,34 @@ public class ProfileProgressFragment extends Fragment {
});
}
+
+ @Override
+ public void onProfileProgressFetched(@NonNull PatientData patientData) {
+ if (patientData.isCareGiverLink == 1) {
+ // TODO: 25-07-2023 look into this
+ }
+
+ if (patientData.isPatientReminderData == 1) {
+ binding.medReminderImg.setImageResource(0);
+ binding.medReminderImg.setBackgroundResource(R.drawable.ic_done);
+ }
+
+ if (patientData.isPatientMedicalData == 1) {
+ binding.medInfoImg.setImageResource(0);
+ binding.medInfoImg.setBackgroundResource(R.drawable.ic_done);
+ }
+
+ if (patientData.isPatientRoutineData == 1) {
+ binding.setupRoutineImg.setImageResource(0);
+ binding.setupRoutineImg.setBackgroundResource(R.drawable.ic_done);
+ }
+
+ progressDialog.dismiss();
+ }
+
+ @Override
+ public void onProfileProgressFetchFailed(Throwable t, String message) {
+ progressDialog.dismiss();
+ Toast.makeText(requireContext(), "Couldn't load profile progress.", Toast.LENGTH_SHORT).show();
+ }
}
diff --git a/app/src/main/java/com/ssb/simplitend/patientprofile/medreminder/ReminderFragment.java b/app/src/main/java/com/ssb/simplitend/patientprofile/medreminder/ReminderFragment.java
index 41d5f20..75a1bb4 100644
--- a/app/src/main/java/com/ssb/simplitend/patientprofile/medreminder/ReminderFragment.java
+++ b/app/src/main/java/com/ssb/simplitend/patientprofile/medreminder/ReminderFragment.java
@@ -110,7 +110,6 @@ public class ReminderFragment extends Fragment implements RecyclerTouchListener.
}
private void loadReminderList(int day_of_week){
- Toast.makeText(requireContext(), "loading for " + reminderViewModel.getDayOfWeek(day_of_week-1), Toast.LENGTH_SHORT).show();
progressDialog.setTitle("Please wait...");
progressDialog.setMessage("while we fetch reminders list for you.");
progressDialog.setCancelable(false);
@@ -140,7 +139,7 @@ public class ReminderFragment extends Fragment implements RecyclerTouchListener.
Calendar calendar = Calendar.getInstance();
- String today_date = reminderViewModel.getMonthOfYear(calendar.get(Calendar.MONTH));
+ String today_date = reminderViewModel.getMonthOfYear(calendar.get(Calendar.MONTH) + 1);
today_date = today_date.concat(", " + calendar.get(Calendar.DAY_OF_MONTH));
binding.todayDate.setText(today_date);
diff --git a/app/src/main/java/com/ssb/simplitend/patientprofile/setuproutine/RoutineFragment.java b/app/src/main/java/com/ssb/simplitend/patientprofile/setuproutine/RoutineFragment.java
index 156e7ec..bd79dc9 100644
--- a/app/src/main/java/com/ssb/simplitend/patientprofile/setuproutine/RoutineFragment.java
+++ b/app/src/main/java/com/ssb/simplitend/patientprofile/setuproutine/RoutineFragment.java
@@ -104,8 +104,6 @@ public class RoutineFragment extends Fragment implements RoutineAdapter.ClickLis
}
private void loadRoutineList(int day_of_week) {
- Toast.makeText(requireContext(), "loading for " + routineViewModel.getDayOfWeek(day_of_week-1), Toast.LENGTH_SHORT).show();
-
progressDialog.setTitle("Please wait...");
progressDialog.setMessage("while we fetch reminders list for you.");
progressDialog.setCancelable(false);
@@ -130,7 +128,7 @@ public class RoutineFragment extends Fragment implements RoutineAdapter.ClickLis
Calendar calendar = Calendar.getInstance();
- String today_date = routineViewModel.getMonthOfYear(calendar.get(Calendar.MONTH));
+ String today_date = routineViewModel.getMonthOfYear(calendar.get(Calendar.MONTH) + 1);
today_date = today_date.concat(", " + calendar.get(Calendar.DAY_OF_MONTH));
binding.todayDate.setText(today_date);
diff --git a/app/src/main/java/com/ssb/simplitend/welcome/fragments/SignInFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/fragments/SignInFragment.java
index f5df610..b8a6214 100644
--- a/app/src/main/java/com/ssb/simplitend/welcome/fragments/SignInFragment.java
+++ b/app/src/main/java/com/ssb/simplitend/welcome/fragments/SignInFragment.java
@@ -17,6 +17,7 @@ import androidx.navigation.Navigation;
import com.ssb.simplitend.R;
import com.ssb.simplitend.apputils.AppUtil;
+import com.ssb.simplitend.apputils.EditTextErrorRemover;
import com.ssb.simplitend.careperson_dashboard.DashBoardActivityCP;
import com.ssb.simplitend.databinding.SignInFragmentBinding;
import com.ssb.simplitend.welcome.mvvm.WelcomeContracts;
@@ -60,6 +61,12 @@ public class SignInFragment extends Fragment implements WelcomeContracts.Registe
private void initViews() {
progressDialog = new ProgressDialog(requireContext());
+
+ new EditTextErrorRemover(
+ binding.email,
+ binding.pin
+ );
+
}
private void clickEvents() {
@@ -110,10 +117,10 @@ public class SignInFragment extends Fragment implements WelcomeContracts.Registe
if (Objects.requireNonNull(binding.pin.getText()).toString().trim().isEmpty()){
allOkay = false;
- binding.pin.setError("Required");
+ Toast.makeText(requireContext(), "Enter your security pin.", Toast.LENGTH_SHORT).show();
}else if (binding.pin.getText().toString().trim().length() != 4){
allOkay = false;
- binding.pin.setError("Pin should be 4 digit.");
+ Toast.makeText(requireContext(), "Enter a valid pin.", Toast.LENGTH_SHORT).show();
}
return allOkay;
diff --git a/app/src/main/java/com/ssb/simplitend/welcome/fragments/WelcomeFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/fragments/WelcomeFragment.java
index 43e7d9c..d75c00f 100644
--- a/app/src/main/java/com/ssb/simplitend/welcome/fragments/WelcomeFragment.java
+++ b/app/src/main/java/com/ssb/simplitend/welcome/fragments/WelcomeFragment.java
@@ -38,6 +38,13 @@ public class WelcomeFragment extends Fragment {
return binding.getRoot();
}
+ @Override
+ public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ Navigation.findNavController(binding.getRoot())
+ .popBackStack(R.id.welcomeFragment, false);
+ }
+
// Initialize views
private void initViews(Bundle savedInstanceState) {
WelcomeViewModel wv = new ViewModelProvider(requireActivity()).get(WelcomeViewModel.class);
diff --git a/app/src/main/java/com/ssb/simplitend/welcome/fragments/contacts/CreateContactFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/fragments/contacts/CreateContactFragment.java
index 5667513..8a6a957 100644
--- a/app/src/main/java/com/ssb/simplitend/welcome/fragments/contacts/CreateContactFragment.java
+++ b/app/src/main/java/com/ssb/simplitend/welcome/fragments/contacts/CreateContactFragment.java
@@ -9,6 +9,7 @@ import android.content.Intent;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
+import android.text.InputFilter;
import android.util.Log;
import android.util.Patterns;
import android.view.LayoutInflater;
@@ -27,6 +28,8 @@ import androidx.navigation.Navigation;
import com.bumptech.glide.Glide;
import com.github.dhaval2404.imagepicker.ImagePicker;
import com.google.android.material.bottomsheet.BottomSheetDialog;
+import com.google.i18n.phonenumbers.PhoneNumberUtil;
+import com.google.i18n.phonenumbers.Phonenumber;
import com.ssb.simplitend.R;
import com.ssb.simplitend.apputils.AppUtil;
import com.ssb.simplitend.databinding.CreateEditContactFragmentBinding;
@@ -170,6 +173,52 @@ public class CreateContactFragment extends Fragment implements WelcomeContracts.
Toast.makeText(requireContext(), "Task Cancelled", Toast.LENGTH_SHORT).show();
}
});
+
+ // phone number formatting
+ // to deal with input pasting in the edit text
+ InputFilter phoneFilter = (charSequence, i, i1, spanned, i2, i3) -> {
+ String phone_number_str = charSequence.toString();
+
+ String country_code;
+
+ if (binding.countryCodes.getSelectedIndex() == -2){
+ country_code = "+1";
+ }else{
+ country_code = countryCodeList.get(binding.countryCodes.getSelectedIndex());
+ }
+
+ try {
+ PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
+ Phonenumber.PhoneNumber phoneNumber = phoneNumberUtil.parse(charSequence, "US");
+
+ phone_number_str = String.valueOf(phoneNumber.getNationalNumber());
+ country_code = "+" + phoneNumber.getCountryCode();
+ } catch (Exception e) {
+ // nothing
+ }
+
+ if (!countryCodeList.contains(country_code)){
+ countryCodeList.add(country_code);
+ }
+
+ binding.countryCodes.selectItemByIndex(countryCodeList.indexOf(country_code));
+
+ if (phone_number_str.length() > 10){
+ // pasted number length is greater than 10
+ return phone_number_str.substring(0, 10);
+ }
+
+ String total_phone_number = binding.phoneNumber.getText().toString() + phone_number_str;
+
+ if (total_phone_number.length() > 10){
+ // max length should be 10
+ return "";
+ }else{
+ return phone_number_str;
+ }
+ };
+
+ binding.phoneNumber.setFilters(new InputFilter[]{phoneFilter});
}
private void clickEvents() {
diff --git a/app/src/main/java/com/ssb/simplitend/welcome/fragments/forgotpin/ChangePinFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/fragments/forgotpin/ChangePinFragment.java
index bbe9573..5d4a82e 100644
--- a/app/src/main/java/com/ssb/simplitend/welcome/fragments/forgotpin/ChangePinFragment.java
+++ b/app/src/main/java/com/ssb/simplitend/welcome/fragments/forgotpin/ChangePinFragment.java
@@ -18,6 +18,7 @@ import androidx.navigation.Navigation;
import com.ssb.simplitend.R;
import com.ssb.simplitend.apputils.AppUtil;
+import com.ssb.simplitend.apputils.EditTextErrorRemover;
import com.ssb.simplitend.databinding.ChangePinFragmentBinding;
import com.ssb.simplitend.welcome.mvvm.WelcomeContracts;
import com.ssb.simplitend.welcome.mvvm.WelcomeViewModel;
@@ -79,6 +80,11 @@ public class ChangePinFragment extends Fragment implements WelcomeContracts.Upda
private void initViews() {
progressDialog = new ProgressDialog(requireContext());
+
+ new EditTextErrorRemover(
+ binding.pin,
+ binding.confirmPin
+ );
}
private void clickEvents() {
@@ -121,11 +127,11 @@ public class ChangePinFragment extends Fragment implements WelcomeContracts.Upda
if (binding.pin.getText() == null || binding.pin.getText().toString().length() != 4) {
allOkay = false;
- binding.pin.setError("Invalid pin");
+ Toast.makeText(requireContext(), "Enter a 4 digit security pin.", Toast.LENGTH_SHORT).show();
} else if (binding.confirmPin.getText() == null ||
!binding.confirmPin.getText().toString().equals(binding.pin.getText().toString())) {
allOkay = false;
- binding.confirmPin.setError("Pin doesn't match");
+ Toast.makeText(requireContext(), "Confirm pin doesn't match.", Toast.LENGTH_SHORT).show();
}
return allOkay;
diff --git a/app/src/main/java/com/ssb/simplitend/welcome/fragments/forgotpin/ForgotPinFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/fragments/forgotpin/ForgotPinFragment.java
index 9748be4..46b477c 100644
--- a/app/src/main/java/com/ssb/simplitend/welcome/fragments/forgotpin/ForgotPinFragment.java
+++ b/app/src/main/java/com/ssb/simplitend/welcome/fragments/forgotpin/ForgotPinFragment.java
@@ -16,6 +16,7 @@ import androidx.navigation.Navigation;
import com.bumptech.glide.Glide;
import com.ssb.simplitend.R;
import com.ssb.simplitend.apputils.AppUtil;
+import com.ssb.simplitend.apputils.EditTextErrorRemover;
import com.ssb.simplitend.databinding.ForgotPinFragmentBinding;
import com.ssb.simplitend.welcome.mvvm.WelcomeContracts;
import com.ssb.simplitend.welcome.mvvm.WelcomeViewModel;
@@ -60,6 +61,10 @@ public class ForgotPinFragment extends Fragment implements WelcomeContracts.Send
.load(R.raw.email_sending_anim)
.placeholder(R.drawable.forgot_pin_email_img)
.into(binding.image);
+
+ new EditTextErrorRemover(
+ binding.emailAddress
+ );
}
private void clickEvents() {
@@ -68,6 +73,7 @@ public class ForgotPinFragment extends Fragment implements WelcomeContracts.Send
Navigation.findNavController(v).popBackStack());
binding.submit.setOnClickListener(v -> {
+ AppUtil.closeKeyboard(requireActivity());
if (allOkay()){
sendOTP();
diff --git a/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/CreatePinFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/CreatePinFragment.java
index fcf5e14..c0b9bd7 100644
--- a/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/CreatePinFragment.java
+++ b/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/CreatePinFragment.java
@@ -6,6 +6,7 @@ import android.util.Log;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
+import android.widget.Toast;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
@@ -99,11 +100,11 @@ public class CreatePinFragment extends Fragment implements WelcomeContracts.Regi
if (binding.pin.getText() == null || binding.pin.getText().toString().length() != 4) {
allOkay = false;
- binding.pin.setError("Invalid pin");
+ Toast.makeText(requireContext(), "Enter a 4 digit security pin.", Toast.LENGTH_SHORT).show();
} else if (binding.confirmPin.getText() == null ||
!binding.confirmPin.getText().toString().equals(binding.pin.getText().toString())) {
allOkay = false;
- binding.confirmPin.setError("Pin doesn't match");
+ Toast.makeText(requireContext(), "Confirm pin doesn't match.", Toast.LENGTH_SHORT).show();
}
return allOkay;
diff --git a/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/LocationFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/LocationFragment.java
index e687e7f..5f31b74 100644
--- a/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/LocationFragment.java
+++ b/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/LocationFragment.java
@@ -63,7 +63,6 @@ import java.util.List;
public class LocationFragment extends Fragment implements OnMapReadyCallback,
GoogleMap.OnMapClickListener, LocationListener {
-
private static final String TAG = "LocationFragment";
private static final String UNITED_STATES = "United States";
@@ -182,7 +181,7 @@ public class LocationFragment extends Fragment implements OnMapReadyCallback,
currentLocation = new LatLng(lat, lng);
}else{
// default current location // washington DC
- currentLocation = new LatLng(38.9072, 77.0369);
+ currentLocation = new LatLng(0, 0);
}
if (patientData.address_line1 != null){
diff --git a/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/RegisterFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/RegisterFragment.java
index d85b7e6..0cd3c45 100644
--- a/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/RegisterFragment.java
+++ b/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/RegisterFragment.java
@@ -6,6 +6,12 @@ import android.content.Intent;
import android.net.Uri;
import android.os.Build;
import android.os.Bundle;
+import android.telephony.PhoneNumberFormattingTextWatcher;
+import android.telephony.PhoneNumberUtils;
+import android.text.Editable;
+import android.text.InputFilter;
+import android.text.Spanned;
+import android.text.TextWatcher;
import android.util.Log;
import android.util.Patterns;
import android.view.LayoutInflater;
@@ -20,8 +26,12 @@ import androidx.fragment.app.Fragment;
import androidx.lifecycle.ViewModelProvider;
import androidx.navigation.Navigation;
+import com.google.i18n.phonenumbers.NumberParseException;
+import com.google.i18n.phonenumbers.PhoneNumberUtil;
+import com.google.i18n.phonenumbers.Phonenumber;
import com.ssb.simplitend.R;
import com.ssb.simplitend.apputils.AppUtil;
+import com.ssb.simplitend.apputils.EditTextErrorRemover;
import com.ssb.simplitend.databinding.RegisterFragmentBinding;
import com.ssb.simplitend.welcome.mvvm.WelcomeContracts;
import com.ssb.simplitend.welcome.mvvm.WelcomeViewModel;
@@ -33,7 +43,7 @@ import java.util.Calendar;
import java.util.Date;
import java.util.Locale;
-public class RegisterFragment extends Fragment implements WelcomeContracts.VerifyEmailCallBack {
+public class RegisterFragment extends Fragment implements WelcomeContracts.VerifyEmailCallBack{
private static final String TAG = "RegisterFragment";
@@ -83,6 +93,64 @@ public class RegisterFragment extends Fragment implements WelcomeContracts.Verif
loadPatientDataSavedState();
+ setErrorRemovers();
+
+ }
+
+ // This adds textChangeListener to all the EditTexts available to remove error if available
+ private void setErrorRemovers() {
+ new EditTextErrorRemover(
+ binding.name,
+ binding.contactNumber,
+ binding.email
+ );
+
+ // phone number formatting
+ // to deal with input pasting in the edit text
+ InputFilter phoneFilter = (charSequence, i, i1, spanned, i2, i3) -> {
+ String phone_number_str = charSequence.toString();
+
+ String country_code;
+
+ if (binding.countryCodes.getSelectedIndex() == -2){
+ country_code = "+1";
+ }else{
+ country_code = countryCodeList.get(binding.countryCodes.getSelectedIndex());
+ }
+
+ try {
+ PhoneNumberUtil phoneNumberUtil = PhoneNumberUtil.getInstance();
+ Phonenumber.PhoneNumber phoneNumber = phoneNumberUtil.parse(charSequence, "US");
+
+ phone_number_str = String.valueOf(phoneNumber.getNationalNumber());
+ country_code = "+" + phoneNumber.getCountryCode();
+ } catch (Exception e) {
+ // nothing
+ }
+
+ if (!countryCodeList.contains(country_code)){
+ countryCodeList.add(country_code);
+ }
+
+ binding.countryCodes.selectItemByIndex(countryCodeList.indexOf(country_code));
+
+ if (phone_number_str.length() > 10){
+ // pasted number length is greater than 10
+ return phone_number_str.substring(0, 10);
+ }
+
+ String total_phone_number = binding.contactNumber.getText().toString() + phone_number_str;
+
+ if (total_phone_number.length() > 10){
+ // max length should be 10
+ return "";
+ }else{
+ return phone_number_str;
+ }
+ };
+
+ binding.contactNumber.setFilters(new InputFilter[]{phoneFilter});
+
}
private void loadPatientDataSavedState() {
diff --git a/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/SplashFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/SplashFragment.java
index f0ffdc3..7e02b6e 100644
--- a/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/SplashFragment.java
+++ b/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/SplashFragment.java
@@ -9,6 +9,7 @@ import android.view.ViewGroup;
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;
import androidx.fragment.app.Fragment;
+import androidx.navigation.NavOptions;
import androidx.navigation.Navigation;
import com.ssb.simplitend.R;
@@ -26,7 +27,12 @@ public class SplashFragment extends Fragment {
new Handler().postDelayed(() -> {
- Navigation.findNavController(binding.mainIcon).navigate(R.id.action_splashFragment_to_welcomeFragment);
+ NavOptions navOptions = new NavOptions.Builder()
+ .setPopUpTo(R.id.splashFragment, true)
+ .build();
+
+ Navigation.findNavController(binding.mainIcon)
+ .navigate(R.id.action_splashFragment_to_welcomeFragment, null, navOptions);
}, 1000);
diff --git a/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/ThankYouFragment.java b/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/ThankYouFragment.java
index 6b3e401..fe7dcf4 100644
--- a/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/ThankYouFragment.java
+++ b/app/src/main/java/com/ssb/simplitend/welcome/fragments/register/ThankYouFragment.java
@@ -11,6 +11,9 @@ import androidx.fragment.app.Fragment;
import androidx.navigation.Navigation;
import com.bumptech.glide.Glide;
+import com.bumptech.glide.load.engine.DiskCacheStrategy;
+import com.bumptech.glide.load.resource.gif.GifDrawable;
+import com.bumptech.glide.request.target.ImageViewTarget;
import com.ssb.simplitend.R;
import com.ssb.simplitend.databinding.ThankYouFragmentBinding;
@@ -40,6 +43,7 @@ public class ThankYouFragment extends Fragment {
Glide.with(requireContext())
.asGif()
.load(R.raw.done_anim)
+ .diskCacheStrategy(DiskCacheStrategy.RESOURCE)
.into(binding.animIv);
}
diff --git a/app/src/main/java/com/ssb/simplitend/welcome/mvvm/models/PatientData.java b/app/src/main/java/com/ssb/simplitend/welcome/mvvm/models/PatientData.java
index 9032824..a5b83cc 100644
--- a/app/src/main/java/com/ssb/simplitend/welcome/mvvm/models/PatientData.java
+++ b/app/src/main/java/com/ssb/simplitend/welcome/mvvm/models/PatientData.java
@@ -23,6 +23,12 @@ public class PatientData {
// for payload purpose
public String pin_code, c_pin_code;
+ // progress flags
+ public int isCareGiverLink
+ , isPatientReminderData
+ , isPatientRoutineData
+ , isPatientMedicalData;
+
public PatientData() {
}
diff --git a/app/src/main/res/layout/add_contact_fragment.xml b/app/src/main/res/layout/add_contact_fragment.xml
index e5835f9..fa94aa1 100644
--- a/app/src/main/res/layout/add_contact_fragment.xml
+++ b/app/src/main/res/layout/add_contact_fragment.xml
@@ -19,6 +19,8 @@
android:layout_margin="15dp"
android:contentDescription="@string/back_button"
android:padding="5dp"
+ android:paddingStart="-15dp"
+ android:paddingEnd="0dp"
android:src="@drawable/arrow_back" />
-
-
@@ -176,7 +178,7 @@
android:drawablePadding="10dp"
android:autofillHints="name"
- android:inputType="text|none"
+ android:inputType="text|textCapWords"
android:maxLines="1"
/>
diff --git a/app/src/main/res/layout/add_reminder_fragment.xml b/app/src/main/res/layout/add_reminder_fragment.xml
index b947190..1023ce5 100644
--- a/app/src/main/res/layout/add_reminder_fragment.xml
+++ b/app/src/main/res/layout/add_reminder_fragment.xml
@@ -22,6 +22,8 @@
android:layout_marginBottom="15dp"
android:contentDescription="@string/back_button"
android:padding="5dp"
+ android:paddingStart="-15dp"
+ android:paddingEnd="0dp"
android:src="@drawable/arrow_back" />
@@ -89,7 +91,7 @@
android:layout_marginBottom="15dp"
android:fontFamily="@font/nunito_medium"
android:text="@string/enter_temporary_pin"
- android:textAppearance="@style/TextAppearance.Material3.TitleLarge"
+ android:textSize="@dimen/_18ssp"
android:textColor="@color/black" />
diff --git a/app/src/main/res/layout/choose_role_fragment.xml b/app/src/main/res/layout/choose_role_fragment.xml
index 5715902..1766027 100644
--- a/app/src/main/res/layout/choose_role_fragment.xml
+++ b/app/src/main/res/layout/choose_role_fragment.xml
@@ -17,21 +17,21 @@
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/choose_a_role"
- android:fontFamily="@font/nunito_medium"
+ android:fontFamily="@font/nunito_bold"
android:textColor="#131313"
- android:textAppearance="@style/TextAppearance.Material3.HeadlineLarge"
+ android:textSize="@dimen/_24ssp"
android:layout_marginTop="40dp"/>
@@ -40,10 +40,10 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
- android:layout_marginTop="30dp"
- app:cardCornerRadius="5dp"
+ android:layout_marginTop="50dp"
+ app:cardCornerRadius="10dp"
app:cardElevation="3dp"
- app:strokeColor="@android:color/holo_blue_light"
+ app:strokeColor="#AEE0FF"
app:strokeWidth="0.5dp"
app:cardBackgroundColor="@color/white_bg"
>
@@ -111,9 +111,9 @@
android:layout_height="wrap_content"
android:layout_marginHorizontal="15dp"
android:layout_marginVertical="30dp"
- app:cardCornerRadius="5dp"
+ app:cardCornerRadius="10dp"
app:cardElevation="3dp"
- app:strokeColor="@android:color/holo_blue_light"
+ app:strokeColor="#AEE0FF"
app:strokeWidth="0.5dp"
app:cardBackgroundColor="@color/white_bg"
>
diff --git a/app/src/main/res/layout/contact_info_fragment.xml b/app/src/main/res/layout/contact_info_fragment.xml
index 282abec..3b88ba4 100644
--- a/app/src/main/res/layout/contact_info_fragment.xml
+++ b/app/src/main/res/layout/contact_info_fragment.xml
@@ -26,6 +26,8 @@
android:layout_marginBottom="15dp"
android:contentDescription="@string/back_button"
android:padding="5dp"
+ android:paddingStart="-15dp"
+ android:paddingEnd="0dp"
android:src="@drawable/arrow_back" />
@@ -112,7 +114,7 @@
android:layout_marginHorizontal="15dp"
android:layout_marginTop="15dp"
android:fontFamily="@font/nunito_medium"
- android:textAppearance="@style/TextAppearance.Material3.TitleLarge"
+ android:textSize="@dimen/_18ssp"
android:textColor="@color/black"
/>
diff --git a/app/src/main/res/layout/forgot_pin_fragment.xml b/app/src/main/res/layout/forgot_pin_fragment.xml
index 19467ed..f7cb4c8 100644
--- a/app/src/main/res/layout/forgot_pin_fragment.xml
+++ b/app/src/main/res/layout/forgot_pin_fragment.xml
@@ -25,13 +25,15 @@
android:contentDescription="@string/back_button"
android:padding="5dp"
android:src="@drawable/arrow_back"
+ android:paddingStart="-15dp"
+ android:paddingEnd="0dp"
android:layout_margin="15dp"/>
@@ -63,8 +65,8 @@
android:layout_height="wrap_content"
android:text="@string/enter_email_address"
android:fontFamily="@font/nunito_medium"
- android:textAppearance="@style/TextAppearance.Material3.TitleLarge"
android:layout_marginHorizontal="15dp"
+ android:textSize="@dimen/_18ssp"
android:textColor="@color/black"
android:layout_marginVertical="15dp"
/>
diff --git a/app/src/main/res/layout/how_to_set_up_fragment.xml b/app/src/main/res/layout/how_to_set_up_fragment.xml
index 8459db7..a1917a3 100644
--- a/app/src/main/res/layout/how_to_set_up_fragment.xml
+++ b/app/src/main/res/layout/how_to_set_up_fragment.xml
@@ -73,7 +73,7 @@
android:background="@color/color_accent"
android:contentDescription="@string/how_to_setup"
- android:layout_marginVertical="5dp"/>
+ android:layout_marginVertical="15dp"/>
@@ -151,7 +151,7 @@
android:contentDescription="@string/how_to_setup"
- android:layout_marginVertical="5dp"/>
+ android:layout_marginVertical="15dp"/>
@@ -226,7 +226,7 @@
android:background="@color/color_accent"
android:contentDescription="@string/how_to_setup"
- android:layout_marginVertical="5dp"/>
+ android:layout_marginVertical="15dp"/>
diff --git a/app/src/main/res/layout/location_fragment.xml b/app/src/main/res/layout/location_fragment.xml
index 699f8f6..088756e 100644
--- a/app/src/main/res/layout/location_fragment.xml
+++ b/app/src/main/res/layout/location_fragment.xml
@@ -20,7 +20,10 @@
android:contentDescription="@string/back_button"
android:padding="5dp"
android:src="@drawable/arrow_back"
- android:layout_margin="15dp"/>
+ android:layout_margin="15dp"
+ android:paddingStart="-15dp"
+ android:paddingEnd="0dp"
+ />
diff --git a/app/src/main/res/layout/medical_into_fragment.xml b/app/src/main/res/layout/medical_into_fragment.xml
index eace095..aa556ae 100644
--- a/app/src/main/res/layout/medical_into_fragment.xml
+++ b/app/src/main/res/layout/medical_into_fragment.xml
@@ -15,6 +15,8 @@
android:layout_marginBottom="15dp"
android:contentDescription="@string/back_button"
android:padding="5dp"
+ android:paddingEnd="0dp"
+ android:paddingStart="-15dp"
android:src="@drawable/arrow_back" />
\ No newline at end of file
diff --git a/app/src/main/res/layout/profile_progress_fragment.xml b/app/src/main/res/layout/profile_progress_fragment.xml
index 6db649f..dafd1d6 100644
--- a/app/src/main/res/layout/profile_progress_fragment.xml
+++ b/app/src/main/res/layout/profile_progress_fragment.xml
@@ -12,6 +12,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingEnd="15dp"
+ android:paddingStart="0dp"
android:orientation="vertical">
@@ -358,7 +360,7 @@
android:text="@string/skip_to_dashboard"
android:fontFamily="@font/nunito_regular"
- android:textAppearance="@style/TextAppearance.Material3.TitleSmall"
+ android:textSize="@dimen/_16ssp"
android:textColor="@android:color/black"
app:drawableEndCompat="@drawable/ic_right_kb"
@@ -367,7 +369,6 @@
android:layout_gravity="end"
android:layout_marginVertical="25dp"
- android:layout_marginHorizontal="15dp"
android:padding="5dp"
diff --git a/app/src/main/res/layout/register_fragment.xml b/app/src/main/res/layout/register_fragment.xml
index bd59316..54c43cd 100644
--- a/app/src/main/res/layout/register_fragment.xml
+++ b/app/src/main/res/layout/register_fragment.xml
@@ -19,7 +19,10 @@
android:contentDescription="@string/back_button"
android:padding="5dp"
android:src="@drawable/arrow_back"
- android:layout_margin="15dp"/>
+ android:layout_margin="15dp"
+ android:paddingStart="-15dp"
+ android:paddingEnd="0dp"
+ />
diff --git a/app/src/main/res/layout/reminders_fragment.xml b/app/src/main/res/layout/reminders_fragment.xml
index 49ff99d..6e08152 100644
--- a/app/src/main/res/layout/reminders_fragment.xml
+++ b/app/src/main/res/layout/reminders_fragment.xml
@@ -23,6 +23,8 @@
android:layout_marginBottom="15dp"
android:contentDescription="@string/back_button"
android:padding="5dp"
+ android:paddingStart="-15dp"
+ android:paddingEnd="0dp"
android:src="@drawable/arrow_back" />
@@ -25,15 +25,18 @@
android:text="@string/welcome_to_simplitend"
android:fontFamily="@font/nunito_semibold"
android:textColor="@color/black"
- android:textAppearance="@style/TextAppearance.Material3.HeadlineMedium"/>
+ android:textSize="@dimen/_24ssp"
+ android:textAlignment="center"
+ />
@@ -78,8 +81,8 @@
android:layout_gravity="start"
android:layout_marginHorizontal="15dp"
android:fontFamily="@font/nunito_medium"
- android:textAppearance="@style/TextAppearance.Material3.TitleLarge"
android:textColor="@color/black"
+ android:textSize="@dimen/_18ssp"
/>
diff --git a/app/src/main/res/layout/thank_you_fragment.xml b/app/src/main/res/layout/thank_you_fragment.xml
index 3d98434..55cfa2b 100644
--- a/app/src/main/res/layout/thank_you_fragment.xml
+++ b/app/src/main/res/layout/thank_you_fragment.xml
@@ -6,45 +6,57 @@
android:background="@color/white_bg"
android:overScrollMode="never">
-
-
+ android:layout_height="match_parent"
+ android:gravity="center"
+ android:orientation="vertical">
-
+
-
+
-
+
+
+
+
+
-
- />
+
+
+
+
+
+
+
+
+
-
-
\ No newline at end of file
diff --git a/app/src/main/res/navigation/welcome_nav_graph.xml b/app/src/main/res/navigation/welcome_nav_graph.xml
index 3e37d2f..396e577 100644
--- a/app/src/main/res/navigation/welcome_nav_graph.xml
+++ b/app/src/main/res/navigation/welcome_nav_graph.xml
@@ -162,6 +162,9 @@
+