From a45cca120d126bc47d40acce41406de8d726dc05 Mon Sep 17 00:00:00 2001 From: 14Sandee Date: Tue, 21 Nov 2023 21:11:53 +0530 Subject: [PATCH] , --- .idea/deploymentTargetDropDown.xml | 12 +- app/src/main/AndroidManifest.xml | 57 +-- .../com/app/simplitend/apputils/AppUtil.java | 270 +------------ .../apputils/BottomNotificationActivity.java | 375 ++++++++++++++++++ .../app/simplitend/apputils/Constants.java | 1 + .../simplitend/apputils/SimpliTendApp.java | 17 - .../activities/CaregiverDashActivity.java | 72 +--- .../cg_geofencing/CgGeoFencingActivity.java | 2 +- .../chats/ChatFragment.java | 42 +- .../chats/ChatListAdapter.java | 4 +- .../chats/ChatListFragment.java | 8 +- .../app/simplitend/chats/ChatsActivity.java | 52 +++ .../chats/ReceiverViewHolder.java | 4 +- .../chats/SenderViewHolder.java | 4 +- .../chats/SocketHelper.java | 12 +- .../chats/mvvm/Author.java | 2 +- .../chats/mvvm/ChatItem.java | 2 +- .../chats/mvvm/ChatListViewModel.java | 4 +- .../chats/mvvm/ChatViewModel.java | 2 +- .../chats/mvvm/ChatsApiService.java | 2 +- .../chats/mvvm/Message.java | 2 +- .../chats/mvvm/Receiver.java | 2 +- .../chats/mvvm/RemoteMessage.java | 2 +- .../locationupdates/LocationService.java | 2 +- .../patient_dashboard/DashBoardActivity.java | 2 +- .../fragments/PatientDashboardFragment.java | 3 +- .../GeoFenceBroadcastReceiver.java | 6 +- .../PatientLocationUpdatesReceiver.java | 3 +- .../medreminder/mvvm/ReminderAdapter.java | 14 +- .../fragments/contacts/mvvm/Contact.java | 2 - .../fragments/register/RegisterFragment.java | 15 +- .../mvvm/models/PatientData.java | 2 +- .../layout/activity_bottom_notification.xml | 15 + app/src/main/res/layout/activity_chats.xml | 8 + .../res/navigation/cp_dashboard_graph.xml | 4 +- app/src/main/res/values-night/themes.xml | 7 + app/src/main/res/values/themes.xml | 6 + 37 files changed, 587 insertions(+), 452 deletions(-) create mode 100644 app/src/main/java/com/app/simplitend/apputils/BottomNotificationActivity.java rename app/src/main/java/com/app/simplitend/{patient_dashboard => }/chats/ChatFragment.java (87%) rename app/src/main/java/com/app/simplitend/{patient_dashboard => }/chats/ChatListAdapter.java (95%) rename app/src/main/java/com/app/simplitend/{patient_dashboard => }/chats/ChatListFragment.java (88%) create mode 100644 app/src/main/java/com/app/simplitend/chats/ChatsActivity.java rename app/src/main/java/com/app/simplitend/{patient_dashboard => }/chats/ReceiverViewHolder.java (92%) rename app/src/main/java/com/app/simplitend/{patient_dashboard => }/chats/SenderViewHolder.java (92%) rename app/src/main/java/com/app/simplitend/{patient_dashboard => }/chats/SocketHelper.java (96%) rename app/src/main/java/com/app/simplitend/{patient_dashboard => }/chats/mvvm/Author.java (89%) rename app/src/main/java/com/app/simplitend/{patient_dashboard => }/chats/mvvm/ChatItem.java (86%) rename app/src/main/java/com/app/simplitend/{patient_dashboard => }/chats/mvvm/ChatListViewModel.java (86%) rename app/src/main/java/com/app/simplitend/{patient_dashboard => }/chats/mvvm/ChatViewModel.java (97%) rename app/src/main/java/com/app/simplitend/{patient_dashboard => }/chats/mvvm/ChatsApiService.java (90%) rename app/src/main/java/com/app/simplitend/{patient_dashboard => }/chats/mvvm/Message.java (92%) rename app/src/main/java/com/app/simplitend/{patient_dashboard => }/chats/mvvm/Receiver.java (89%) rename app/src/main/java/com/app/simplitend/{patient_dashboard => }/chats/mvvm/RemoteMessage.java (81%) create mode 100644 app/src/main/res/layout/activity_bottom_notification.xml create mode 100644 app/src/main/res/layout/activity_chats.xml diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml index 191caa2..f53a877 100644 --- a/.idea/deploymentTargetDropDown.xml +++ b/.idea/deploymentTargetDropDown.xml @@ -1,18 +1,18 @@ - + - + - - + + - - + + diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml index 2b5a138..44db306 100644 --- a/app/src/main/AndroidManifest.xml +++ b/app/src/main/AndroidManifest.xml @@ -7,13 +7,9 @@ - - - - - - - + + + @@ -30,19 +26,28 @@ android:allowBackup="false" android:dataExtractionRules="@xml/data_extraction_rules" android:fullBackupContent="@xml/backup_rules" - android:usesCleartextTraffic="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:requestLegacyExternalStorage="true" android:roundIcon="@mipmap/ic_launcher_round" android:supportsRtl="true" android:theme="@style/Theme.SimpliTend" + android:usesCleartextTraffic="true" tools:targetApi="31"> - + + + android:screenOrientation="portrait" /> - + android:screenOrientation="portrait" /> - + android:screenOrientation="portrait" /> - + @@ -141,6 +144,7 @@ + @@ -154,7 +158,6 @@ - @@ -162,7 +165,7 @@ - + @@ -190,12 +193,12 @@ - - + - + - - - + - + - \ No newline at end of file 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 7a773a8..c5de240 100644 --- a/app/src/main/java/com/app/simplitend/apputils/AppUtil.java +++ b/app/src/main/java/com/app/simplitend/apputils/AppUtil.java @@ -305,9 +305,9 @@ public abstract class AppUtil { return returnString.toString(); } - public static String formatDate(@NonNull String fromFormat, - @NonNull String toFormat, - String fromDate){ + public static String formatDate(@NonNull String fromFormat, // mm-dd-yyyy + @NonNull String toFormat, // yyyy-mm-dd + String fromDate){ // 09-02-2001 try { SimpleDateFormat fromSdf = new SimpleDateFormat(fromFormat, Locale.getDefault()); @@ -355,257 +355,6 @@ public abstract class AppUtil { if (activity != null) activity.startActivity(intent); } - public static void showBottomAlert(Context context, - String patient_name, - @Nullable String content_type, Intent intent, - @NonNull View.OnClickListener text_senior_click) throws Exception { - - if (content_type == null) return; - - BottomSheetDialog bsd = new BottomSheetDialog(context, R.style.BottomSheetDialog); - BottomSheetAlertBinding binding = BottomSheetAlertBinding.inflate(LayoutInflater.from(context)); - bsd.setContentView(binding.getRoot()); - - binding.close.setOnClickListener(v -> bsd.dismiss()); - - String title = intent.getStringExtra(NotificationService.NOTIFICATION_TITLE_KEY); - String body = intent.getStringExtra(NotificationService.NOTIFICATION_BODY_KEY); - - switch (content_type) { - case Constants.PATIENT_OUT_OF_GEOFENCE: - - if (!getCgNotificationPref(context, GEOFENCE_NOTIFICATIONS)){ - // notifications are off by user - return; - } - - title = patient_name + " is outside of geofence zone!"; - String senior_distance = intent.getStringExtra(NOTIFICATION_SENIOR_ADDRESS_KEY); - - try { - double distance = Double.parseDouble(senior_distance); - if (distance == 0) throw new Exception(); - - senior_distance = distance + " miles away from home"; - }catch (Exception e){ - senior_distance = "Unable to locate"; - } - - setupBottomSheet(binding, - R.drawable.img_medication_time, - title, "Current location", - senior_distance, "Call senior", - v -> { - CaregiverDataCache.getCaregiverData(context, (careGiverData -> { - bsd.dismiss(); - if (careGiverData == null || careGiverData.patientDetails == null) { - Toast.makeText(context, "Couldn't load data", Toast.LENGTH_SHORT).show(); - return; - } - - AppUtil.dialPhone(context, careGiverData.patientDetails.phone_number); - }), true); - }); - - bsd.show(); - break; - case Constants.ACTIVITY_TIME: - - if (!getCgNotificationPref(context, ACTIVITY_NOTIFICATIONS)){ - // notifications are off by user - return; - } - - String routine_description = null; - try { - RoutineDetails routine = (RoutineDetails) intent.getSerializableExtra(ACTIVITY_EXTRA_KEY); - if (routine != null) { - title = "Remind " + patient_name; - - String start_time, end_time; - try { - SimpleDateFormat input_sdf = new SimpleDateFormat("HH:mm:ss", Locale.getDefault()); - SimpleDateFormat output_sdf = new SimpleDateFormat("hh:mm a", Locale.getDefault()); - - Date start_date = input_sdf.parse(routine.routine_start_time); - Date end_date = input_sdf.parse(routine.routine_end_time); - - start_time = output_sdf.format(Objects.requireNonNull(start_date)); - end_time = output_sdf.format(Objects.requireNonNull(end_date)); - } catch (Exception e) { - start_time = routine.routine_start_time; - end_time = routine.routine_end_time; - } - - body = routine.routine_title; - - routine_description = start_time + " - " + end_time; - } - } catch (Exception e) { - // do nothing - } - - setupBottomSheet(binding, - R.drawable.img_activity_time, - title, body, - routine_description, "Text senior", view -> { - bsd.dismiss(); - text_senior_click.onClick(null); - }); - - bsd.show(); - break; - case Constants.MEDICINE_TIME: - - if (!getCgNotificationPref(context, MEDICATIONS_NOTIFICATIONS)){ - // notifications are off by user - return; - } - - String description = null; - - try { - ReminderResult reminder = (ReminderResult) intent.getSerializableExtra(REMINDER_EXTRA_KEY); - if (reminder != null) { - title = "It's time for " + patient_name + "'s medicines"; - - body = "Medication Reminder:\n" + reminder.medicine_name + "\n" + reminder.medication_quantity; - try { - body += " " + reminder.medication_type.get(0).title; - }catch (Exception e){ - // do nothing - body += " unit"; - } - - if (reminder.medication_instruction == null) reminder.medication_instruction = "None"; - description = "Instructions: " + reminder.medication_instruction; - } - } catch (Exception e) { - // do nothing - } - - setupBottomSheet(binding, - R.drawable.img_medication_time, - title, body, - description, "Text senior", view -> { - bsd.dismiss(); - text_senior_click.onClick(null); - }); - - bsd.show(); - break; - case Constants.PATIENT_REQUESTED_DIRECTION: - - if (!getCgNotificationPref(context, DIRECTIONS_NOTIFICATIONS)){ - // notifications are off by user - return; - } - - title = patient_name + " requested for directions to home"; - body = "Current location:"; - String doh_distance = intent.getStringExtra(NOTIFICATION_SENIOR_ADDRESS_KEY); - - try { - double distance = Double.parseDouble(doh_distance); - if (distance == 0) throw new Exception(); - - doh_distance = distance + " miles away from home"; - }catch (Exception e){ - doh_distance = "Unable to locate"; - } - - setupBottomSheet(binding, - R.drawable.img_directioin_requested, - title, body, - doh_distance, "Call senior", - v -> { - CaregiverDataCache.getCaregiverData(context, (careGiverData -> { - bsd.dismiss(); - if (careGiverData == null || careGiverData.patientDetails == null) { - Toast.makeText(context, "Couldn't load data", Toast.LENGTH_SHORT).show(); - return; - } - - AppUtil.dialPhone(context, careGiverData.patientDetails.phone_number); - }), true); - }); - - bsd.show(); - break; - case Constants.PATIENT_REQUESTED_SOS: - - if (!getCgNotificationPref(context, SOS_NOTIFICATIONS)){ - // notifications are off by user - return; - } - - title = patient_name + " called the emergency number"; - body = "Please contact " + patient_name; - - setupBottomSheet(binding, - R.drawable.img_sos_requested, - title, body, - null, "Call senior", - v -> { - CaregiverDataCache.getCaregiverData(context, (careGiverData -> { - bsd.dismiss(); - if (careGiverData == null || careGiverData.patientDetails == null) { - Toast.makeText(context, "Couldn't load data", Toast.LENGTH_SHORT).show(); - return; - } - - AppUtil.dialPhone(context, careGiverData.patientDetails.phone_number); - }), true); - }); - - bsd.show(); - break; - case MEDICATION_REFILL: - - if (!getCgNotificationPref(context, MEDICATION_REFILL_NOTIFICATIONS)){ - // notifications are off by user - return; - } - - String refill_description = null; - - title = "Medicines refill"; - - try { - ReminderResult reminder = (ReminderResult) intent.getSerializableExtra(REMINDER_EXTRA_KEY); - if (reminder != null) { - - body = reminder.medicine_name + " (" + reminder.dosage + " " + reminder.dosage_unit + ")"; - - if (reminder.medication_instruction == null) reminder.medication_instruction = "None"; - refill_description = "Quantity to be refilled: " + reminder.medication_quantity; - } - } catch (Exception e) { - // do nothing - } - - setupBottomSheet(binding, - R.drawable.img_med_refill, - title, body, - refill_description, "Text senior", view -> { -// bsd.dismiss(); -// text_senior_click.onClick(null); - - CaregiverDataCache.getCaregiverData(context, - (careGiverData -> { - if (careGiverData != null && careGiverData.patientDetails != null){ - AppUtil.messageNumber(context, careGiverData.patientDetails.phone_number); - } - }), true); - }); - - bsd.show(); - break; - } - - // already returning - } - public static String getCompleteAddress(Context context, double LATITUDE, double LONGITUDE) { String strAdd = null; Geocoder geocoder = new Geocoder(context, Locale.getDefault()); @@ -627,19 +376,6 @@ public abstract class AppUtil { return strAdd; } - private static void setupBottomSheet(BottomSheetAlertBinding binding, - int img_res, - String title, String description_title, - String description, String btn_text, - View.OnClickListener btn_clickListener) { - binding.image.setImageResource(img_res); - binding.title.setText(title); - binding.descriptionTitle.setText(description_title); - binding.description.setText(description); - binding.btn.setText(btn_text); - binding.btn.setOnClickListener(btn_clickListener); - } - public static void openLink(Activity activity, @NonNull String link, @NonNull String title){ try { diff --git a/app/src/main/java/com/app/simplitend/apputils/BottomNotificationActivity.java b/app/src/main/java/com/app/simplitend/apputils/BottomNotificationActivity.java new file mode 100644 index 0000000..a7a975c --- /dev/null +++ b/app/src/main/java/com/app/simplitend/apputils/BottomNotificationActivity.java @@ -0,0 +1,375 @@ +package com.app.simplitend.apputils; + +import static com.app.simplitend.apputils.AppUtil.ACTIVITY_NOTIFICATIONS; +import static com.app.simplitend.apputils.AppUtil.DIRECTIONS_NOTIFICATIONS; +import static com.app.simplitend.apputils.AppUtil.GEOFENCE_NOTIFICATIONS; +import static com.app.simplitend.apputils.AppUtil.MEDICATIONS_NOTIFICATIONS; +import static com.app.simplitend.apputils.AppUtil.MEDICATION_REFILL_NOTIFICATIONS; +import static com.app.simplitend.apputils.AppUtil.SOS_NOTIFICATIONS; +import static com.app.simplitend.apputils.AppUtil.getCgNotificationPref; +import static com.app.simplitend.apputils.Constants.ACTIVITY_EXTRA_KEY; +import static com.app.simplitend.apputils.Constants.MEDICATION_REFILL; +import static com.app.simplitend.apputils.Constants.REMINDER_EXTRA_KEY; +import static com.app.simplitend.apputils.NotificationService.CONTENT_TYPE_KEY; +import static com.app.simplitend.apputils.NotificationService.NOTIFICATION_CONTENT_ID_KEY; +import static com.app.simplitend.apputils.NotificationService.NOTIFICATION_SENIOR_ADDRESS_KEY; + +import android.content.Context; +import android.content.Intent; +import android.os.Bundle; +import android.view.LayoutInflater; +import android.view.View; +import android.widget.Toast; + +import androidx.annotation.Nullable; +import androidx.appcompat.app.AppCompatActivity; + +import com.app.simplitend.R; +import com.app.simplitend.caregiverdashboard.mvvm.CaregiverMainViewModel; +import com.app.simplitend.chats.ChatsActivity; +import com.app.simplitend.databinding.BottomSheetAlertBinding; +import com.app.simplitend.patientprofile.medreminder.mvvm.models.ReminderResult; +import com.app.simplitend.patientprofile.setuproutine.mvvm.RoutineDetails; +import com.google.android.material.bottomsheet.BottomSheetDialog; + +import java.text.SimpleDateFormat; +import java.util.Date; +import java.util.Locale; +import java.util.Objects; + +public class BottomNotificationActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_bottom_notification); + if (AppUtil.getCgToken(this) == null){ + // no caregiver is logged in + finish(); + return; + } + + View view = findViewById(R.id.bsa_tint); + if (view != null){ + view.setOnClickListener(v -> { + finish(); + }); + } + + Intent intent = getIntent(); + + String content_type = intent.getStringExtra(CONTENT_TYPE_KEY); + int id = intent.getIntExtra(NOTIFICATION_CONTENT_ID_KEY, -1); + + if (id != -1) { + if (Constants.ACTIVITY_TIME.equals(content_type) && CaregiverMainViewModel.activityList != null) { + for (RoutineDetails routine : CaregiverMainViewModel.activityList) { + if (id == routine.id) { + intent.putExtra(Constants.ACTIVITY_EXTRA_KEY, routine); + } + } + } else if (Constants.MEDICINE_TIME.equals(content_type) && CaregiverMainViewModel.remindersList != null) { + for (ReminderResult reminder : CaregiverMainViewModel.remindersList) { + if (id == reminder.id) { + intent.putExtra(Constants.REMINDER_EXTRA_KEY, reminder); + } + } + } else if (Constants.MEDICATION_REFILL.equals(content_type) && CaregiverMainViewModel.remindersList != null) { + for (ReminderResult reminder : CaregiverMainViewModel.remindersList) { + if (id == reminder.id) { + intent.putExtra(Constants.REMINDER_EXTRA_KEY, reminder); + } + } + } + } + + CaregiverDataCache.getCaregiverData(this, careGiverData -> { + String patient_name = null; + if (careGiverData != null && careGiverData.patientDetails != null) { + patient_name = careGiverData.patientDetails.first_name; + } else { + patient_name = "Your loved one"; + } + + try { + showBottomAlert(this, + patient_name, + content_type, + intent); + } catch (Exception e) { + // do nothing + } + }, false); + } + + public void showBottomAlert(Context context, + String patient_name, + @Nullable String content_type, Intent intent) throws Exception { + + if (content_type == null) return; + + BottomSheetDialog bsd = new BottomSheetDialog(context, R.style.BottomSheetDialog); + BottomSheetAlertBinding binding = BottomSheetAlertBinding.inflate(LayoutInflater.from(context)); + bsd.setContentView(binding.getRoot()); + + bsd.setOnDismissListener(dialogInterface -> { + BottomNotificationActivity.this.finish(); + }); + + binding.close.setOnClickListener(v -> bsd.dismiss()); + + String title = intent.getStringExtra(NotificationService.NOTIFICATION_TITLE_KEY); + String body = intent.getStringExtra(NotificationService.NOTIFICATION_BODY_KEY); + + switch (content_type) { + case Constants.PATIENT_OUT_OF_GEOFENCE: + + if (!getCgNotificationPref(context, GEOFENCE_NOTIFICATIONS)){ + // notifications are off by user + return; + } + + title = patient_name + " is outside of geofence zone!"; + String senior_distance = intent.getStringExtra(NOTIFICATION_SENIOR_ADDRESS_KEY); + + try { + double distance = Double.parseDouble(senior_distance); + if (distance == 0) throw new Exception(); + + senior_distance = distance + " miles away from home"; + }catch (Exception e){ + senior_distance = "Unable to locate"; + } + + setupBottomSheet(binding, + R.drawable.img_medication_time, + title, "Current location", + senior_distance, "Call senior", + v -> { + CaregiverDataCache.getCaregiverData(context, (careGiverData -> { + bsd.dismiss(); + if (careGiverData == null || careGiverData.patientDetails == null) { + Toast.makeText(context, "Couldn't load data", Toast.LENGTH_SHORT).show(); + return; + } + + AppUtil.dialPhone(context, careGiverData.patientDetails.phone_number); + }), true); + }); + + bsd.show(); + break; + case Constants.ACTIVITY_TIME: + + if (!getCgNotificationPref(context, ACTIVITY_NOTIFICATIONS)){ + // notifications are off by user + return; + } + + String routine_description = null; + try { + RoutineDetails routine = (RoutineDetails) intent.getSerializableExtra(ACTIVITY_EXTRA_KEY); + if (routine != null) { + title = "Remind " + patient_name; + + String start_time, end_time; + try { + SimpleDateFormat input_sdf = new SimpleDateFormat("HH:mm:ss", Locale.getDefault()); + SimpleDateFormat output_sdf = new SimpleDateFormat("hh:mm a", Locale.getDefault()); + + Date start_date = input_sdf.parse(routine.routine_start_time); + Date end_date = input_sdf.parse(routine.routine_end_time); + + start_time = output_sdf.format(Objects.requireNonNull(start_date)); + end_time = output_sdf.format(Objects.requireNonNull(end_date)); + } catch (Exception e) { + start_time = routine.routine_start_time; + end_time = routine.routine_end_time; + } + + body = routine.routine_title; + + routine_description = start_time + " - " + end_time; + } + } catch (Exception e) { + // do nothing + } + + setupBottomSheet(binding, + R.drawable.img_activity_time, + title, body, + routine_description, "Text senior", view -> { + bsd.dismiss(); + finish(); + Intent chatsIntent = new Intent(this, ChatsActivity.class); + startActivity(chatsIntent); + }); + + bsd.show(); + break; + case Constants.MEDICINE_TIME: + + if (!getCgNotificationPref(context, MEDICATIONS_NOTIFICATIONS)){ + // notifications are off by user + return; + } + + String description = null; + + try { + ReminderResult reminder = (ReminderResult) intent.getSerializableExtra(REMINDER_EXTRA_KEY); + if (reminder != null) { + title = "It's time for " + patient_name + "'s medicines"; + + body = "Medication Reminder:\n" + reminder.medicine_name + "\n" + reminder.medication_quantity; + try { + body += " " + reminder.medication_type.get(0).title; + }catch (Exception e){ + // do nothing + body += " unit"; + } + + if (reminder.medication_instruction == null) reminder.medication_instruction = "None"; + description = "Instructions: " + reminder.medication_instruction; + } + } catch (Exception e) { + // do nothing + } + + setupBottomSheet(binding, + R.drawable.img_medication_time, + title, body, + description, "Text senior", view -> { + bsd.dismiss(); + finish(); + Intent chatsIntent = new Intent(this, ChatsActivity.class); + startActivity(chatsIntent); + }); + + bsd.show(); + break; + case Constants.PATIENT_REQUESTED_DIRECTION: + + if (!getCgNotificationPref(context, DIRECTIONS_NOTIFICATIONS)){ + // notifications are off by user + return; + } + + title = patient_name + " requested for directions to home"; + body = "Current location:"; + String doh_distance = intent.getStringExtra(NOTIFICATION_SENIOR_ADDRESS_KEY); + + try { + double distance = Double.parseDouble(doh_distance); + if (distance == 0) throw new Exception(); + + doh_distance = distance + " miles away from home"; + }catch (Exception e){ + doh_distance = "Unable to locate"; + } + + setupBottomSheet(binding, + R.drawable.img_directioin_requested, + title, body, + doh_distance, "Call senior", + v -> { + CaregiverDataCache.getCaregiverData(context, (careGiverData -> { + bsd.dismiss(); + if (careGiverData == null || careGiverData.patientDetails == null) { + Toast.makeText(context, "Couldn't load data", Toast.LENGTH_SHORT).show(); + return; + } + + AppUtil.dialPhone(context, careGiverData.patientDetails.phone_number); + }), true); + }); + + bsd.show(); + break; + case Constants.PATIENT_REQUESTED_SOS: + + if (!getCgNotificationPref(context, SOS_NOTIFICATIONS)){ + // notifications are off by user + return; + } + + title = patient_name + " called the emergency number"; + body = "Please contact " + patient_name; + + setupBottomSheet(binding, + R.drawable.img_sos_requested, + title, body, + null, "Call senior", + v -> { + CaregiverDataCache.getCaregiverData(context, (careGiverData -> { + bsd.dismiss(); + if (careGiverData == null || careGiverData.patientDetails == null) { + Toast.makeText(context, "Couldn't load data", Toast.LENGTH_SHORT).show(); + return; + } + + AppUtil.dialPhone(context, careGiverData.patientDetails.phone_number); + }), true); + }); + + bsd.show(); + break; + case MEDICATION_REFILL: + + if (!getCgNotificationPref(context, MEDICATION_REFILL_NOTIFICATIONS)){ + // notifications are off by user + return; + } + + String refill_description = null; + + title = "Medicines refill"; + + try { + ReminderResult reminder = (ReminderResult) intent.getSerializableExtra(REMINDER_EXTRA_KEY); + if (reminder != null) { + + body = reminder.medicine_name + " (" + reminder.dosage + " " + reminder.dosage_unit + ")"; + + if (reminder.medication_instruction == null) reminder.medication_instruction = "None"; + refill_description = "Quantity to be refilled: " + reminder.medication_quantity; + } + } catch (Exception e) { + // do nothing + } + + setupBottomSheet(binding, + R.drawable.img_med_refill, + title, body, + refill_description, "Text senior", view -> { +// bsd.dismiss(); +// text_senior_click.onClick(null); + + CaregiverDataCache.getCaregiverData(context, + (careGiverData -> { + if (careGiverData != null && careGiverData.patientDetails != null){ + AppUtil.messageNumber(context, careGiverData.patientDetails.phone_number); + } + }), true); + }); + + bsd.show(); + break; + } + + // already returning + } + + private void setupBottomSheet(BottomSheetAlertBinding binding, + int img_res, + String title, String description_title, + String description, String btn_text, + View.OnClickListener btn_clickListener) { + binding.image.setImageResource(img_res); + binding.title.setText(title); + binding.descriptionTitle.setText(description_title); + binding.description.setText(description); + binding.btn.setText(btn_text); + binding.btn.setOnClickListener(btn_clickListener); + } +} \ No newline at end of file diff --git a/app/src/main/java/com/app/simplitend/apputils/Constants.java b/app/src/main/java/com/app/simplitend/apputils/Constants.java index 6d3e99a..fcc9975 100644 --- a/app/src/main/java/com/app/simplitend/apputils/Constants.java +++ b/app/src/main/java/com/app/simplitend/apputils/Constants.java @@ -10,6 +10,7 @@ public abstract class Constants { public static final String PATIENT_OUT_OF_GEOFENCE = "patient_outof_geofence"; public static final String PATIENT_REQUESTED_DIRECTION = "patient_requested_help"; public static final String PATIENT_REQUESTED_SOS = "patient_sos_clicked"; + public static final String CHATS_NOTIFICATIONS = "chat_notification"; public static final String REMINDER_EXTRA_KEY = "reminder_extra_key"; public static final String ACTIVITY_EXTRA_KEY = "activity_extra_key"; diff --git a/app/src/main/java/com/app/simplitend/apputils/SimpliTendApp.java b/app/src/main/java/com/app/simplitend/apputils/SimpliTendApp.java index a500eb5..a3e6e60 100644 --- a/app/src/main/java/com/app/simplitend/apputils/SimpliTendApp.java +++ b/app/src/main/java/com/app/simplitend/apputils/SimpliTendApp.java @@ -2,32 +2,15 @@ package com.app.simplitend.apputils; import static com.app.simplitend.locationupdates.LocationService.LOCATION_NOTIFICATION_CHANNEL_ID; -import android.app.ActivityManager; import android.app.Application; import android.app.NotificationChannel; import android.app.NotificationManager; -import android.content.Context; -import android.content.Intent; -import android.content.pm.PackageManager; -import android.content.pm.ResolveInfo; -import android.net.Uri; import android.os.Build; -import android.provider.MediaStore; -import android.provider.Telephony; -import android.util.Log; -import androidx.annotation.NonNull; - -import com.app.simplitend.patient_dashboard.chats.SocketHelper; import com.onesignal.Continue; import com.onesignal.OneSignal; import com.onesignal.debug.LogLevel; import com.app.simplitend.R; -import com.onesignal.notifications.INotificationClickEvent; -import com.onesignal.notifications.INotificationClickListener; -import com.stripe.android.PaymentConfiguration; - -import java.util.List; public class SimpliTendApp extends Application { 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 b2acb23..c09f362 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 @@ -1,12 +1,7 @@ package com.app.simplitend.caregiverdashboard.activities; -import static com.app.simplitend.apputils.NotificationService.CONTENT_TYPE_KEY; -import static com.app.simplitend.apputils.NotificationService.NOTIFICATION_CONTENT_ID_KEY; - -import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import android.content.IntentFilter; import android.content.res.Configuration; import android.os.Bundle; import android.view.View; @@ -16,12 +11,9 @@ import androidx.appcompat.content.res.AppCompatResources; import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; -import com.app.simplitend.patient_dashboard.chats.SocketHelper; -import com.bumptech.glide.Glide; import com.app.simplitend.R; import com.app.simplitend.apputils.AppUtil; import com.app.simplitend.apputils.CaregiverDataCache; -import com.app.simplitend.apputils.Constants; import com.app.simplitend.articles.ArticlesActivity; import com.app.simplitend.caregiverdashboard.fragments.CgDashBoardFragment; import com.app.simplitend.caregiverdashboard.fragments.MyPatientFragment; @@ -32,10 +24,10 @@ import com.app.simplitend.customsviews.MenuItem; import com.app.simplitend.databinding.CaregiverDashboardActivityBinding; import com.app.simplitend.databinding.CaregiverDashboardMenuBinding; import com.app.simplitend.faqs.FAQ_Activity; -import com.app.simplitend.patient_dashboard.chats.ChatFragment; -import com.app.simplitend.patientprofile.medreminder.mvvm.models.ReminderResult; -import com.app.simplitend.patientprofile.setuproutine.mvvm.RoutineDetails; +import com.app.simplitend.chats.ChatFragment; +import com.app.simplitend.chats.SocketHelper; import com.app.simplitend.welcome.welcomecg.mvvm.CareGiverData; +import com.bumptech.glide.Glide; import com.yarolegovich.slidingrootnav.SlidingRootNavBuilder; import com.yarolegovich.slidingrootnav.callback.DragStateListener; @@ -48,7 +40,6 @@ public class CaregiverDashActivity extends AppCompatActivity implements private CaregiverDashboardMenuBinding menuBinding; protected CaregiverMainViewModel viewModel; private CareGiverData careGiverData; - private BroadcastReceiver notification_receiver; @Override protected void onCreate(Bundle savedInstanceState) { @@ -65,61 +56,6 @@ public class CaregiverDashActivity extends AppCompatActivity implements watchSubscription(); }, true); - - // NOTIFICATION RECEIVER - notification_receiver = new BroadcastReceiver() { - @Override - public void onReceive(Context context, Intent intent) { - String content_type = intent.getStringExtra(CONTENT_TYPE_KEY); - int id = intent.getIntExtra(NOTIFICATION_CONTENT_ID_KEY, -1); - - if (id != -1){ - if (Constants.ACTIVITY_TIME.equals(content_type) && viewModel.activityList != null){ - for (RoutineDetails routine: viewModel.activityList){ - if (id == routine.id){ - intent.putExtra(Constants.ACTIVITY_EXTRA_KEY, routine); - } - } - }else if (Constants.MEDICINE_TIME.equals(content_type) && viewModel.remindersList != null){ - for (ReminderResult reminder: viewModel.remindersList){ - if (id == reminder.id){ - intent.putExtra(Constants.REMINDER_EXTRA_KEY, reminder); - } - } - }else if (Constants.MEDICATION_REFILL.equals(content_type) && viewModel.remindersList != null){ - for (ReminderResult reminder: viewModel.remindersList){ - if (id == reminder.id){ - intent.putExtra(Constants.REMINDER_EXTRA_KEY, reminder); - } - } - } - } - - - try { - String patient_name; - if (careGiverData != null && careGiverData.patientDetails != null){ - patient_name = careGiverData.patientDetails.first_name; - }else{ - patient_name = "Your loved one"; - } - - AppUtil.showBottomAlert(CaregiverDashActivity.this, - patient_name, - content_type, - intent, - v -> { - // here v is null - binding.bottomNav.selectMenuItem(MenuItem.CHATS); - onBottomNavItemSelected(MenuItem.CHATS); - }); - }catch (Exception e){ - // do nothing - } - } - }; - - registerReceiver(notification_receiver, new IntentFilter(AppUtil.NOTIFICATION_ACTION)); } @Override @@ -158,7 +94,6 @@ public class CaregiverDashActivity extends AppCompatActivity implements @Override protected void onDestroy() { super.onDestroy(); - unregisterReceiver(notification_receiver); SocketHelper.getInstance().closeConnection(); } @@ -369,6 +304,7 @@ public class CaregiverDashActivity extends AppCompatActivity implements careGiverData1.caregiver_xid + "", careGiverData1.patientId + "", careGiverData1.link_id, + careGiverData1.patientDetails.id + "", careGiverData1.first_name, careGiverData1.patientDetails.first_name, sender_image, diff --git a/app/src/main/java/com/app/simplitend/cg_geofencing/CgGeoFencingActivity.java b/app/src/main/java/com/app/simplitend/cg_geofencing/CgGeoFencingActivity.java index ba64b26..fa9fa6b 100644 --- a/app/src/main/java/com/app/simplitend/cg_geofencing/CgGeoFencingActivity.java +++ b/app/src/main/java/com/app/simplitend/cg_geofencing/CgGeoFencingActivity.java @@ -33,7 +33,7 @@ import com.app.simplitend.caregiverdashboard.mvvm.CgHomeContracts; import com.app.simplitend.caregiverdashboard.mvvm.models.GeoFenceDetails; import com.app.simplitend.databinding.ActivityCgGeofencingBinding; import com.app.simplitend.databinding.GeofenceBottomSheetBinding; -import com.app.simplitend.patient_dashboard.chats.SocketHelper; +import com.app.simplitend.chats.SocketHelper; import com.app.simplitend.welcome.welcomecg.mvvm.CareGiverData; import com.app.simplitend.welcome.welcomepatient.mvvm.models.PatientData; import com.google.android.gms.maps.CameraUpdateFactory; diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/ChatFragment.java b/app/src/main/java/com/app/simplitend/chats/ChatFragment.java similarity index 87% rename from app/src/main/java/com/app/simplitend/patient_dashboard/chats/ChatFragment.java rename to app/src/main/java/com/app/simplitend/chats/ChatFragment.java index d8369ba..0a49ae2 100644 --- a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/ChatFragment.java +++ b/app/src/main/java/com/app/simplitend/chats/ChatFragment.java @@ -1,4 +1,4 @@ -package com.app.simplitend.patient_dashboard.chats; +package com.app.simplitend.chats; import android.os.Bundle; import android.os.Handler; @@ -16,18 +16,23 @@ import androidx.lifecycle.ViewModelProvider; import com.app.simplitend.R; import com.app.simplitend.apputils.AppUtil; +import com.app.simplitend.apputils.Constants; +import com.app.simplitend.chats.mvvm.Author; +import com.app.simplitend.chats.mvvm.ChatViewModel; +import com.app.simplitend.chats.mvvm.Message; +import com.app.simplitend.chats.mvvm.Receiver; +import com.app.simplitend.chats.mvvm.RemoteMessage; import com.app.simplitend.databinding.ChatFragmentBinding; -import com.app.simplitend.patient_dashboard.chats.mvvm.Author; -import com.app.simplitend.patient_dashboard.chats.mvvm.ChatViewModel; -import com.app.simplitend.patient_dashboard.chats.mvvm.Message; -import com.app.simplitend.patient_dashboard.chats.mvvm.Receiver; -import com.app.simplitend.patient_dashboard.chats.mvvm.RemoteMessage; import com.bumptech.glide.Glide; +import com.onesignal.OneSignal; +import com.onesignal.notifications.INotificationLifecycleListener; +import com.onesignal.notifications.INotificationWillDisplayEvent; import com.stfalcon.chatkit.messages.MessagesListAdapter; import com.stfalcon.chatkit.utils.DateFormatter; +import org.json.JSONObject; + import java.util.ArrayList; -import java.util.Date; public class ChatFragment extends Fragment implements SocketHelper.Callback, ChatViewModel.ChatsCallBack { @@ -44,7 +49,7 @@ public class ChatFragment extends Fragment implements SocketHelper.Callback { diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/ChatListFragment.java b/app/src/main/java/com/app/simplitend/chats/ChatListFragment.java similarity index 88% rename from app/src/main/java/com/app/simplitend/patient_dashboard/chats/ChatListFragment.java rename to app/src/main/java/com/app/simplitend/chats/ChatListFragment.java index a89a0e0b..205eb9b 100644 --- a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/ChatListFragment.java +++ b/app/src/main/java/com/app/simplitend/chats/ChatListFragment.java @@ -1,6 +1,6 @@ -package com.app.simplitend.patient_dashboard.chats; +package com.app.simplitend.chats; -import static com.app.simplitend.patient_dashboard.chats.ChatFragment.CHAT_ITEM_KEY; +import static com.app.simplitend.chats.ChatFragment.CHAT_ITEM_KEY; import android.os.Bundle; import android.view.LayoutInflater; @@ -16,8 +16,8 @@ import androidx.recyclerview.widget.LinearLayoutManager; import com.app.simplitend.R; import com.app.simplitend.apputils.AppUtil; -import com.app.simplitend.patient_dashboard.chats.mvvm.ChatItem; -import com.app.simplitend.patient_dashboard.chats.mvvm.ChatListViewModel; +import com.app.simplitend.chats.mvvm.ChatItem; +import com.app.simplitend.chats.mvvm.ChatListViewModel; import com.app.simplitend.databinding.ChatListFragmentBinding; public class ChatListFragment extends Fragment implements ChatListAdapter.OnChatItemClickListener { diff --git a/app/src/main/java/com/app/simplitend/chats/ChatsActivity.java b/app/src/main/java/com/app/simplitend/chats/ChatsActivity.java new file mode 100644 index 0000000..85bd73e --- /dev/null +++ b/app/src/main/java/com/app/simplitend/chats/ChatsActivity.java @@ -0,0 +1,52 @@ +package com.app.simplitend.chats; + +import androidx.appcompat.app.AppCompatActivity; + +import android.os.Bundle; + +import com.app.simplitend.R; +import com.app.simplitend.apputils.AppUtil; +import com.app.simplitend.apputils.CaregiverDataCache; + +public class ChatsActivity extends AppCompatActivity { + + @Override + protected void onCreate(Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + setContentView(R.layout.activity_chats); + + CaregiverDataCache.getCaregiverData(this, (careGiverData1 -> { + if (careGiverData1 != null && careGiverData1.patientDetails != null){ + + String sender_image; + if (careGiverData1.profile_photo == null){ + sender_image = String.valueOf(R.drawable.caregiver_img); + }else{ + sender_image = AppUtil.IMAGE_BASE_URL + careGiverData1.profile_photo; + } + + String receiver_image; + if (careGiverData1.patientDetails.profile_photo == null){ + receiver_image = String.valueOf(R.drawable.senior_img); + }else{ + receiver_image = AppUtil.IMAGE_BASE_URL + careGiverData1.patientDetails.profile_photo; + } + + getSupportFragmentManager().beginTransaction() + .add(R.id.chats_fcv, new ChatFragment( + careGiverData1.caregiver_xid + "", + careGiverData1.patientId + "", + careGiverData1.link_id, + careGiverData1.patientDetails.id + "", + careGiverData1.first_name, + careGiverData1.patientDetails.first_name, + sender_image, + receiver_image), "chat") + .commitAllowingStateLoss(); + }else{ + finish(); + } + }), true); + + } +} \ No newline at end of file diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/ReceiverViewHolder.java b/app/src/main/java/com/app/simplitend/chats/ReceiverViewHolder.java similarity index 92% rename from app/src/main/java/com/app/simplitend/patient_dashboard/chats/ReceiverViewHolder.java rename to app/src/main/java/com/app/simplitend/chats/ReceiverViewHolder.java index 8c07822..7c44c31 100644 --- a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/ReceiverViewHolder.java +++ b/app/src/main/java/com/app/simplitend/chats/ReceiverViewHolder.java @@ -1,11 +1,11 @@ -package com.app.simplitend.patient_dashboard.chats; +package com.app.simplitend.chats; import android.graphics.Color; import android.view.View; import android.widget.TextView; import com.app.simplitend.R; -import com.app.simplitend.patient_dashboard.chats.mvvm.Message; +import com.app.simplitend.chats.mvvm.Message; import com.bumptech.glide.Glide; import com.stfalcon.chatkit.messages.MessagesListAdapter; diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/SenderViewHolder.java b/app/src/main/java/com/app/simplitend/chats/SenderViewHolder.java similarity index 92% rename from app/src/main/java/com/app/simplitend/patient_dashboard/chats/SenderViewHolder.java rename to app/src/main/java/com/app/simplitend/chats/SenderViewHolder.java index 4168f05..b63b086 100644 --- a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/SenderViewHolder.java +++ b/app/src/main/java/com/app/simplitend/chats/SenderViewHolder.java @@ -1,10 +1,10 @@ -package com.app.simplitend.patient_dashboard.chats; +package com.app.simplitend.chats; import android.view.View; import android.widget.TextView; import com.app.simplitend.R; -import com.app.simplitend.patient_dashboard.chats.mvvm.Message; +import com.app.simplitend.chats.mvvm.Message; import com.bumptech.glide.Glide; import com.stfalcon.chatkit.messages.MessagesListAdapter; diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/SocketHelper.java b/app/src/main/java/com/app/simplitend/chats/SocketHelper.java similarity index 96% rename from app/src/main/java/com/app/simplitend/patient_dashboard/chats/SocketHelper.java rename to app/src/main/java/com/app/simplitend/chats/SocketHelper.java index 8c4f5b4..1c2974d 100644 --- a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/SocketHelper.java +++ b/app/src/main/java/com/app/simplitend/chats/SocketHelper.java @@ -1,4 +1,4 @@ -package com.app.simplitend.patient_dashboard.chats; +package com.app.simplitend.chats; import android.location.Location; import android.util.Log; @@ -6,9 +6,9 @@ import android.util.Log; import androidx.annotation.NonNull; import androidx.annotation.Nullable; -import com.app.simplitend.patient_dashboard.chats.mvvm.Author; -import com.app.simplitend.patient_dashboard.chats.mvvm.Message; -import com.app.simplitend.patient_dashboard.chats.mvvm.Receiver; +import com.app.simplitend.chats.mvvm.Author; +import com.app.simplitend.chats.mvvm.Message; +import com.app.simplitend.chats.mvvm.Receiver; import io.socket.client.IO; import io.socket.client.Socket; @@ -133,8 +133,8 @@ public class SocketHelper { mSocket.off(channel_id); } - public void sendMessage(@NonNull String message, @NonNull String sender_id, @NonNull String receiver_id, @NonNull String channel_id) { - mSocket.emit("chatMessage", sender_id, message, receiver_id, channel_id); + public void sendMessage(@NonNull String message, @NonNull String sender_id, @NonNull String receiver_id, @NonNull String channel_id, String user_principal_id) { + mSocket.emit("chatMessage", sender_id, message, receiver_id, channel_id, user_principal_id); } private static final String LOCATION_EVENT_PREFIX = "patientCurrentLocation"; diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/Author.java b/app/src/main/java/com/app/simplitend/chats/mvvm/Author.java similarity index 89% rename from app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/Author.java rename to app/src/main/java/com/app/simplitend/chats/mvvm/Author.java index d61f493..5899f02 100644 --- a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/Author.java +++ b/app/src/main/java/com/app/simplitend/chats/mvvm/Author.java @@ -1,4 +1,4 @@ -package com.app.simplitend.patient_dashboard.chats.mvvm; +package com.app.simplitend.chats.mvvm; import com.app.simplitend.R; import com.stfalcon.chatkit.commons.models.IUser; diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/ChatItem.java b/app/src/main/java/com/app/simplitend/chats/mvvm/ChatItem.java similarity index 86% rename from app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/ChatItem.java rename to app/src/main/java/com/app/simplitend/chats/mvvm/ChatItem.java index b6bae65..8c0127b 100644 --- a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/ChatItem.java +++ b/app/src/main/java/com/app/simplitend/chats/mvvm/ChatItem.java @@ -1,4 +1,4 @@ -package com.app.simplitend.patient_dashboard.chats.mvvm; +package com.app.simplitend.chats.mvvm; import java.io.Serializable; diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/ChatListViewModel.java b/app/src/main/java/com/app/simplitend/chats/mvvm/ChatListViewModel.java similarity index 86% rename from app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/ChatListViewModel.java rename to app/src/main/java/com/app/simplitend/chats/mvvm/ChatListViewModel.java index 8473267..bd86560 100644 --- a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/ChatListViewModel.java +++ b/app/src/main/java/com/app/simplitend/chats/mvvm/ChatListViewModel.java @@ -1,8 +1,8 @@ -package com.app.simplitend.patient_dashboard.chats.mvvm; +package com.app.simplitend.chats.mvvm; import androidx.lifecycle.ViewModel; -import com.app.simplitend.patient_dashboard.chats.ChatListAdapter; +import com.app.simplitend.chats.ChatListAdapter; import java.util.ArrayList; diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/ChatViewModel.java b/app/src/main/java/com/app/simplitend/chats/mvvm/ChatViewModel.java similarity index 97% rename from app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/ChatViewModel.java rename to app/src/main/java/com/app/simplitend/chats/mvvm/ChatViewModel.java index bb4c379..45289be 100644 --- a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/ChatViewModel.java +++ b/app/src/main/java/com/app/simplitend/chats/mvvm/ChatViewModel.java @@ -1,4 +1,4 @@ -package com.app.simplitend.patient_dashboard.chats.mvvm; +package com.app.simplitend.chats.mvvm; import androidx.annotation.NonNull; import androidx.lifecycle.ViewModel; diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/ChatsApiService.java b/app/src/main/java/com/app/simplitend/chats/mvvm/ChatsApiService.java similarity index 90% rename from app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/ChatsApiService.java rename to app/src/main/java/com/app/simplitend/chats/mvvm/ChatsApiService.java index 478b026..b782322 100644 --- a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/ChatsApiService.java +++ b/app/src/main/java/com/app/simplitend/chats/mvvm/ChatsApiService.java @@ -1,4 +1,4 @@ -package com.app.simplitend.patient_dashboard.chats.mvvm; +package com.app.simplitend.chats.mvvm; import com.app.simplitend.welcome.welcomepatient.mvvm.models.CallResponse; diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/Message.java b/app/src/main/java/com/app/simplitend/chats/mvvm/Message.java similarity index 92% rename from app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/Message.java rename to app/src/main/java/com/app/simplitend/chats/mvvm/Message.java index 5db1c6f..796afc3 100644 --- a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/Message.java +++ b/app/src/main/java/com/app/simplitend/chats/mvvm/Message.java @@ -1,4 +1,4 @@ -package com.app.simplitend.patient_dashboard.chats.mvvm; +package com.app.simplitend.chats.mvvm; import com.stfalcon.chatkit.commons.models.IMessage; import com.stfalcon.chatkit.commons.models.IUser; diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/Receiver.java b/app/src/main/java/com/app/simplitend/chats/mvvm/Receiver.java similarity index 89% rename from app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/Receiver.java rename to app/src/main/java/com/app/simplitend/chats/mvvm/Receiver.java index 41c82d0..4efcb11 100644 --- a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/Receiver.java +++ b/app/src/main/java/com/app/simplitend/chats/mvvm/Receiver.java @@ -1,4 +1,4 @@ -package com.app.simplitend.patient_dashboard.chats.mvvm; +package com.app.simplitend.chats.mvvm; import com.stfalcon.chatkit.commons.models.IUser; diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/RemoteMessage.java b/app/src/main/java/com/app/simplitend/chats/mvvm/RemoteMessage.java similarity index 81% rename from app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/RemoteMessage.java rename to app/src/main/java/com/app/simplitend/chats/mvvm/RemoteMessage.java index 64050f0..49f5742 100644 --- a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/mvvm/RemoteMessage.java +++ b/app/src/main/java/com/app/simplitend/chats/mvvm/RemoteMessage.java @@ -1,4 +1,4 @@ -package com.app.simplitend.patient_dashboard.chats.mvvm; +package com.app.simplitend.chats.mvvm; public class RemoteMessage { public String id; diff --git a/app/src/main/java/com/app/simplitend/locationupdates/LocationService.java b/app/src/main/java/com/app/simplitend/locationupdates/LocationService.java index c993f71..ae0149b 100644 --- a/app/src/main/java/com/app/simplitend/locationupdates/LocationService.java +++ b/app/src/main/java/com/app/simplitend/locationupdates/LocationService.java @@ -15,7 +15,7 @@ import androidx.annotation.Nullable; import androidx.core.app.NotificationCompat; import com.app.simplitend.R; -import com.app.simplitend.patient_dashboard.chats.SocketHelper; +import com.app.simplitend.chats.SocketHelper; import com.app.simplitend.patientgeofencing.PatientLocationUpdatesReceiver; import com.google.android.gms.location.LocationServices; diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/DashBoardActivity.java b/app/src/main/java/com/app/simplitend/patient_dashboard/DashBoardActivity.java index 7445072..9480966 100644 --- a/app/src/main/java/com/app/simplitend/patient_dashboard/DashBoardActivity.java +++ b/app/src/main/java/com/app/simplitend/patient_dashboard/DashBoardActivity.java @@ -25,7 +25,7 @@ import com.app.simplitend.apputils.AppUtil; import com.app.simplitend.apputils.PatientDataCache; import com.app.simplitend.caregiverdashboard.mvvm.CgHomeContracts; import com.app.simplitend.caregiverdashboard.mvvm.models.GeoFenceDetails; -import com.app.simplitend.patient_dashboard.chats.SocketHelper; +import com.app.simplitend.chats.SocketHelper; public class DashBoardActivity extends AppCompatActivity implements CgHomeContracts.GetGeoFenceCallback { diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/fragments/PatientDashboardFragment.java b/app/src/main/java/com/app/simplitend/patient_dashboard/fragments/PatientDashboardFragment.java index 168b05d..ab08136 100644 --- a/app/src/main/java/com/app/simplitend/patient_dashboard/fragments/PatientDashboardFragment.java +++ b/app/src/main/java/com/app/simplitend/patient_dashboard/fragments/PatientDashboardFragment.java @@ -39,7 +39,7 @@ import com.app.simplitend.databinding.PatientDashboardFragmentBinding; import com.app.simplitend.patient_dashboard.DirectionToHomeActivity; import com.app.simplitend.patient_dashboard.NotificationsActivity; import com.app.simplitend.patient_dashboard.PatientMainViewModel; -import com.app.simplitend.patient_dashboard.chats.ChatFragment; +import com.app.simplitend.chats.ChatFragment; import com.app.simplitend.patientprofile.ProfileContracts; import com.app.simplitend.patientprofile.medreminder.mvvm.ReminderViewModel; import com.app.simplitend.patientprofile.medreminder.mvvm.models.NearestActivity; @@ -274,6 +274,7 @@ public class PatientDashboardFragment extends Fragment implements ProfileContrac patientData1.patientId + "", patientData1.caregiverId, patientData1.link_id, + patientData1.caregiver_iamprincipal_id, patientData1.first_name, patientData.caregiver_name, sender_image, diff --git a/app/src/main/java/com/app/simplitend/patientgeofencing/GeoFenceBroadcastReceiver.java b/app/src/main/java/com/app/simplitend/patientgeofencing/GeoFenceBroadcastReceiver.java index 0351fee..92ec5e9 100644 --- a/app/src/main/java/com/app/simplitend/patientgeofencing/GeoFenceBroadcastReceiver.java +++ b/app/src/main/java/com/app/simplitend/patientgeofencing/GeoFenceBroadcastReceiver.java @@ -17,12 +17,10 @@ import com.app.simplitend.apputils.AppUtil; import com.app.simplitend.apputils.RetrofitHelper; import com.app.simplitend.caregiverdashboard.mvvm.NotificationApiService; import com.app.simplitend.locationupdates.LocationService; -import com.app.simplitend.patient_dashboard.chats.SocketHelper; -import com.app.simplitend.patient_dashboard.chats.mvvm.Message; +import com.app.simplitend.chats.SocketHelper; import com.app.simplitend.welcome.welcomepatient.mvvm.models.CallResponse; import com.google.android.gms.location.Geofence; import com.google.android.gms.location.GeofencingEvent; -import com.onesignal.OneSignal; import java.util.HashMap; import java.util.Locale; @@ -131,7 +129,7 @@ public class GeoFenceBroadcastReceiver extends BroadcastReceiver { @Override public void onSocketConnected() { Log.d(GEOFENCE_TAG, "doInBackground: SOCKET CONNECTED"); - socketHelper.sendMessage(message, cg_id + "", patientId + "", channel_id + ""); + socketHelper.sendMessage(message, cg_id + "", patientId + "", channel_id + "", null); } @Override diff --git a/app/src/main/java/com/app/simplitend/patientgeofencing/PatientLocationUpdatesReceiver.java b/app/src/main/java/com/app/simplitend/patientgeofencing/PatientLocationUpdatesReceiver.java index 89dd9be..10d3b20 100644 --- a/app/src/main/java/com/app/simplitend/patientgeofencing/PatientLocationUpdatesReceiver.java +++ b/app/src/main/java/com/app/simplitend/patientgeofencing/PatientLocationUpdatesReceiver.java @@ -3,7 +3,6 @@ package com.app.simplitend.patientgeofencing; import android.content.BroadcastReceiver; import android.content.Context; import android.content.Intent; -import android.location.Address; import android.location.Location; import android.os.AsyncTask; import android.util.Log; @@ -12,7 +11,7 @@ import androidx.annotation.NonNull; import com.app.simplitend.apputils.AppUtil; import com.app.simplitend.apputils.RetrofitHelper; -import com.app.simplitend.patient_dashboard.chats.SocketHelper; +import com.app.simplitend.chats.SocketHelper; import com.app.simplitend.patientprofile.PatientProfileAPIService; import com.app.simplitend.welcome.welcomepatient.mvvm.models.CallResponse; import com.google.maps.model.LatLng; 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 0c5414b..3cbae6f 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 @@ -118,34 +118,34 @@ public class ReminderAdapter extends RecyclerView.Adapter 0) { + try { + quantity = reminder.medication_type.get(0).title.toLowerCase(); + } catch (NullPointerException e) { + // do nothing + quantity = "unit"; + } + quantity = reminder.medication_quantity + " " + quantity; switch (reminder.medication_type.get(0).title){ case "Capsule": binding.medImg.setImageResource(R.drawable.ic_capsules); - quantity = reminder.medication_quantity + " capsules"; break; case "Tablet": binding.medImg.setImageResource(R.drawable.ic_pills); - quantity = reminder.medication_quantity + " pills"; break; case "Drop": binding.medImg.setImageResource(R.drawable.ic_drops); - quantity = reminder.medication_quantity + " drops"; break; case "Spoon": binding.medImg.setImageResource(R.drawable.ic_med_spoon); - quantity = reminder.medication_quantity + " spoon"; break; case "Cup": binding.medImg.setImageResource(R.drawable.ic_med_cup); - quantity = reminder.medication_quantity + " cup"; break; case "Syringe": binding.medImg.setImageResource(R.drawable.ic_syringe); - quantity = reminder.medication_quantity + " syringe"; break; default: binding.medImg.setImageResource(R.drawable.ic_other_med); - quantity = reminder.medication_quantity + " units"; break; } }else{ diff --git a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/contacts/mvvm/Contact.java b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/contacts/mvvm/Contact.java index 0bdd54f..e527107 100644 --- a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/contacts/mvvm/Contact.java +++ b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/contacts/mvvm/Contact.java @@ -50,8 +50,6 @@ public class Contact implements Serializable { this.phone_number = phoneNumber; } - - public Contact(String first_name, String phone_number, String relationship, String email_address, String is_sos, String updated_at, String created_at) { this.first_name = first_name; this.phone_number = phone_number; diff --git a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/register/RegisterFragment.java b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/register/RegisterFragment.java index f05b5ce..f428ade 100644 --- a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/register/RegisterFragment.java +++ b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/fragments/register/RegisterFragment.java @@ -2,13 +2,8 @@ package com.app.simplitend.welcome.welcomepatient.fragments.register; import android.app.DatePickerDialog; import android.app.ProgressDialog; -import android.content.Intent; -import android.net.Uri; import android.os.Bundle; -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; @@ -23,17 +18,17 @@ import androidx.fragment.app.Fragment; import androidx.lifecycle.ViewModelProvider; import androidx.navigation.Navigation; -import com.app.simplitend.apputils.EditTextErrorRemover; -import com.app.simplitend.apputils.TextUtils; -import com.google.i18n.phonenumbers.NumberParseException; -import com.google.i18n.phonenumbers.PhoneNumberUtil; -import com.google.i18n.phonenumbers.Phonenumber; import com.app.simplitend.R; import com.app.simplitend.apputils.AppUtil; +import com.app.simplitend.apputils.EditTextErrorRemover; +import com.app.simplitend.apputils.TextUtils; import com.app.simplitend.databinding.RegisterFragmentBinding; import com.app.simplitend.welcome.welcomepatient.mvvm.WelcomeContracts; import com.app.simplitend.welcome.welcomepatient.mvvm.WelcomeViewModel; import com.app.simplitend.welcome.welcomepatient.mvvm.models.PatientData; +import com.google.i18n.phonenumbers.NumberParseException; +import com.google.i18n.phonenumbers.PhoneNumberUtil; +import com.google.i18n.phonenumbers.Phonenumber; import java.text.SimpleDateFormat; import java.util.ArrayList; diff --git a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/mvvm/models/PatientData.java b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/mvvm/models/PatientData.java index 2acb43b..e627ab9 100644 --- a/app/src/main/java/com/app/simplitend/welcome/welcomepatient/mvvm/models/PatientData.java +++ b/app/src/main/java/com/app/simplitend/welcome/welcomepatient/mvvm/models/PatientData.java @@ -30,7 +30,7 @@ public class PatientData { public String one_signal_player_id; - public String caregiver_name, caregiver_profile_photo, caregiverId, link_id; + public String caregiver_name, caregiver_profile_photo, caregiverId, link_id, caregiver_iamprincipal_id; // progress flags public int isCareGiverLink diff --git a/app/src/main/res/layout/activity_bottom_notification.xml b/app/src/main/res/layout/activity_bottom_notification.xml new file mode 100644 index 0000000..36fa428 --- /dev/null +++ b/app/src/main/res/layout/activity_bottom_notification.xml @@ -0,0 +1,15 @@ + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/activity_chats.xml b/app/src/main/res/layout/activity_chats.xml new file mode 100644 index 0000000..1327de6 --- /dev/null +++ b/app/src/main/res/layout/activity_chats.xml @@ -0,0 +1,8 @@ + + \ No newline at end of file diff --git a/app/src/main/res/navigation/cp_dashboard_graph.xml b/app/src/main/res/navigation/cp_dashboard_graph.xml index 289cc2e..0232f84 100644 --- a/app/src/main/res/navigation/cp_dashboard_graph.xml +++ b/app/src/main/res/navigation/cp_dashboard_graph.xml @@ -20,7 +20,7 @@ + // bottom notification activity theme + + // top corner rounded bottom sheet + + // top corner rounded bottom sheet