From c409e6380ce22ea7b13acfe85290221fd63ba138 Mon Sep 17 00:00:00 2001 From: 14Sandee Date: Tue, 26 Dec 2023 15:29:14 +0530 Subject: [PATCH] location updates from home screen with home location and geofence for reference --- .../cg_geofencing/CgGeoFencingActivity.java | 51 ++++++- .../res/layout/activity_cg_geofencing.xml | 132 +++++++++++------- 2 files changed, 127 insertions(+), 56 deletions(-) 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 7829e4d..ffe4131 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,10 +33,11 @@ import com.app.simplitend.apputils.AppUtil; import com.app.simplitend.apputils.CaregiverDataCache; import com.app.simplitend.caregiverdashboard.mvvm.CaregiverMainViewModel; import com.app.simplitend.caregiverdashboard.mvvm.CgHomeContracts; +import com.app.simplitend.caregiverdashboard.mvvm.CgHomeRepository; import com.app.simplitend.caregiverdashboard.mvvm.models.GeoFenceDetails; +import com.app.simplitend.chats.SocketHelper; import com.app.simplitend.databinding.ActivityCgGeofencingBinding; import com.app.simplitend.databinding.GeofenceBottomSheetBinding; -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.bumptech.glide.Glide; @@ -57,7 +58,6 @@ import com.google.android.libraries.places.widget.model.AutocompleteActivityMode import com.google.android.material.bottomsheet.BottomSheetBehavior; import com.google.android.material.bottomsheet.BottomSheetDialog; -import java.io.IOException; import java.util.Arrays; import java.util.HashMap; import java.util.List; @@ -65,7 +65,7 @@ import java.util.Locale; import java.util.Map; public class CgGeoFencingActivity extends AppCompatActivity implements OnMapReadyCallback, - CgHomeContracts.SaveGeoFenceCallback, CgHomeContracts.UpdatePatientAddressCallback { + CgHomeContracts.SaveGeoFenceCallback, CgHomeContracts.UpdatePatientAddressCallback, CgHomeContracts.GetGeoFenceCallback { private static final String TAG = "CgGeoFencingActivity"; @@ -184,6 +184,31 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead binding.locationBs.setVisibility(View.VISIBLE); + binding.refreshBtn.setVisibility(View.VISIBLE); + + binding.refreshBtn.setOnClickListener(v -> { + + progressDialog.setTitle("Please wait"); + progressDialog.setMessage("while we refresh the details"); + progressDialog.setCancelable(false); + progressDialog.show(); + + CaregiverDataCache.setCareGiverData(null); + CaregiverDataCache.getCaregiverData(this, careGiverData1 -> { + if (careGiverData1 != null && careGiverData1.patientDetails != null){ + this.careGiverData = careGiverData1; + this.patientData = careGiverData.patientDetails; + + loadPatientsLocation(); + + CgHomeRepository.getHomeRepository().getGeoFenceDetails(AppUtil.getPatientUid(this) + "", + "", "Bearer " + AppUtil.getPatientToken(this), + this); + } + }, false); + + }); + BottomSheetBehavior bs_behavior = BottomSheetBehavior.from(binding.locationBs); bs_behavior.setState(BottomSheetBehavior.STATE_EXPANDED); @@ -716,7 +741,7 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead updateHomeMarker(home_lat_lng); addRadius(); - mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(home_lat_lng, 14)); + mMap.moveCamera(CameraUpdateFactory.newLatLngZoom(home_lat_lng, 17)); } catch (Exception e) { // near marine drive Toast.makeText(this, "Couldn't load home location", Toast.LENGTH_SHORT).show(); @@ -749,7 +774,7 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead if (home_loc_marker != null) home_loc_marker.remove(); home_loc_marker = mMap.addMarker(markerOptions); - mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(home_latLng, 14)); + mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(home_latLng, 17)); } private void registerMapSearchResultLauncher() { @@ -849,4 +874,20 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead progressDialog.dismiss(); Toast.makeText(this, "Couldn't update patient's location.", Toast.LENGTH_SHORT).show(); } + + @Override + public void onGeofenceDetailsFetched(GeoFenceDetails geoFenceDetails) { + progressDialog.dismiss(); + updateCurrentLocationPatientMarker(); + updatePatientCurrentLocationDetails(); + if (showLocationUpdates){ + updateCurrentLocationBs(); + } + } + + @Override + public void onGeofenceDetailsFetchFailed(Throwable throwable, String message) { + progressDialog.dismiss(); + Toast.makeText(this, "Couldn't load senior's current location", Toast.LENGTH_SHORT).show(); + } } \ No newline at end of file diff --git a/app/src/main/res/layout/activity_cg_geofencing.xml b/app/src/main/res/layout/activity_cg_geofencing.xml index 90bf5c8..87242ec 100644 --- a/app/src/main/res/layout/activity_cg_geofencing.xml +++ b/app/src/main/res/layout/activity_cg_geofencing.xml @@ -3,6 +3,7 @@ xmlns:app="http://schemas.android.com/apk/res-auto" android:layout_width="match_parent" android:layout_height="match_parent" + xmlns:tools="http://schemas.android.com/tools" android:background="@color/white"> - - + + + @@ -381,72 +400,83 @@ android:background="@android:color/darker_gray" /> - - - + android:orientation="horizontal" + android:layout_margin="10dp" + > - + + - android:text="@string/couldn_t_load" - android:textAppearance="@style/TextAppearance.Material3.TitleMedium" - android:textColor="@color/black" - android:fontFamily="@font/nunito_bold" + + android:layout_gravity="center_vertical" - - android:text="@string/couldn_t_load" - android:textAppearance="@style/TextAppearance.Material3.TitleMedium" - android:textColor="@color/black" - android:fontFamily="@font/nunito_medium" + + android:layout_gravity="center_vertical" - - android:text="0.25 miles away from home" - android:textAppearance="@style/TextAppearance.Material3.TitleMedium" - android:textColor="@color/black" - android:fontFamily="@font/nunito_medium" + + tools:text="0.25 miles away from home" + android:textAppearance="@style/TextAppearance.Material3.TitleMedium" + android:textColor="@color/black" + android:fontFamily="@font/nunito_medium" + + android:layout_gravity="center_vertical" + /> + + - +