From 59cfe7d67512aedb4bbb459f5b24f6ccbd734217 Mon Sep 17 00:00:00 2001 From: 14Sandee Date: Tue, 26 Dec 2023 20:03:23 +0530 Subject: [PATCH] location updates from home screen without home location and geofence for reference --- .../cg_geofencing/CgGeoFencingActivity.java | 127 ++++++++++++++++-- app/src/main/res/drawable/ic_marker_bg.png | Bin 0 -> 7848 bytes .../res/layout/activity_cg_geofencing.xml | 5 +- app/src/main/res/layout/marker_bg.xml | 27 ++++ 4 files changed, 144 insertions(+), 15 deletions(-) create mode 100644 app/src/main/res/drawable/ic_marker_bg.png create mode 100644 app/src/main/res/layout/marker_bg.xml 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 ffe4131..292e798 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 @@ -10,6 +10,7 @@ import android.content.Context; import android.content.Intent; import android.content.res.Configuration; import android.graphics.Color; +import android.graphics.drawable.Drawable; import android.location.Address; import android.location.Geocoder; import android.location.Location; @@ -17,6 +18,7 @@ import android.os.Bundle; import android.os.Handler; import android.os.Looper; import android.util.Log; +import android.util.Xml; import android.view.View; import android.widget.LinearLayout; import android.widget.Toast; @@ -24,7 +26,9 @@ import android.widget.Toast; import androidx.activity.result.ActivityResultLauncher; import androidx.activity.result.contract.ActivityResultContracts; import androidx.annotation.NonNull; +import androidx.annotation.Nullable; import androidx.appcompat.app.AppCompatActivity; +import androidx.appcompat.content.res.AppCompatResources; import androidx.lifecycle.ViewModelProvider; import com.app.simplitend.BuildConfig; @@ -38,9 +42,14 @@ 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.databinding.MarkerBgBinding; import com.app.simplitend.welcome.welcomecg.mvvm.CareGiverData; import com.app.simplitend.welcome.welcomepatient.mvvm.models.PatientData; import com.bumptech.glide.Glide; +import com.bumptech.glide.load.DataSource; +import com.bumptech.glide.load.engine.GlideException; +import com.bumptech.glide.request.RequestListener; +import com.bumptech.glide.request.target.Target; import com.google.android.gms.maps.CameraUpdateFactory; import com.google.android.gms.maps.GoogleMap; import com.google.android.gms.maps.OnMapReadyCallback; @@ -57,12 +66,17 @@ import com.google.android.libraries.places.widget.Autocomplete; import com.google.android.libraries.places.widget.model.AutocompleteActivityMode; import com.google.android.material.bottomsheet.BottomSheetBehavior; import com.google.android.material.bottomsheet.BottomSheetDialog; +import com.google.maps.android.ui.IconGenerator; +import java.text.SimpleDateFormat; import java.util.Arrays; +import java.util.Calendar; import java.util.HashMap; import java.util.List; import java.util.Locale; import java.util.Map; +import java.util.Objects; +import java.util.TimeZone; public class CgGeoFencingActivity extends AppCompatActivity implements OnMapReadyCallback, CgHomeContracts.SaveGeoFenceCallback, CgHomeContracts.UpdatePatientAddressCallback, CgHomeContracts.GetGeoFenceCallback { @@ -107,6 +121,8 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead protected boolean showLocationUpdates; + private IconGenerator iconGenerator; + @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); @@ -153,16 +169,28 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead this.careGiverData = careGiverData; this.patientData = careGiverData.patientDetails; + + try { + if (patientData == null) throw new Exception(); + + double lat = Double.parseDouble(patientData.lat); + double lng = Double.parseDouble(patientData.lng); + + mHomeLatLng = new LatLng(lat, lng); + } catch (Exception e) { + // do nothing + } }), true); initViews(); - initBottomSheet(); + if (!showLocationUpdates) { + initBottomSheet(); + updatePatientCurrentLocationDetails(); + } clickEvents(); - updatePatientCurrentLocationDetails(); - establishSocketConnection(); if (showLocationUpdates){ @@ -192,21 +220,29 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead 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(); + try { + if (patientData == null) throw new Exception(); + + double lat = Double.parseDouble(patientData.lat); + double lng = Double.parseDouble(patientData.lng); + + mHomeLatLng = new LatLng(lat, lng); + } catch (Exception e) { + // do nothing + } CgHomeRepository.getHomeRepository().getGeoFenceDetails(AppUtil.getPatientUid(this) + "", "", "Bearer " + AppUtil.getPatientToken(this), this); } }, false); - }); BottomSheetBehavior bs_behavior = BottomSheetBehavior.from(binding.locationBs); @@ -217,8 +253,21 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead this.careGiverData = careGiverData1; binding.seniorNameTitle.setText(careGiverData.patientDetails.first_name); - if (geoFenceDetails != null){ - binding.lastUpdated.setText(geoFenceDetails.updated_at); + if (geoFenceDetails != null && geoFenceDetails.patient_radius_location != null){ + String lastUpdatedTime; + try { + SimpleDateFormat inputSdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'", Locale.getDefault()); + inputSdf.setTimeZone(TimeZone.getTimeZone("UTC")); + SimpleDateFormat outPutSdf = new SimpleDateFormat("hh:mm a", Locale.getDefault()); + + lastUpdatedTime = outPutSdf.format(Objects.requireNonNull(inputSdf.parse(geoFenceDetails.patient_radius_location.updated_at))); + } catch (Exception e) { + lastUpdatedTime = geoFenceDetails.patient_radius_location.updated_at; + } + + binding.lastUpdated.setText(String.format("Last updated at %s", lastUpdatedTime)); + }else{ + binding.lastUpdated.setText("Last updated data nnt available"); } Glide.with(this) @@ -308,6 +357,9 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead updateCurrentLocationPatientMarker(); updatePatientCurrentLocationDetails(); updateCurrentLocationBs(); + + // last updated at + binding.lastUpdated.setText(String.format("Last updated at %s", new SimpleDateFormat("hh:mm a", Locale.getDefault()).format(Calendar.getInstance().getTime()))); }); } } @@ -655,7 +707,9 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead public void onMapReady(@NonNull GoogleMap googleMap) { this.mMap = googleMap; - loadPatientsLocation(); + if (!showLocationUpdates) { + loadPatientsLocation();// remove this if to also show patient home location along with geofence radius + } updateCurrentLocationPatientMarker(); @@ -712,11 +766,42 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead if (patientData != null) name = patientData.first_name; else name = "Senior's location"; - MarkerOptions options = new MarkerOptions() + final MarkerOptions options = new MarkerOptions() .position(pat_cur_latLng) - .icon(BitmapDescriptorFactory.fromResource(R.drawable.img_pat_curr_location)) .title(name) .draggable(false); + if (showLocationUpdates && patientData != null) { + + MarkerBgBinding markerBgBinding = MarkerBgBinding.inflate(getLayoutInflater()); + + Glide.with(this) + .load(IMAGE_BASE_URL + patientData.profile_photo) + .error(R.drawable.img_pat_curr_location) + .placeholder(android.R.color.darker_gray) + .addListener(new RequestListener() { + @Override + public boolean onLoadFailed(@Nullable GlideException e, Object model, Target target, boolean isFirstResource) { + options.icon(BitmapDescriptorFactory.fromResource(R.drawable.img_pat_curr_location)); + return false; + } + + @Override + public boolean onResourceReady(Drawable resource, Object model, Target target, DataSource dataSource, boolean isFirstResource) { + if (iconGenerator == null) { + iconGenerator = new IconGenerator(CgGeoFencingActivity.this); + markerBgBinding.markerBgImage.setImageDrawable(resource); + iconGenerator.setContentView(markerBgBinding.getRoot()); + iconGenerator.setBackground(AppCompatResources.getDrawable(CgGeoFencingActivity.this, android.R.color.transparent)); + } + + options.icon(BitmapDescriptorFactory.fromBitmap(iconGenerator.makeIcon())); + return false; + } + }) + .into(markerBgBinding.markerBgImage); + } else { + options.icon(BitmapDescriptorFactory.fromResource(R.drawable.img_pat_curr_location)); + } if (curr_loc_marker != null) curr_loc_marker.remove(); curr_loc_marker = mMap.addMarker(options); @@ -879,9 +964,27 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead public void onGeofenceDetailsFetched(GeoFenceDetails geoFenceDetails) { progressDialog.dismiss(); updateCurrentLocationPatientMarker(); - updatePatientCurrentLocationDetails(); +// updatePatientCurrentLocationDetails(); for also showing patient home location along with geofence radius if (showLocationUpdates){ updateCurrentLocationBs(); + + // last updated at + if (geoFenceDetails != null && geoFenceDetails.patient_radius_location != null){ + String lastUpdatedTime; + try { + SimpleDateFormat inputSdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSSSSS'Z'", Locale.getDefault()); + inputSdf.setTimeZone(TimeZone.getTimeZone("UTC")); + SimpleDateFormat outPutSdf = new SimpleDateFormat("hh:mm a", Locale.getDefault()); + + lastUpdatedTime = outPutSdf.format(Objects.requireNonNull(inputSdf.parse(geoFenceDetails.patient_radius_location.updated_at))); + } catch (Exception e) { + lastUpdatedTime = geoFenceDetails.patient_radius_location.updated_at; + } + + binding.lastUpdated.setText(String.format("Last updated at %s", lastUpdatedTime)); + }else{ + binding.lastUpdated.setText("Last updated data nnt available"); + } } } diff --git a/app/src/main/res/drawable/ic_marker_bg.png b/app/src/main/res/drawable/ic_marker_bg.png new file mode 100644 index 0000000000000000000000000000000000000000..605ec261c8f0d05ace7d539a7101e803fdee74dc GIT binary patch literal 7848 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 literal 0 HcmV?d00001 diff --git a/app/src/main/res/layout/activity_cg_geofencing.xml b/app/src/main/res/layout/activity_cg_geofencing.xml index 87242ec..34a2ef5 100644 --- a/app/src/main/res/layout/activity_cg_geofencing.xml +++ b/app/src/main/res/layout/activity_cg_geofencing.xml @@ -65,12 +65,11 @@ android:visibility="gone" android:ellipsize="end" - android:fontFamily="@font/nunito_semibold" + android:fontFamily="@font/nunito_regular" android:singleLine="true" - tools:text="Last updated now " android:textAppearance="@style/TextAppearance.Material3.TitleSmall" - android:textColor="@android:color/darker_gray" + android:textColor="@android:color/black" /> diff --git a/app/src/main/res/layout/marker_bg.xml b/app/src/main/res/layout/marker_bg.xml new file mode 100644 index 0000000..7949344 --- /dev/null +++ b/app/src/main/res/layout/marker_bg.xml @@ -0,0 +1,27 @@ + + + + + + + + + \ No newline at end of file