From 963a8dc7e8fb8638ccfab2825ee9ef72c2d5903a Mon Sep 17 00:00:00 2001 From: 14Sandee Date: Thu, 2 Nov 2023 20:58:56 +0530 Subject: [PATCH] . --- .idea/deploymentTargetDropDown.xml | 12 +++ app/src/main/AndroidManifest.xml | 8 +- .../simplitend/appblocking/FUAActivity.java | 14 ++- .../simplitend/appblocking/MyAppsAdapter.java | 8 +- .../appblocking/TopAppDetectionService.java | 15 ++- .../com/app/simplitend/apputils/AppUtil.java | 97 ++++++++++-------- .../simplitend/articles/ArticlesActivity.java | 31 +++++- .../activities/CaregiverDashActivity.java | 7 +- .../fragments/CgDashBoardFragment.java | 3 + .../CgSubscriptionActivity.java | 1 - .../PatientProfileAPIService.java | 4 + .../ProfileProgressFragment.java | 6 +- .../RegisterCompleteFragment.java | 2 +- .../medreminder/AddReminderFragment.java | 12 --- .../medreminder/mvvm/ReminderAdapter.java | 16 ++- .../mvvm/models/ReminderResult.java | 1 - .../setuproutine/AddRoutineFragment.java | 14 +-- .../setuproutine/mvvm/RoutineDetails.java | 1 - .../welcomecg/fragments/CgAuthActivity.java | 50 ++++++++- .../fragments/CgConnectFragment.java | 31 ++---- .../welcomecg/fragments/CgSignInFragment.java | 1 + .../fragments/SignInFragment.java | 3 + .../contacts/CreateContactFragment.java | 5 + .../fragments/register/CreatePinFragment.java | 2 + .../fragments/register/SplashFragment.java | 2 +- .../welcomepatient/mvvm/WelcomeViewModel.java | 4 + app/src/main/res/drawable/ic_cup.png | Bin 0 -> 14711 bytes app/src/main/res/drawable/ic_med_spoon.png | Bin 0 -> 16037 bytes app/src/main/res/drawable/ic_solution.png | Bin 21837 -> 0 bytes app/src/main/res/drawable/ic_syringe.png | Bin 0 -> 9818 bytes app/src/main/res/layout/activity_faq.xml | 2 +- app/src/main/res/layout/activity_fua.xml | 14 ++- .../main/res/layout/add_reminder_fragment.xml | 6 +- app/src/main/res/layout/cg_auth_fragment.xml | 74 +++++++++++++ .../res/layout/connect_caregiver_fragment.xml | 74 ------------- app/src/main/res/layout/home_bottom_nav.xml | 1 + .../main/res/layout/reminders_fragment.xml | 66 ++++++------ app/src/main/res/layout/routine_fragment.xml | 70 +++++++------ .../main/res/layout/routine_viewholder.xml | 27 ++--- app/src/main/res/values/strings.xml | 5 +- 40 files changed, 405 insertions(+), 284 deletions(-) create mode 100644 app/src/main/res/drawable/ic_cup.png create mode 100644 app/src/main/res/drawable/ic_med_spoon.png delete mode 100644 app/src/main/res/drawable/ic_solution.png create mode 100644 app/src/main/res/drawable/ic_syringe.png diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 03d9c98..63159b7 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -1,6 +1,18 @@ + + + + + + + + + + + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index f0d171b..2b5a138 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -27,7 +27,7 @@ - + + @@ -161,7 +162,8 @@ - + + diff --git a/app/src/main/java/com/app/simplitend/appblocking/FUAActivity.java b/app/src/main/java/com/app/simplitend/appblocking/FUAActivity.java index a25fcfd..19954a4 100644 --- a/app/src/main/java/com/app/simplitend/appblocking/FUAActivity.java +++ b/app/src/main/java/com/app/simplitend/appblocking/FUAActivity.java @@ -44,7 +44,7 @@ public class FUAActivity extends AppCompatActivity { TextView all_apps_title; LinearLayout no_fua; - TextView no_fua_txt; + TextView no_fua_txt, fua_sub_title; List installed_app_list; @@ -65,6 +65,7 @@ public class FUAActivity extends AppCompatActivity { no_fua = findViewById(R.id.no_fua); no_fua_txt = findViewById(R.id.no_fua_text); all_apps_title = findViewById(R.id.all_app_tile); + fua_sub_title = findViewById(R.id.fua_sub_title); if (!isAccessibilityAppBlockingEnabled()) { openAccessibilityDialog(); @@ -102,6 +103,8 @@ public class FUAActivity extends AppCompatActivity { if (!isFromDashboard) { // from settings page no_fua_txt.setText(R.string.no_frequently_used_apps); + fua_sub_title.setVisibility(View.GONE); + rvApps.setVisibility(View.VISIBLE); all_apps_title.setVisibility(View.VISIBLE); findViewById(R.id.done_btn).setVisibility(View.VISIBLE); @@ -130,6 +133,7 @@ public class FUAActivity extends AppCompatActivity { } else { // from dashboard no_fua_txt.setText(R.string.no_frequently_used_apps_set_up); + fua_sub_title.setVisibility(View.VISIBLE); rvApps.setVisibility(View.GONE); all_apps_title.setVisibility(View.GONE); @@ -344,13 +348,13 @@ public class FUAActivity extends AppCompatActivity { private void openAccessibilityDialog() { AppUtil.showAlert(this, - "Accessibility Permission Dialog", - "Please allow app blocking accessibility.", - "Yes", (dialog, id) -> { + "Accessibility Permission", + "Frequently used apps enables you to select your top apps, ensuring quick access and avoid distraction..\nChosen apps will be granted access, while all remaining apps will be restricted.\n\nTo activate, click on Go to settings -> Installed/Downloaded apps -> SimpliTend -> Turn on the permission.", + "Go to settings", (dialog, id) -> { Intent accessibilityIntent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS); startActivity(accessibilityIntent); }, - "No",(dialog, id) -> { + "Cancel",(dialog, id) -> { // Action for 'NO' Button dialog.cancel(); }); diff --git a/app/src/main/java/com/app/simplitend/appblocking/MyAppsAdapter.java b/app/src/main/java/com/app/simplitend/appblocking/MyAppsAdapter.java index c682cf9..66a4df9 100644 --- a/app/src/main/java/com/app/simplitend/appblocking/MyAppsAdapter.java +++ b/app/src/main/java/com/app/simplitend/appblocking/MyAppsAdapter.java @@ -179,13 +179,13 @@ public class MyAppsAdapter extends RecyclerView.Adapter { + "Accessibility Permission", + "Frequently used apps enables you to select your top apps, ensuring quick access and avoid distraction..\nChosen apps will be granted access, while all remaining apps will be restricted.\n\nTo activate, click on Go to settings -> Installed/Downloaded apps -> SimpliTend -> Turn on the permission.", + "Go to settings", (dialog, id) -> { Intent accessibilityIntent = new Intent(Settings.ACTION_ACCESSIBILITY_SETTINGS); context.startActivity(accessibilityIntent); }, - "No",(dialog, id) -> { + "Cancel",(dialog, id) -> { // Action for 'NO' Button dialog.cancel(); }); diff --git a/app/src/main/java/com/app/simplitend/appblocking/TopAppDetectionService.java b/app/src/main/java/com/app/simplitend/appblocking/TopAppDetectionService.java index 8e76cea..b1a3e5f 100644 --- a/app/src/main/java/com/app/simplitend/appblocking/TopAppDetectionService.java +++ b/app/src/main/java/com/app/simplitend/appblocking/TopAppDetectionService.java @@ -16,14 +16,14 @@ import java.util.List; public class TopAppDetectionService extends AccessibilityService { public static final String BLOCKED_APP_NAME = "BLOCKED_APP_NAME"; + + public static final String STOP_ACCESSIBILITY_SERVICE = "stop_accessibility_service"; + MySharedPref sharedPref; List appsList = new ArrayList<>(); @Override public void onAccessibilityEvent(AccessibilityEvent event) { - - Log.d("aditya", "onAccessibilityEvent: " + event); - sharedPref = new MySharedPref(getApplication()); appsList.addAll(sharedPref.getArrayList("APP_LIST")); @@ -73,6 +73,15 @@ public class TopAppDetectionService extends AccessibilityService { // This method is required but not used in this example } + @Override + public int onStartCommand(Intent intent, int flags, int startId) { + if (intent != null && STOP_ACCESSIBILITY_SERVICE.equals(intent.getAction())){ + // stop the service + disableSelf(); + } + return super.onStartCommand(intent, flags, startId); + } + @Override protected void onServiceConnected() { super.onServiceConnected(); diff --git a/app/src/main/java/com/app/simplitend/apputils/AppUtil.java b/app/src/main/java/com/app/simplitend/apputils/AppUtil.java index c8b98ca..72a203b 100644 --- a/app/src/main/java/com/app/simplitend/apputils/AppUtil.java +++ b/app/src/main/java/com/app/simplitend/apputils/AppUtil.java @@ -6,8 +6,6 @@ import static com.app.simplitend.apputils.Constants.REMINDER_EXTRA_KEY; import static com.app.simplitend.articles.ArticleShowerActivity.ARTICLE_TITLE; import static com.app.simplitend.articles.ArticleShowerActivity.ARTICLE_URL_KEY; import static com.app.simplitend.callwhitelisting.CallService.CONTACT_WHITE_LISTING_TAG; -import static com.app.simplitend.locationupdates.LocationService.LOCATION_INTERVAL_BASE_TIME; -import static com.app.simplitend.locationupdates.LocationService.LOCATION_UPDATE_MIN_INTERVAL; import static com.app.simplitend.patientgeofencing.GeoFenceHelper.GEOFENCE_ID; import static com.app.simplitend.patientgeofencing.GeoFenceHelper.GEOFENCE_TAG; @@ -31,21 +29,21 @@ import androidx.annotation.NonNull; import androidx.annotation.Nullable; import androidx.annotation.RawRes; -import com.app.simplitend.locationupdates.LocationService; -import com.app.simplitend.welcome.welcomepatient.fragments.contacts.mvvm.models.ContactData; -import com.bumptech.glide.Glide; -import com.google.android.gms.location.GeofencingClient; -import com.google.android.gms.location.LocationServices; -import com.google.android.material.bottomsheet.BottomSheetDialog; import com.app.simplitend.R; -import com.app.simplitend.appblocking.MySharedPref; +import com.app.simplitend.appblocking.TopAppDetectionService; import com.app.simplitend.articles.ArticleShowerActivity; import com.app.simplitend.databinding.BottomSheetAlertBinding; import com.app.simplitend.databinding.DecisionBottomsheetBinding; import com.app.simplitend.databinding.DoneBottomsheetBinding; +import com.app.simplitend.locationupdates.LocationService; import com.app.simplitend.patientprofile.medreminder.mvvm.models.ReminderResult; import com.app.simplitend.patientprofile.setuproutine.mvvm.RoutineDetails; +import com.app.simplitend.welcome.welcomepatient.fragments.contacts.mvvm.models.ContactData; import com.app.simplitend.welcome.welcomepatient.mvvm.models.PatientData; +import com.bumptech.glide.Glide; +import com.google.android.gms.location.GeofencingClient; +import com.google.android.gms.location.LocationServices; +import com.google.android.material.bottomsheet.BottomSheetDialog; import org.json.JSONArray; import org.json.JSONObject; @@ -57,6 +55,7 @@ import java.io.InputStreamReader; import java.text.SimpleDateFormat; import java.util.ArrayList; import java.util.Arrays; +import java.util.Calendar; import java.util.Collections; import java.util.Date; import java.util.HashSet; @@ -64,14 +63,13 @@ import java.util.List; import java.util.Locale; import java.util.Objects; import java.util.Set; +import java.util.TimeZone; public abstract class AppUtil { public static final String IMAGE_BASE_URL = "https://simplitend.betadelivery.com/storage/upload/"; private static final String TAG = "AppUtil"; - public static final int LOCATION_REQUEST_CODE = 12; - public static final String NOTIFICATION_ACTION = "com.simplitend.NOTIFICATION_ACTION"; // fields @@ -87,6 +85,8 @@ public abstract class AppUtil { public static final int CG_NO_SECURITY_NEEDED = 3; public static final int CG_SECURITY_NEEDED = 4; + public static final String CG_REGISTRATION_COMPLETE = "cg_registration_complete"; + public static final String PATIENT_UID = "patient_uid"; public static final String IS_PATIENT_LOGGED_IN = "patient_logged_in"; @@ -256,6 +256,18 @@ public abstract class AppUtil { } } + @NonNull + public static String getTimeZone(){ + TimeZone timeZone = TimeZone.getDefault(); + // Getting the GMT offset in milliseconds + int gmtOffsetMillis = timeZone.getOffset(Calendar.getInstance().getTimeInMillis()); + // Converting milliseconds to hours and minutes + int hours = gmtOffsetMillis / 3600000; + int minutes = (gmtOffsetMillis % 3600000) / 60000; + + return "GMT" + (gmtOffsetMillis >= 0 ? "+" : "") + hours + ":" + String.format(Locale.getDefault(), "%02d", minutes); + } + public static void callPhone(Activity activity, String phone_number){ if (activity.checkSelfPermission(Manifest.permission.CALL_PHONE) == PackageManager.PERMISSION_GRANTED){ Intent intent = new Intent(Intent.ACTION_CALL, Uri.fromParts("tel", @@ -281,7 +293,8 @@ public abstract class AppUtil { public static void showBottomAlert(Context context, String patient_name, - @Nullable String content_type, Intent intent) throws Exception { + @Nullable String content_type, Intent intent, + @NonNull View.OnClickListener text_senior_click) throws Exception { if (content_type == null) return; @@ -360,16 +373,9 @@ public abstract class AppUtil { setupBottomSheet(binding, R.drawable.img_activity_time, title, body, - routine_description, "Text patient", - v -> { - CaregiverDataCache.getCaregiverData(context, (careGiverData -> { - if (careGiverData == null || careGiverData.patientDetails == null) { - Toast.makeText(context, "Couldn't load data", Toast.LENGTH_SHORT).show(); - return; - } - - AppUtil.messageNumber(context, careGiverData.patientDetails.phone_number); - }), true); + routine_description, "Text senior", view -> { + bsd.dismiss(); + text_senior_click.onClick(null); }); bsd.show(); @@ -406,16 +412,9 @@ public abstract class AppUtil { setupBottomSheet(binding, R.drawable.img_medication_time, title, body, - description, "Text patient", - v -> { - CaregiverDataCache.getCaregiverData(context, (careGiverData -> { - if (careGiverData == null || careGiverData.patientDetails == null) { - Toast.makeText(context, "Couldn't load data", Toast.LENGTH_SHORT).show(); - return; - } - - AppUtil.messageNumber(context, careGiverData.patientDetails.phone_number); - }), true); + description, "Text senior", view -> { + bsd.dismiss(); + text_senior_click.onClick(null); }); bsd.show(); @@ -499,16 +498,9 @@ public abstract class AppUtil { setupBottomSheet(binding, R.drawable.img_med_refill, title, body, - refill_description, "Text patient", - v -> { - CaregiverDataCache.getCaregiverData(context, (careGiverData -> { - if (careGiverData == null || careGiverData.patientDetails == null) { - Toast.makeText(context, "Couldn't load data", Toast.LENGTH_SHORT).show(); - return; - } - - AppUtil.messageNumber(context, careGiverData.patientDetails.phone_number); - }), true); + refill_description, "Text senior", view -> { + bsd.dismiss(); + text_senior_click.onClick(null); }); bsd.show(); @@ -578,9 +570,10 @@ public abstract class AppUtil { public static void patientSignOut(Context context) { AppUtil.savePatientData(null, -1, context, false); - // app block list clear - MySharedPref mySharedPref = new MySharedPref(context); - mySharedPref.removeKey("APP_LIST"); + // turning off app_blocking accessibility permission + Intent stop_accessibility_intent = new Intent(context, TopAppDetectionService.class); + stop_accessibility_intent.setAction(TopAppDetectionService.STOP_ACCESSIBILITY_SERVICE); + context.startService(stop_accessibility_intent); // removing contact listing setWhiteListedContacts(context, null); @@ -642,6 +635,20 @@ public abstract class AppUtil { return sp.getInt(CG_APP_SECURITY, NOT_ASKED_CG_SECURITY); } + public static boolean isRegistrationComplete(Context context){ + SharedPreferences sp = context.getSharedPreferences(CAREGIVER_DETAILS, Context.MODE_PRIVATE); + return sp.getBoolean(CG_REGISTRATION_COMPLETE, false); + } + + public static void setCgRegistrationComplete(Context context, boolean registrationComplete){ + SharedPreferences sp = context.getSharedPreferences(CAREGIVER_DETAILS, Context.MODE_PRIVATE); + SharedPreferences.Editor editor = sp.edit(); + + editor.putBoolean(CG_REGISTRATION_COMPLETE, registrationComplete); + + editor.apply(); + } + public static void cgSignOut(Context context) { saveCgData(null, -1, context); setWantSecurityFlag(context, NOT_ASKED_CG_SECURITY); diff --git a/app/src/main/java/com/app/simplitend/articles/ArticlesActivity.java b/app/src/main/java/com/app/simplitend/articles/ArticlesActivity.java index f838dc8..cfcf767 100644 --- a/app/src/main/java/com/app/simplitend/articles/ArticlesActivity.java +++ b/app/src/main/java/com/app/simplitend/articles/ArticlesActivity.java @@ -5,6 +5,8 @@ import static com.app.simplitend.articles.ArticleShowerActivity.ARTICLE_URL_KEY; import android.content.Intent; import android.os.Bundle; +import android.text.Editable; +import android.text.TextWatcher; import android.view.View; import android.widget.Toast; @@ -29,7 +31,7 @@ public class ArticlesActivity extends AppCompatActivity private ArticlesAdapter articlesAdapter; - private boolean isLoadingArticles, lastPageHit; + private boolean isLoadingArticles, lastPageHit, areSearchedArticleShown; private int page_no; @@ -46,6 +48,7 @@ public class ArticlesActivity extends AppCompatActivity clickEvents(); page_no = 1; + areSearchedArticleShown = false; getArticles(binding.searchEt.getText().toString().trim(), PER_PAGE_COUNT, page_no, false); } @@ -89,6 +92,28 @@ public class ArticlesActivity extends AppCompatActivity } } }); + + binding.searchEt.addTextChangedListener(new TextWatcher() { + @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) { + if (editable.length() == 0 && areSearchedArticleShown){ + // loading all articles + page_no = 1; + areSearchedArticleShown = false; + getArticles(binding.searchEt.getText().toString().trim(), PER_PAGE_COUNT, page_no, false); + } + } + }); } private void clickEvents() { @@ -97,8 +122,9 @@ public class ArticlesActivity extends AppCompatActivity }); binding.closeBtn.setOnClickListener(v -> { - if (!binding.searchEt.getText().toString().trim().isEmpty()){ + if (!binding.searchEt.getText().toString().trim().isEmpty() && areSearchedArticleShown){ page_no = 1; + areSearchedArticleShown = false; getArticles("", PER_PAGE_COUNT, page_no, false); } @@ -113,6 +139,7 @@ public class ArticlesActivity extends AppCompatActivity AppUtil.closeKeyboard(this); page_no = 1; + areSearchedArticleShown = true; getArticles(binding.searchEt.getText().toString().trim(), PER_PAGE_COUNT, page_no, false); return true; }); diff --git a/app/src/main/java/com/app/simplitend/caregiverdashboard/activities/CaregiverDashActivity.java b/app/src/main/java/com/app/simplitend/caregiverdashboard/activities/CaregiverDashActivity.java index b9590d6..a1c2be6 100644 --- a/app/src/main/java/com/app/simplitend/caregiverdashboard/activities/CaregiverDashActivity.java +++ b/app/src/main/java/com/app/simplitend/caregiverdashboard/activities/CaregiverDashActivity.java @@ -105,7 +105,12 @@ public class CaregiverDashActivity extends AppCompatActivity implements AppUtil.showBottomAlert(CaregiverDashActivity.this, patient_name, content_type, - intent); + intent, + v -> { + // here v is null + binding.bottomNav.selectMenuItem(MenuItem.CHATS); + onBottomNavItemSelected(MenuItem.CHATS); + }); }catch (Exception e){ // do nothing } diff --git a/app/src/main/java/com/app/simplitend/caregiverdashboard/fragments/CgDashBoardFragment.java b/app/src/main/java/com/app/simplitend/caregiverdashboard/fragments/CgDashBoardFragment.java index 6d31ce7..4b6317c 100644 --- a/app/src/main/java/com/app/simplitend/caregiverdashboard/fragments/CgDashBoardFragment.java +++ b/app/src/main/java/com/app/simplitend/caregiverdashboard/fragments/CgDashBoardFragment.java @@ -54,6 +54,7 @@ import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; import com.google.android.gms.maps.SupportMapFragment; +import com.google.android.gms.maps.model.BitmapDescriptorFactory; import com.google.android.gms.maps.model.LatLng; import com.google.android.gms.maps.model.MarkerOptions; @@ -230,6 +231,7 @@ public class CgDashBoardFragment extends Fragment implements loadReminders(); loadActivities(); + loadArticles(); }); binding.notifications.setOnClickListener(view -> { @@ -373,6 +375,7 @@ public class CgDashBoardFragment extends Fragment implements MarkerOptions markerOptions = new MarkerOptions() .position(latLng) + .icon(BitmapDescriptorFactory.fromResource(R.drawable.img_home_marker)) .title(patient_name); mGoogleMap.clear(); diff --git a/app/src/main/java/com/app/simplitend/cg_subscription/CgSubscriptionActivity.java b/app/src/main/java/com/app/simplitend/cg_subscription/CgSubscriptionActivity.java index b5518be..58e7d2e 100644 --- a/app/src/main/java/com/app/simplitend/cg_subscription/CgSubscriptionActivity.java +++ b/app/src/main/java/com/app/simplitend/cg_subscription/CgSubscriptionActivity.java @@ -325,7 +325,6 @@ public class CgSubscriptionActivity extends AppCompatActivity Toast.makeText(this, "Payment failed.", Toast.LENGTH_SHORT).show(); } else if (paymentSheetResult instanceof PaymentSheetResult.Completed) { // Display for example, an order confirmation screen - Toast.makeText(this, "Payment successful.", Toast.LENGTH_SHORT).show(); this.careGiverData.isCaregiverTakeSubscription = 1; CaregiverDataCache.setCareGiverData(this.careGiverData); diff --git a/app/src/main/java/com/app/simplitend/patientprofile/PatientProfileAPIService.java b/app/src/main/java/com/app/simplitend/patientprofile/PatientProfileAPIService.java index 0735710..525a6f1 100644 --- a/app/src/main/java/com/app/simplitend/patientprofile/PatientProfileAPIService.java +++ b/app/src/main/java/com/app/simplitend/patientprofile/PatientProfileAPIService.java @@ -26,6 +26,10 @@ public interface PatientProfileAPIService { @GET("api/auth-user-data") Call> getUsrProfileProgress(@Header("Authorization") String token); + @GET("api/auth-user-data") + Call> getUsrProfileProgress(@Header("Authorization") String token, + @Header("timezone") String timezone); + @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/app/simplitend/patientprofile/ProfileProgressFragment.java b/app/src/main/java/com/app/simplitend/patientprofile/ProfileProgressFragment.java index 7d5d4e2..77aa11d 100644 --- a/app/src/main/java/com/app/simplitend/patientprofile/ProfileProgressFragment.java +++ b/app/src/main/java/com/app/simplitend/patientprofile/ProfileProgressFragment.java @@ -177,10 +177,8 @@ public class ProfileProgressFragment extends Fragment implements ProfileContract // no subscription alert try { AppUtil.showAlert(requireContext(), - "Kindly ask Caregiver to complete SimpliTend subscription.", - "Once your caregiver has completed the " + - "subscription, you will be able to use the " + - "application.", + "Caregiver registration", + "You can set up this feature after caregiver registration is complete", "OK", ((dialogInterface, i) -> { diff --git a/app/src/main/java/com/app/simplitend/patientprofile/RegisterCompleteFragment.java b/app/src/main/java/com/app/simplitend/patientprofile/RegisterCompleteFragment.java index e78038d..a006eb1 100644 --- a/app/src/main/java/com/app/simplitend/patientprofile/RegisterCompleteFragment.java +++ b/app/src/main/java/com/app/simplitend/patientprofile/RegisterCompleteFragment.java @@ -177,7 +177,7 @@ public class RegisterCompleteFragment extends Fragment implements ProfileContrac gotoPatientDashBoard(); }else{ AppUtil.showAlert(requireContext(), - "Kindly ask Caregiver to complete SimpliTend subscription.", + "Kindly ask Caregiver to buy SimpliTend subscription.", "Once your caregiver has completed the " + "subscription, you will be able to use the " + "application.", diff --git a/app/src/main/java/com/app/simplitend/patientprofile/medreminder/AddReminderFragment.java b/app/src/main/java/com/app/simplitend/patientprofile/medreminder/AddReminderFragment.java index f52d369..32bbf47 100644 --- a/app/src/main/java/com/app/simplitend/patientprofile/medreminder/AddReminderFragment.java +++ b/app/src/main/java/com/app/simplitend/patientprofile/medreminder/AddReminderFragment.java @@ -193,18 +193,6 @@ public class AddReminderFragment extends Fragment implements CompoundButton.OnCh reminderResult.time3 = null; } - // Sending time zone - TimeZone timeZone = TimeZone.getDefault(); - // Getting the GMT offset in milliseconds - int gmtOffsetMillis = timeZone.getOffset(Calendar.getInstance().getTimeInMillis()); - // Converting milliseconds to hours and minutes - int hours = gmtOffsetMillis / 3600000; - int minutes = (gmtOffsetMillis % 3600000) / 60000; - - String gmtStandard = "GMT" + (gmtOffsetMillis >= 0 ? "+" : "") + hours + ":" + String.format(Locale.getDefault(), "%02d", minutes); - Toast.makeText(requireContext(), "" + gmtStandard, Toast.LENGTH_SHORT).show(); - reminderResult.timezone = gmtStandard; - reminderResult.medication_quantity = binding.quantity.getText().toString(); reminderResult.medication_refill_date = binding.getDate.getText().toString(); reminderResult.medication_instruction = binding.instructions.getText().toString().trim(); diff --git a/app/src/main/java/com/app/simplitend/patientprofile/medreminder/mvvm/ReminderAdapter.java b/app/src/main/java/com/app/simplitend/patientprofile/medreminder/mvvm/ReminderAdapter.java index 1416f75..23d81e1 100644 --- a/app/src/main/java/com/app/simplitend/patientprofile/medreminder/mvvm/ReminderAdapter.java +++ b/app/src/main/java/com/app/simplitend/patientprofile/medreminder/mvvm/ReminderAdapter.java @@ -130,16 +130,24 @@ public class ReminderAdapter extends RecyclerView.Adapter= 0 ? "+" : "") + hours + ":" + String.format(Locale.getDefault(), "%02d", minutes); - Toast.makeText(requireContext(), "" + gmtStandard, Toast.LENGTH_SHORT).show(); - routineDetails.timezone = gmtStandard; - routineDetails.sun = week_state[0] ? "1" : "0"; routineDetails.mon = week_state[1] ? "1" : "0"; routineDetails.tue = week_state[2] ? "1" : "0"; @@ -488,7 +476,7 @@ public class AddRoutineFragment extends Fragment implements CompoundButton.OnChe progressDialog.dismiss(); if (this.routine == null) { - Toast.makeText(requireContext(), "Routine added successfully.", Toast.LENGTH_SHORT).show(); + Toast.makeText(requireContext(), "Activity saved successfully.", Toast.LENGTH_SHORT).show(); Activity activity = getActivity(); if (activity != null){ diff --git a/app/src/main/java/com/app/simplitend/patientprofile/setuproutine/mvvm/RoutineDetails.java b/app/src/main/java/com/app/simplitend/patientprofile/setuproutine/mvvm/RoutineDetails.java index 6aa81a5..e0f656b 100644 --- a/app/src/main/java/com/app/simplitend/patientprofile/setuproutine/mvvm/RoutineDetails.java +++ b/app/src/main/java/com/app/simplitend/patientprofile/setuproutine/mvvm/RoutineDetails.java @@ -30,7 +30,6 @@ public class RoutineDetails implements Serializable { public String updated_at; public String routine_marked; - public String timezone; @Override public boolean equals(Object o) { diff --git a/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgAuthActivity.java b/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgAuthActivity.java index d92c8da..988af74 100644 --- a/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgAuthActivity.java +++ b/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgAuthActivity.java @@ -16,6 +16,13 @@ import androidx.biometric.BiometricManager; import androidx.biometric.BiometricPrompt; import androidx.core.content.ContextCompat; +import com.app.simplitend.R; +import com.bumptech.glide.Glide; +import com.bumptech.glide.load.DataSource; +import com.bumptech.glide.load.engine.GlideException; +import com.bumptech.glide.load.resource.gif.GifDrawable; +import com.bumptech.glide.request.RequestListener; +import com.bumptech.glide.request.target.Target; import com.daimajia.androidanimations.library.Techniques; import com.daimajia.androidanimations.library.YoYo; import com.app.simplitend.apputils.AppUtil; @@ -65,11 +72,46 @@ public class CgAuthActivity extends AppCompatActivity { binding.skip.setOnClickListener(v -> { AppUtil.setWantSecurityFlag(this, AppUtil.CG_NO_SECURITY_NEEDED); + if (!AppUtil.isRegistrationComplete(CgAuthActivity.this)){ + // USER IS IN THE REGISTRATION PROCESS + // show thank you page + showThankYouScreen(); + }else { + gotoCgDash(); + } + }); + + binding.proceed.setOnClickListener(v -> { gotoCgDash(); }); } + private void showThankYouScreen() { + AppUtil.setCgRegistrationComplete(this, true); + + binding.connectCompleteView.setVisibility(View.VISIBLE); + binding.askedView.setVisibility(View.GONE); + binding.fingerprintView.setVisibility(View.GONE); + + Glide.with(this) + .asGif() + .load(R.raw.done_anim_primary) + .listener(new RequestListener() { + @Override + public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { + return false; + } + + @Override + public boolean onResourceReady(GifDrawable resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) { + resource.setLoopCount(1); + return false; + } + }) + .into(binding.animIv); + } + private void initViews() { biometricManager = BiometricManager.from(this); @@ -85,7 +127,13 @@ public class CgAuthActivity extends AppCompatActivity { public void onAuthenticationSucceeded(@NonNull BiometricPrompt.AuthenticationResult result) { super.onAuthenticationSucceeded(result); AppUtil.setWantSecurityFlag(CgAuthActivity.this, AppUtil.CG_SECURITY_NEEDED); - gotoCgDash(); + if (!AppUtil.isRegistrationComplete(CgAuthActivity.this)){ + // USER IS IN THE REGISTRATION PROCESS + // show thank you page + showThankYouScreen(); + }else { + gotoCgDash(); + } } @Override diff --git a/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgConnectFragment.java b/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgConnectFragment.java index d4cba9c..6ea7c85 100644 --- a/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgConnectFragment.java +++ b/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgConnectFragment.java @@ -94,13 +94,6 @@ public class CgConnectFragment extends Fragment implements viewModel.resendCgCode(body, token, this); }); - binding.proceed.setOnClickListener(v -> { - // go to cg dash board - Intent intent = new Intent(requireActivity(), CgAuthActivity.class); - intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); - startActivity(intent); - requireActivity().finish(); - }); } private void connectCG() { @@ -177,25 +170,13 @@ public class CgConnectFragment extends Fragment implements public void onCgConnected(ConnectCgResult result) { progressDialog.dismiss(); - binding.connectView.setVisibility(View.GONE); - binding.connectCompleteView.setVisibility(View.VISIBLE); + AppUtil.setCgRegistrationComplete(requireContext(), false); - Glide.with(this) - .asGif() - .load(R.raw.done_anim_primary) - .listener(new RequestListener() { - @Override - public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { - return false; - } - - @Override - public boolean onResourceReady(GifDrawable resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) { - resource.setLoopCount(1); - return false; - } - }) - .into(binding.animIv); + // go to cg dash board + Intent intent = new Intent(requireActivity(), CgAuthActivity.class); + intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP); + startActivity(intent); + requireActivity().finish(); } @Override diff --git a/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgSignInFragment.java b/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgSignInFragment.java index f439a1e..9495e2b 100644 --- a/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgSignInFragment.java +++ b/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgSignInFragment.java @@ -138,6 +138,7 @@ public class CgSignInFragment extends Fragment implements WelcomeContracts.CgLog }else{ // caregiver user has asked to for security + AppUtil.setCgRegistrationComplete(requireContext(), true); intent = new Intent(requireActivity(), CgAuthActivity.class); } diff --git a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/SignInFragment.java b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/SignInFragment.java index ceb4d26..a6671c4 100644 --- a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/SignInFragment.java +++ b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/SignInFragment.java @@ -131,6 +131,9 @@ public class SignInFragment extends Fragment implements WelcomeContracts.Registe RequestBody pin_body = RequestBody.create(Objects.requireNonNull(binding.pin.getText()).toString().trim(), MediaType.parse("text/plain")); body.put("pin", pin_body); + RequestBody timezone_body = RequestBody.create(AppUtil.getTimeZone(), MediaType.parse("text/plain;charset=utf-8")); + body.put("timezone", timezone_body); + String sub_id = OneSignal.getUser().getPushSubscription().getId(); if (sub_id != null){ diff --git a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/contacts/CreateContactFragment.java b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/contacts/CreateContactFragment.java index 670c472..548b8d8 100644 --- a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/contacts/CreateContactFragment.java +++ b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/contacts/CreateContactFragment.java @@ -567,6 +567,11 @@ public class CreateContactFragment extends Fragment implements WelcomeContracts. contact_binding.createCountryCodes.setIsFocusable(true); contact_binding.createCountryCodes.setDismissWhenNotifiedItemSelected(true); + contact_binding.createCountryCodes.setOnClickListener(v -> { + AppUtil.closeKeyboard(requireActivity()); + contact_binding.createCountryCodes.showOrDismiss(); + }); + // phone number formatting // to deal with input pasting in the edit text InputFilter phoneFilter = (charSequence, i, i1, spanned, i2, i3) -> { diff --git a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/register/CreatePinFragment.java b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/register/CreatePinFragment.java index 178e61b..b691643 100644 --- a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/register/CreatePinFragment.java +++ b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/register/CreatePinFragment.java @@ -140,6 +140,8 @@ public class CreatePinFragment extends Fragment implements WelcomeContracts.Regi } ); + + } private boolean allOkay() { diff --git a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/register/SplashFragment.java b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/register/SplashFragment.java index a709c8c..84d0361 100644 --- a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/register/SplashFragment.java +++ b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/register/SplashFragment.java @@ -81,7 +81,7 @@ public class SplashFragment extends Fragment PatientProfileAPIService apiService = RetrofitHelper.getRetrofit().create(PatientProfileAPIService.class); - apiService.getUsrProfileProgress("Bearer " + patient_token) + apiService.getUsrProfileProgress("Bearer " + patient_token, AppUtil.getTimeZone()) .enqueue(new Callback>() { @Override public void onResponse(Call> call, Response> response) { diff --git a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/mvvm/WelcomeViewModel.java b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/mvvm/WelcomeViewModel.java index b66e77b..9f8e0dd 100644 --- a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/mvvm/WelcomeViewModel.java +++ b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/mvvm/WelcomeViewModel.java @@ -7,6 +7,7 @@ import androidx.annotation.NonNull; import androidx.lifecycle.ViewModel; import com.app.simplitend.R; +import com.app.simplitend.apputils.AppUtil; import com.app.simplitend.welcome.welcomepatient.mvvm.models.PatientData; import org.json.JSONArray; @@ -81,6 +82,9 @@ public class WelcomeViewModel extends ViewModel { RequestBody one_signal_player_id_body = RequestBody.create(patientData.one_signal_player_id, MediaType.parse("text/plain;charset=utf-8") ); body.put("one_signal_player_id", one_signal_player_id_body); + RequestBody timezone_body = RequestBody.create(AppUtil.getTimeZone(), MediaType.parse("text/plain;charset=utf-8")); + body.put("timezone", timezone_body); + welcomeRepository.registerPatient(body, registerPatientContract); } diff --git a/app/src/main/res/drawable/ic_cup.png b/app/src/main/res/drawable/ic_cup.png new file mode 100644 index 0000000000000000000000000000000000000000..df2110a4b8c82262dd62270ac94b9e1d930b8634 GIT binary patch literal 14711 zcma)jcRZWl8}@^imX@}ZwpL5+)lws7TdPIwQM<#ay+y3(P}Hnh6{A!UtF?*MVOLZM zC4yQZA+}hN_tEd~egA&*`S?6MInFuHIrq8m>%Ol0i80jIKFfH85deU*_wQ*K0{{*9 zD-Cdt9=x2H@fQFuSD)T9egFW$f&dWl3IO)OTM>%@5O4zk2#)|j@f`qgcq5vOl)*3P zpXh39fLHLdr;dVym($+&Ed9XiqklhZZg&R&K!JE)>ACI zrs11YCkzddjHg69Xru4JPL@^v`DIZUeUdZ(YKNpIjSC;&RYuz1A(b>s0;jL3j9t%? zm`aSoTi@ZkABaY$AME?-zJka^ISwEoeooOq`*;6UbYrlrvp#xWL~V8C0rUa*aP5w~ z;oVE#sp3;%7SMk1M&6ItEO_yyNNVr$xEWLzoaXd>!W`e z;v`Ohi%qpCWGuq;mJq&q$@z_x6rdu3Y03@%Q+YPIs)*;$UHiCYUT-cM{nr@&r#0II zlMVNkcGh@BNw5e&tqkBErMh5r zJYa4k-Z?6zV6*9vUo?Q>r|_`a`NuByzzzK*5@UoEBlChg?tOKj2fF4Ky4FpKT3cCc zZQ%jqlqYz;g~rCtx{s1J?0JrVjfx)b3_&YqG*rPVl2`4L?HZxQQ}+8z7MrKKk8Ia{s71^?}4 zUd10V2^_%f^K)Tj8D|AE+uccU@B3_&c#-Ju9kF0T?xuiQaKp{Ase%vu>(8`vht7?O zHH_9z`69#BTAUu>B*d~2T($F>noFKTtF1_Y-H%^&7}?~0TENg(Zr!*ChCA1(euL<_~D10<};V`!FG=8 zPxK2^qc$K6K!k1}Y0i`q8M1cOIa9jHy0{acTdJbQ#J&j5HR&RIeA6a%%jDQP)^2QA z0<-rMy-@bh2-*h#%EO-?Adsy=BcGs8IPr#%;{k!b95Iz(%g zgRjqJ%!l9u51a%Yux5DvJfhHcyuSEw0PbJ^Q>8Ob1h>~{zOw>a8cBd(6N%1kt`HHE zrv=(CzL%Rf-R=-Wm8VHng5M4n8}*_d&9O!0-mKkn6)&;xw_z%-JNACsPu`VplWEN;^c+x>iVzE7?c$*=ev-$$tj9Z8aS+o-> zZUs&o0C@D}@NbQiJ1jskZu zconr=6LYpL_TN56VXAZ6_W_{c#l&-NmEMwlriY}Ud0Dwfm{Pw_AH9*PtGwaGs7QgK z=Ej@&I~(&E0rlsAc6F5l@ggJp_9^&4Oe0MOaU|Ykdk@_`y;axaO&q!Gr|M9RjNUcw zfh9*=on1uFYhZ_>_Bk?Qv7o7V-33hnMsEo*($ca~sf>(lvUZ4T4Z|RE#Wq{WpyvdG zZp$`%5kcyarReBXN%&bwaXo14aPs*QThwq)(Sxl2+Vm{QAvr!T4QYeUQQcLv2)TKM zvlOM-xj1FN0;_tc;25a~tg_{yXs7!e`e9>R+G$x{BRJ`Sa~BKinkQ^<64I}mxxpuE z(wS5QqYvncY@Ra%4PRH=N+k@;Uu;?o4kD0&MycnoG*)lRR#nX*dhOk{Z-KU`M}c3@MP*{x3i?>v6|vVxyF&*lOc))kbaf~=LTcET!KVHnQ4HD<@zb`j7L$94w|e# zcJ-!NsPPs)fC-X_>SI-{&&z^}35T+7pN``F9p@uiLhxnKNtaklQS3%i}OnQAeyBcxp9B4ea96 zKP24?hgwyN2+kwP1Ii#S=|ozkfqr@v&6-1@1K5U&jS$E-Z$~Va{;YrfuZQuRe!V=5 z$bqLII0)i77(5fp%}Qswf`BktXYBWnZ4!DjAISPPY7WG~boi z0B{mEFnW?ykcc8HV z(5yiwAqvBo9vy}1+uOhUB)q|X+eOLPdBAt1tOO+x{2&)?IXkvUD(%P7HB_K-8eR?_CN)KN1hw(egH&nLHlo>}Vf8$T|?)8L6MrPm_`VmzJ z`JQH_zTul^ix3t#c-y_HV{ASaW-138uZ#B^5l72UPN&-PdbMV<%15XYz{u*D>xJVr z{RnkBbYUrZcRiSZ&7*NPHeMpcYY=`iaVX%?^PvP0efP?h!uPVXsUNQ4 zcyD}!E|72t8k#wFl@MeJ`6WwJQS0;Ph!8TeME=53OrsA!US`0%v-3hwm57N#0NgvN z_3a8a#k$P4^iwPRXenpEw?GyLSG)I7Nk%PqGm2M%Q(jPt<0FdJRn`NEqMzpMZMNCL zHT0BQQM^ZUj!Fhdvn601k;1S%)`=@o z-nTu(&f7g3lXeU59IlDc;y&5V+T$>y8m8b_fu89=fT*r9pp^8UJtHvy;NuS%1wz#m zYw(O(R$7U554o802MgjA_1~$y$fu3o5YDKw6&9M{aTH~}bh&5yfvya)l|_@eL^@w^ z&_6iCPL6ODu)8C8K5#W0hRz+>`>l(>qn9dNj3&0?Sldyhw9t>OxrVf;w5(2- zh*z7Wkk$6)#468a>Is^-*y$vzk=yBP5(WvQZQCOwekRqXTYhq>0(X!?G1Mq*`wI%&@4X9=)(Je(=7=16#ssl&dP$rX1|Qo+#F4 zaAY&v=`r3ttjyoz6UCf;%VozsUnk9Vr1>xXY$DS%Wlo}&TS;NNa`x|2rfb))dykY8 zUGJYiZ)D`yd+y|k6ZE~h2GdHtX{9!eRK)OO+R~gccDL~DS%UXw=g66ik$n{Mg?jMGwO~; zqkmqvs#(nPQr&y?tS@~EZr_k3EFmG%^o|^O=z^UGc+8l!j!U_mHla>{><#4`Y}iKJAF9^;fjph+tUa{jUjUM z9crB%5RloQ-@XkGvkFBsGNQ9V9NF#Eht}6031g4t^J4Apjwthg#+8@_q84DyOYc*A zd(t^)`V+4r(?rzS*w{EMs+|VmXxILq%J7`xyy>5rE7+Ky3$I>X6pI#5-^7zwW~cbQ zC@A}SPlTAc%@J|SzaSx+8SHE~GB5AlJ5e(Q6jbO zNM5hPGBH-!!qn!gx9}qf!*f{ z5{y5c!N0rNL1BG(`Wyh%BwgISz}j|XW#=o#eA$@gRCJuUMS`$GgZtPO+2|K9#mvhr z5`}NoSk*f9N8i1RGvjHMT?^$0lA$DlpQRx`19Jg$X6#On-`ZY%?kTo&wP*aV{cixam?977*t_5H>71^ ze0_J8Ek8#HLtqO(!zt0fhp4-=FIl49<*FeP{gmzGH2SAcl>)is^uj;w3#)|qj#SzY zuij<=m+9~o&a-;`lUf@^%m44UxXYA%h&+vNeNs|y8mHX#H_^|2O}8GHW=Ia5wGS!p zp89(v2wK^qbG@~AW1}+P+TSR2s`eSu1=b-X#>8Mf`TO7?QWw7a7!6O4JKiAxqD^aT z!XXvDBFh(5@cD++!0v3XO=NMg;Dg|8W7}Yj6GC23{l|Rby{>?dLlzcR@N?>7&L18Y z(0$DUor=Eg;E*B+E{Hs@aVeZC27htfX}cL48$t!;CuF46nF~+g^*UTXb}4-Ppda&W zZM2rh6i&f}iZ&?>|IFwpax8Rh`gfs*li%HM8}psKQqmirvPdl!0VUERpVgzN)R^^S zu1)w&e`jWnUGs1~`y;1?@!Ax@bzO=yT^&+tJ|8+wgLWBGh|j8XuE*n@9nU*DdQ2X!)OY4)u6f(F-;+3=PP>?8 zIRZc6Cu#Kq^6Z>5t_dOIe8r5;QoH@1Pm-%B{P026bt1TwVC*(LU1r8~Y|Lxds){Rq z24}25Kh91o!o;o$Ij>GeGR3>y_x5h|t#w^@d-3H9QrGKOdzT`>9MzP}#T-xwCc$b^ z-#sm;CnguY#s^eqxfD$UdSI~Ar^U>>GjD#{5o9%b_6&nuUq|XzSPX#wNthh2!Iql` zP{6!=)w!0P-AWv(8!-AlBt_5%on4C5$dZsJ&uH?+3PASO9?!Z;rqE(G8kr-S5x$Hsut057F(ipX`1x-FwFJov~XPQCs8z0$sgLIB{El9G}sLR>E?D5bkfJk@|+ zw55CSX?l9i8&kM%!*Cm?EhEpt5AFv%BP}gGJvqP0)OM=o`Saieq6inWKkz0g%T2?8 z185I%bS^3?B(oRoY95CxVGpGdNVvijwYZ_j5=OqHgoHYgp2KVpl{KoMBz`*05 zr`jW#g01|p9!MR=GjVavB*j@**MFxBsk?o=#4N_a`;kmBF-=%HU>Xv4ndVnOX#kZ1 zHfMYjUv7tMct5_fw@2Vj-L+wuo`9GM6cz~ym1gnLg6ylYNlNl?SRW%43V1ffRJ&Q2 z3A}z~T5QLV++Ap1R)4V+T9;JFH2U3JhYOs^)V804yk+XR%52*5i%#B8Sz{mBwh z$gP^-ZKwXY(nietw?6wd1mi@mI}CZJIHUvxb09BIJ_mq}O+PJ^{Y<3~f|k%6m<@*{(%DTT<=4RdZinhwsthWDBxS zHS`Z?D0gw%vNzY~dfJZut!r3va$LiCMW1i)#^qdp9H#{Q+P+AXMwZ^4JC7f07#YQL zs;x!bEWgTE_0ZTjfk)st7!N~Jn7Ish&ittEt~>MKeS?+plbN0r?L>kn3lO1t|Gw75 zsUGptKYx-bjh}CzLGCU~9-nGS$yV~CzZCeA^KuWzQAEVrTJlKibw)=0+{wBJ0VNyq zu${8RKwx;~XDDI#@Are9rGLE%>2oPJgwzv^=O@RyL!Q;r((&`n%tYrGWXbd1Xy2Wk zpXY{bbnzl}Z5xe``m}jziirS18MgQp6K_Gs>oRdFje?~5AUzJ2eW!$+Sk zQE|Qd5Z_nDpKr*TQC=ovO6S{t(KNi4aZcb-2?C=~wN<$}ZiN=`<{hJ~PBcF48V)NB z&Rtxz_FNi@5*AzSuiF)&4;pQPI{O1*#;|mHN4=zH{v~ z)D{{>mP(VNu#kLdN2|KfnbWh0&efUyE-o5Qn;+Es(n}=6_I%N?9P>h|<21s;(-Up> zW-;0c%j31MYEmE#(2#g@;7G+jC?IvwHd$Vw*-1PHlg2Rh>d=oaM;ObQ{&r(VO#TV_(3RN``^STXVA* zH8HW3UbxQ7!YuhGO%m=i2&SL*r48X!0btwMgq3w5XS*fM@IOzIUtGMq%cFvT9&Y$S z`v%kkT#4rS&CO4{M#_wAgCAeRYx7>*RtjyVyJ}GBaJF!9@pt;1w*nV4!(eL|r+kH# z<}lJML$W1!$&(j|2xef}@63i98oIm3U(q;!ewzp->9JiN`}~+p0wLn#$Bw;=r5U)K zjEo%p)VE)J=ilAb;&xonLz@)6QC8d6f3DQsj5*7xU^{i<$?D`;PV)*4a2Y~J!DXl` zUIx0W{Vnf~Zg1RG=jYF6+B|WxqjRLJ2fHy+uFH1Cs@$sDN#o8PAD>bC%9UGoCo5NS z)9XU_LRQa@xi>bVA$!O_?g-vc@A9doS#IFkOEFi_-C8(-Zk!7hSZ=wA^&<4fCU_3c zeCa}{la55i+%^|POyaC&EJF7L@UeJRurpQaCS_!#q@-!GUAe-;bN&w7g$v*>`d~DPWK0u1 zpC)DB=(|nOkaZm{9sPXGsN70^YNAHO2!pJ38!au`T%`q+)5OChr<9PdUXK)C6Wci` z_#aO1MNhWc(l20i^%qk66D#@+6aneWhIOX{DN6$*p2))D3Y*pvp88@IN zG+s4No&qzF-hqMs{+_`wo}-c{9R!RUhL12wi4n33&n$l0HQBx0Kj+s@;M5*&3K*?mQ7c241CL&nmDSY5a>US|b)9TB7T`nSoKi|0Dx%|8{`ma4 zkslqM<>?znpDr}Z)T}%!A6RUEUBE}qBY3Yec3?meNE7wxRUH=0z)ErGK+paq`u0hz zV4+KQwVCwNQ%eV1_+2@6oV{YwxYhXi>8(w-&p2 zV?Z~}AGUt*%~L*WXb5IbT^!UndD0nOY#m;)Sm4{s-R9?)o4iq7)bd;1m~1geR^7W^glrRO%cAoxEVqVG_RgBg zI_S3_tV%un{Fu%tO|;e(Q(g*g>zbEc=ode{R(!O6uKqp4FR5+UO8tAwXL+X z5B-1&=y3jWU4UERwu2n6@-DFw3@?Abw^8-yy#KgY<+mR6yo=Mzy_IFg`_*8CM)*zK zi9EV#(M-+5^)4!9^*ak|{N?IrgXt0)U%y_v_TfX58v_6rsuU@0T4OS3*@P-A2bQLR z(NbjT*R}k^P`el@snx~7G_jbnk+`^O=YUaTal4;mD0#dZbls!_6gmlHd*8I?#HnJV zQu7roE2hk{Equ09!>n}DTfHT?nd$M~2I!0j2XEfgVAlJD*OwtX z=N@Ek>|mvur;qk?{|n|CehYD&@~&(~)T7Ea&j}|E!0<{NMb7UNLCHTQW^}r3o}CZX zl6SlAk<5$lMutgQx(@Xm>4L@zG-3>rCP(SVU>1t3>RwMK;|m!psCf= zOJ840%j(Kt1kHo@ixU+ONA6#eCym-eR|6&Qp8@u}@8MVtYTPYb6pbEVlagRo?ABrO zYU$XU3_%cb*6m|+;{go~@7^aFB-ENkdGPnM+eFrF!uEt8zxIV%m!Wbjf1-j^D)P@t zAnMIYWt&O{sq4~iBVD|Sm+sth|06$jtPGk1M;`ONu+2~U9g+5xKQz#-VGxVT5i?db zA`p5Y;oO(5#e4tt;=vAOiaHsRSnP*y4a*I;qMW4aa7cm`6&oK1%f(tfu;yjE^Bnn4 zyLMKvUtTW0=DZ@?G|!H!rCpQyea*i0Fp9SoR9-y}F&py;I(qNk1(p5X9=C{%Tg?W% z1&PBoB3@N8J~O;?~Kdjo2~))Ebwe zDn};va{@xSs$qu>r19NYvDGal=)y2~bX6y5l0y2wJdIa;Ve{u;3$`~uSP-L?fROW8 zGR|*kcyqDT)CV3*Ubd{)-_Oi(pzPa+XUaqgt4+D1`!Tkh0QKrBnYuNE&xNl&2YXh` ztdW0A3zEYKwZlA=ljiy$^X+@5ipmgdTxI*G?%X-HbPe?=eS|_t-R4+p#fpFb!t(M@ zy?hVs(XP53-}-eYKYe|3_Wz-ZLX;eEbSHgH)n{hLDUaPR6p!XQG zG_}5v1=zY?oXic|0p%jMzhb|CD|98|%WShua+Y{ikf_%J^G~@WuE;9bhnWTRROR)% zRfcV2zC~)B<*ajGI?ZI)?WCbb+3Mf`W!8#`|IwcL%-lTT59N%^A5)JWWE~w2trVSZ zuUy8V9)Ismdzg>%XJk}x9C!!Tj+EJC`YjsjuTIe)XOmU;?>>A-NRB$Qw>#@H6g@MG zt!p{(#I0Pf8Y?p|O?&qHBbDMceLMf~aAE?%6)<1#fo%!NRn;iBh7tvdMkU^)iS^mj zr<IgOJPZ9N_*6-SO zbj?eG=x~Z@#ze~jt3mT&)#i)htV25L4px3DlmyAys(%vMwBg9CjtXQ^{Zq+17%*y9 zVq8FP^ym?oQYTf<8d+@|`RFjN-ZlSlx7HQJT?b{fyRYLpGbFR+6BjGnc9zG$bYrPX zw6)jztc8Pe0B(>IN7gwK{TeR_(xm{Pv2bmRafeQToy8r$8?N#cy zTh5J;y3fC!hzMWZKinL(htHhOmvsx@zyB$x*#BUKJhAypooe&;vsEpp7x*0cCPmD= zll36b`1lc_1SPP6oSx{z^2kVbrol4Hr(L~ggtr|QLpB_6D<@@}56|C@WJFL7N=1zX zTU5vsUAzXlXlN^8>YA{sz^! zz-_=RT`E_WSXvqVA0pHXSaL>thi}G{0$*6!snT9$5-$!}fDfop4%9Z!czv5ibJIFJ zQ@i%KD^cyL&Z17&to6XIHF1CkUV8f7#i{D)uyL0Dc83Qogw7k5vHEfy> z+Z5Cf#d8-V@VO25%_*#1w40;}nmcbM0NT7}n#lLn&9?Q|>#}O$q12;nrM*nt;hqMk z+*-8~v~t+2HFUlgq@-1L{&c_14K?0ct+tY2pUR@8o5nf)yd<-*J(`_$SR62OqNuEh zwzX4N38;1Tk@KoR{y?pUZw(6N&aDKRk@AI7Ce6#<$>6bGG3nx&irYg5@mG*ys+M29 zyOX{=Ez%Dl*&3!EhE`k759dZlOFJH|1ObLM-=kn3z2|!y{fhK%5`;mXFrTkEHT&-_Z<{1`Mtl8!-@+Dw#9`4BwjWz9ZwPghr86>dj{`GL?TUcNI?$aSLO0VgDj zDkv~N(Ku9u;ig(~GXuLqFeZFyrB+Cj3T^DAF(frTD$ttn+;q zNYnE7q-vUJTZa?t!y^3hl;HV``s5W|mf#>4hP(hbGl5!n*i@KGNcz!0rR~AyK(!OZ ze!!%Ktx{Aag!!`clUII2`7`^(%9fCNFQ}&wK{V6tJcmVzF$UQ*z!(8lfRg@v`5qPH zG{7TIa`jp&UI+0pab(F;sv#;P0Laf*ux+$xvk46)j&xk6ZA%t!QF0s6<~_^nIc#XN z)I*FlP=y3Z{Z0QOuVf4WE78oXEer_p)uR ziaA33!R&rD_1!z)c~R4=NSj9Ua>al*RJ;?KOUCKXjcvEpQohRd9!2`9JR_GL)fwb) zIkwEQFTH8tLIgAkqS0BlEaaePI7w!J|8?XB0^B;&w)FkSs#e>m%Q6F~wWugtW=A}a6wn~05dOXqPe(c?s5UaIsVvp!tmKm16LxPQ%<%o4CLNg!a?H|d%;Y; z3dOz4DMbW+bd-peH0b^!jf2#-SKImjA(K251wFQD+q8DQwZfL+Z1B3~cBPc0tzy{z z$NPld6zvOVuhcvntjNY1a7I|%$nx{8s*3JRgdgo`^UiAnRkUr2RUiM%Ci>0Ds=?dRI(SV2kgQE)*c0(XU`r!3&ygV(5u&cb=@^jk;lVGn{E5m(4SrR8z`4Rg z0fB5K?XC5$0o8-G?^-HEj;CF|M|(x2z?aVJRVxuG$);)k^UFI0+T`W2CJbcBpjJOS zsPegm-QMBm-sZObZb#f@-tgUhVyNoQiiw5izbJIhXtcsL{UQC@$-TYCMhHY>wM9P2 zyWUev?a9QKmqQJOFWXTtOOPwwfmB^KFgLfd(qSAVVAPIwaZrMrxZ8@_`VXbm(4EU~ zdmN-2Ti-k6|$OU5nbnD{beS@K2CK!#lTna z`l6?NkQ{hKx*gJ2ux4or&dinN68tpCEfQrW)~j{N#>cRpUpsJhvMO@%B?~ki%FK8*C=7t|VrLv|e<_N`SM{aogLEz)nFV}qz56=iJPW{W zUjAMUK7I=yLg^%3)mOa~Hmau;^vIW>VX&Kg$Wm82N!lrQ$CfML-yXt(g&PCI7{745ceAjj3(VX}I{Bdh|%Sbs24Asq zMgfO0dPvIuFlB)dImRA7-%JhHFEt~>fGJ}QhTE#%QY}A3QkKCI3yVvjBt@C~ORDoY zrul=A4$u6lwe1|lI-ov1dv6HNaj>Dg`U+R{62L%P|n#jmBa`NK0&;V3F#sQ z#|>Rh00X<=EuDdbih>M9K&$Km3pkQgRh9o}-bdQz+8I!3$x-K_2};!Ej@ZNpSb$n; zdkAdmlOEVQiiKEl>R2<>x%bQVWpYzZa7z>O?f)^M7sYmn@=srr7QpUpBq6ZQI8YTm z&gNyDP16Wr+!4C`0HH3e#%gE?CECJ<0U_ZcQr zG**V3Zf<_{Y6?DzJAQA#NlxgxxP3*FDJ<5L2vX@{CA!?en3sOwke{t5>FdkB^nVm+ zNl8-{SW$k|>(tlN81%OLKj9ywo&%~s8$y+IMW;9Hk7cz-|CG^0VUPfI8tVsz&~{u^ zm7Len0%xn_{4vYC;|`8dE~W^m9d(Ofd7AWtZQikh^B`RxIP72e9u?2IZ{Kj-Bk>J$ z#I1XdiJhR;#Qgppez4LnAG5sE-277y*AKo0VDDIupLcXv3&5AxN6#sKOt%rj;BKI- zr!nx*#dG-T0blwPY?Tf95U!IaLDwD`DIx+^Txe>5(BupM`L{iD!AszLxZnWR$}GH>HL36 ze9d3a+mG^y^K?K2+(*G(F17>KWpC)cU*qGq;oLuiP&9+0Y#sN>RNDf2{MVO=w{MYR z=dM`Qx~2$f`1shOTB)kXYDe^b0cZi0Z+jO0$7`7ydN2G;;MU@PV3z{=D0GTYK>d{2 zXahdIXq%bAIf@x6_Ndy?SxDeK$eyY+xn4B-Pd`0>@}D@Bf3OAiSM=o}I(G_{AuJoP zJ~L`BBr4wQ{dM>L0;nBH+9FXDATo7#xrM_1wmQGqS8bN6bnG1d}r=0ZOK`%9)vlwIU}VygbZdJFqn42;W~pF z5iEL;=YLskDT8Je^3UbK==`BMN1hsJd_+@pP_){^|Kis#SIm1^e#X-!=H)IXU|EN> zBhvI5C^AMz$IiZeS>+g`_bD&$^9|_e1pwe;E|pcw?FNZW8EFJ`%iPU;WN%Z0y>F}< z6?p#Qf2#Xi%=^p|uaw}d_|2~j5Dux4u%kHRUgn6PeHXM;>o43nFK6kK3{jEiBmZfP zs$eO~(5IFV*2qW<5`#=5jnhO3bq|2~6D1g*{iWmEKx@3^U$ni-HXDA_o>&nxXw&RB z1-=%tbHPyU{xA5S6?5X0kR}gEb{B5qKYYNHPWi@?6lo)vEiF0a!?!Pj4ETFlRzZa} zp}7MZ(@S!3e&0^uWPLa^)yc$BKS3eC$q*@_^j)8{pMhsjmpuGprvffQm1C*JsI3^_ z&CocT!K7AvU7a$Z{Cx@T{BZr`exDQsESLF_--euvtmdQZK_Ijh|aOD8x5rEH>X>wa!Qg%phJ=3GScip*A z2eHAiN329FUV11V6LUZ&R-6Pbou;Cx`jT5!yOlN^bBfnS&z@PyFa_VNvB^G+>@!So z@V%5H1PI6 z35)IAIi7?E$w25!@waXuA>1RlOz0;6B2N)Lg@Wi=U?--Dpo(UZ{{3-1tE2Pk1O!?E zs*Djj5Qq{Ko%7&26^$|8Q#sKJa0B%Uuw)b4Tvd7KK+Z{~p!y1I&MpmU2%6l!eH-{!aRIWbo8^k8;g=V}GJY#om%o}AXmJ%i7{b}D=`8}!u2nX6ACwBFAd@#Y61c5V z>Dnjs1bNO!Ct8HD9Z&r`tcyx!YTMU_R#mySg(Em57d@4N1pUF1D3=i5#ES4=t$EYS zW40(TdJYdi?Emhbl-Q{V={LL{e zeRC1wnC`i^p~cGkO6px7%+yg|Fmi6@0N-%l*VNa^nM_J*NPhQY0&1h=>V+5$ zJF%{Keqb%oH?buYQbdwszkXqX=L>p?WNMJL_+cwoFh|M-d|U|4B~;E?hq z9KE>9_m*JHPFfm#2>=zOCZa;yL4t`nFhn`|T7xe(cVjgWhy^!Exl~q&z)b5K4kT5H2o=u0+3HLHjIuzY6;S i*v3cFdpetbDou2-ziQM@tpFJ2f%}^J8WndRz4$-!j8&un literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/ic_med_spoon.png b/app/src/main/res/drawable/ic_med_spoon.png new file mode 100644 index 0000000000000000000000000000000000000000..d4de78294d34babf49c21c87f65db0ab42b1d10f GIT binary patch literal 16037 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/drawable/ic_solution.png b/app/src/main/res/drawable/ic_solution.png deleted file mode 100644 index 8ca3a1364c9aa98f8354f1383016cbf85a285ee6..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 21837 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_faq.xml b/app/src/main/res/layout/activity_faq.xml index 240de0e..c2d4001 100644 --- a/app/src/main/res/layout/activity_faq.xml +++ b/app/src/main/res/layout/activity_faq.xml @@ -25,7 +25,7 @@ android:layout_marginHorizontal="15dp" android:layout_marginBottom="5dp" android:fontFamily="@font/nunito_medium" - android:text="@string/faq" + android:text="@string/faqs" android:textSize="@dimen/_18ssp" android:textColor="@color/black" /> diff --git a/app/src/main/res/layout/activity_fua.xml b/app/src/main/res/layout/activity_fua.xml index 9bdf4b8..11cdc16 100644 --- a/app/src/main/res/layout/activity_fua.xml +++ b/app/src/main/res/layout/activity_fua.xml @@ -33,10 +33,22 @@ /> + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/connect_caregiver_fragment.xml b/app/src/main/res/layout/connect_caregiver_fragment.xml index 34a3a78..ec825c3 100644 --- a/app/src/main/res/layout/connect_caregiver_fragment.xml +++ b/app/src/main/res/layout/connect_caregiver_fragment.xml @@ -168,78 +168,4 @@ - - - - - - - - - - - - - - - - - - \ No newline at end of file diff --git a/app/src/main/res/layout/home_bottom_nav.xml b/app/src/main/res/layout/home_bottom_nav.xml index 32b5b53..0cb6eb1 100644 --- a/app/src/main/res/layout/home_bottom_nav.xml +++ b/app/src/main/res/layout/home_bottom_nav.xml @@ -65,6 +65,7 @@ android:textSize="@dimen/_11ssp" android:maxLines="1" + android:singleLine="true" android:ellipsize="end" /> diff --git a/app/src/main/res/layout/reminders_fragment.xml b/app/src/main/res/layout/reminders_fragment.xml index 7ffb9d8..05108d2 100644 --- a/app/src/main/res/layout/reminders_fragment.xml +++ b/app/src/main/res/layout/reminders_fragment.xml @@ -10,7 +10,6 @@ + + - - \ No newline at end of file diff --git a/app/src/main/res/layout/routine_fragment.xml b/app/src/main/res/layout/routine_fragment.xml index f5193f2..63ed7ce 100644 --- a/app/src/main/res/layout/routine_fragment.xml +++ b/app/src/main/res/layout/routine_fragment.xml @@ -10,7 +10,6 @@ + + - - \ No newline at end of file diff --git a/app/src/main/res/layout/routine_viewholder.xml b/app/src/main/res/layout/routine_viewholder.xml index 319b8c5..cf4bbe6 100644 --- a/app/src/main/res/layout/routine_viewholder.xml +++ b/app/src/main/res/layout/routine_viewholder.xml @@ -13,7 +13,7 @@ tools:text="7 AM" android:fontFamily="@font/nunito_regular" - android:textAppearance="@style/TextAppearance.Material3.TitleMedium" + android:textAppearance="@style/TextAppearance.Material3.TitleSmall" android:textColor="#131313" android:layout_marginStart="15dp" @@ -28,8 +28,8 @@ android:layout_toEndOf="@id/start_time_static" - android:layout_marginVertical="15dp" - android:layout_marginHorizontal="15dp" + android:layout_marginVertical="5dp" + android:layout_marginHorizontal="10dp" app:cardCornerRadius="15dp" app:cardElevation="5dp" @@ -48,7 +48,7 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:layout_marginVertical="15dp" + android:layout_marginVertical="5dp" android:layout_marginStart="15dp" android:weightSum="10"> @@ -60,7 +60,7 @@ tools:text="Doctors appointment bla bla bla blaaa blabla lbal bla" android:fontFamily="@font/nunito_bold" - android:textAppearance="@style/TextAppearance.Material3.TitleLarge" + android:textAppearance="@style/TextAppearance.Material3.TitleMedium" android:textColor="@color/black" android:maxLines="2" @@ -91,7 +91,7 @@ tools:text="Meet your heart specialist Abraham at 4:00 pm" android:fontFamily="@font/nunito_regular" - android:textAppearance="@style/TextAppearance.Material3.TitleMedium" + android:textAppearance="@style/TextAppearance.Material3.TitleSmall" android:textColor="@color/black" android:layout_below="@id/ll" @@ -104,10 +104,11 @@ android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" - android:layout_marginVertical="15dp" + android:layout_marginTop="10dp" + android:layout_marginBottom="5dp" android:layout_marginStart="15dp" android:layout_below="@id/description" - android:gravity="bottom" + android:gravity="center_vertical" android:weightSum="10"> diff --git a/app/src/main/res/values/strings.xml b/app/src/main/res/values/strings.xml index 8d505e9..61b5149 100644 --- a/app/src/main/res/values/strings.xml +++ b/app/src/main/res/values/strings.xml @@ -201,7 +201,7 @@ Enter allergies Enter diet restriction Add - Patient Activities + Activities You don\'t have any activities reminder. Add Activity Name of the Activity @@ -239,7 +239,7 @@ Something went wrong at Caring for a loved one may be\noverwhelming....\nLet our app assist you! - My Patient + Senior Dashboard Chat Articles @@ -470,5 +470,6 @@ Close Your subscription has been canceled. You will be able to use your application until the end of your current subscription. Your app will stop working at that point. ,.?/]]> + Frequently used apps]]> \ No newline at end of file