diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 758cc80..adbef4c 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -1,6 +1,18 @@ + + + + + + + + + + + + diff --git a/app/src/main/java/com/ssb/simplitend/caregiverdashboard/activities/ContactAdminActivity.java b/app/src/main/java/com/ssb/simplitend/caregiverdashboard/activities/ContactAdminActivity.java index 205c118..d3b5c39 100644 --- a/app/src/main/java/com/ssb/simplitend/caregiverdashboard/activities/ContactAdminActivity.java +++ b/app/src/main/java/com/ssb/simplitend/caregiverdashboard/activities/ContactAdminActivity.java @@ -1,12 +1,11 @@ package com.ssb.simplitend.caregiverdashboard.activities; -import androidx.appcompat.app.AppCompatActivity; - import android.annotation.SuppressLint; import android.os.Bundle; import android.view.MotionEvent; -import com.ssb.simplitend.R; +import androidx.appcompat.app.AppCompatActivity; + import com.ssb.simplitend.databinding.ActivityContactAdminBinding; public class ContactAdminActivity extends AppCompatActivity { @@ -46,17 +45,6 @@ public class ContactAdminActivity extends AppCompatActivity { return false; }); - binding.query.setOnTouchListener((v, event) -> { - if (binding.query.hasFocus()) { - v.getParent().requestDisallowInterceptTouchEvent(true); - if ((event.getAction() & MotionEvent.ACTION_MASK) == MotionEvent.ACTION_SCROLL) { - v.getParent().requestDisallowInterceptTouchEvent(false); - return true; - } - } - return false; - }); - } private void clickEvents() { diff --git a/app/src/main/java/com/ssb/simplitend/cg_subscription/CgSubscriptionActivity.java b/app/src/main/java/com/ssb/simplitend/cg_subscription/CgSubscriptionActivity.java index 2c3359d..6c32715 100644 --- a/app/src/main/java/com/ssb/simplitend/cg_subscription/CgSubscriptionActivity.java +++ b/app/src/main/java/com/ssb/simplitend/cg_subscription/CgSubscriptionActivity.java @@ -2,13 +2,23 @@ package com.ssb.simplitend.cg_subscription; import android.app.ProgressDialog; import android.content.Intent; +import android.net.Uri; import android.os.Bundle; +import android.text.SpannableString; +import android.text.Spanned; +import android.text.method.LinkMovementMethod; +import android.text.style.ClickableSpan; import android.util.Log; +import android.view.View; import android.widget.Toast; +import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; +import com.google.firebase.crashlytics.FirebaseCrashlytics; +import com.google.firebase.crashlytics.internal.common.CrashlyticsCore; +import com.google.firebase.crashlytics.internal.model.CrashlyticsReport; import com.ssb.simplitend.R; import com.ssb.simplitend.apputils.AppUtil; import com.ssb.simplitend.apputils.CaregiverDataCache; @@ -90,6 +100,10 @@ public class CgSubscriptionActivity extends AppCompatActivity } }); + binding.contactAdmin.setOnClickListener(view -> { + contactMail(); + }); + } private void payForSubscription() { @@ -170,6 +184,39 @@ public class CgSubscriptionActivity extends AppCompatActivity presenter.getSubscriptionPlans(token, this); paymentSheet = new PaymentSheet(this, this::onPaymentSheetResult); + + try { + String description = getString(R.string.subscribe_description); + String contact_email = getString(R.string.contact_email); + + // setting display text + SpannableString ss = new SpannableString(description); + ClickableSpan cs = new ClickableSpan() { + @Override + public void onClick(@NonNull View view) { + contactMail(); + } + }; + int start_index = description.indexOf(contact_email); + ss.setSpan(cs, start_index, start_index + contact_email.length(), Spanned.SPAN_INCLUSIVE_INCLUSIVE); + + binding.description.setText(ss); + binding.description.setMovementMethod(LinkMovementMethod.getInstance()); + } catch (Exception e) { + Log.e(TAG, "initViews: ", e); + binding.contactAdmin.setVisibility(View.VISIBLE); + } + } + + private void contactMail() { + String contact_email = getString(R.string.contact_email); + + Intent intent = new Intent(Intent.ACTION_SENDTO); + intent.setData(Uri.fromParts("mailto", contact_email, null)); + + if (intent.resolveActivity(getPackageManager()) != null) { + startActivity(intent); + } } // payment callback diff --git a/app/src/main/java/com/ssb/simplitend/patientprofile/RegisterCompleteFragment.java b/app/src/main/java/com/ssb/simplitend/patientprofile/RegisterCompleteFragment.java index 8453aa6..c3e9ed7 100644 --- a/app/src/main/java/com/ssb/simplitend/patientprofile/RegisterCompleteFragment.java +++ b/app/src/main/java/com/ssb/simplitend/patientprofile/RegisterCompleteFragment.java @@ -1,6 +1,5 @@ package com.ssb.simplitend.patientprofile; -import android.animation.Animator; import android.app.ProgressDialog; import android.content.Intent; import android.graphics.drawable.Drawable; @@ -150,8 +149,10 @@ public class RegisterCompleteFragment extends Fragment implements ProfileContrac gotoPatientDashBoard(); }else{ AppUtil.showAlert(requireContext(), - "Ask Caregiver to Subscribe", - "Kindly ask CareGiver to complete SimpliTend subscription.", + "Kindly ask Caregiver to complete SimpliTend subscription.", + "Once your caregiver has completed the " + + "subscription, you will be able to use the " + + "application.", "OK", ((dialogInterface, i) -> { @@ -159,8 +160,10 @@ public class RegisterCompleteFragment extends Fragment implements ProfileContrac } } else { AppUtil.showAlert(requireContext(), - "Ask Caregiver to register", - "Kindly ask CareGiver to complete registration.", + "Kindly ask Caregiver to complete registration", + "Once your caregiver has completed the " + + "registration, you will be able to use the " + + "application.", "OK", ((dialogInterface, i) -> { diff --git a/app/src/main/java/com/ssb/simplitend/patientprofile/medreminder/AddReminderFragment.java b/app/src/main/java/com/ssb/simplitend/patientprofile/medreminder/AddReminderFragment.java index 5b4432a..0859317 100644 --- a/app/src/main/java/com/ssb/simplitend/patientprofile/medreminder/AddReminderFragment.java +++ b/app/src/main/java/com/ssb/simplitend/patientprofile/medreminder/AddReminderFragment.java @@ -144,6 +144,7 @@ public class AddReminderFragment extends Fragment implements CompoundButton.OnCh }); binding.dosageDrop.setOnClickListener(v -> { + AppUtil.closeKeyboard(requireActivity()); binding.dosageSpinner.show(); }); diff --git a/app/src/main/java/com/ssb/simplitend/patientprofile/medreminder/mvvm/ReminderAdapter.java b/app/src/main/java/com/ssb/simplitend/patientprofile/medreminder/mvvm/ReminderAdapter.java index 43f228d..21ee699 100644 --- a/app/src/main/java/com/ssb/simplitend/patientprofile/medreminder/mvvm/ReminderAdapter.java +++ b/app/src/main/java/com/ssb/simplitend/patientprofile/medreminder/mvvm/ReminderAdapter.java @@ -99,6 +99,15 @@ public class ReminderAdapter extends RecyclerView.Adapter contactList; + private boolean isSosSet, current_contact_sos; + private String sos_contact_name; + public CreateContactFragment() { // required empty const. } @@ -147,8 +147,9 @@ public class CreateContactFragment extends Fragment implements WelcomeContracts. loadRemoteContactList(); binding.sosCheck.setOnCheckedChangeListener((buttonView, isChecked) -> { - if (isChecked) { - contactViewModel.showSOSDecision(requireContext()); + if (isChecked && !current_contact_sos) { + contactViewModel.showSOSDecision(requireContext(), isSosSet, sos_contact_name, + binding.name.getText().toString()); } }); @@ -341,35 +342,42 @@ public class CreateContactFragment extends Fragment implements WelcomeContracts. binding.relationship.setText(getString(R.string.caregiver)); binding.relationship.setEnabled(false); + //email is important + binding.emailTitle.setText(getString(R.string.email_address)); // with asterisk + binding.caregiverCheckView.setVisibility(View.VISIBLE); this.mustBeeCaregiver = true; binding.caregiverCheck.setChecked(true); } // checking if there is any SOS contact already in list - boolean isSosSet = false; + isSosSet = false; int sos_contact_id = -1; for (ContactListResponse contact : contactList) { if (contact.is_sos_contact.equals("1")) { isSosSet = true; - sos_contact_id = contact.contact_data.id; + if (contact.contact_data != null){ + sos_contact_id = contact.contact_data.id; + sos_contact_name = contact.contact_data.first_name; + } break; } } + current_contact_sos = false; + if (isSosSet) { - binding.sosCheckView.setVisibility(View.GONE); binding.defaultSos.setVisibility(View.GONE); if (contactData != null && sos_contact_id != -1 && sos_contact_id == contactData.id) { // current contact being edited is the SOS contact // thus, sos switch can be edited + current_contact_sos = true; binding.sosCheckView.setVisibility(View.VISIBLE); } } else { - binding.sosCheckView.setVisibility(View.VISIBLE); binding.defaultSos.setVisibility(View.VISIBLE); } @@ -472,10 +480,11 @@ public class CreateContactFragment extends Fragment implements WelcomeContracts. binding.sosCheck.setChecked(true); } - // if caregiver cannot change email and phone number + // if caregiver, cannot change email and phone number if (contactData.care_giver_data != null && contactData.care_giver_data.id != null) { binding.email.setClickable(false); binding.email.setFocusable(false); + binding.emailTitle.setText(getString(R.string.email_address)); binding.caregiverCheck.setChecked(true); binding.caregiverCheck.setEnabled(false); diff --git a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/contacts/mvvm/AddContactAdapter.java b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/contacts/mvvm/AddContactAdapter.java index d61b3cc..31f14d7 100644 --- a/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/contacts/mvvm/AddContactAdapter.java +++ b/app/src/main/java/com/ssb/simplitend/welcome/welcomepatient/fragments/contacts/mvvm/AddContactAdapter.java @@ -92,15 +92,22 @@ public class AddContactAdapter extends ListAdapter { - List fields = Arrays.asList(Place.Field.ID, Place.Field.NAME, Place.Field.LAT_LNG); + List fields = Arrays.asList(Place.Field.ID + ,Place.Field.NAME, + Place.Field.LAT_LNG, Place.Field.ADDRESS); Intent intent = new Autocomplete.IntentBuilder(AutocompleteActivityMode.OVERLAY, fields) .build(requireContext()); @@ -445,7 +460,7 @@ public class LocationFragment extends Fragment implements OnMapReadyCallback, googleMap.setOnMapClickListener(this); if (currentLocation != null) { - addMarker(currentLocation, "Selected location"); + addMarker(currentLocation, null); googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(currentLocation, 14)); }else{ googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(new LatLng(40.75796541422796, -73.98557368665934), 14)); @@ -454,7 +469,7 @@ public class LocationFragment extends Fragment implements OnMapReadyCallback, @Override public void onMapClick(@NonNull LatLng latLng) { - addMarker(latLng, "Selected location"); + addMarker(latLng, null); } private void addMarker(LatLng latLng, String title) { @@ -463,9 +478,7 @@ public class LocationFragment extends Fragment implements OnMapReadyCallback, if (marker != null && marker.isVisible()) marker.remove(); marker = null; marker = googleMap.addMarker(new MarkerOptions() - .position(latLng).draggable(false) - .title(title)); - + .position(latLng).draggable(false)); try { // fetching address from the lag lng @@ -477,7 +490,11 @@ public class LocationFragment extends Fragment implements OnMapReadyCallback, binding.zipCode.setText(address.getPostalCode()); - if (address.getThoroughfare() == null || address.getThoroughfare().isEmpty()) { + if (title != null){ + if (marker != null) marker.setTitle(title); + + binding.street.setText(title); + }else if (address.getThoroughfare() == null || address.getThoroughfare().isEmpty()) { binding.street.setText(null); } else { binding.street.setText(address.getThoroughfare()); @@ -523,6 +540,8 @@ public class LocationFragment extends Fragment implements OnMapReadyCallback, // do nothing as we couldn't load the location from the lat lng } + binding.addressView.setVisibility(View.VISIBLE); + binding.street.clearFocus(); binding.scrollView.fullScroll(ScrollView.FOCUS_DOWN); diff --git a/app/src/main/res/layout/activity_contact_admin.xml b/app/src/main/res/layout/activity_contact_admin.xml index 0903aee..da1e157 100644 --- a/app/src/main/res/layout/activity_contact_admin.xml +++ b/app/src/main/res/layout/activity_contact_admin.xml @@ -71,44 +71,6 @@ 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 96258ee..ee98337 100644 --- a/app/src/main/res/layout/add_reminder_fragment.xml +++ b/app/src/main/res/layout/add_reminder_fragment.xml @@ -764,9 +764,10 @@ android:drawablePadding="10dp" android:autofillHints="@null" - android:inputType="textMultiLine|textCapSentences" + android:inputType="textCapSentences" android:maxHeight="150dp" + android:maxLength="60" android:overScrollMode="always" android:scrollbarStyle="insideInset" diff --git a/app/src/main/res/layout/cg_subscription_layout.xml b/app/src/main/res/layout/cg_subscription_layout.xml index 7f814d4..3d16925 100644 --- a/app/src/main/res/layout/cg_subscription_layout.xml +++ b/app/src/main/res/layout/cg_subscription_layout.xml @@ -3,6 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" + xmlns:tools="http://schemas.android.com/tools" android:background="@color/white" android:orientation="vertical"> @@ -311,16 +312,34 @@ + + diff --git a/app/src/main/res/layout/create_edit_contact_fragment.xml b/app/src/main/res/layout/create_edit_contact_fragment.xml index efcd3b8..5241401 100644 --- a/app/src/main/res/layout/create_edit_contact_fragment.xml +++ b/app/src/main/res/layout/create_edit_contact_fragment.xml @@ -261,12 +261,13 @@ diff --git a/app/src/main/res/layout/location_fragment.xml b/app/src/main/res/layout/location_fragment.xml index ba7a6fb..c4c39e4 100644 --- a/app/src/main/res/layout/location_fragment.xml +++ b/app/src/main/res/layout/location_fragment.xml @@ -1,6 +1,5 @@ @@ -47,8 +47,9 @@ /> @@ -107,7 +108,8 @@ diff --git a/app/src/main/res/layout/reminder_viewholder.xml b/app/src/main/res/layout/reminder_viewholder.xml index 707b3b7..04fc91b 100644 --- a/app/src/main/res/layout/reminder_viewholder.xml +++ b/app/src/main/res/layout/reminder_viewholder.xml @@ -124,37 +124,29 @@ app:cardElevation="5dp" android:layout_marginHorizontal="15dp" android:layout_marginVertical="10dp" - app:cardBackgroundColor="@color/white_bg" + app:cardBackgroundColor="@color/color_accent" > - - @@ -202,7 +195,6 @@ tools:text="2 : 00 pm" android:fontFamily="@font/nunito_regular" - android:textAppearance="@style/TextAppearance.Material3.TitleMedium" android:textColor="#5B5B5B" android:maxLines="1" @@ -217,7 +209,6 @@ tools:text="2 capsules" android:fontFamily="@font/nunito_regular" - android:textAppearance="@style/TextAppearance.Material3.TitleMedium" android:textColor="#5B5B5B" android:layout_marginStart="15dp" @@ -229,6 +220,34 @@ + + + + @drawable/primary_cursor_drawable @drawable/splash_screen - + @style/myDatePickerStyle diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 93d16e2..be3b46e 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -59,7 +59,7 @@ I accept terms and conditions Next Find your address - Drag the map and choose the place + Enter your address in search bar Map view Confirm your Home address Enter your street @@ -392,5 +392,8 @@ Update Patients Home Address When updating a password, it\'s essential to create a strong, unique password. + Your credit card will be charged 24 hours before your subscription period expires. The subscription will automatically renew at the same price. You can cancel your subscription 7 days before the renewal date by sending an email to contact.us@simplitent.com + contact.us@simplitent.com + Instructions: \ No newline at end of file diff --git a/app/src/main/res/values/themes.xml b/app/src/main/res/values/themes.xml index 30ced82..37283cf 100644 --- a/app/src/main/res/values/themes.xml +++ b/app/src/main/res/values/themes.xml @@ -15,19 +15,22 @@ @drawable/primary_cursor_drawable @drawable/splash_screen - + @style/myDatePickerStyle // top corner rounded bottom sheet + + // date picker dialog theme +