diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index a54893b..cfdcd92 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -6,13 +6,13 @@
-
-
+
+
-
+
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 f9c31d5..5550be7 100644
--- a/app/src/main/java/com/app/simplitend/apputils/AppUtil.java
+++ b/app/src/main/java/com/app/simplitend/apputils/AppUtil.java
@@ -378,13 +378,22 @@ public abstract class AppUtil {
return;
}
- title = patient_name + " is out of Geofence!";
- String senior_address_gf = intent.getStringExtra(NOTIFICATION_SENIOR_ADDRESS_KEY);
+ 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_address_gf, "Call senior",
+ senior_distance, "Call senior",
v -> {
CaregiverDataCache.getCaregiverData(context, (careGiverData -> {
bsd.dismiss();
@@ -520,7 +529,8 @@ public abstract class AppUtil {
return;
}
- title = patient_name + " contacted help";
+ title = patient_name + " called the emergency number";
+ body = "Please contact " + patient_name;
setupBottomSheet(binding,
R.drawable.img_sos_requested,
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 1cc5d0e..a500eb5 100644
--- a/app/src/main/java/com/app/simplitend/apputils/SimpliTendApp.java
+++ b/app/src/main/java/com/app/simplitend/apputils/SimpliTendApp.java
@@ -2,9 +2,11 @@ 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;
@@ -14,11 +16,15 @@ 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;
@@ -46,6 +52,11 @@ public class SimpliTendApp extends Application {
}
}));
+ // click listener to notification
+ OneSignal.getNotifications().addClickListener(iNotificationClickEvent -> {
+
+ });
+
// creating notification channel for location share location updates from patient side
// using a foreground service
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
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 5b347a8..b2acb23 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
@@ -343,6 +343,10 @@ public class CaregiverDashActivity extends AppCompatActivity implements
binding.toolbar.setNavigationIcon(AppCompatResources.getDrawable(this, R.drawable.ic_menu));
binding.toolbar.setNavigationIconTint(getResources().getColor(R.color.white));
} else if (selectedItem == MenuItem.CHATS) {
+ if (careGiverData.link_id == null){
+ CaregiverDataCache.setCareGiverData(null); // to fetch new data with link id
+ }
+
CaregiverDataCache.getCaregiverData(this, (careGiverData1 -> {
if (careGiverData1 != null && careGiverData1.patientDetails != null){
this.careGiverData = careGiverData1;
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 728bd57..19ce07f 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
@@ -6,7 +6,6 @@ import android.app.Activity;
import android.app.AlertDialog;
import android.app.ProgressDialog;
import android.content.Context;
-import android.content.DialogInterface;
import android.content.Intent;
import android.content.res.Configuration;
import android.graphics.Color;
@@ -257,7 +256,6 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead
}
registerMapSearchResultLauncher();
-
}
private void clickEvents() {
@@ -283,6 +281,12 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead
saveGeoFence();
});
+ geofence_bs_binding.cancelSetGf.setOnClickListener(v -> {
+ if (bottomSheetDialog != null){
+ bottomSheetDialog.dismiss();
+ }
+ });
+
binding.search.setOnClickListener(v -> {
List fields = Arrays.asList(Place.Field.ID, Place.Field.NAME, Place.Field.LAT_LNG);
@@ -359,6 +363,7 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead
// do nothing
}
+
StringBuilder senior_address = new StringBuilder("");
if (patientData.address_line1 != null){
@@ -398,8 +403,21 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead
Map body = new HashMap<>();
+ String addressLine;
+ addressLine = (address.getThoroughfare() != null ? address.getThoroughfare() : address.getSubThoroughfare());
+
+ if (addressLine == null || addressLine.isEmpty()){
+ addressLine = "";
+ if (address.getMaxAddressLineIndex() >= 0 && address.getAddressLine(0) != null){
+ String[] addressLines = address.getAddressLine(0).split(",");
+ for (int i = 0; i < Math.min(2, addressLines.length); i++) {
+ addressLine = addressLine.concat(addressLines[i]);
+ }
+ }
+ }
+
body.put("town", (address.getSubLocality() != null ? address.getSubLocality() : address.getLocality()));
- body.put("street", (address.getSubThoroughfare() != null ? address.getSubThoroughfare() : address.getThoroughfare()));
+ body.put("street", addressLine);
body.put("state", address.getAdminArea());
body.put("country", address.getCountryName());
body.put("zip_code", address.getPostalCode());
@@ -657,7 +675,7 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead
CaregiverDataCache.setCareGiverData(this.careGiverData);
progressDialog.dismiss();
updatePatientCurrentLocationDetails();
- Toast.makeText(this, "Patient's location updated.", Toast.LENGTH_SHORT).show();
+ Toast.makeText(this, "Senior geofence updated successfully", Toast.LENGTH_SHORT).show();
}
@Override
diff --git a/app/src/main/java/com/app/simplitend/locationupdates/DefaultLocationClient.java b/app/src/main/java/com/app/simplitend/locationupdates/DefaultLocationClient.java
index dc92668..1a5abe1 100644
--- a/app/src/main/java/com/app/simplitend/locationupdates/DefaultLocationClient.java
+++ b/app/src/main/java/com/app/simplitend/locationupdates/DefaultLocationClient.java
@@ -51,6 +51,7 @@ public class DefaultLocationClient implements LocationClient{
}
locationRequest = new LocationRequest.Builder(Priority.PRIORITY_HIGH_ACCURACY, interval)
+ .setMinUpdateIntervalMillis(2000) // get fasted updates if available every 2 sec
.build();
locationCallback = new LocationCallback() {
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 d48ad06..f5a466e 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
@@ -32,6 +32,7 @@ import androidx.navigation.Navigation;
import com.app.simplitend.R;
import com.app.simplitend.appblocking.FUAActivity;
import com.app.simplitend.apputils.AppUtil;
+import com.app.simplitend.apputils.CaregiverDataCache;
import com.app.simplitend.apputils.Constants;
import com.app.simplitend.apputils.PatientDataCache;
import com.app.simplitend.caregiverdashboard.mvvm.CaregiverMainViewModel;
@@ -216,6 +217,10 @@ public class PatientDashboardFragment extends Fragment implements ProfileContrac
});
binding.chats.setOnClickListener(v -> {
+ if (patientData.link_id == null){
+ PatientDataCache.setPatientData(null); // to fetch new data with link id
+ }
+
PatientDataCache.getPatientData(requireContext(), (patientData1 -> {
if (patientData1 != null){
this.patientData = patientData1;
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 2cb85bb..186c019 100644
--- a/app/src/main/java/com/app/simplitend/patientgeofencing/GeoFenceBroadcastReceiver.java
+++ b/app/src/main/java/com/app/simplitend/patientgeofencing/GeoFenceBroadcastReceiver.java
@@ -19,6 +19,7 @@ import static com.app.simplitend.locationupdates.LocationService.LOCATION_UPDATE
import static com.app.simplitend.patientgeofencing.GeoFenceHelper.GEOFENCE_TAG;
import java.util.HashMap;
+import java.util.Locale;
import java.util.Map;
import retrofit2.Call;
@@ -41,13 +42,29 @@ public class GeoFenceBroadcastReceiver extends BroadcastReceiver {
int transition_type = geofencingEvent.getGeofenceTransition();
Location location = geofencingEvent.getTriggeringLocation();
- String senior_address = null;
- if (location != null){
- senior_address = AppUtil.getCompleteAddress(context, location.getLatitude(), location.getLongitude());
- }
+// String senior_address = null;
+// if (location != null){
+// senior_address = AppUtil.getCompleteAddress(context, location.getLatitude(), location.getLongitude());
+// }
+//
+// if (senior_address == null) {
+// senior_address = "Unable to locate";
+// }
- if (senior_address == null) {
- senior_address = "Unable to locate";
+ double distance;
+ try {
+ String[] homeLatLng = AppUtil.getPatientLatLng(context);
+
+ Location homeLocation = new Location("homeLatLng");
+ homeLocation.setLatitude(Double.parseDouble(homeLatLng[0]));
+ homeLocation.setLongitude(Double.parseDouble(homeLatLng[1]));
+
+ if (location == null) throw new Exception();
+
+ distance = homeLocation.distanceTo(location);
+ distance /= 1609; // converting to miles
+ }catch (Exception e){
+ distance = 0;
}
switch (transition_type) {
@@ -64,7 +81,7 @@ public class GeoFenceBroadcastReceiver extends BroadcastReceiver {
break;
case Geofence.GEOFENCE_TRANSITION_EXIT:
Log.d(GEOFENCE_TAG, "onReceive: EXIT");
- notifyOutOfGeofence(context, senior_address);
+ notifyOutOfGeofence(context, String.format(Locale.getDefault(),"%.2f", distance));
break;
}
}
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 fb8b594..1d60d7e 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
@@ -136,7 +136,7 @@ public class CreateContactFragment extends Fragment implements WelcomeContracts.
if (to_edit) {
setLayoutDetails(getString(R.string.edit_contact), getString(R.string.change_photo), getString(R.string.save));
} else {
- setLayoutDetails(getString(R.string.create_contact), getString(R.string.add_photo), getString(R.string.create_contact));
+ setLayoutDetails(getString(R.string.create_contact), getString(R.string.add_photo), getString(R.string.save));
}
if (bundle.getSerializable(CONTACT_KEY) != null) {
@@ -383,7 +383,7 @@ public class CreateContactFragment extends Fragment implements WelcomeContracts.
binding.caregiverCheck.setChecked(true);
// setting up title
- setLayoutDetails(getString(R.string.create_caregiver_contact), getString(R.string.add_photo), getString(R.string.create_contact));
+ setLayoutDetails(getString(R.string.create_caregiver_contact), getString(R.string.add_photo), getString(R.string.save));
addContactView("", true);
}
diff --git a/app/src/main/res/layout/create_edit_contact_fragment.xml b/app/src/main/res/layout/create_edit_contact_fragment.xml
index ee89d73..057e9ed 100644
--- a/app/src/main/res/layout/create_edit_contact_fragment.xml
+++ b/app/src/main/res/layout/create_edit_contact_fragment.xml
@@ -483,7 +483,7 @@
android:layout_weight="1"
android:layout_height="wrap_content"
android:backgroundTint="@color/color_primary"
- tools:text="@string/create_contact"
+ android:text="@string/save"
android:textColor="@color/white_bg"
android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
android:textAllCaps="false"
diff --git a/app/src/main/res/layout/geofence_bottom_sheet.xml b/app/src/main/res/layout/geofence_bottom_sheet.xml
index 2a653ae..960c742 100644
--- a/app/src/main/res/layout/geofence_bottom_sheet.xml
+++ b/app/src/main/res/layout/geofence_bottom_sheet.xml
@@ -124,21 +124,51 @@
android:maxLength="255"
/>
-
- />
+
+
+
+
+
\ No newline at end of file