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