diff --git a/.idea/deploymentTargetDropDown.xml b/.idea/deploymentTargetDropDown.xml
index 8cf1166..7bd9a47 100644
--- a/.idea/deploymentTargetDropDown.xml
+++ b/.idea/deploymentTargetDropDown.xml
@@ -6,13 +6,13 @@
-
-
+
+
-
+
diff --git a/.idea/misc.xml b/.idea/misc.xml
index 3a88592..c33f260 100644
--- a/.idea/misc.xml
+++ b/.idea/misc.xml
@@ -1,4 +1,3 @@
-
diff --git a/app/src/main/AndroidManifest.xml b/app/src/main/AndroidManifest.xml
index 8c51482..95533dc 100644
--- a/app/src/main/AndroidManifest.xml
+++ b/app/src/main/AndroidManifest.xml
@@ -99,7 +99,8 @@
+ android:screenOrientation="portrait"/>
+
+
{
diff --git a/app/src/main/java/com/app/simplitend/caregiverdashboard/mvvm/models/GeoFenceDetails.java b/app/src/main/java/com/app/simplitend/caregiverdashboard/mvvm/models/GeoFenceDetails.java
index 0ce9045..9d2b30f 100644
--- a/app/src/main/java/com/app/simplitend/caregiverdashboard/mvvm/models/GeoFenceDetails.java
+++ b/app/src/main/java/com/app/simplitend/caregiverdashboard/mvvm/models/GeoFenceDetails.java
@@ -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
diff --git a/app/src/main/java/com/app/simplitend/caregiverdashboard/mvvm/models/PatientCurrLocation.java b/app/src/main/java/com/app/simplitend/caregiverdashboard/mvvm/models/PatientCurrLocation.java
new file mode 100644
index 0000000..1a5dcac
--- /dev/null
+++ b/app/src/main/java/com/app/simplitend/caregiverdashboard/mvvm/models/PatientCurrLocation.java
@@ -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;
+}
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 d88c56b..c04da7b 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
@@ -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 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));
}
diff --git a/app/src/main/java/com/app/simplitend/cg_subscription/CgSubscriptionActivity.java b/app/src/main/java/com/app/simplitend/cg_subscription/CgSubscriptionActivity.java
index 3351f0b..f108941 100644
--- a/app/src/main/java/com/app/simplitend/cg_subscription/CgSubscriptionActivity.java
+++ b/app/src/main/java/com/app/simplitend/cg_subscription/CgSubscriptionActivity.java
@@ -132,6 +132,10 @@ public class CgSubscriptionActivity extends AppCompatActivity
}), true);
});
+ binding.backBtn.setOnClickListener(view -> {
+ onBackPressed();
+ });
+
binding.contactAdmin.setOnClickListener(view -> {
contactMail();
});
diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/DashBoardActivity.java b/app/src/main/java/com/app/simplitend/patient_dashboard/DashBoardActivity.java
index 1f5babc..6ee5e1c 100644
--- a/app/src/main/java/com/app/simplitend/patient_dashboard/DashBoardActivity.java
+++ b/app/src/main/java/com/app/simplitend/patient_dashboard/DashBoardActivity.java
@@ -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);
+ }
}
}
}
\ No newline at end of file
diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/PatientMainViewModel.java b/app/src/main/java/com/app/simplitend/patient_dashboard/PatientMainViewModel.java
index eb806f5..7e0e1c1 100644
--- a/app/src/main/java/com/app/simplitend/patient_dashboard/PatientMainViewModel.java
+++ b/app/src/main/java/com/app/simplitend/patient_dashboard/PatientMainViewModel.java
@@ -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 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>() {
+ @Override
+ public void onResponse(Call> call, Response> response) {
+ Log.d(TAG, "PATIENT CURRENT LOCATION UPDATED");
+ }
+
+ @Override
+ public void onFailure(Call> call, Throwable t) {
+ Log.e(TAG, "onFailure: PATIENT CURRENT LOCATION UPDATE", t);
+ }
+ });
}
}
diff --git a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/ChatFragment.java b/app/src/main/java/com/app/simplitend/patient_dashboard/chats/ChatFragment.java
index 52ed7dc..609e28f 100644
--- a/app/src/main/java/com/app/simplitend/patient_dashboard/chats/ChatFragment.java
+++ b/app/src/main/java/com/app/simplitend/patient_dashboard/chats/ChatFragment.java
@@ -98,15 +98,37 @@ public class ChatFragment extends Fragment implements SocketHelper.Callback> updatePatientCurrLocation(@Body Map body,
+ @Header("Authorization") String token);
}
diff --git a/app/src/main/java/com/app/simplitend/patientprofile/medreminder/AddReminderFragment.java b/app/src/main/java/com/app/simplitend/patientprofile/medreminder/AddReminderFragment.java
index 51d2704..8c944b1 100644
--- a/app/src/main/java/com/app/simplitend/patientprofile/medreminder/AddReminderFragment.java
+++ b/app/src/main/java/com/app/simplitend/patientprofile/medreminder/AddReminderFragment.java
@@ -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;
diff --git a/app/src/main/java/com/app/simplitend/patientprofile/setuproutine/AddRoutineFragment.java b/app/src/main/java/com/app/simplitend/patientprofile/setuproutine/AddRoutineFragment.java
index 1b12686..1b42dde 100644
--- a/app/src/main/java/com/app/simplitend/patientprofile/setuproutine/AddRoutineFragment.java
+++ b/app/src/main/java/com/app/simplitend/patientprofile/setuproutine/AddRoutineFragment.java
@@ -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");
diff --git a/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgAuthActivity.java b/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgAuthActivity.java
index cbc64dc..d92c8da 100644
--- a/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgAuthActivity.java
+++ b/app/src/main/java/com/app/simplitend/welcome/welcomecg/fragments/CgAuthActivity.java
@@ -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;
}
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 3c580a3..5773600 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
@@ -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);
});
}
});
diff --git a/app/src/main/res/drawable-hdpi/ic_fingerprint.png b/app/src/main/res/drawable-hdpi/img_fingerprint.png
similarity index 100%
rename from app/src/main/res/drawable-hdpi/ic_fingerprint.png
rename to app/src/main/res/drawable-hdpi/img_fingerprint.png
diff --git a/app/src/main/res/drawable-ldpi/ic_fingerprint.png b/app/src/main/res/drawable-ldpi/img_fingerprint.png
similarity index 100%
rename from app/src/main/res/drawable-ldpi/ic_fingerprint.png
rename to app/src/main/res/drawable-ldpi/img_fingerprint.png
diff --git a/app/src/main/res/drawable-mdpi/ic_fingerprint.png b/app/src/main/res/drawable-mdpi/img_fingerprint.png
similarity index 100%
rename from app/src/main/res/drawable-mdpi/ic_fingerprint.png
rename to app/src/main/res/drawable-mdpi/img_fingerprint.png
diff --git a/app/src/main/res/drawable-tvdpi/ic_fingerprint.png b/app/src/main/res/drawable-tvdpi/img_fingerprint.png
similarity index 100%
rename from app/src/main/res/drawable-tvdpi/ic_fingerprint.png
rename to app/src/main/res/drawable-tvdpi/img_fingerprint.png
diff --git a/app/src/main/res/drawable-xhdpi/ic_fingerprint.png b/app/src/main/res/drawable-xhdpi/img_fingerprint.png
similarity index 100%
rename from app/src/main/res/drawable-xhdpi/ic_fingerprint.png
rename to app/src/main/res/drawable-xhdpi/img_fingerprint.png
diff --git a/app/src/main/res/drawable-xxhdpi/ic_fingerprint.png b/app/src/main/res/drawable-xxhdpi/img_fingerprint.png
similarity index 100%
rename from app/src/main/res/drawable-xxhdpi/ic_fingerprint.png
rename to app/src/main/res/drawable-xxhdpi/img_fingerprint.png
diff --git a/app/src/main/res/drawable-xxxhdpi/ic_fingerprint.png b/app/src/main/res/drawable-xxxhdpi/img_fingerprint.png
similarity index 100%
rename from app/src/main/res/drawable-xxxhdpi/ic_fingerprint.png
rename to app/src/main/res/drawable-xxxhdpi/img_fingerprint.png
diff --git a/app/src/main/res/drawable/ic_fingerprint.xml b/app/src/main/res/drawable/ic_fingerprint.xml
new file mode 100644
index 0000000..c2c2415
--- /dev/null
+++ b/app/src/main/res/drawable/ic_fingerprint.xml
@@ -0,0 +1,5 @@
+
+
+
diff --git a/app/src/main/res/drawable/ic_no_articles.png b/app/src/main/res/drawable/ic_no_articles.png
new file mode 100644
index 0000000..906de35
Binary files /dev/null and b/app/src/main/res/drawable/ic_no_articles.png differ
diff --git a/app/src/main/res/drawable/ic_no_chats.png b/app/src/main/res/drawable/ic_no_chats.png
new file mode 100644
index 0000000..cbedd50
Binary files /dev/null and b/app/src/main/res/drawable/ic_no_chats.png differ
diff --git a/app/src/main/res/drawable/ic_no_faqs.png b/app/src/main/res/drawable/ic_no_faqs.png
new file mode 100644
index 0000000..90574f6
Binary files /dev/null and b/app/src/main/res/drawable/ic_no_faqs.png differ
diff --git a/app/src/main/res/drawable/ic_fingerprint.png b/app/src/main/res/drawable/img_fingerprint.png
similarity index 100%
rename from app/src/main/res/drawable/ic_fingerprint.png
rename to app/src/main/res/drawable/img_fingerprint.png
diff --git a/app/src/main/res/drawable/img_home_marker.png b/app/src/main/res/drawable/img_home_marker.png
new file mode 100644
index 0000000..dca5920
Binary files /dev/null and b/app/src/main/res/drawable/img_home_marker.png differ
diff --git a/app/src/main/res/drawable/img_lock.png b/app/src/main/res/drawable/img_lock.png
new file mode 100644
index 0000000..3d9a800
Binary files /dev/null and b/app/src/main/res/drawable/img_lock.png differ
diff --git a/app/src/main/res/drawable/img_pat_curr_location.png b/app/src/main/res/drawable/img_pat_curr_location.png
new file mode 100644
index 0000000..c5a5390
Binary files /dev/null and b/app/src/main/res/drawable/img_pat_curr_location.png differ
diff --git a/app/src/main/res/layout/activity_articles.xml b/app/src/main/res/layout/activity_articles.xml
index 0053b45..78c5fa6 100644
--- a/app/src/main/res/layout/activity_articles.xml
+++ b/app/src/main/res/layout/activity_articles.xml
@@ -110,13 +110,19 @@
+
+
diff --git a/app/src/main/res/layout/activity_faq.xml b/app/src/main/res/layout/activity_faq.xml
index f74fd73..240de0e 100644
--- a/app/src/main/res/layout/activity_faq.xml
+++ b/app/src/main/res/layout/activity_faq.xml
@@ -42,13 +42,19 @@
+
+
-
- android:hint="@string/enter_refill_date"
- android:fontFamily="@font/nunito_regular"
- android:textColor="@color/black"
- android:textColorHint="@android:color/darker_gray"
- android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
+
+ android:hint="@string/enter_refill_date"
+ android:fontFamily="@font/nunito_regular"
+ android:textColor="@color/black"
+ android:textColorHint="@android:color/darker_gray"
+ android:textAppearance="@style/TextAppearance.Material3.TitleMedium"
+
+ android:paddingVertical="15dp"
+ android:padding="10dp"
+
+ android:drawablePadding="10dp"
+
+ app:drawableStartCompat="@drawable/ic_calender_2" />
+
+
+
+
-
+ android:orientation="horizontal">
+
+
+
+
+
+
+ android:fontFamily="@font/nunito_regular"
+ android:text="@string/to_enhance_the_security_of_your_account_please_add_biometric_authentication_using_either_face_id_or_fingerprint"
+ android:textColor="@color/black"
+ android:textSize="@dimen/_16ssp" />
@@ -111,6 +114,71 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/app/src/main/res/layout/cg_subscription_layout.xml b/app/src/main/res/layout/cg_subscription_layout.xml
index c933d0e..eb77711 100644
--- a/app/src/main/res/layout/cg_subscription_layout.xml
+++ b/app/src/main/res/layout/cg_subscription_layout.xml
@@ -7,6 +7,18 @@
android:background="@color/white"
android:orientation="vertical">
+
+
-
- android:maxLines="1"
- android:ellipsize="end"
+
- android:maxEms="8"
+
+ tools:text="Akanksha surve"
+ android:fontFamily="@font/nunito_medium"
+ android:textSize="@dimen/_18ssp"
+ android:textColor="@color/black"
+
+ android:layout_marginStart="15dp"
+
+ android:maxLines="1"
+ android:ellipsize="end"
+
+ android:maxEms="8"
+
+ />
+
+
+
+
+
+
+
+
+
+
Retry
A temporary pin will be sent to the registered email address.
Security
- To enhance the security of your account, please add biometric authentication using either Face ID or Fingerprint.
- Setup security
+ You can improve the privacy of this application by enabling a secondary security setting. Once enabled, secondary security must be entered each time the application is launched.
+ Use phone biometrics
No new gadgets! monitor your loved one\'s activity using his or her smartphone
595
We understand your privacy.
@@ -443,5 +443,7 @@
Testing View
This app is blocked by SimpliTend
open simplitend
+ No chats found. Start chatting!
+ Setup a 4-digit pin
\ No newline at end of file