.
This commit is contained in:
@@ -66,6 +66,8 @@ public abstract class AppUtil {
|
||||
public static final String IMAGE_BASE_URL = "https://simplitend.betadelivery.com/storage/upload/";
|
||||
private static final String TAG = "AppUtil";
|
||||
|
||||
public static final int LOCATION_REQUEST_CODE = 12;
|
||||
|
||||
public static final String NOTIFICATION_ACTION = "com.simplitend.NOTIFICATION_ACTION";
|
||||
|
||||
// fields
|
||||
|
||||
@@ -103,6 +103,7 @@ public class ArticlesActivity extends AppCompatActivity
|
||||
}
|
||||
|
||||
binding.searchEt.setText("");
|
||||
AppUtil.closeKeyboard(this);
|
||||
});
|
||||
|
||||
binding.searchEt.setOnEditorActionListener((textView, i, keyEvent) -> {
|
||||
|
||||
@@ -13,6 +13,8 @@ public class GeoFenceDetails implements Serializable {
|
||||
public String created_at;
|
||||
public String updated_at;
|
||||
|
||||
public PatientCurrLocation patient_radius_location;
|
||||
|
||||
public GeoFenceDetails(){}
|
||||
|
||||
@Override
|
||||
|
||||
@@ -0,0 +1,12 @@
|
||||
package com.app.simplitend.caregiverdashboard.mvvm.models;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
public class PatientCurrLocation implements Serializable {
|
||||
public int id;
|
||||
public String patient_xid;
|
||||
public String lat;
|
||||
public String lng;
|
||||
public String created_at;
|
||||
public String updated_at;
|
||||
}
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.app.simplitend.cg_geofencing;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.PendingIntent;
|
||||
import android.app.ProgressDialog;
|
||||
import android.content.Intent;
|
||||
import android.graphics.Color;
|
||||
@@ -17,18 +18,6 @@ import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import com.google.android.gms.maps.CameraUpdateFactory;
|
||||
import com.google.android.gms.maps.GoogleMap;
|
||||
import com.google.android.gms.maps.OnMapReadyCallback;
|
||||
import com.google.android.gms.maps.SupportMapFragment;
|
||||
import com.google.android.gms.maps.model.CircleOptions;
|
||||
import com.google.android.gms.maps.model.LatLng;
|
||||
import com.google.android.gms.maps.model.MarkerOptions;
|
||||
import com.google.android.libraries.places.api.Places;
|
||||
import com.google.android.libraries.places.api.model.Place;
|
||||
import com.google.android.libraries.places.widget.Autocomplete;
|
||||
import com.google.android.libraries.places.widget.model.AutocompleteActivityMode;
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog;
|
||||
import com.app.simplitend.R;
|
||||
import com.app.simplitend.apputils.AppUtil;
|
||||
import com.app.simplitend.apputils.CaregiverDataCache;
|
||||
@@ -39,6 +28,19 @@ import com.app.simplitend.databinding.ActivityCgGeofencingBinding;
|
||||
import com.app.simplitend.databinding.GeofenceBottomSheetBinding;
|
||||
import com.app.simplitend.welcome.welcomecg.mvvm.CareGiverData;
|
||||
import com.app.simplitend.welcome.welcomepatient.mvvm.models.PatientData;
|
||||
import com.google.android.gms.maps.CameraUpdateFactory;
|
||||
import com.google.android.gms.maps.GoogleMap;
|
||||
import com.google.android.gms.maps.OnMapReadyCallback;
|
||||
import com.google.android.gms.maps.SupportMapFragment;
|
||||
import com.google.android.gms.maps.model.BitmapDescriptorFactory;
|
||||
import com.google.android.gms.maps.model.CircleOptions;
|
||||
import com.google.android.gms.maps.model.LatLng;
|
||||
import com.google.android.gms.maps.model.MarkerOptions;
|
||||
import com.google.android.libraries.places.api.Places;
|
||||
import com.google.android.libraries.places.api.model.Place;
|
||||
import com.google.android.libraries.places.widget.Autocomplete;
|
||||
import com.google.android.libraries.places.widget.model.AutocompleteActivityMode;
|
||||
import com.google.android.material.bottomsheet.BottomSheetDialog;
|
||||
|
||||
import java.util.Arrays;
|
||||
import java.util.HashMap;
|
||||
@@ -72,7 +74,7 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead
|
||||
|
||||
private GoogleMap mMap;
|
||||
|
||||
private LatLng mLatLng;
|
||||
private LatLng mLatLng, pat_cur_latLng;
|
||||
|
||||
private ActivityResultLauncher<Intent> startAutocompleteMapSearch;
|
||||
|
||||
@@ -90,6 +92,13 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead
|
||||
try {
|
||||
geoFenceDetails = (GeoFenceDetails) intent.getSerializableExtra(GEOFENCE_DETAILS_KEY);
|
||||
if (geoFenceDetails == null) throw new Exception();
|
||||
|
||||
try {
|
||||
pat_cur_latLng = new LatLng(Double.parseDouble(geoFenceDetails.patient_radius_location.lat),
|
||||
Double.parseDouble(geoFenceDetails.patient_radius_location.lng));
|
||||
}catch (Exception e){
|
||||
pat_cur_latLng = null;
|
||||
}
|
||||
} catch (Exception e) {
|
||||
Toast.makeText(this, "Couldn't load Geofence.", Toast.LENGTH_SHORT).show();
|
||||
geoFenceDetails = new GeoFenceDetails();
|
||||
@@ -395,9 +404,22 @@ public class CgGeoFencingActivity extends AppCompatActivity implements OnMapRead
|
||||
|
||||
MarkerOptions markerOptions = new MarkerOptions()
|
||||
.position(latLng)
|
||||
.title(patientData.first_name + "");
|
||||
.draggable(false)
|
||||
.icon(BitmapDescriptorFactory.fromResource(R.drawable.img_home_marker))
|
||||
.title("Home location");
|
||||
|
||||
mMap.addMarker(markerOptions);
|
||||
|
||||
if (pat_cur_latLng != null){
|
||||
MarkerOptions pat_cur_marker = new MarkerOptions()
|
||||
.position(pat_cur_latLng)
|
||||
.draggable(false)
|
||||
.icon(BitmapDescriptorFactory.fromResource(R.drawable.img_pat_curr_location))
|
||||
.title(patientData.first_name + "");
|
||||
|
||||
mMap.addMarker(pat_cur_marker);
|
||||
}
|
||||
|
||||
mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(latLng, 13));
|
||||
}
|
||||
|
||||
|
||||
@@ -132,6 +132,10 @@ public class CgSubscriptionActivity extends AppCompatActivity
|
||||
}), true);
|
||||
});
|
||||
|
||||
binding.backBtn.setOnClickListener(view -> {
|
||||
onBackPressed();
|
||||
});
|
||||
|
||||
binding.contactAdmin.setOnClickListener(view -> {
|
||||
contactMail();
|
||||
});
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package com.app.simplitend.patient_dashboard;
|
||||
|
||||
import static com.app.simplitend.patientgeofencing.GeoFenceHelper.GEOFENCE_TAG;
|
||||
import static com.app.simplitend.patientgeofencing.PatientLocationUpdatesReceiver.LOCATION_REQUEST_TAG;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.role.RoleManager;
|
||||
@@ -13,6 +14,7 @@ import android.util.Log;
|
||||
import androidx.activity.result.contract.ActivityResultContracts;
|
||||
import androidx.annotation.NonNull;
|
||||
import androidx.appcompat.app.AppCompatActivity;
|
||||
import androidx.core.app.ActivityCompat;
|
||||
import androidx.lifecycle.ViewModelProvider;
|
||||
|
||||
import com.app.simplitend.R;
|
||||
@@ -25,6 +27,7 @@ public class DashBoardActivity extends AppCompatActivity implements CgHomeContra
|
||||
|
||||
protected PatientMainViewModel viewModel;
|
||||
public static final int LOCATION_REQUEST_CODE = 1001;
|
||||
public static final int LOCATION_REQUEST_CODE_2 = 2002;
|
||||
|
||||
private GeoFenceDetails geoFenceDetails;
|
||||
|
||||
@@ -43,13 +46,13 @@ public class DashBoardActivity extends AppCompatActivity implements CgHomeContra
|
||||
"", "Bearer " + AppUtil.getPatientToken(this),
|
||||
this);
|
||||
|
||||
if (result){
|
||||
if (result) {
|
||||
// permission granted
|
||||
if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.Q) {
|
||||
RoleManager roleManager = getSystemService(RoleManager.class);
|
||||
Intent i = roleManager.createRequestRoleIntent(RoleManager.ROLE_CALL_SCREENING);
|
||||
startActivityForResult(i, 1214, null);
|
||||
}else{
|
||||
} else {
|
||||
Intent intent = new Intent(TelecomManager.ACTION_CHANGE_DEFAULT_DIALER);
|
||||
intent.putExtra(TelecomManager.EXTRA_CHANGE_DEFAULT_DIALER_PACKAGE_NAME, getPackageName());
|
||||
startActivity(intent);
|
||||
@@ -59,20 +62,30 @@ public class DashBoardActivity extends AppCompatActivity implements CgHomeContra
|
||||
}
|
||||
|
||||
private void validateAndAddGeofence(GeoFenceDetails geoFenceDetails) {
|
||||
if (geoFenceDetails.radius != null && geoFenceDetails.type != null){
|
||||
if (geoFenceDetails.radius != null && geoFenceDetails.type != null) {
|
||||
PatientDataCache.getPatientData(this, (patientData -> {
|
||||
if (patientData != null){
|
||||
if (patientData != null) {
|
||||
if (AppUtil.shouldAddPatientGeofence(this,
|
||||
geoFenceDetails.radius, geoFenceDetails.type, patientData)){
|
||||
geoFenceDetails.radius, geoFenceDetails.type, patientData)) {
|
||||
// should add a geofence
|
||||
viewModel.setGeofence(this, geoFenceDetails, patientData);
|
||||
}else{
|
||||
} else {
|
||||
Log.d(GEOFENCE_TAG, "onGeofenceDetailsFetched: should not add patient geofence because GEOFENCE DETAILS: " + geoFenceDetails + " PATIENT DETAILS: " + patientData);
|
||||
}
|
||||
}
|
||||
}), false);
|
||||
}
|
||||
|
||||
if (geoFenceDetails.patient_radius_location != null) {
|
||||
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
|
||||
Log.d(LOCATION_REQUEST_TAG, "addLocationUpdates: REQUESTING FINE LOCATION PERMISSION");
|
||||
ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.ACCESS_FINE_LOCATION}, LOCATION_REQUEST_CODE_2);
|
||||
return;
|
||||
}
|
||||
|
||||
viewModel.addLocationUpdates(this);
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
@@ -91,13 +104,23 @@ public class DashBoardActivity extends AppCompatActivity implements CgHomeContra
|
||||
@Override
|
||||
public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions, @NonNull int[] grantResults) {
|
||||
super.onRequestPermissionsResult(requestCode, permissions, grantResults);
|
||||
if (requestCode == LOCATION_REQUEST_CODE){
|
||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED){
|
||||
if (requestCode == LOCATION_REQUEST_CODE) {
|
||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
Log.d(GEOFENCE_TAG, "onRequestPermissionsResult: PERMISSION GRANTED");
|
||||
if (geoFenceDetails != null){
|
||||
if (geoFenceDetails != null) {
|
||||
validateAndAddGeofence(geoFenceDetails);
|
||||
}
|
||||
}
|
||||
} else if (requestCode == LOCATION_REQUEST_CODE_2) {
|
||||
if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {
|
||||
Log.d(LOCATION_REQUEST_TAG, "onRequestPermissionsResult: PERMISSION GRANTED");
|
||||
|
||||
if (ActivityCompat.checkSelfPermission(this, Manifest.permission.ACCESS_FINE_LOCATION) != PackageManager.PERMISSION_GRANTED) {
|
||||
return;
|
||||
}
|
||||
|
||||
viewModel.addLocationUpdates(this);
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -3,11 +3,12 @@ package com.app.simplitend.patient_dashboard;
|
||||
import static com.app.simplitend.patient_dashboard.DashBoardActivity.LOCATION_REQUEST_CODE;
|
||||
import static com.app.simplitend.patientgeofencing.GeoFenceHelper.GEOFENCE_ID;
|
||||
import static com.app.simplitend.patientgeofencing.GeoFenceHelper.GEOFENCE_TAG;
|
||||
import static com.app.simplitend.patientgeofencing.PatientLocationUpdatesReceiver.LOCATION_REQUEST_TAG;
|
||||
|
||||
import android.Manifest;
|
||||
import android.app.Activity;
|
||||
import android.app.PendingIntent;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.pm.PackageManager;
|
||||
import android.os.Build;
|
||||
import android.os.Handler;
|
||||
@@ -29,15 +30,19 @@ import com.app.simplitend.caregiverdashboard.mvvm.CgHomeRepository;
|
||||
import com.app.simplitend.caregiverdashboard.mvvm.NotificationApiService;
|
||||
import com.app.simplitend.caregiverdashboard.mvvm.models.GeoFenceDetails;
|
||||
import com.app.simplitend.patientgeofencing.GeoFenceHelper;
|
||||
import com.app.simplitend.patientgeofencing.PatientLocationUpdatesReceiver;
|
||||
import com.app.simplitend.patientprofile.PatientProfileAPIService;
|
||||
import com.app.simplitend.patientprofile.medreminder.mvvm.models.NearestActivity;
|
||||
import com.app.simplitend.patientprofile.medreminder.mvvm.models.NearestReminder;
|
||||
import com.app.simplitend.patientprofile.medreminder.mvvm.models.ReminderResult;
|
||||
import com.app.simplitend.patientprofile.setuproutine.mvvm.RoutineDetails;
|
||||
import com.app.simplitend.welcome.welcomepatient.mvvm.models.CallResponse;
|
||||
import com.app.simplitend.welcome.welcomepatient.mvvm.models.PatientData;
|
||||
import com.google.android.gms.location.FusedLocationProviderClient;
|
||||
import com.google.android.gms.location.Geofence;
|
||||
import com.google.android.gms.location.GeofencingClient;
|
||||
import com.google.android.gms.location.GeofencingRequest;
|
||||
import com.google.android.gms.location.LocationRequest;
|
||||
import com.google.android.gms.location.LocationServices;
|
||||
import com.google.android.gms.maps.model.LatLng;
|
||||
|
||||
@@ -94,6 +99,35 @@ public class PatientMainViewModel extends ViewModel {
|
||||
}
|
||||
}
|
||||
|
||||
@RequiresPermission(Manifest.permission.ACCESS_FINE_LOCATION)
|
||||
public void addLocationUpdates(Activity activity) {
|
||||
Log.d(LOCATION_REQUEST_TAG, "REQUESTING LOCATION UPDATES");
|
||||
FusedLocationProviderClient fusedLocationClient = LocationServices.getFusedLocationProviderClient(activity);
|
||||
|
||||
LocationRequest locationRequest = new LocationRequest();
|
||||
locationRequest.setInterval(10_000);
|
||||
locationRequest.setSmallestDisplacement(100);
|
||||
locationRequest.setPriority(LocationRequest.PRIORITY_HIGH_ACCURACY);
|
||||
|
||||
Intent intent = new Intent(activity, PatientLocationUpdatesReceiver.class);
|
||||
PendingIntent pendingIntent ;
|
||||
|
||||
if(Build.VERSION.SDK_INT > 30){
|
||||
pendingIntent = PendingIntent.getBroadcast(activity, LOCATION_REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_MUTABLE);
|
||||
} else{
|
||||
pendingIntent = PendingIntent.getBroadcast(activity, LOCATION_REQUEST_CODE, intent, PendingIntent.FLAG_UPDATE_CURRENT);
|
||||
}
|
||||
|
||||
fusedLocationClient.requestLocationUpdates(locationRequest, pendingIntent)
|
||||
.addOnCompleteListener(task -> {
|
||||
if (task.isSuccessful() && task.getException() == null){
|
||||
Log.d(LOCATION_REQUEST_TAG, "LOCATION UPDATES ADDED");
|
||||
}else{
|
||||
Log.d(LOCATION_REQUEST_TAG, "CANNOT ADD LOCATION UPDATES " + task.getException());
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
public void getGeoFenceDetails(String p_id,
|
||||
String cg_xid,
|
||||
@NonNull String token,
|
||||
@@ -405,7 +439,28 @@ public class PatientMainViewModel extends ViewModel {
|
||||
}
|
||||
}
|
||||
|
||||
public void contactWhiteList(Context context) {
|
||||
public void updatePatientCurrentLocation(@NonNull LatLng latLng,
|
||||
@NonNull String patient_id,
|
||||
@NonNull String token){
|
||||
PatientProfileAPIService apiService = RetrofitHelper.getRetrofit().create(PatientProfileAPIService.class);
|
||||
|
||||
Map<String, String> body = new HashMap<>();
|
||||
body.put("patient_id", patient_id);
|
||||
body.put("lat", latLng.latitude + "");
|
||||
body.put("lng", latLng.longitude + "");
|
||||
|
||||
apiService.updatePatientCurrLocation(body, token)
|
||||
.enqueue(new Callback<CallResponse<Object>>() {
|
||||
@Override
|
||||
public void onResponse(Call<CallResponse<Object>> call, Response<CallResponse<Object>> response) {
|
||||
Log.d(TAG, "PATIENT CURRENT LOCATION UPDATED");
|
||||
}
|
||||
|
||||
@Override
|
||||
public void onFailure(Call<CallResponse<Object>> call, Throwable t) {
|
||||
Log.e(TAG, "onFailure: PATIENT CURRENT LOCATION UPDATE", t);
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
@@ -98,15 +98,37 @@ public class ChatFragment extends Fragment implements SocketHelper.Callback<Mess
|
||||
return;
|
||||
}
|
||||
|
||||
SocketHelper.getInstance().sendMessage(binding.messageEt.getText().toString().trim(), nick_name, patient_id);
|
||||
binding.messageEt.setText("");
|
||||
enableDenButton(false);
|
||||
if (SocketHelper.getInstance().isConnected()) {
|
||||
SocketHelper.getInstance().sendMessage(binding.messageEt.getText().toString().trim(), nick_name, patient_id);
|
||||
binding.messageEt.setText("");
|
||||
enableDenButton(false);
|
||||
} else {
|
||||
Toast.makeText(requireContext(), "Check internet connection", Toast.LENGTH_SHORT).show();
|
||||
}
|
||||
});
|
||||
|
||||
}
|
||||
|
||||
private void initViews() {
|
||||
|
||||
try {
|
||||
try {
|
||||
int res = Integer.parseInt(receiver_image);
|
||||
binding.receiverImage.setImageResource(res);
|
||||
}catch (Exception e){
|
||||
if (receiver_image != null){
|
||||
Glide.with(requireContext())
|
||||
.load(receiver_image)
|
||||
.placeholder(android.R.color.darker_gray)
|
||||
.error(R.drawable.ic_contact)
|
||||
.into(binding.receiverImage);
|
||||
}
|
||||
}
|
||||
}catch (Exception e){
|
||||
// do nothing
|
||||
binding.receiverImage.setImageResource(R.drawable.ic_contact);
|
||||
}
|
||||
|
||||
binding.chatTitle.setText(receiver_name);
|
||||
|
||||
MessagesListAdapter.HoldersConfig holdersConfig = new MessagesListAdapter.HoldersConfig();
|
||||
@@ -152,6 +174,7 @@ public class ChatFragment extends Fragment implements SocketHelper.Callback<Mess
|
||||
if (messageAdapter == null) return;
|
||||
|
||||
messageAdapter.addToStart(message, true);
|
||||
binding.noChats.setVisibility(View.GONE);
|
||||
});
|
||||
}
|
||||
|
||||
|
||||
@@ -27,6 +27,7 @@ public class ReceiverViewHolder extends MessagesListAdapter.OutcomingMessageView
|
||||
super.onBind(message);
|
||||
message_txt.setText(message.getText());
|
||||
message_txt.setTextColor(Color.BLACK);
|
||||
|
||||
try {
|
||||
try {
|
||||
int res = Integer.parseInt(message.getUser().getAvatar());
|
||||
|
||||
@@ -68,6 +68,10 @@ public class SocketHelper {
|
||||
}
|
||||
}
|
||||
|
||||
public boolean isConnected(){
|
||||
return mSocket.connected();
|
||||
}
|
||||
|
||||
public void closeConnection() {
|
||||
if (mSocket.connected()) {
|
||||
mSocket.disconnect();
|
||||
|
||||
@@ -10,14 +10,11 @@ import static com.app.simplitend.patient_dashboard.NotificationsActivity.USER_TO
|
||||
import static com.app.simplitend.patient_dashboard.fragments.CallsActivity.CALL_CONTACT_LIST_KEY;
|
||||
|
||||
import android.app.Activity;
|
||||
import android.app.role.RoleManager;
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.content.IntentFilter;
|
||||
import android.content.res.Resources;
|
||||
import android.os.Bundle;
|
||||
import android.telecom.TelecomManager;
|
||||
import android.view.LayoutInflater;
|
||||
import android.view.View;
|
||||
import android.view.ViewGroup;
|
||||
@@ -32,7 +29,6 @@ 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;
|
||||
@@ -210,6 +206,8 @@ public class PatientDashboardFragment extends Fragment implements ProfileContrac
|
||||
sender_image = AppUtil.IMAGE_BASE_URL + patientData.profile_photo;
|
||||
}
|
||||
|
||||
patientData.caregiver_profile_photo = null;
|
||||
|
||||
String receiver_image;
|
||||
if (patientData.caregiver_profile_photo == null){
|
||||
receiver_image = String.valueOf(R.drawable.caregiver_img);
|
||||
|
||||
@@ -0,0 +1,28 @@
|
||||
package com.app.simplitend.patientgeofencing;
|
||||
|
||||
import android.content.BroadcastReceiver;
|
||||
import android.content.Context;
|
||||
import android.content.Intent;
|
||||
import android.location.Location;
|
||||
import android.location.LocationManager;
|
||||
import android.os.Bundle;
|
||||
import android.util.Log;
|
||||
|
||||
import com.google.maps.model.LatLng;
|
||||
|
||||
public class PatientLocationUpdatesReceiver extends BroadcastReceiver {
|
||||
|
||||
public static final String LOCATION_REQUEST_TAG = "LOCATION_REQUEST_TAG";
|
||||
private static final String LOCATION_EXTRA_KEY = "com.google.android.location.LOCATION";
|
||||
|
||||
@Override
|
||||
public void onReceive(Context context, Intent intent) {
|
||||
Log.d(LOCATION_REQUEST_TAG, "LOCATION UPDATE RECEIVED");
|
||||
Location location = intent.getParcelableExtra(LOCATION_EXTRA_KEY);
|
||||
if (location != null) {
|
||||
Log.d(LOCATION_REQUEST_TAG, new LatLng(location.getLatitude(), location.getLongitude()).toString());
|
||||
}else{
|
||||
Log.e(LOCATION_REQUEST_TAG, "LOCATION RECEIVED IS NULL");
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -75,4 +75,7 @@ public interface PatientProfileAPIService {
|
||||
@Header("patientRoutineId") int patient_routine_id,
|
||||
@Header("Authorization") String token);
|
||||
|
||||
@POST("api/patient-current-location-update")
|
||||
Call<CallResponse<Object>> updatePatientCurrLocation(@Body Map<String, String> body,
|
||||
@Header("Authorization") String token);
|
||||
}
|
||||
|
||||
@@ -122,6 +122,10 @@ public class AddReminderFragment extends Fragment implements CompoundButton.OnCh
|
||||
getDate();
|
||||
});
|
||||
|
||||
binding.removeDateBtn.setOnClickListener(v -> {
|
||||
binding.getDate.setText(null);
|
||||
});
|
||||
|
||||
binding.addReminder.setOnClickListener(v -> {
|
||||
AppUtil.closeKeyboard(requireActivity());
|
||||
|
||||
@@ -356,10 +360,10 @@ public class AddReminderFragment extends Fragment implements CompoundButton.OnCh
|
||||
binding.quantity.setError("Required");
|
||||
}
|
||||
|
||||
if (binding.getDate.getText().toString().trim().isEmpty()) {
|
||||
allOkay = false;
|
||||
binding.getDate.setError("Required");
|
||||
}
|
||||
// if (binding.getDate.getText().toString().trim().isEmpty()) {
|
||||
// allOkay = false;
|
||||
// binding.getDate.setError("Required");
|
||||
// }
|
||||
|
||||
if (allOkay) {
|
||||
boolean anyOneSelected = false;
|
||||
|
||||
@@ -258,11 +258,6 @@ public class AddRoutineFragment extends Fragment implements CompoundButton.OnChe
|
||||
binding.routineName.setError("Required");
|
||||
}
|
||||
|
||||
if (binding.routineDescription.getText().toString().trim().isEmpty()){
|
||||
allOkay = false;
|
||||
binding.routineDescription.setError("Required");
|
||||
}
|
||||
|
||||
if (binding.startTime.getText().toString().trim().isEmpty()){
|
||||
allOkay = false;
|
||||
binding.startTime.setError("Required");
|
||||
|
||||
@@ -110,20 +110,7 @@ public class CgAuthActivity extends AppCompatActivity {
|
||||
|
||||
@Override
|
||||
public void afterTextChanged(Editable editable) {
|
||||
if (editable.length() == 4) {
|
||||
AppUtil.closeKeyboard(CgAuthActivity.this);
|
||||
|
||||
if (editable.toString().equals("0000")) {
|
||||
gotoCgDash();
|
||||
} else {
|
||||
YoYo.with(Techniques.Wobble)
|
||||
.playOn(binding.pin);
|
||||
|
||||
binding.pin.setError("Invalid pin.");
|
||||
binding.pin.setText(null);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -184,7 +171,6 @@ public class CgAuthActivity extends AppCompatActivity {
|
||||
break;
|
||||
case BiometricManager.BIOMETRIC_SUCCESS:
|
||||
case BiometricManager.BIOMETRIC_ERROR_NONE_ENROLLED:
|
||||
binding.fingerprintOr.setVisibility(View.VISIBLE);
|
||||
binding.fingerprintView.setVisibility(View.VISIBLE);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -157,6 +157,7 @@ public class CreateContactFragment extends Fragment implements WelcomeContracts.
|
||||
getString(R.string.yes), getString(R.string.no),
|
||||
v -> {
|
||||
}, v -> {
|
||||
binding.sosCheck.setChecked(true);
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user