diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 9dd23da..01c82bf 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -6,13 +6,24 @@
-
-
+
+
-
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/java/com/app/simplitend/apputils/BottomNotificationActivity.java b/app/src/main/java/com/app/simplitend/apputils/BottomNotificationActivity.java
index 1c4b8d3..952f619 100644
--- a/app/src/main/java/com/app/simplitend/apputils/BottomNotificationActivity.java
+++ b/app/src/main/java/com/app/simplitend/apputils/BottomNotificationActivity.java
@@ -32,6 +32,7 @@ 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.bumptech.glide.Glide;
import com.google.android.material.bottomsheet.BottomSheetDialog;
import java.text.SimpleDateFormat;
@@ -372,7 +373,10 @@ public class BottomNotificationActivity extends AppCompatActivity {
String title, String description_title,
String description, String btn_text,
View.OnClickListener btn_clickListener) {
- binding.image.setImageResource(img_res);
+// binding.image.setImageResource(img_res);
+ Glide.with(binding.image)
+ .load(img_res)
+ .into(binding.image);
binding.title.setText(title);
binding.descriptionTitle.setText(description_title);
binding.description.setText(description);
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 a3e6e60..365823b 100644
--- a/app/src/main/java/com/app/simplitend/apputils/SimpliTendApp.java
+++ b/app/src/main/java/com/app/simplitend/apputils/SimpliTendApp.java
@@ -45,7 +45,7 @@ public class SimpliTendApp extends Application {
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O){
NotificationChannel channel = new NotificationChannel(LOCATION_NOTIFICATION_CHANNEL_ID,
"Location updates",
- NotificationManager.IMPORTANCE_LOW);
+ NotificationManager.IMPORTANCE_DEFAULT);
NotificationManager notificationManager = (NotificationManager) getSystemService(NOTIFICATION_SERVICE);
notificationManager.createNotificationChannel(channel);
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 cd359e6..6f6889f 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
@@ -153,7 +153,11 @@ public class CgDashBoardFragment extends Fragment implements
@Override
public void onDestroyView() {
super.onDestroyView();
- requireContext().unregisterReceiver(notification_receiver);
+ try {
+ requireContext().unregisterReceiver(notification_receiver);
+ } catch (Exception e) {
+ // do nothing
+ }
}
private void loadActivities() {
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 09701c7..6b8087d 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
@@ -178,7 +178,11 @@ public class PatientDashboardFragment extends Fragment implements ProfileContrac
this.contactList = contactList1;
if (contactList != null) {
- AppUtil.setWhiteListedContacts(requireContext(), contactList);
+ try {
+ AppUtil.setWhiteListedContacts(requireContext(), contactList);
+ } catch (Exception e) {
+ throw new RuntimeException(e);
+ }
}
}), false);
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 4115a64..d0535ce 100644
--- a/app/src/main/java/com/app/simplitend/patientgeofencing/GeoFenceBroadcastReceiver.java
+++ b/app/src/main/java/com/app/simplitend/patientgeofencing/GeoFenceBroadcastReceiver.java
@@ -2,18 +2,27 @@ package com.app.simplitend.patientgeofencing;
import static com.app.simplitend.chats.SocketHelper.kHost;
import static com.app.simplitend.locationupdates.LocationService.LOCATION_INTERVAL_BASE_TIME;
+import static com.app.simplitend.locationupdates.LocationService.LOCATION_NOTIFICATION_CHANNEL_ID;
import static com.app.simplitend.locationupdates.LocationService.LOCATION_UPDATE_MIN_INTERVAL;
import static com.app.simplitend.patientgeofencing.GeoFenceHelper.GEOFENCE_TAG;
+import android.Manifest;
+import android.app.Notification;
import android.content.BroadcastReceiver;
import android.content.Context;
import android.content.Intent;
+import android.content.pm.PackageManager;
import android.location.Location;
import android.os.Build;
import android.util.Log;
+import android.widget.Toast;
import androidx.annotation.NonNull;
+import androidx.core.app.ActivityCompat;
+import androidx.core.app.NotificationCompat;
+import androidx.core.app.NotificationManagerCompat;
+import com.app.simplitend.R;
import com.app.simplitend.apputils.AppUtil;
import com.app.simplitend.apputils.RetrofitHelper;
import com.app.simplitend.caregiverdashboard.mvvm.NotificationApiService;
@@ -29,6 +38,7 @@ import java.util.Map;
import io.socket.client.IO;
import io.socket.client.Socket;
+import io.socket.emitter.Emitter;
import retrofit2.Call;
import retrofit2.Callback;
import retrofit2.Response;
@@ -78,6 +88,18 @@ public class GeoFenceBroadcastReceiver extends BroadcastReceiver {
break;
case Geofence.GEOFENCE_TRANSITION_ENTER:
Log.d(GEOFENCE_TAG, "onReceive: ENTER");
+ Notification notification = new NotificationCompat.Builder(context, LOCATION_NOTIFICATION_CHANNEL_ID)
+ .setSmallIcon(R.mipmap.ic_launcher_round)
+ .setContentTitle("Geofence entered")
+ .setPriority(NotificationCompat.PRIORITY_HIGH).build();
+
+ NotificationManagerCompat notificationManager = NotificationManagerCompat.from(context);
+
+ if (ActivityCompat.checkSelfPermission(context, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
+ return;
+ }
+ notificationManager.notify(1023, notification);
+
Intent locationServiceIntent = new Intent(context, LocationService.class);
locationServiceIntent.setAction(LocationService.ACTION_START_LOCATION_UPDATES);
locationServiceIntent.putExtra(LOCATION_UPDATE_MIN_INTERVAL, LOCATION_INTERVAL_BASE_TIME);
@@ -89,6 +111,19 @@ public class GeoFenceBroadcastReceiver extends BroadcastReceiver {
break;
case Geofence.GEOFENCE_TRANSITION_EXIT:
Log.d(GEOFENCE_TAG, "onReceive: EXIT");
+
+ Notification notification1 = new NotificationCompat.Builder(context, LOCATION_NOTIFICATION_CHANNEL_ID)
+ .setSmallIcon(R.mipmap.ic_launcher_round)
+ .setContentTitle("Geofence exited")
+ .setPriority(NotificationCompat.PRIORITY_HIGH).build();
+
+ NotificationManagerCompat notificationManager1 = NotificationManagerCompat.from(context);
+
+ if (ActivityCompat.checkSelfPermission(context, Manifest.permission.POST_NOTIFICATIONS) != PackageManager.PERMISSION_GRANTED) {
+ return;
+ }
+ notificationManager1.notify(1032, notification1);
+
notifyOutOfGeofence(context, String.format(Locale.getDefault(), "%.2f", distance));
notifyPatient(context);
@@ -126,14 +161,34 @@ public class GeoFenceBroadcastReceiver extends BroadcastReceiver {
options.reconnection = true;
Socket mSocket = IO.socket(kHost, options);
+ mSocket.on(channel_id + "", new Emitter.Listener() {
+ @Override
+ public void call(Object... args) {
+ try {
+ if (args.length >= 4) {
+ String received_sender_id = (String) args[1];
+ if (received_sender_id.equals(cg_id+"")){
+ // message was sent successfully
+ Log.d(GEOFENCE_TAG, "GEOFENCE MESSAGE WAS SENT SUCCESSFULLY");
+
+ mSocket.disconnect();
+ }
+ }
+ } catch (Exception e) {
+ mSocket.disconnect();
+ }
+ }
+ });
+
mSocket.on(Socket.EVENT_CONNECT, args -> {
Log.d(GEOFENCE_TAG, "Socket connected ");
socketHelper.sendMessage(message, cg_id + "", patientId + "", channel_id + "",
patient_principal_id < 0 ? null : patient_principal_id + "");
- mSocket.disconnect();
});
- mSocket.on(Socket.EVENT_DISCONNECT, args -> Log.d(GEOFENCE_TAG, "Socket disconnected "));
+ mSocket.on(Socket.EVENT_DISCONNECT, args -> {
+ Log.d(GEOFENCE_TAG, "Socket disconnected ");
+ });
mSocket.on(Socket.EVENT_CONNECT_ERROR, args -> {
Exception e = (Exception) args[0];
diff --git a/app/src/main/res/drawable/img_sos_requested.xml b/app/src/main/res/drawable/img_sos_requested.xml
index a389d57..772d020 100644
--- a/app/src/main/res/drawable/img_sos_requested.xml
+++ b/app/src/main/res/drawable/img_sos_requested.xml
@@ -1,6 +1,6 @@
@@ -99,38 +100,40 @@
android:weightSum="2"
android:orientation="horizontal">
-
-